Comment 4 for bug 2044135

Revision history for this message
Athos Ribeiro (athos-ribeiro) wrote :

Thanks, Bram.

Here are my findings so far:

Running
$ core show translation paths opus
shows no translation paths for opus at all, neither in noble, nor in focal. The translation paths are also missing in Debian unstable.

The translation table from
$ core show translation
does not even have an entry for opus (again, this is true for foca, noble, and Debian unstable).

$ module show like opus
shows the following modules in noble and Debian unstable:
- format_ogg_opus_open_source.so
- res_format_attr_opus.so

However, in focal, only
- res_format_attr_opus.so

is loaded.

Then, when trying to load the missing module, we get:
> module load format_ogg_opus_open_source.so
Unable to load module format_ogg_opus_open_source.so
Command 'module load format_ogg_opus_open_source.so' failed.
[Nov 27 14:40:26] ERROR[2992]: loader.c:170 module_load_error: Error loading module 'format_ogg_opus_open_source.so': /usr/lib/asterisk/modules/format_ogg_opus_open_source.so: undefined symbol: op_pcm_tell

This only happens in focal. We should file a different bug to get this one fixed there.

A quick code inspection showed that there is one library missing: codec_opus_open_source.so

The upstream readme file, at https://github.com/traud/asterisk-opus or under Xopus/README.md in the source package says that "Opus is not only supported for pass-through but can be transcoded as well. This allows you to translate to/from other audio codecs [...] This can be achieved by enabling codec_opus via make menuselect".

Hence, adding codec_opus to ADDONS_ENABLE in debian/rules should be enough to generate the missing library. However, I see the following entry in debian/changelog:

* stop set obsolete menuselect option codec_opus_open_source

from version 1:16.23.0~dfsg+~2.10-1.

So, before just enabling the codec_opus option in debian/rules, it would be nice to understand why the codec_opus_open_source option was removed and not replaced by codec_opus in Debian.

Checking the asterisk Debian bugs, I found https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1025165, which is related to this exact same bug and also proposes the fix mentioned above (we should check whether the codec internal name is codec_opus_open_source or just codec_opus though).

The next steps here would be to ping that bug in Debian to understand the question above and ideally get codec_opus enabled there (if there are no issues we are not aware of ATM). Since this package is in sync with debian, the change will be picked-up for the development version (currently noble).