Call Us Today! 877.742.2583

Page tree
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »


This example assumes that you have completed the basic installation of FreeSWITCH and some sort of SIP proxy (Sonus PSX, Kamailio, OpenSIPS, etc.) that will be controlling your LCR. This is designed for a wholesale model in mind with limited switch based security and no registrations. (see further down for OpenSIPS example config to use with this.)

 Click here to expand Table of Contents


The first thing to realize is that we are not registering or authenticating any calls, so the /conf/directory/default.xml and default/* will be empty except for the default domain setting (which as far as i can tell isn't even needed).

The gateways information in the sip_profiles will also be empty since realistically your vendors would not need any kind of gateway registration from you. Typically in the wholesale model, authentications and rejections are done via firewalling or internal systems sending back certain responses.

Now that we have that set up, we want to set up a baseline rejection that will allow the customers to always route advance, so we're going to overwrite any negative responses back with a 503. Since no calls are registered, there is no differentiation between default and public contexs, so you can put this in both, but I believe it's only required in /conf/dialplan/public.xml at the very end. (You can also put it at the very end of the /conf/dialplan/default.xml as a precaution if you wish).

<extension name="nothing_left_private" continue="false">
  <condition break="always">
    <action application="set" data="proto_specific_hangup_cause=sip:503"/>
    <action application="hangup"/>

The blue in the below examples are what you would replace with your own information.

Now you will need to define your customers. I do this in /conf/dialplan/public/00_customer_list.xml.

replace the keywords below with your own informations.

  • <condition field="${network_addr}" expression=""/>
  • <\!--    <action application="bridge" data="sofia/external/${destination_number}@${distributor(dist_list)}"/> -->
<action application="bridge" data="sofia/external/${destination_number}@"/>


 <extension name="customer_my_public_desk">
    <condition field="${network_addr}" expression=""/>
    <condition field="destination_number" expression="^\+?1?(\d+)$">
      <action application="set" data="hangup_after_bridge=true"/>
      <action application="set" data="continue_on_fail=true"/>
      <\!--    <action application="bridge" data="sofia/external/${destination_number}@${distributor(dist_list)}"/> -->
      <action application="bridge" data="sofia/external/${destination_number}@"/>
  <extension name="customer_my_private_desk">
    <condition field="${network_addr}" expression="pr.iv.ate.ip"/>
    <condition field="destination_number" expression="^\+?1?(\d+)$">
      <action application="set" data="hangup_after_bridge=true"/>
      <action application="set" data="continue_on_fail=true"/>
      <action application="bridge" data="sofia/internal/${destination_number}@"/>
  • No labels