[asterisk-dev] [svn-commits] mmichelson: branch 1.8 r368625 - /branches/1.8/channels/chan_sip.c

Olle E. Johansson oej at edvina.net
Thu Jun 7 02:14:50 CDT 2012


6 jun 2012 kl. 21:13 skrev SVN commits to the Digium repositories:

> Author: mmichelson
> Date: Wed Jun  6 14:13:45 2012
> New Revision: 368625
> 
> URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=368625
> Log:
> Fix a specific scenario where ACKs are not matched.
> 
> If a dialog-starting INVITE contains a to-tag, then Asterisk
> will respond with a 481. In this case, the resulting incoming
> ACK would not be matched, so Asterisk would continue retransmitting
> the 481 until the transaction times out.
> 
> There were two issues. Asterisk, upon creating a sip_pvt would generate
> a local tag. However, when the time came to transmit the 481, since there
> was a to-tag in the INVITE, Asterisk would place this original to-tag
> in the 481 response. When the ACK came in, Asterisk would attempt to
> match the to-tag in the ACK to the generated local tag. Unfortunately,
> Asterisk never actually transmitted a response with the generated local
> tag, so the to-tag in the ACK would not match.
> 
> The other problem was that when the 481 was sent, nothing was set
> on the sip_pvt to indicate what CSeq is expected in the ACK.
> 
> To fix the first problem, we zero out the to-tag seen in the incoming
> INVITE. This way, Asterisk, when time to send a response, will send
> its generated local tag instead.
Which means that the sender of the SIP request can't match your response to the request. The to-tag is an important part
of the dialog-matching and you can't change it like that.

Did you test this with a number of devices?

/O


More information about the asterisk-dev mailing list