Asterisk14 OPUS transcoding

Hi Everyone,

I have an Asterisk14 and i have i simple question, is it possible that have one account with PCMA for example and a second with OPUS and have media transcoding between the two?

i tested this and i have the following log showing.
=> WARNING[4454][C-00000002]: codec.c:397 ast_codec_samples_count: Unable to calculate samples for codec opus

Thanks for help,

Asterisk 14, as well as now 13, has a codec_opus available as one has been officially released[1]. You can enable it by going into “make menuselect” when building Asterisk and choosing codec_opus under Codec Translators. It will automatically download codec_opus when you install Asterisk and also install the codec.


Hi jcolp,

Thanks for your reply, i’m not sure if the codec_opus module is selected by default during the build of Asterisk but what i remember is that i didn’t change the default selection in “menuselect” during installation, but when i configure 2 SIP accounts with “allow=opus” the call is fine.

codec_opus is not enabled or downloaded by default, you have to explicitly enable it. If both sides are set to allow opus then no transcoding would take place and the codec would not be needed. It’s also when you need to translate from one codec to another that it would be needed.

Thanks again, i’m trying to reinstall asterisk again and as you said it is not enabled/downloaded by default.

On the menuselect i cannot select it, it shows with “XXX codec_opus”, i’m not sure if i’m missing something here.

Down it shows, "Depends on: xmlstarlet(E), bash(E), res_format_attr_opus(M).

You most likely do not have the “xmlstarlet” dependency installed. It’s required.

I have “xmlstarlet” installed but still couldn’t the checkbox selection, so i did download the codec_opus module manually and copied the .so file into /usr/lib/asterisk/modules -> rebooted and reloaded asterisk and all seemed fine until now.

But when i tested a call between a PCMA account and OPUS account, Asterisk cancels the call and i have following debug log ;

=> WARNING[5869][C-00000004]: channel.c:6439 ast_channel_make_compatible_helper: No path to translate from SIP/7000-00000003 to SIP/7001-00000002
=> Spawn extension (from-internal, 7000,1) exited non-zero on ‘SIP/7001-00000002’

I’m not sure if i’ms till missing a config or installation files.


You will also need to copy the “codec_opus_config-en_US.xml” file to /var/lib/asterisk/documentation/thirdparty

If that does not work please provide the console output at startup.

Hi jclop,

That helped and now i can make calls between OPUS and PCMA accounts without any problems, Thanks a lot for the help :wink:


I also have problems with Opus transcoding from alaw to opus both in version 13.13.1 and in version 14.2.1. of Asterisk (Ubuntu server). The xml file is already stored in the third party dir.

Any help?



Some info:

Asterisk 14.2.1 output:

WARNING[4648][C-000006bf]: channel.c:6506 ast_channel_make_compatible_helper: No path to translate from SIP/… to SIP/…

CLI> core show translation paths alaw

alaw:8000        To opus:8000       : (alaw@8000)->(slin@8000)->(opus@8000)
alaw:8000        To opus:16000      : (alaw@8000)->(slin@8000)->(g722@16000)->(slin@16000)->(opus@