Misc. Dialplan Tools media reset

From FreeSWITCH Wiki
Jump to: navigation, search

Contents

Description

Reset all bypass/proxy media flags

Usage

Use this application if you need to reset the media flags of a session before bridging a subsequent call.

Consider this use case:

Initially, A-Leg is bridged with:

<action application="set" data="continue_on_fail=true"/>
<action application="set" data="bypass_media=true"/>
<action application="set" data="inherit_codec=true"/>

Our first attempt is to leave FS out of the media path and let A-Leg and B-Leg to exchange media. This is good for performance.

What if the call is rejected with Status 488? This normally means that negotiation between A-leg and B-leg has not been successful. In that case we can either relay 488 to the A-leg, or we can try to resend the call with a new set of codecs.

Before media_reset existed we tried:

<action application="set" data="bypass_media=false"/>
<action application="set" data="inherit_codec=false"/>
<action application="export" data="nolocal:absolute_codec_string=(...)/> //the new set of codecs
<action application="bridge" data=(...)/> //bridge dialstring


This approach failed. If this second call was successful the provisional responses (180, 183) failed to be relayed to the A-leg. Once the call connected the audio session was correctly established, but there was no ringback tone (or any other early media).

The application media_reset fixes this. The dialplan xml chunk of this second call becomes simply this:

<action application="media_reset"/>
<action application="export" data="nolocal:absolute_codec_string=(...)/> //the new set of codecs
<action application="bridge" data=(...)/> //bridge dialstring

Examples

  • Examples needed

See Also