[asterisk-dev] Is Asterisk's handling of SDP version number on a re-INVITE correct?

Kevin P. Fleming kpfleming at digium.com
Wed May 19 08:23:52 CDT 2010


On 05/19/2010 07:59 AM, Kirill 'Big K' Katsnelson wrote:
> A device sends an in-dialog re-INVITE with a different SDP session user 
> name, identifier and version. The re-invite is rejected by Asterisk 
> because its version number is not increasing between existing and the 
> old session.
> 
> My question is whether that behavior is correct or not. process_sdp_o() 
> in chan_sip.c ignores the username and session id, but compares the 
> version. Now, RFC2327 on page 8, where the o= field is described, says:
> 
>>    <session id> is a numeric string
>>    such that the tuple of <username>, <session id>, <network type>,
>>    <address type> and <address> form a globally unique identifier for
>>    the session.
> 
> and (pp. 8-9)
> 
>>    <version> is a version number for this announcement.  It is needed
>>    for proxy announcements to detect which of several announcements for
>>    the same session is the most recent.  Again its usage is up to the
>>    creating tool, so long as <version> is increased when a modification
>>    is made to the session data.
> 
> The key here seems the words "the same session," which I understand as 
> the session identified by the same <session id>. If my understanding is 
> correct, then Asterisk's checking for version increment but ignoring the 
> session id is a bug.

There is a configuration option to make chan_sip accept the new SDP
anyway, but I believe your analysis is correct, and this is a bug.

-- 
Kevin P. Fleming
Digium, Inc. | Director of Software Technologies
445 Jan Davis Drive NW - Huntsville, AL 35806 - USA
skype: kpfleming | jabber: kfleming at digium.com
Check us out at www.digium.com & www.asterisk.org



More information about the asterisk-dev mailing list