[asterisk-dev] [Code Review] SIP: proper handling of forked outbound INVITE requests.
David Vossel
dvossel at digium.com
Tue Sep 28 17:32:11 CDT 2010
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviewboard.asterisk.org/r/946/
-----------------------------------------------------------
Review request for Asterisk Developers.
Summary
-------
RFC3261 section 12 about dialog creation says an INVITE transaction results in an established dialog once it receives the 200 OK response. It is possible to receive multiple differing 200 OK responses for a single outbound INVITE Request, and this should result in establishing multiple dialogs.
This patch allows for all differing 200 OK responses to an INVITE request to establish a separate dialog, but only the first dialog is kept. All other resulting dialogs from the initial request are immediately ACKed and then immediately terminated with a BYE request.
Diffs
-----
/trunk/channels/chan_sip.c 289176
Diff: https://reviewboard.asterisk.org/r/946/diff
Testing
-------
I have tested this with several sipp scenarios where multiple 200 OKs are generated for a single outbound INVITE from Asterisk. In these scenarios I have verified that the BYE sent as result of a forked request for termination will retransmit correctly eventually timing out and destroying the dialog, and that the forked dialogs are destroyed correctly immediately after the BYE request receives the 200 OK response. If the 200 OK generating the dialog is retransmitted for some reason, the Asterisk will continue to ACK it correctly as well.
Thanks,
David
More information about the asterisk-dev
mailing list