[asterisk-bugs] [JIRA] Commented: (ASTERISK-15001) chan_sip breaks RFC by incrementing session version between non-reliable 1xx and 200

Eran Benjamin (JIRA) noreply at issues.asterisk.org
Mon Oct 1 07:23:27 CDT 2012


    [ https://issues.asterisk.org/jira/browse/ASTERISK-15001?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=197774#comment-197774 ] 

Eran Benjamin commented on ASTERISK-15001:
------------------------------------------

I think there might be a regression of some sort with Asterisk 1.8.14.1 where an SDP version gets incremented between the 183 and the 200 messages without the content changing.
I have pcap files that can show this clearly.

> chan_sip breaks RFC by incrementing session version between non-reliable 1xx and 200
> ------------------------------------------------------------------------------------
>
>                 Key: ASTERISK-15001
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-15001
>             Project: Asterisk
>          Issue Type: Bug
>          Components: Channels/chan_sip/General
>            Reporter: Andrew Pogrebennyk
>            Severity: Minor
>
> There is a contradiction to RFC in the current chan_sip implementation. In SIP the answerer may send the SDP answer in some or all of the provisional responses, but it must ultimately send the answer in a "reliable" response, either a reliable provisional response or a 2xx response. If PRACK isn't used all of these answers must be the same, including session version in the origin field.
> This is defined in the section 13.2.1 of RFC 3261:
> If the initial offer is in an INVITE, the answer MUST be in a reliable
> non-failure message from UAS back to UAC which is correlated to that
> INVITE. For this specification, that is only the final 2xx response to
> that INVITE. That same exact answer MAY also be placed in any
> provisional responses sent prior to the answer.
> According to this, session version in the o-line must be the same in the non-reliable provisional response and 200 OK. Asterisk however increments the session version each time it sends a new SDP:
>         /* Set RTP Session ID and version */
>         if (!p->sessionid) {
>                 p->sessionid = getpid();
>                 p->sessionversion = p->sessionid;
>         } else
>                 p->sessionversion++;
> This behavior has been there since Nov 2003:
> http://lists.digium.com/pipermail/svn-commits/2003-November/000534.html
> I'm using Asterisk 1.4.24.1 however all newer versions contain this issue and it causes interoperability problems with some carriers.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira



More information about the asterisk-bugs mailing list