VoIP, Linux, Security & much more fun
If you need any help regarding these subjects do not hesitate about sending me a text
translating.png

Today I had a request to enable transcoding in one PBX. For those who are not familiar, transcoding allows different legs to use its own codec. You can thin on transcoding as a translating service. Each codec is a different language and FreeSWITCH works as a translator.Using transcoding is good if you have some endpoints with very little bandwidth (using a cheap codec such as 729, SILK or, GSM saves bandwidth). However, you must know that transcoding is CPU hungry, this means, the more you transcode the more CPU will be requested, and this may backfire in some scenarios.

Using transcoding is good if you have some endpoints with very little bandwidth (using a cheap codec such as 729 , SILK or, GSM saves bandwidth). However, you must know that transcoding is CPU hungry, this means, the more you transcode the more CPU will be requested, and this may backfire in some scenarios.

I will explain how I made the transcoding work.

First thing you need to do is to add the following properties to each profile you want to use transcoding (if you are using FusionPBX do it in the internal and external profiles):

  • disable-transcoding = false: this will tell the FreeSWITCH that transcoding is allowed
  • inbound-late-negotiation = true: this will tell the FreeSWITCH to don't decide any codec to use until it needs to pass RTP data. Then, the dial plans will hit before getting the correct codec to use.
  • inherit_codec = true: this tells the FreeSWITCH to try first the codecs that are being used on the other leg. If there is a common codec, it will be used (this could save CPU)

And in your vars.xml file, add the following:

  • media_mix_inbound_outbound_codecs = true

After that, flush your memcached cache if you are using it, reload xml files and reload mod_sofia (if you don't want to restart).

Good Luck!

blog comments powered by Disqus
If you need more help than the free one provided here...