[Freeswitch-users] bypass_media_after_bridge codec Negotiation Problem

Paul Hazlett phazlett at gmail.com
Fri Mar 2 17:35:13 MSK 2012


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20120302/c7bc06fe/attachment.html 


Join us at ClueCon 2011 Aug 9-11, 2011
More information about the FreeSWITCH-users mailing list