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

Olle Johansson (JIRA) noreply at issues.asterisk.org
Thu Oct 31 04:44:03 CDT 2013


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

Olle Johansson commented on ASTERISK-15001:
-------------------------------------------

Was this fixed or not?
                
> 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.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.asterisk.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira



More information about the asterisk-bugs mailing list