I have some questions about handling fatal errors when sending a request from either a
proxy or user agent.
As per draft-ietf-sip-srv-06.txt
4.3 Details of RFC 2782 Process
For SIP requests, failure occurs if the transaction layer reports a
503 error response or a transport failure of some sort (generally,
due to fatal ICMP errors in UDP use or connection failures in TCP).
As per draft-ietf-sip-rfc2543bis-09.txt,
8.1.3.1 Transaction Layer Errors
In some cases, the response returned by the transaction layer will
not be a SIP message, but rather a transaction layer error. When a
timeout error is received from the transaction layer, it MUST be
treated as if a 408 (Request Timeout) status code has been received.
If a fatal transport error is reported by the transport layer
(generally, due to fatal ICMP errors in UDP or connection failures in
TCP), the condition MUST be treated as a 503 (Service Unavailable)
status code.
16.9 Handling Transport Errors
If the transport layer notifies a proxy of an error when it tries to
forward a request (see Section 18.4), the proxy MUST behave as if the
forwarded request received a 400 (Bad Request) response.
For a proxy, "the procedures will produce an ordered set of (address,port, transport)
tuples." for each request in the target set. The proxy then tries to send the request
to the first tuple. First question is how should the transaction layer report an
error back to the proxy application layer? Also, does a proxy application need to
handle this fatal ICMP error on UDP or connection failure on TCP the same as a user
agent application. Finally, should the application layer in a proxy deal with a 400
response any differently than a 503 response?
It seems to me that if the transaction layer reports a 503 back to the application
layer (in both proxy and user agents) then the correct behavior can be taken by the
application. In the case of the proxy, this means trying the next tuple in the list
for the current element in the target set. If all tuples are exhausted, enter a 408 in
the response context for this element in the target set. In the case of a user agent,
the ua should behave as if a 503 was received - moving on to the next alternate
address.
Jason
_______________________________________________
Sip-implementors mailing list
[EMAIL PROTECTED]
http://lists.cs.columbia.edu/mailman/listinfo/sip-implementors