[asterisk-bugs] [JIRA] (ASTERISK-28452) pjsip: <sess-version> of SDP is not incremented though SDP may be changed on reinvite without SDP offer
Richard Mudgett (JIRA)
noreply at issues.asterisk.org
Mon Jan 25 11:32:01 CST 2021
[ https://issues.asterisk.org/jira/browse/ASTERISK-28452?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=253605#comment-253605 ]
Richard Mudgett edited comment on ASTERISK-28452 at 1/25/21 11:31 AM:
----------------------------------------------------------------------
On receiving a re-INVITE without SDP, Asterisk gets the current local SDP offer which is indented to be constant (1), and *modifies* it, without updating the version number.
This behavior was introduced in (2), a fix for (3).
Adding a couple of lines of code to increment ''origin.version'' solves the issue in my environment.
Though, it's still a dirty hack in my opinion, because the local offer is not supposed to be modified without pjmedia knowing about it.
I guess, the right solution should use modify_local_offer, but it also changes the negotiator's state from DONE to LOCAL_OFFER. I think, if it's not used, maybe there were some reasons not to use it, but I coulnd't find any clue neither in the issue (3) nor in the reviews on Gerrit (4, 5).
(1) https://github.com/pjsip/pjproject/blob/3e8211db8b817e2dc2a9ef03701f40d9309b0589/pjmedia/include/pjmedia/sdp_neg.h#L51-L66
(2) https://github.com/asterisk/asterisk/commit/a098251e7e4f9e019787b996e5897a067c93f41a
(3) ASTERISK-25854
(4) https://gerrit.asterisk.org/c/asterisk/+/2533
(5) https://gerrit.asterisk.org/c/asterisk/+/14888
was (Author: ipoddubny):
On receiving a re-INVITE without SDP, Asterisk gets the current local SDP offer which is indented to be constant (1), and *modifies* it, without updating the version number.
This behavior was introduced in (2), a fix for (3).
Adding a couple of lines of code to increment ''origin.version'' solves the issue in my environment.
Though, it's still a dirty hack in my opinion, because the local offer is not supposed to be modified without pjmedia knowing about it.
I guess, the right solution should use modify_local_offer, but it also changes the negotiator's state from DONE to LOCAL_OFFER. I think, if it's not used, maybe there were some reasons not to use it, but I coulnd't find any clue neither in the issue (3) nor in the reviews on Gerrit (4, 5).
(1) https://github.com/pjsip/pjproject/blob/3e8211db8b817e2dc2a9ef03701f40d9309b0589/pjmedia/include/pjmedia/sdp_neg.h#L51-L66
(2) https://github.com/asterisk/asterisk/commit/a098251e7e4f9e019787b996e5897a067c93f41a
(3) https://issues.asterisk.org/jira/browse/ASTERISK-25854
(4) https://gerrit.asterisk.org/c/asterisk/+/2533
(5) https://gerrit.asterisk.org/c/asterisk/+/14888
> pjsip: <sess-version> of SDP is not incremented though SDP may be changed on reinvite without SDP offer
> -------------------------------------------------------------------------------------------------------
>
> Key: ASTERISK-28452
> URL: https://issues.asterisk.org/jira/browse/ASTERISK-28452
> Project: Asterisk
> Issue Type: Bug
> Security Level: None
> Components: pjproject/pjsip, Resources/res_pjsip_sdp_rtp
> Affects Versions: 16.3.0
> Environment: CentOS 7
> Reporter: Michael Maier
> Severity: Minor
> Labels: patch, pjsip
> Attachments: sdp-version.patch, sdp-version-v2.patch, wrong-SDP-sess-version.txt
>
>
> During late / delayed offer as part of a reInivte during an outbound call, the SDP sent to the provider in the 200 OK is changed compared to the initial INVITE - but the <sess-version> isn't incremented. This is against RFC6337, 5.2.5. Subsequent Offers and Answers.
> See the attached Trace!
--
This message was sent by Atlassian JIRA
(v6.2#6252)
More information about the asterisk-bugs
mailing list