[asterisk-bugs] [JIRA] (ASTERISK-28036) Codec negotiation when incoming re-INVITE has no SDP
Daniel Harper (JIRA)
noreply at issues.asterisk.org
Mon Sep 3 23:03:54 CDT 2018
[ https://issues.asterisk.org/jira/browse/ASTERISK-28036?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=244687#comment-244687 ]
Daniel Harper commented on ASTERISK-28036:
------------------------------------------
Link here https://lists.cs.columbia.edu/pipermail/sip-implementors/2016-January/030448.html
The following are a few RFC snippets. As shown within RFC 3725 section
10.2, 3PCC is one of the users of re-INVITE without SDP. If a device does
not support re-INVITE without SDP or doesn't offer all codecs that the UA
is currently willing and able to use, it hinders interoperability during
3PCC situations. For instance within RFC 3725 figure 13, the Media Server
may not be unable to communicate with the Pre-Paid User if the prepaid
device limits the offered codecs to be whatever was recently negotiated
with the Called Party.
RFC 3261 section 14.2:
"A UAS providing an offer in a 2xx (because the INVITE did not contain an
offer) SHOULD construct the offer as if the UAS were making a brand new
call, subject to the constraints of sending an offer that updates an
existing session, as described in [13] in the case of SDP. Specifically,
this means that it SHOULD include as many media formats and media types
that the UA is willing to support."
RFC 6337 section 5.1:
"A UA should send an offer that indicates what it, and its user, are
interested in using/doing at that time, without regard for what the other
party in the call may have indicated previously. This is the case even
when the offer is sent in response to an INVITE or re-INVITE that contains
no offer. (However, in the case of re-INVITE, the constraints of
[RFC3261] and [RFC3264] must be observed.)"
RFC 6337 section 5.2.5:
"When the new offer is sent in response to an offerless (re-)INVITE, it
should be constructed according to the General Principle for Constructing
Offers and Answers (Section 5.1 ): all codecs the UA is currently willing
and able to use should be included, not just the ones that were negotiated
by previous offer/answer exchanges. The same is true for media types --
so if UA A initially offered audio and video to UA B, and they end up with
only audio, and UA B sends an offerless (re-)INVITE to UA A, A's resulting
offer should most likely re-attempt video, by reusing the zeroed "m=" line
used previously."
RFC 6337 section 5.3:
"If a UA has occasion to send another offer in the session, without any
desire to change the hold status (e.g., in response to a re-INVITE without
an offer, or when sending a re-INVITE to refresh the session timer), it
should follow the "General Principle for Constructing Offers and Answers"
(Section 5.1). If it previously initiated a "hold" by sending
"a=sendonly" attribute or "a=inactive" attribute, then it should offer
that again. If it had not previously initiated "hold", then it should
offer "a=sendrecv" attribute, even if it had previously been forced to
answer something else. Without this behavior it is possible to get "stuck
on hold" in some cases, especially when a 3pcc is involved."
> Codec negotiation when incoming re-INVITE has no SDP
> -----------------------------------------------------
>
> Key: ASTERISK-28036
> URL: https://issues.asterisk.org/jira/browse/ASTERISK-28036
> Project: Asterisk
> Issue Type: Bug
> Security Level: None
> Components: Channels/chan_pjsip
> Affects Versions: 13.22.0, 15.5.0
> Environment: Centos 6.10, 64bit
> Reporter: Daniel Harper
> Severity: Minor
>
> I appreciate that there might be a view that this is a feature request but I also believe that it could be also be viewed that this is a bug but I welcome the discussion.
> When recieving an re-Invite without SDP asterisk is not re-offering all supported media formats & codecs only the previously determined one.
> I found this link that references the various RFC's where this behaviour is expected.
> Where this is an issue is in a call-pick up scenario where asterisk is dialing a call-pick feature code to pick up a external call. The issue being that the call being picked might not support the originally determined codec.
--
This message was sent by Atlassian JIRA
(v6.2#6252)
More information about the asterisk-bugs
mailing list