TIPS Working Opus Codec (IncrediblePBX - Asterisk 16.7)???

AlpineSkate

New Member
Joined
Jan 13, 2021
Messages
4
Reaction score
2
Simple question: Is there a working Opus Codec module for IncrediblePBX (version Asterisk 16.7)?

Some information:
I've managed to load Opus Codec modules
I can see the loaded module "module show like opus"
incrediblepbx*CLI> module show like opus
Module Description Use Count Status Support Level
res_format_attr_opus.so Opus Format Attribute Module 1 Running core
The problem - "core show translation paths opus" shows no translation paths
The asterisk log shows "loader.c: Error loading module 'codec_opus_open_source.so': /usr/lib/asterisk/modules/codec_opus_open_source.so: undefined symbol: ast_register_file_version"

NOTE: Also had problems with this 32 bit version - http://asterisktutorials.blogspot.com/2017/08/how-to-install-and-use-opus-codec-in.html. I removed this version and tried the Open Source version. The original version that came with Incredible PBX did not load.

Any help truly appreciated.
 
Simple question: Is there a working Opus Codec module for IncrediblePBX (version Asterisk 16.7)?

Some information:
I've managed to load Opus Codec modules
I can see the loaded module "module show like opus"
incrediblepbx*CLI> module show like opus
Module Description Use Count Status Support Level
res_format_attr_opus.so Opus Format Attribute Module 1 Running core
The problem - "core show translation paths opus" shows no translation paths
The asterisk log shows "loader.c: Error loading module 'codec_opus_open_source.so': /usr/lib/asterisk/modules/codec_opus_open_source.so: undefined symbol: ast_register_file_version"

NOTE: Also had problems with this 32 bit version - http://asterisktutorials.blogspot.com/2017/08/how-to-install-and-use-opus-codec-in.html. I removed this version and tried the Open Source version. The original version that came with Incredible PBX did not load.

Any help truly appreciated.
I use it on iPBX 2021, on Debian, Asterisk 18:
Code:
pbx*CLI> core show translation paths opus
--- Translation paths SRC Codec "opus" sample rate 48000 ---
        opus:48000       To codec2:8000     : (opus@48000)->(slin@48000)->(slin@8000)->(codec2@8000)
        opus:48000       To g723:8000       : No Translation Path
        opus:48000       To ulaw:8000       : (opus@48000)->(slin@48000)->(slin@8000)->(ulaw@8000)
        opus:48000       To alaw:8000       : (opus@48000)->(slin@48000)->(slin@8000)->(alaw@8000)
        opus:48000       To gsm:8000        : (opus@48000)->(slin@48000)->(slin@8000)->(gsm@8000)
        opus:48000       To g726:8000       : (opus@48000)->(slin@48000)->(slin@8000)->(g726@8000)
        opus:48000       To g726aal2:8000   : (opus@48000)->(slin@48000)->(slin@8000)->(g726aal2@8000)
        opus:48000       To adpcm:8000      : (opus@48000)->(slin@48000)->(slin@8000)->(adpcm@8000)
        opus:48000       To slin:8000       : (opus@48000)->(slin@48000)->(slin@8000)
        opus:48000       To slin:12000      : (opus@48000)->(slin@48000)->(slin@12000)
        opus:48000       To slin:16000      : (opus@48000)->(slin@48000)->(slin@16000)
        opus:48000       To slin:24000      : (opus@48000)->(slin@48000)->(slin@24000)
        opus:48000       To slin:32000      : (opus@48000)->(slin@48000)->(slin@32000)
        opus:48000       To slin:44100      : (opus@48000)->(slin@48000)->(slin@44100)
        opus:48000       To slin:48000      : (opus@48000)->(slin@48000)
        opus:48000       To slin:96000      : (opus@48000)->(slin@48000)->(slin@96000)
        opus:48000       To slin:192000     : (opus@48000)->(slin@48000)->(slin@192000)
        opus:48000       To lpc10:8000      : (opus@48000)->(slin@48000)->(slin@8000)->(lpc10@8000)
        opus:48000       To g729:8000       : No Translation Path
        opus:48000       To speex:8000      : (opus@48000)->(slin@48000)->(slin@8000)->(speex@8000)
        opus:48000       To speex:16000     : (opus@48000)->(slin@48000)->(slin@16000)->(speex@16000)
        opus:48000       To speex:32000     : (opus@48000)->(slin@48000)->(slin@32000)->(speex@32000)
        opus:48000       To ilbc:8000       : (opus@48000)->(slin@48000)->(slin@8000)->(ilbc@8000)
        opus:48000       To g722:16000      : (opus@48000)->(slin@48000)->(slin@16000)->(g722@16000)
        opus:48000       To siren7:16000    : (opus@48000)->(slin@48000)->(slin@16000)->(siren7@16000)
        opus:48000       To siren14:32000   : (opus@48000)->(slin@48000)->(slin@32000)->(siren14@32000)
        opus:48000       To testlaw:8000    : (opus@48000)->(slin@48000)->(slin@8000)->(testlaw@8000)
        opus:48000       To g719:48000      : No Translation Path
        opus:48000       To none:8000       : No Translation Path
        opus:48000       To silk:8000       : (opus@48000)->(slin@48000)->(slin@8000)->(silk@8000)
        opus:48000       To silk:12000      : (opus@48000)->(slin@48000)->(slin@12000)->(silk@12000)
        opus:48000       To silk:16000      : (opus@48000)->(slin@48000)->(slin@16000)->(silk@16000)
        opus:48000       To silk:24000      : (opus@48000)->(slin@48000)->(slin@24000)->(silk@24000)

Previously used it on 2020 as well with CentOS. Maybe you need to upgrade to something more current?
 
Same here on IncrediblePBX 2021 for Debian.

Code:
CLI> module show like opus
Module                         Description                              Use Count  Status      Support Level
codec_opus.so                  OPUS Coder/Decoder                       0          Running          extended
format_ogg_opus.so             OGG/Opus audio                           0          Running              core
res_format_attr_opus.so        Opus Format Attribute Module             1          Running              core
3 modules loaded

CLI> core show translation paths opus
--- Translation paths SRC Codec "opus" sample rate 48000 ---
        opus:48000       To codec2:8000     : (opus@48000)->(slin@48000)->(slin@8000)->(codec2@8000)
        opus:48000       To g723:8000       : No Translation Path
        opus:48000       To ulaw:8000       : (opus@48000)->(slin@48000)->(slin@8000)->(ulaw@8000)
        opus:48000       To alaw:8000       : (opus@48000)->(slin@48000)->(slin@8000)->(alaw@8000)
        opus:48000       To gsm:8000        : (opus@48000)->(slin@48000)->(slin@8000)->(gsm@8000)
        opus:48000       To g726:8000       : (opus@48000)->(slin@48000)->(slin@8000)->(g726@8000)
        opus:48000       To g726aal2:8000   : (opus@48000)->(slin@48000)->(slin@8000)->(g726aal2@8000)
        opus:48000       To adpcm:8000      : (opus@48000)->(slin@48000)->(slin@8000)->(adpcm@8000)
        opus:48000       To slin:8000       : (opus@48000)->(slin@48000)->(slin@8000)
        opus:48000       To slin:12000      : (opus@48000)->(slin@48000)->(slin@12000)
        opus:48000       To slin:16000      : (opus@48000)->(slin@48000)->(slin@16000)
        opus:48000       To slin:24000      : (opus@48000)->(slin@48000)->(slin@24000)
        opus:48000       To slin:32000      : (opus@48000)->(slin@48000)->(slin@32000)
        opus:48000       To slin:44100      : (opus@48000)->(slin@48000)->(slin@44100)
        opus:48000       To slin:48000      : (opus@48000)->(slin@48000)
        opus:48000       To slin:96000      : (opus@48000)->(slin@48000)->(slin@96000)
        opus:48000       To slin:192000     : (opus@48000)->(slin@48000)->(slin@192000)
        opus:48000       To lpc10:8000      : (opus@48000)->(slin@48000)->(slin@8000)->(lpc10@8000)
        opus:48000       To g729:8000       : No Translation Path
        opus:48000       To speex:8000      : (opus@48000)->(slin@48000)->(slin@8000)->(speex@8000)
        opus:48000       To speex:16000     : (opus@48000)->(slin@48000)->(slin@16000)->(speex@16000)
        opus:48000       To speex:32000     : (opus@48000)->(slin@48000)->(slin@32000)->(speex@32000)
        opus:48000       To ilbc:8000       : (opus@48000)->(slin@48000)->(slin@8000)->(ilbc@8000)
        opus:48000       To g722:16000      : (opus@48000)->(slin@48000)->(slin@16000)->(g722@16000)
        opus:48000       To siren7:16000    : (opus@48000)->(slin@48000)->(slin@16000)->(siren7@16000)
        opus:48000       To siren14:32000   : (opus@48000)->(slin@48000)->(slin@32000)->(siren14@32000)
        opus:48000       To testlaw:8000    : (opus@48000)->(slin@48000)->(slin@8000)->(testlaw@8000)
        opus:48000       To g719:48000      : No Translation Path
        opus:48000       To none:8000       : No Translation Path
        opus:48000       To silk:8000       : (opus@48000)->(slin@48000)->(slin@8000)->(silk@8000)
        opus:48000       To silk:12000      : (opus@48000)->(slin@48000)->(slin@12000)->(silk@12000)
        opus:48000       To silk:16000      : (opus@48000)->(slin@48000)->(slin@16000)->(silk@16000)
        opus:48000       To silk:24000      : (opus@48000)->(slin@48000)->(slin@24000)->(silk@24000)
 
I'm guessing that my problem is that I'm running the latest release for Incredible PBX for a Raspberry PI 3B+, which is based on the 32 bit Raspbian OS. Seeing as I want to install on a Raspberry PI (eventually PI 4), maybe I should try doing things with the Ubuntu 64 bit version for Pi. It would be nice though to first get this working with IncrediblePBX for Raspberry PI.
Thanks for the replies!!
 
I don't think opus works with the RasPi hardware.
 
Last edited:
Yes, I'm pretty sure it must run on an Arm processor. My main reason for wanting to get Opus working, is that I've implemented WebRTC and I always see that the Opus codec is the recommended Codec.
 
Last edited:
I found a solution to this problem. I noticed that RasPBX, which Incredible PBX is based on, is packaged with a newer version of Asterisk. I re-installed with RasPBX and Opus works fine.
 
Get 3CX - Absolutely Free!

Link up your team and customers Phone System Live Chat Video Conferencing

Hosted or Self-managed. Up to 10 users free forever. No credit card. Try risk free.

3CX
A 3CX Account with that email already exists. You will be redirected to the Customer Portal to sign in or reset your password if you've forgotten it.
Back
Top