Learn FreeSWITCH Part 9 Bridge Application - Omid-Mohajerani/freeswitch GitHub Wiki

Learn FreeSWITCH - Part 9 - Bridge Application

Download Presentation

Link to Video Training on Youtube: https://www.youtube.com/watch?v=OzdEY6lNfYE&list=PLcrU7LQXdqpezY3jiVuKMQhbd0Brafz1D&index=9

Bridge an incoming call to an external SIP address or termination provider.

   <extension name="pstn">
    <condition field="destination_number" expression="^(60175649736)$">
     <action application="bridge" data="sofia/gateway/signalwire/+$1"/>
    </condition>
   </extension>

Bridge call to a user

 <extension name="Brige Call to a User">
  <condition field="destination_number" expression="^1000$">
   <action application="bridge" data="user/[email protected]"/>
  </condition>
 </extension>

Dial multiple contacts all at once

By using commas to separate the addresses, bridge will dial them simultaneously. no limit to concurrency, first one to answer wins.

 <extension name="Dial Multiple Contacts at once">
  <condition field="destination_number" expression="^10000$">
   <action application="bridge" data="user/[email protected],user/[email protected]"/>
  </condition>
 </extension>

Dial multiple contacts one at a time

Multiple endpoints sequential -- no limit to failover number. Using pipes, it'll dial one at a time.

 <extension name="Bridge multiple at once">
  <condition field="destination_number" expression="^1231003$">
    <action application="bridge" data="sofia/gateway/signalwire/+60171212334,sofia/gateway/SignalWire2/+60171212335"/>
  </condition>
</extension>

Implementing Failover

Failover for your outbound gateway is easy to implement at bridge time using the | separator.

    <extension name="PSTN with failover">
     <condition field="destination_number" expression="^(60175649736)$">
      <action application="bridge" data="sofia/gateway/signalwire/+$1|sofia/gateway/telnyx/+$1"/>
     </condition>
    </extension>

TimeOut

The maximum number of seconds to wait for an answer state from a remote endpoint.

 <extension name="Brige Call to a User">
  <condition field="destination_number" expression="^1000$">
    <action application="set" data="call_timeout=10"/>
    <action application="bridge" data="user/[email protected]"/>
     <action application="hangup" data="NO_ANSWER"/>
  </condition>
 </extension>

Timeout calculates from invite packet to cancel packet.

Group

The group special channel will dynamically create a dial string to reach all endpoints defined as part of a group in the directory.

 <extension name="Dial TechSupport Group">
  <condition field="destination_number" expression="^30000$">
   <action application="bridge" data="group/[email protected]"/>
  </condition>
 </extension>

Or

 <extension name="Dial TechSupport Group">
  <condition field="destination_number" expression="^40000$">
   <action application="bridge" data="${group_call([email protected])}"/>
  </condition>
 </extension>

Sending Ring Back

You may want to simulate ringback to your internal users while you dial a provider, or you may need to force a ringback back upstream when you are dialing multiple extensions.

   <extension name="pstn">
    <condition field="destination_number" expression="^(60175649736)$">
     <action application="set" data="ringback=${us-ring}" />
     <action application="bridge" data="sofia/gateway/signalwire/+$1"/>
    </condition>
   </extension>

Setting Outgoing CallerID

  <extension name="pstn">
    <condition field="destination_number" expression="^(60175649736)$">
     <action application="set" data="effective_caller_id_name=Omid Mohajerani"/>
     <action application="set" data="effective_caller_id_number=+12062108909"/>
     <action application="bridge" data="sofia/gateway/signalwire/+$1"/>
    </condition>
   </extension>

No Media Mode

No media mode is an SDP Passthrough feature that permits two endpoints that can see each other (no N.A.T.) to connect their media sessions directly while FreeSWITCH maintains control of the SIP signaling.

When set, the media (RTP) from the originating endpoint is sent directly to the destination endpoint and vice versa. The signaling (SIP) for both endpoints still goes through FreeSWITCH, but the media is point-to-point.

 <extension name="Bridge Call to a User">
  <condition field="destination_number" expression="^1000$">
   <action application="set" data="bypass_media=true"/>
   <action application="bridge" data="user/[email protected]"/>
  </condition>
 </extension>

Source: https://freeswitch.org/confluence/display/FREESWITCH/mod_dptools%3A+bridge

⚠️ **GitHub.com Fallback** ⚠️