[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