[Freeswitch-users] Codec Negotiation Help

Spencer Thomason spencer at 5ninesolutions.com
Thu May 26 20:04:26 MSD 2011


Hello all,
I have a problem regarding the codec negotiation on an outbound call.  My setup is like this:

Polycom IP 650 (1-n) -NAT-> FS  --> Our Signaling Proxy --> ITSP Proxy ---> ITSP Cisco GW

I'd like to use different codecs for different call paths (in order of pref), g729 in passthru only:
IP-650         ->  IP-650   G722, PCMU, G729
Inbound      ->  IP-650   PCMU
IP-650         ->  Outbound PCMU,G729

I have two sofia profiles, internal, public IPv4:5060 and external, public:IPv4:5080.

The phones use the internal profile and the external profile only communicates with our signaling proxy (no media proxy).
On the internal one:
CODECS IN        	G722,PCMU,G729,GSM
CODECS OUT       	G722,PCMU,G729,GSM
NOMEDIA          	false
LATE-NEG         	true

External:
CODECS IN        	PCMU,G729
CODECS OUT       	PCMU,G729
NOMEDIA          	false
LATE-NEG         	true

I have inbound-codec-negotiation set to greedy on both profiles and on outbound calls set absolute_codec_string=PCMU,G729 to prevent transcoding.  Note that mod_g729 is enabled for passthru only.  

The problem I have is this:
We use the dynamic routing module in OpenSIPS to select an outbound provider/GW, all support PCMU and G729.  On one of the routes, the Cisco IOS GW on this route has G729, PCMU configured as its codec pref.  

I have included a ladder diagram to better illustrate the problem but in a nutshell, the polycom negotiates PCMU with FS, FS asks for both PCMU and G729, the cisco GW sends G729 and FS sends a 488 because it can't transcode.  I would like to keep G729 in the outbound prefs because some routes might not support PCMU.  Should I set one of the profiles to generous, and if so which one?

When someone makes an outbound call the following happens (ladder diagram):
http://pastebin.freeswitch.org/16380


Sorry for the novella, :-)

Thanks!
Spencer




More information about the FreeSWITCH-users mailing list