Codec error, although I have allowed all codec

I am using PJSIP and my call is dropping due to code, I already installed opensource G729 codec too. But I found there are many translation paths unavailable. How can I install not available translation paths

I am getting the following error in calls

Channel.c:5707 set_format: Unable to find a codec translation path: (jpeg|png|h261|h263|h263p|h264|mpeg4|vp8|vp9|red|t140|g723) -> (ulaw)
[Apr 3 14:00:47] WARNING[24155]: channel.c:5707 set_format: Unable to find a codec translation path: (ulaw) -> (jpeg|png|h261|h263|h263p|h264|mpeg4|vp8|vp9|red|t140|g723)

And when I used command

core show translation paths ulaw
Than I get following result, there are many No Translation Path

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

Could you tell me what would be solution for it

The code may not handle allowing absolutely every codec possible. Normally people limit to the ones they expect, which I believe works fine.

But I have put all allowed, so whatever codec is coming should it not work? and how can I solve this problem by specifying one codec?

You would configure in the endpoint the codecs:

allow=!all,ulaw,g722,g729,opus

Etc.

1 Like