Transcoding
(→Transcoding) |
|||
Line 16: | Line 16: | ||
|} | |} | ||
− | The empty parameter above (between the two commas) controls which formats are returned. Please see the comments in [[Regular_expressions# | + | The empty parameter above (between the two commas) controls which formats are returned. Please see the comments in [[Regular_expressions#The regexroute configuration file|regexroute.conf]] for more info. |
If inbound formats='''alaw,mulaw''' you will get something like oformats='''alaw,mulaw,slin,gsm,ilbc,speex''' (assuming the modules are compiled and loaded). You can then use '''${oformats}''' in routing either in regexroute or in [[Register|register]] (database routing) to set the formats parameter: | If inbound formats='''alaw,mulaw''' you will get something like oformats='''alaw,mulaw,slin,gsm,ilbc,speex''' (assuming the modules are compiled and loaded). You can then use '''${oformats}''' in routing either in regexroute or in [[Register|register]] (database routing) to set the formats parameter: |
Revision as of 12:10, 19 November 2012
Transcoding
Automatic transcoding is performed (if possible) when call legs are connected together. By default negotiation does not take into account possible transcodings since this is route dependent.
Transcoding can work only if RTP passes through Yate. When rtp_forward is enabled transcoding won't work and you must not add formats to the list - at most you can remove.
Currently there is one easy way to compute the list of possible transcoded formats. The regexroute module offers a transcode function to build an extended list. You should not use this list always, only when you are sure RTP is proxied through Yate.
You can put this line in regexroute.conf section [contexts] that handles call.preroute:
[contexts] ... .*=;oformats=$(transcode,,${formats}) |
The empty parameter above (between the two commas) controls which formats are returned. Please see the comments in regexroute.conf for more info.
If inbound formats=alaw,mulaw you will get something like oformats=alaw,mulaw,slin,gsm,ilbc,speex (assuming the modules are compiled and loaded). You can then use ${oformats} in routing either in regexroute or in register (database routing) to set the formats parameter:
[default] ... ; Offer transcoded formats on outbound unless rtp_forward is in use ${rtp_forward}^yes$^=;formats=${oformats} |