[asterisk-users] Calls hang up after 20 seconds

Alex Balashov abalashov at evaristesys.com
Mon Oct 19 07:45:21 CDT 2009


SIP wrote:

> And yet, again, many clients send no ACKs at all. Asterisk assumes
> they're not connected, and disconnects them. 

 From a formal point of view, they're not.  To positively establish the 
dialog the three-way handshake:

    INVITE ------------>
    <--------------- 1xx
    <--------------- 200
    ---------------> ACK

*is* required.

> Even after the conversation is going nicely. 

The fact that media may be passed in the interim is a side effect that 
has no bearing on the state machine or protocol mechanics surrounding 
the issue of reliable transmission of final responses.

> ACK is required for INVITE requests (ONLY) that have
> route header fields. 

What is your citation for this qualification?  RFC 3261 does not seem to 
me to say that, as in 13.1:

    Because of the protracted amount of time it can take to receive final
    responses to INVITE, the reliability mechanisms for INVITE
    transactions differ from those of other requests (like OPTIONS).
    Once it receives a final response, the UAC needs to send an ACK for
    every final response it receives.

Or 13.2.2.4 ("2xx Responses"):

    The UAC core MUST generate an ACK request for each 2xx received from
    the transaction layer.


> Otherwise, you rely somewhat heavily on loose
> routing of the ACK messages, which can result in any manner of fun loops
> dependent on the proxies in the mix and what sort of routes they may be
> tacking on.

End-to-end ACKs are *never* loose-routed by proxies, even though they 
contain a To tag;  hop-by-hop ACKs are locally generated by proxies.

> ACK was intended as a reliable method of determining whether or not a
> conversation has been well and truly established. But in reality, it is
> one of the less reliable methods.

The scope of the underlying intent behind ACk was a bit broader than that.


-- 
Alex Balashov - Principal
Evariste Systems
Web     : http://www.evaristesys.com/
Tel     : (+1) (678) 954-0670
Direct  : (+1) (678) 954-0671



More information about the asterisk-users mailing list