Uploaded image for project: 'FreeSWITCH'
  1. FreeSWITCH
  2. FS-880

Enable late negotiation for calls with pre_answer or bridged out of IVR

    XMLWordPrintable

    Details

    • Type: New Feature
    • Status: Closed
    • Priority: Minor
    • Resolution: Not A Bug
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: mod_sofia
    • Labels:
      None
    • CPU Architecture:
      x86
    • Kernel:
      Linux
    • Userland:
      GNU/Linux
    • Compiler:
      gcc
    • FreeSWITCH GIT Revision:
      unknown
    • GIT Master Revision hash::
      unknown

      Description

      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.

      Sample dialplan:
      <extension name="to_whatever">
      <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"/>
      </condition>
      </extension>

      Sample sip-profile:
      <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.

        Attachments

          Activity

            People

            • Assignee:
              somethingfornothing Make Me New Stuff For Free
              Reporter:
              urtho Pawel Pierscionek
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: