[asterisk-bugs] [JIRA] (ASTERISK-26870) Opus codec configured with constant bit rate, but frame sizes changes

Asterisk Team (JIRA) noreply at issues.asterisk.org
Tue Mar 14 11:07:10 CDT 2017


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

Asterisk Team commented on ASTERISK-26870:
------------------------------------------

Thanks for creating a report! The issue has entered the triage process. That means the issue will wait in this status until a Bug Marshal has an opportunity to review the issue. Once the issue has been reviewed you will receive comments regarding the next steps towards resolution.

A good first step is for you to review the [Asterisk Issue Guidelines|https://wiki.asterisk.org/wiki/display/AST/Asterisk+Issue+Guidelines] if you haven't already. The guidelines detail what is expected from an Asterisk issue report.

Then, if you are submitting a patch, please review the [Patch Contribution Process|https://wiki.asterisk.org/wiki/display/AST/Patch+Contribution+Process].

> Opus codec configured with constant bit rate, but frame sizes changes
> ---------------------------------------------------------------------
>
>                 Key: ASTERISK-26870
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-26870
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Codecs/codec_opus
>    Affects Versions: 13.13.1
>         Environment: CentOS 7, Kernel 3.10.0-514.6.1.el7
>            Reporter: Oussama Hammami
>
> Hi,
> We have the following setup: a client (iPhone) calls a number (113) which plays back a gsm file (i.e. no SIP call involved). In the dialplan:
> {noformat}
> exten => _5113,1,Answer()
> exten => _5113,n,Wait(3)
> exten => _5113,n,Playback(you-are-caller-num)
> exten => _5113,n,Wait(1)
> {noformat}
> We have a proprietary channel driver which handles the connections to the clients. Client and channel driver communicate over UDP.
> Given the dialplan above, the following should happen: the client connects to our proprietary channel driver. The channel driver creates an Asterisk channel (read/write format: ast_format_opus) and starts the call. Asterisk figures out in the dialplan that the you-are-caller-num must be played back. Because the file is in gsm format, Asterisk transcodes to opus and hands the data back to the created channel. The channel driver takes the data and sends it to the client (via UDP). The client decodes the opus data.
> Here is the opus configuration in /etc/asterisk/codecs.conf:
> {noformat}
> [opus]
> type=opus
> signal=voice
> application=voip
> sample_rate=8000
> max_bandwidth=narrow
> max_playback_rate=16000
> bitrate=auto
> cbr=true
> {noformat}
> Note that the client expects a sample rate of 8000 and a constant bit rate (cbr=true).
> In sip.conf, I added
> {noformat}
> allow=opus
> {noformat}
> When Asterisk calls the write callback on the channel to provide a frame, I see that the value of frame->framelen is changing with each callback invocation (99, 118, 111, 101, etc.), but frame->framelen should have a constant value: 28 (for a sample rate of 8000 and cbr=true).
> I do not understand why the frame size is constantly changing even though I configured opus with cbr=true and a sample rate of 8000? How can I enforce my settings?
> The issue was discussed in the Asterisk community: https://community.asterisk.org/t/asterisk-13-opus-no-translation-path/
> Best regards,
> Ouss



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



More information about the asterisk-bugs mailing list