Hi, I would like to insist in the 408 problem when it's locally
generated due to fr_timer timeout in SIP UDP. Let's suppose this very
simple example:

- Call from UAC to proxy.
- Proxy routes it to a gateway (no failover to other gateways).

3 cases:

a) Gateway replies 408, so TM selects 408 (OK).

b) Provisional responses are received but fr_inv_timer expires, so TM
generates a local 408. The client receives 408 (OK).

c) No reponse at all from gateway so fr_timer expires and TM generates
a local 408. The client receives 408 (WRONG).


Obviously in case "c" it doesn't make sense to send a 408 to the
client as the fact is that the gateway is unreachable, so a 500 should
be replied to the client.

So what is the problem? In case "c" there should be a "transport
error". According to RFC 3261 if an UDP transaction gets a ICMP "port
unreachable" it should generate a local 503. And if it receives no UDP
reply at all (neither an ICMP notification) then it should generate a
local 408.

Problems with this:
- SR doesn't rely on received ICMP (it neither receives them AFAIK).
- If the gateway is down there will be not a ICMP message (neither if
the gateway TCP/IP stack doesn't generate such ICMP notifications).

So with the current TM design an UDP transport error just can cause a
local 408, and never a 503. This is the main problem.

Unfortunatelly such 408 is painful as the examples above show. This is
the reason I propose TM to generate a local 503 if no response at all
is received for a UDP requests (when fr_timer expires).

More or less the same info in this report:
  http://sip-router.org/tracker/index.php?do=details&task_id=55

Regards.


-- 
Iñaki Baz Castillo
<i...@aliax.net>

_______________________________________________
sr-dev mailing list
sr-dev@lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev

Reply via email to