No translation path from gsm to opus?

I’m trying to take advantage of the opus codec that my softphone supports. It works in general, but all of my pre-recorded sound files are in GSM format and when I try to play one to an opus-using client Asterisk complains:

[Oct 15 08:38:48] WARNING[24872][C-0000002b]: channel.c:5751 set_format: Unable to find a codec translation path: (gsm) -> (opus)

and indeed, this is what Asterisk thinks about that also:

server*CLI> core show translation paths gsm
--- Translation paths SRC Codec "gsm" sample rate 8000 ---
        gsm:8000         To g723:8000       : No Translation Path
        gsm:8000         To ulaw:8000       : (gsm@8000)->(slin@8000)->(ulaw@8000)
        gsm:8000         To alaw:8000       : (gsm@8000)->(slin@8000)->(alaw@8000)
        gsm:8000         To g726:8000       : (gsm@8000)->(slin@8000)->(g726@8000)
        gsm:8000         To g726aal2:8000   : (gsm@8000)->(slin@8000)->(g726aal2@8000)
        gsm:8000         To adpcm:8000      : (gsm@8000)->(slin@8000)->(adpcm@8000)
        gsm:8000         To slin:8000       : (gsm@8000)->(slin@8000)
        gsm:8000         To slin:12000      : (gsm@8000)->(slin@8000)->(slin@12000)
        gsm:8000         To slin:16000      : (gsm@8000)->(slin@8000)->(slin@16000)
        gsm:8000         To slin:24000      : (gsm@8000)->(slin@8000)->(slin@24000)
        gsm:8000         To slin:32000      : (gsm@8000)->(slin@8000)->(slin@32000)
        gsm:8000         To slin:44100      : (gsm@8000)->(slin@8000)->(slin@44100)
        gsm:8000         To slin:48000      : (gsm@8000)->(slin@8000)->(slin@48000)
        gsm:8000         To slin:96000      : (gsm@8000)->(slin@8000)->(slin@96000)
        gsm:8000         To slin:192000     : (gsm@8000)->(slin@8000)->(slin@192000)
        gsm:8000         To lpc10:8000      : (gsm@8000)->(slin@8000)->(lpc10@8000)
        gsm:8000         To g729:8000       : No Translation Path
        gsm:8000         To speex:8000      : (gsm@8000)->(slin@8000)->(speex@8000)
        gsm:8000         To speex:16000     : (gsm@8000)->(slin@8000)->(slin@16000)->(speex@16000)
        gsm:8000         To speex:32000     : (gsm@8000)->(slin@8000)->(slin@32000)->(speex@32000)
        gsm:8000         To ilbc:8000       : (gsm@8000)->(slin@8000)->(ilbc@8000)
        gsm:8000         To g722:16000      : (gsm@8000)->(slin@8000)->(g722@16000)
        gsm:8000         To siren7:16000    : No Translation Path
        gsm:8000         To siren14:32000   : No Translation Path
        gsm:8000         To testlaw:8000    : (gsm@8000)->(slin@8000)->(testlaw@8000)
        gsm:8000         To g719:48000      : No Translation Path
        gsm:8000         To opus:48000      : No Translation Path
        gsm:8000         To none:8000       : No Translation Path
        gsm:8000         To silk:8000       : No Translation Path
        gsm:8000         To silk:12000      : No Translation Path
        gsm:8000         To silk:16000      : No Translation Path
        gsm:8000         To silk:24000      : No Translation Path

Is there no way to get a translation path from gsm to opus?

The codec_opus module has to be explicitly enabled in menuselect for the module to be downloaded and installed. The codec_resample module also has to be loaded to allow down/upsampling as needed.

I believe I have codec_opus selected:

MENUSELECT_CODECS=codec_silk codec_opus codec_silk codec_siren7 codec_siren14 codec_g729a

and I do believe I have codec_resample loaded:

server*CLI> module show like codec_resample.so 
Module                         Description                              Use Count  Status      Support Level
codec_resample.so              SLIN Resampling Codec                    0          Running              core
1 modules loaded

The menuselect.makeopts contains the things which are not selected, not what is.

Yeah, after removing codec_opus from MENUSELECT_CODECS and rebuilding, I do get transcoding of my GSM files.

Thanks!

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.