[Home]

Summary:ASTERISK-24495: Re-invite not changing RTP stream
Reporter:Peter Jamieson (peterjam28)Labels:
Date Opened:2014-11-05 07:53:49.000-0600Date Closed:2014-11-05 08:17:07.000-0600
Priority:MinorRegression?
Status:Closed/CompleteComponents:Channels/chan_sip/General
Versions:11.11.0 Frequency of
Occurrence
Constant
Related
Issues:
Environment:VirtualBox VM running CentOS 6.5Attachments:( 0) full.zip
Description:When i send a re-invite back to asterisk with a new RTP port, it is not changing the stream.  I can get around it by setting ignoresdpversion=yes, but i believe that the version number is not the same and it should be changing it anyway.
Comments:By: Peter Jamieson (peterjam28) 2014-11-05 07:55:35.735-0600

RTP and SIP trace attached.
2 calls: -
call 1 is without ignoresdpversion=yes
call 2 is with ignoresdpversion=yes


By: Peter Jamieson (peterjam28) 2014-11-05 07:57:13.553-0600

I think the re-invite on line 5052 of the trace should be changing the RTP stream.

There is no log that the version is the same, but the same re-invite on line 15449 is changing the stream.

By: Joshua C. Colp (jcolp) 2014-11-05 08:17:07.071-0600

This isn't a bug. The SDP version number is indeed not incrementing.

In the initial 200 OK back the version number is "1415186588".
In the subsequent re-invite the version number is "374555000".

Since the version number of "374555000" is LESS than the previous SDP it is ignored. The new SDP version number should be higher.

To quote the RFC:

"<sess-version> is a version number for this session description.  Its
     usage is up to the creating tool, so long as <sess-version> is
     increased when a modification is made to the session data."

By: Peter Jamieson (peterjam28) 2014-11-05 08:50:33.945-0600

I did wonder if that was the reason, but the comment in sip.conf says: -
{noformat}
ignoresdpversion=yes           ; By default, Asterisk will honor the session version
                               ; number in SDP packets and will only modify the SDP
                               ; session if the version number changes. This option will
                               ; force asterisk to ignore the SDP session version number
                               ; and treat all SDP data as new data.  This is required
                               ; for devices that send us non standard SDP packets
                               ; (observed with Microsoft OCS). By default this option is
                               ; off.
{noformat}

Note that is says "changes", not "increases".

However, the RFC clarifies that it should be increasing, so i'll look at what is setting it.