Kevin P. Fleming wrote: > SIP wrote: > > >> In an ideal world, when Asterisk sent an ACK, whatever server/client it >> was connected to would respond accordingly. It is, however, not an ideal >> world, so this doesn't always happen. >> > > This is not correct; there are no responses to SIP ACK messages. In > addition. ACK messages are *required* for proper SIP operation; lack of > an ACK to a response from Asterisk absolutely requires that Asterisk > assume that either the response was never delivered to the requester, or > that that requester has stopped responding. In either case, the SIP > dialog/transaction in question must be terminated, because it is no > longer in a determinate state. > > If the SIP network does not route ACK responses properly, it is broken. > > And yet, again, many clients send no ACKs at all. Asterisk assumes they're not connected, and disconnects them. Even after the conversation is going nicely. ACK is required for INVITE requests (ONLY) that have route header fields. 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.
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. Add in PRACK to the mix (which increments the CSeq), and you can even get some fun race conditions which cause a search for matching ACK/CSeq pairs to fail on some servers (I'm not saying Asterisk does this, I'm just saying it does happen -- I've no idea how Asterisk handles PRACKs). Those servers may not proxy the ACK back to the final destination, assuming that the ACK is no longer an hop by hop but and end to end ACK dependent on how the CSeq matches up. N. _______________________________________________ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- AstriCon 2009 - October 13 - 15 Phoenix, Arizona Register Now: http://www.astricon.net asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
