> Hi
> 
> I have a confusion about error response handling of proxy. 
> 
> A stateful proxy MUST send a final response to a response context's server
> transaction if no final responses have been immediately forwarded and all
> client transactions in this response context have been terminated.
> Reception of an error response causes client transaction to go in
> "completed" state and starts timer D (for at least 32 seconds for
> unreliable transport). The expiry of timer D will cause termination of
> client transaction and ONLY after termination of all client transactions
> (can be only one) proxy CAN forward the best error response. 
> 
> This means there will be at least 32-second delay (timer D for unreliable
> transport) between reception of an error response and passing it to server
> transaction. This cause delay in forwarding response at the proxy. As the
> response traverse the same path as the request, this delay will take place
> at every proxy. Is this the way it is suppose to happen ? Is there any way
> to avoid this delay ?
> 
> following are the references from RFC 3261
> 
> Section 16.7, clause # 5
> 
> Until a final response has been sent on the server transaction, the
> following responses MUST be forwarded immediately:
> -  Any provisional response other than 100 (Trying)
> -  Any 2xx response
> 
> After a final response has been sent on the server transaction, the
> following responses MUST be forwarded immediately:
> -  Any 2xx response to an INVITE request
> 
> A stateful proxy MUST NOT immediately forward any other responses. Those
> responses that are candidates for forwarding later as the "best" response
> have been gathered.
> 
> Section 16.7, clause # 6
> 
> A stateful proxy MUST send a final response to a response context's server
> transaction if no final responses have been immediately forwarded by the
> above rules and all client transactions in this response context have been
> terminated.
> 
> The stateful proxy MUST choose the "best" final response among those
> received and stored in the response context.
> 
> Section 17.1.1.2, Paragraph # 7
> 
> When in either the "Calling" or "Proceeding" states, reception of a
> response with status code from 300-699 MUST cause the client transaction
> to transition to "Completed". ... The client transaction SHOULD start
> timer D when it enters the "Completed" state, with a value of at least 32
> seconds for unreliable transports, and a value of zero seconds for
> reliable transports.
> 
> Section 17.1.1.2, Paragraph # 9
> 
> If timer D fires while the client transaction is in the "Completed" state,
> the client transaction MUST move to the terminated state.
> 
> Section 17.1.1.2, Paragraph # 11
> 
> The client transaction MUST be destroyed the instant it enters the
> "Terminated" state ...
> 
> 
> Thanks in advance
> 
> Waqqas
> 
_______________________________________________
Sip-implementors mailing list
[EMAIL PROTECTED]
http://lists.cs.columbia.edu/mailman/listinfo/sip-implementors

Reply via email to