Why does OpenSIPS replies "408" when getting "ICMP udp port XXXX unreachable" ?

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Why does OpenSIPS replies "408" when getting "ICMP udp port XXXX unreachable" ?

Iñaki Baz Castillo
Hi, if OpenSIPS routes a request via UDP to SERVER_IP:SERVER_PORT and receives
a ICMP error:

  ICMP SERVER_IP udp port SERVER_PORT unreachable

then OpenSIPS remains retransmiting the request (until transaction timer
expires and so). After that it generates a 408 response.

I wonder why. Some firewalls are configured to drop UDP requests, so in case
there is no application listening in UDP 5060, then the request is dropped
and OpenSIPS retransmissions are justified.

But if the server replies an ICMP error, OpenSIPS should understand that the
destination is unreachable (it's nothing listening in that port), so IMHO
OpenSIPS whould generate an internal "network error" that would become
a "503" according to RFC 3261, o a "477" according to the OpenSIPS behaviour
when failing sending a request via TCP.

Am I wrong?


--
Iñaki Baz Castillo

_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Reply | Threaded
Open this post in threaded view
|

Re: Why does OpenSIPS replies "408" when getting "ICMP udp port XXXX unreachable" ?

Bogdan-Andrei Iancu
Hi Inaki,

OpenSIPS transport stack has no support for dealing with ICMP error.
Mainly because of two reasons:
    - catching ICMP error differs from OS to OS, hard to get a common
ground
    - you need to keep state at transport level; mapping between
transactions/messages and destination.

Regards,
Bogdan

Iñaki Baz Castillo wrote:

> Hi, if OpenSIPS routes a request via UDP to SERVER_IP:SERVER_PORT and receives
> a ICMP error:
>
>   ICMP SERVER_IP udp port SERVER_PORT unreachable
>
> then OpenSIPS remains retransmiting the request (until transaction timer
> expires and so). After that it generates a 408 response.
>
> I wonder why. Some firewalls are configured to drop UDP requests, so in case
> there is no application listening in UDP 5060, then the request is dropped
> and OpenSIPS retransmissions are justified.
>
> But if the server replies an ICMP error, OpenSIPS should understand that the
> destination is unreachable (it's nothing listening in that port), so IMHO
> OpenSIPS whould generate an internal "network error" that would become
> a "503" according to RFC 3261, o a "477" according to the OpenSIPS behaviour
> when failing sending a request via TCP.
>
> Am I wrong?
>
>
>  


_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Reply | Threaded
Open this post in threaded view
|

Re: Why does OpenSIPS replies "408" when getting "ICMP udp port XXXX unreachable" ?

Iñaki Baz Castillo
2009/2/12 Bogdan-Andrei Iancu <[hidden email]>:
> Hi Inaki,
>
> OpenSIPS transport stack has no support for dealing with ICMP error. Mainly
> because of two reasons:
>   - catching ICMP error differs from OS to OS, hard to get a common ground
>   - you need to keep state at transport level; mapping between
> transactions/messages and destination.

Ok, understood. Thanks.

--
Iñaki Baz Castillo
<[hidden email]>

_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users