Type: New Feature
Resolution: Not A Bug
Affects Version/s: None
Fix Version/s: None
FreeSWITCH GIT Revision:unknown
GIT Master Revision hash::unknown
Am not sure if this issue fits here or in the CORE project.
Media bypass + late negotiation allows for unknown codecs to pass through FreeSwitch with media transparently negotiated between bridged endpoints.
Late negotiation works only if the channel being bridged to the final destination is not already transmitting any audio.
In case of pre_answer or some IVR scenario prior to the bridge FreeSwitch ignores late negotiation setting and sends it's first invite to the bridge endpoint with SDP containing only the codec negotiated for pre_answer or IVR stage. Also the re-invites that follow immediately after bridge setup to short-circuit the RTP path contain only the codec already negotiated with FreeSwitch.
So my request is to improve this scenario to allow the first invite out of FS to include original A leg SDP codec set and the later reinvites to include codec set from 200 OK from B leg.
<condition field="destination_number" expression="^(123)$">
<action application="set" data="bypass_media=true"/>
<action application="set" data="ringback=ringbacktone.wav"/>
<action application="set" data="transfer_ringback=ringbacktone.wav"/>
<action application="pre_answer" />
<action application="bridge" data="sofia/gateway/whatevergw/$1"/>
<param name="inbound-no-media" value="true"/>
<param name="inbound-late-negotiation" value="true"/>
Expected behavior - "A leg" is getting ringbacktone during RINGING phase and then the media path is short circuited when the bridge is answered but with new set of codecs - negotiated with "B leg" usig "A leg" set of codec - like with standard late-negotiation scenario.