Are you facing issue of failing calls that are having G729a codec with 488 response? This article tells you how to fix that issue. When using G729 codec in FreeSWITCH if it receives following SDP in INVITE packet, that call is going to fail with 488 Incompatible Destination printing the error message mod_sofia.c:2226 CODEC NEGOTIATION ERROR. SDP:
v=0 o=Sippy 3205873754679187826 0 IN IP4 192.168.22.7 s=- t=0 0 m=audio 53792 RTP/AVP 18 101 c=IN IP4 18.104.22.168 a=rtpmap:18 G729a/8000 a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-15 a=ptime:20 a=sendrecv
To fix interop quirks like these FreeSWITCH has implemented some options that can be enabled. They are prefixed with NDLB means No Device Left Behind. The particular option that helps us with the current issue is
If you set this option to true in sofia profile as shown below, FreeSWITCH will be more forgiving to devices that are using non standard IANA codec names in SDP.
<param name="NDLB-allow-bad-iananame" value="true"/>
Note:- The situation described in this article has commercial G729 module loaded in FreeSWITCH