I need some advice on how to handle a codec issue during a bridge setup with media bypass. Here is an example of what is going on. I use freeswitch to allow potential customers to try our service before signing up. They can call the PSTN for a limited number of minutes - then freeswitch cuts them off. When they dial a PSTN number, freeswitch first tells them how many remaining minutes they have, then it bidges to the PSTN and then jumps out of the media stream with bypass_media_after_bridge - this all works and the call is setup, but without audio because the codecs are not negotiated correctly and I cannot figure out how to make freeswitch cooperate. A concrete example; The caller supports codecs X and Y, with X being preferred (SILK, PCMU). Freeswitch supports codecs X and Y with X being preferred (SILK, PCMU). The PSTN gateway supports codecs Y and Z with Z being preferred (G729, PCMU). When freeswitch answers the inbound call using ESL pre_answer(), the codec in the 183 response is X (SILK). Freeswitch plays audio to the caller to tell them their remaining trial usage minutes and that works as expected. Next, freeswitch does a bridge to the PSTN, offering codecs X and Y (SILK, PCMU). The PSTN gateway replies 200OK with codec Y (PCMU) as it does not support codec X (SILK). Freeswitch then does media bypass, first sending a re-INVITE to the PSTN gateway and getting it pointed to the caller's IP/port. It again offers codecs X and Y and the PSTN again replies 200OK with codec Y (PCMU). Now for the problem (line 749 in the pastbin log); Freeswitch then re-INVITES the caller, but with codecs X and Y instead of just Y and since the caller prefers X it replies 200OK with codec X (SILK). The the call is set up. The caller and the PSTN gateway are bridged and talking to each other on the correct IP and ports - but with different codecs. So how can I get freeswitch to re-INVITE the A-leg with the same codes that the B-leg accepted? See the highlighted area at line 749: http://pastebin.freeswitch.org/18561 Also not that this was captured at our SIP load balancer, so you'll see all the messages passing on internal and external interfaces). Configuration info: FreeSWITCH Version 1.0.head git-b290936 2012-03-01 10-21-17 -0800 inbound-late-negotiation == false inbound-codec-negotiation == generous global_codec_prefs ==SILK,PCMU,H263,H264 outbound_codec_prefs == SILK,PCMU I am implementing this with ESL. Regards, Paul