[asterisk-bugs] [JIRA] (ASTERISK-26423) res_pjsip_sdp_rtp: Asymmetric RTP codec can cause audio loss and wonkiness

Joshua Colp (JIRA) noreply at issues.asterisk.org
Sun Oct 23 07:49:01 CDT 2016


     [ https://issues.asterisk.org/jira/browse/ASTERISK-26423?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Joshua Colp updated ASTERISK-26423:
-----------------------------------

    Attachment: ASTERISK-26423.diff

I'm attaching a preliminary change which fixes a few codec problems in chan_pjsip. This ensures that if negotiated payloads change we will re-evaluate the bridge situation, it ensures that outgoing media is of the same payload of received media, and it also ensures that bridge choice selection uses the negotiated codecs.

I will be testing this out fully tomorrow but thought I would put it up now to elicit any feedback.

It can be applied by downloading the patch and applying it using "patch -p1 < ASTERISK-26423.diff"

If any issues occur with it please ensure you have a log with debug enabled (debug in logger.conf and core set debug 9 on the CLI).

> res_pjsip_sdp_rtp: Asymmetric RTP codec can cause audio loss and wonkiness
> --------------------------------------------------------------------------
>
>                 Key: ASTERISK-26423
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-26423
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Resources/res_pjsip_sdp_rtp
>    Affects Versions: 13.11.2
>         Environment: FreeBSD 10.3-RELEASE-p8 i386
> Gigaset S850A GO IP phone
>            Reporter: Andreas Wetzel
>            Assignee: Joshua Colp
>         Attachments: ASTERISK-26423.diff
>
>
> This is an interoperability issue between asterisk/pjsip and a Gigaset S850A GO IP telephone due to way codecs are negotiated between both devices.
> When a call is placed from the S850A GO the initial INVITE message contains the list of configured codecs in the preferred order, i.e. g722, pcma, pcmu. When asterisk responds with OK, it also presents the configured codec list and preferred order, lets assume it's also g722, pcma, pcmu. What the S850A GO now seems to be doing is to pick the first codec from asterisk's list which it also supports. If asterisk now sends RTP data to the S850A GO, that is encoded in a format different than the one it has picked, the phone sends reINVITEs whose sdp only contains the single codec it has chosen. Asterisk confirms that it would respect this and sends OK with also only the single codec, but continues to send RTP data encoded in a different format, leading to an endless loop of reINVITEs and OK messages, with only one way audio. This occurs for example when calling an extension that does only support pcma and pcmu, in which case asterisk will send alaw encoded RTP to the S850A GO, as it was in it's list of supported codecs.
> I understand that this issue is in part caused by the firmware of the S850A GO phone. Similar issues seem to exist with a number of other manufacturers like Grandstream, Yealink and Snom. Nevertheless I feel that asterisk/pjsip is not behaving correctly in this regard either. If asterisk acknowledges the use of a single codec as was requested by the device in the reINVITE message, then it should obey that and not continue sending differently encoded RTP to the device.



--
This message was sent by Atlassian JIRA
(v6.2#6252)



More information about the asterisk-bugs mailing list