[Freeswitch-users] Cannot ring extension from DID

Mike Hendrie mike at hendrienet.com
Wed May 22 08:35:15 MSD 2013


Correction:
I had a second dialplan in the public folder that was causing confusion.
Below is the dialplan I am using.
If I change the extension in the dialplan from 1000 to 1001 I get
the appropriate voice mail extension, however, the phones never ring.

I have the fs configured as a multi-tenant solution.

Could the dialplan be using the default extensions (1000 and 1001) under
/conf/directory/default and not reference the
/conf/directory/GothamCity.xom domain? That would explain why I get to the
voicemail for the correct extension when the phone never rings.

Thanks

=====
 /usr/local/freeswitch/conf/dialplan/public/GothamCity.xom.xml

<include>

  <extension name="GothamCity.xom 1001">
    <condition field="destination_number" expression="^1?(2624481175)$">
       <action application="set" data="domain_name=GothamCity.xom"/>
       <action application="transfer" data="1001 XML default"/>
    </condition>
  </extension>

</include>

=====
/conf/directory/GothamCity.xom.xml


  <domain name="GothamCity.xom">
    <params>
      <param name="dial-string"
value="{^^:sip_invite_domain=${dialed_domain}:presence_id=${dialed_user}@
${dialed_domain}}${sofia_contact(*/${dialed_user}@${dialed_domain})}"/>
    </params>

    <variables>
      <variable name="record_stereo" value="true"/>
      <variable name="user_context" value="default"/>
      <variable name="default_gateway" value="$${default_provider}"/>
      <variable name="default_areacode" value="$${default_areacode}"/>
      <variable name="transfer_fallback_extension" value="operator"/>
    </variables>

    <groups>
      <group name="GothamCity.xom">
        <users>
          <X-PRE-PROCESS cmd="include" data="GothamCity.xom/*.xml"/>
        </users>
      </group>

      <group name="sales">
        <users>
          <!--
              type="pointer" is a pointer so you can have the
              same user in multiple groups.  It basically means
              to keep searching for the user in the directory.
          -->
          <user id="1000" type="pointer"/>
          <user id="1001" type="pointer"/>
          <user id="1002" type="pointer"/>
          <user id="1003" type="pointer"/>
          <user id="1004" type="pointer"/>
        </users>
      </group>
=====




On Tue, May 21, 2013 at 9:27 PM, Mike Hendrie <mike at hendrienet.com> wrote:

> Thank you for your assistance. I made the suggested modification below,
> however, when calling the number it goes directly to voicemail.
>
>   /usr/local/freeswitch/conf/dialplan/public/GothamCity.xom.xml
>
> <include>
>
>   <extension name="vitel-inbound">
>     <condition field="destination_number" expression="^1?(262xxxxxxx)$">
>         <action application="transfer" data="1000 XML default"/>
>     </condition>
>   </extension>
>
> </include>
>
>
>
> On Tue, May 21, 2013 at 4:37 PM, Michael Collins <msc at freeswitch.org>wrote:
>
>> Hi Mike,
>>
>> No worries - this can be frustrating at first. You'll get the hang of it
>> shortly.
>>
>> Okay, technically speaking there is no explicit link between a gateway
>> and an extension. Rather, the inbound call is handled by the dialplan. If
>> you're using the vanilla example configs (which you should be to start out)
>> then your inbound call is handled in the public dialplan context. This
>> means that you need to have a file in conf/dialplan/public/ to handle your
>> inbound call. It looks to me like your GothamCity.xom.xml file would work,
>> but you'll need to make at least two changes:
>>
>> #1 - move the file from the conf/dialplan/default/ directory into
>> conf/dialplan/public/
>> #2 - add the regular expression for your DID number. For example, if your
>> DID number was 800-555-1212 you would do something like this:
>>
>> <extension name="vitel-inbound">
>>     <condition field="destination_number" expression="^1?(8005551212)$">
>>        <action application="transfer" data="1000 XML default"/>
>>     </condition>
>>  </extension>
>>
>>
>> Hope this helps.
>> -MC
>>
>>
>> On Tue, May 21, 2013 at 1:23 PM, Mike Hendrie <mike at hendrienet.com>wrote:
>>
>>> I think I am missing the basic understanding of how the DID connects to
>>> the gateway then to the extension. Which file does what.
>>>
>>> thanks!!
>>>
>>>
>>> On Tue, May 21, 2013 at 3:20 PM, Mike Hendrie <mike at hendrienet.com>wrote:
>>>
>>>> I am looking in the vars.xml file and am not seeing any reference to a
>>>> gateway:
>>>>
>>>> ======
>>>> vars.xml
>>>>
>>>>  <X-PRE-PROCESS cmd="set" data="default_password=H1dD3n!"/>
>>>>
>>>> <X-PRE-PROCESS cmd="set" data="domain=$${local_ip_v4}"/>
>>>> <X-PRE-PROCESS cmd="set" data="domain_name=$${domain}"/>
>>>> <X-PRE-PROCESS cmd="set" data="hold_music=local_stream://moh"/>
>>>> <X-PRE-PROCESS cmd="set" data="use_profile=internal"/>
>>>>
>>>> <X-PRE-PROCESS cmd="set" data="zrtp_secure_media=true"/>
>>>>
>>>> <X-PRE-PROCESS cmd="set" data="global_codec_prefs=G722,PCMU,PCMA,GSM"/>
>>>> <X-PRE-PROCESS cmd="set" data="outbound_codec_prefs=PCMU,PCMA,GSM"/>
>>>>
>>>> <X-PRE-PROCESS cmd="set" data="xmpp_client_profile=xmppc"/>
>>>> <X-PRE-PROCESS cmd="set" data="xmpp_server_profile=xmpps"/>
>>>>
>>>> <X-PRE-PROCESS cmd="set" data="bind_server_ip=auto"/>
>>>>
>>>> <X-PRE-PROCESS cmd="set" data="external_rtp_ip=stun:stun.freeswitch.org
>>>> "/>
>>>>
>>>> <X-PRE-PROCESS cmd="set" data="external_sip_ip=stun:stun.freeswitch.org
>>>> "/>
>>>>
>>>> <X-PRE-PROCESS cmd="set" data="unroll_loops=true"/>
>>>>
>>>> <X-PRE-PROCESS cmd="set" data="outbound_caller_name=FreeSWITCH"/>
>>>> <X-PRE-PROCESS cmd="set" data="outbound_caller_id=0000000000"/>
>>>>
>>>>
>>>>   <X-PRE-PROCESS cmd="set" data="call_debug=false"/>
>>>>   <X-PRE-PROCESS cmd="set" data="console_loglevel=info"/>
>>>>   <X-PRE-PROCESS cmd="set" data="default_areacode=918"/>
>>>>   <X-PRE-PROCESS cmd="set" data="default_country=US"/>
>>>>
>>>>
>>>>    <X-PRE-PROCESS cmd="set" data="presence_privacy=false"/>
>>>>
>>>>   <X-PRE-PROCESS cmd="set" data="be-ring=%(1000,3000,425)"/>
>>>>   <X-PRE-PROCESS cmd="set" data="ca-ring=%(2000,4000,440,480)"/>
>>>>   <X-PRE-PROCESS cmd="set" data="cn-ring=%(1000,4000,450)"/>
>>>>   <X-PRE-PROCESS cmd="set" data="cy-ring=%(1500,3000,425)"/>
>>>>   <X-PRE-PROCESS cmd="set" data="cz-ring=%(1000,4000,425)"/>
>>>>   <X-PRE-PROCESS cmd="set" data="de-ring=%(1000,4000,425)"/>
>>>>   <X-PRE-PROCESS cmd="set" data="dk-ring=%(1000,4000,425)"/>
>>>>   <X-PRE-PROCESS cmd="set" data="dz-ring=%(1500,3500,425)"/>
>>>>   <X-PRE-PROCESS cmd="set" data="eg-ring=%(2000,1000,475,375)"/>
>>>>   <X-PRE-PROCESS cmd="set" data="es-ring=%(1500,3000,425)"/>
>>>>   <X-PRE-PROCESS cmd="set" data="fi-ring=%(1000,4000,425)"/>
>>>>   <X-PRE-PROCESS cmd="set" data="fr-ring=%(1500,3500,440)"/>
>>>>   <X-PRE-PROCESS cmd="set"
>>>> data="hk-ring=%(400,200,440,480);%(400,3000,440,480)"/>
>>>>   <X-PRE-PROCESS cmd="set" data="hu-ring=%(1250,3750,425)"/>
>>>>   <X-PRE-PROCESS cmd="set" data="il-ring=%(1000,3000,400)"/>
>>>>   <X-PRE-PROCESS cmd="set"
>>>> data="in-ring=%(400,200,425,375);%(400,2000,425,375)"/>
>>>>   <X-PRE-PROCESS cmd="set" data="jp-ring=%(1000,2000,420,380)"/>
>>>>   <X-PRE-PROCESS cmd="set" data="ko-ring=%(1000,2000,440,480)"/>
>>>>   <X-PRE-PROCESS cmd="set" data="pk-ring=%(1000,2000,400)"/>
>>>>   <X-PRE-PROCESS cmd="set" data="pl-ring=%(1000,4000,425)"/>
>>>>   <X-PRE-PROCESS cmd="set" data="ro-ring=%(1850,4150,475,425)"/>
>>>>   <X-PRE-PROCESS cmd="set" data="rs-ring=%(1000,4000,425)"/>
>>>>   <X-PRE-PROCESS cmd="set" data="ru-ring=%(800,3200,425)"/>
>>>>   <X-PRE-PROCESS cmd="set" data="sa-ring=%(1200,4600,425)"/>
>>>>   <X-PRE-PROCESS cmd="set" data="tr-ring=%(2000,4000,450)"/>
>>>>   <X-PRE-PROCESS cmd="set"
>>>> data="uk-ring=%(400,200,400,450);%(400,2000,400,450)"/>
>>>>   <X-PRE-PROCESS cmd="set" data="us-ring=%(2000,4000,440,480)"/>
>>>>    <X-PRE-PROCESS cmd="set"
>>>> data="bong-ring=v=-7;%(100,0,941.0,1477.0);v=-7;>=2;+=.1;%(1400,0,350,440)"/>
>>>>   <X-PRE-PROCESS cmd="set" data="beep=%(1000,0,640)"/>
>>>>   <X-PRE-PROCESS cmd="set"
>>>> data="sit=%(274,0,913.8);%(274,0,1370.6);%(380,0,1776.7)"/>
>>>>
>>>>
>>>>  <X-PRE-PROCESS cmd="set" data="default_provider=example.com"/>
>>>>   <X-PRE-PROCESS cmd="set" data="default_provider_username=joeuser"/>
>>>>   <X-PRE-PROCESS cmd="set" data="default_provider_password=password"/>
>>>>   <X-PRE-PROCESS cmd="set" data="default_provider_from_domain=
>>>> example.com"/>
>>>>
>>>>
>>>>
>>>>   <X-PRE-PROCESS cmd="set" data="default_provider_register=false"/>
>>>>   <X-PRE-PROCESS cmd="set" data="default_provider_contact=5000"/>
>>>>
>>>>   <X-PRE-PROCESS cmd="set" data="sip_tls_version=tlsv1"/>
>>>>
>>>>
>>>>   <X-PRE-PROCESS cmd="set" data="internal_auth_calls=true"/>
>>>>   <X-PRE-PROCESS cmd="set" data="internal_sip_port=5060"/>
>>>>   <X-PRE-PROCESS cmd="set" data="internal_tls_port=5061"/>
>>>>   <X-PRE-PROCESS cmd="set" data="internal_ssl_enable=false"/>
>>>>
>>>>   <X-PRE-PROCESS cmd="set" data="external_auth_calls=false"/>
>>>>   <X-PRE-PROCESS cmd="set" data="external_sip_port=5080"/>
>>>>   <X-PRE-PROCESS cmd="set" data="external_tls_port=5081"/>
>>>>   <X-PRE-PROCESS cmd="set" data="external_ssl_enable=false"/>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> On Mon, May 20, 2013 at 4:49 PM, Philippe Le Toquin <philippe at ppmt.org>wrote:
>>>>
>>>>>  I am no expert so I could be wrong but:
>>>>>
>>>>> First your outbound is no registered (NOREG) so that is most likely
>>>>> going to prevent outgoing call
>>>>>
>>>>> Also you refer to default_gateway in your dialplan....what value is it
>>>>> set to? Check vars.xmls
>>>>>
>>>>> I normally use directly the name of my gateway instead of using
>>>>> variable (might not be the best way though )
>>>>>
>>>>>
>>>>>
>>>>> But you have the
>>>>> On 13-05-19 11:39 PM, Mike Hendrie wrote:
>>>>>
>>>>> Thank you for your response.  Per your request here is the result of
>>>>> the sofia status command:
>>>>>
>>>>>  freeswitch at internal> sofia status
>>>>>                      Name          Type
>>>>>         Data      State
>>>>>
>>>>> =================================================================================================
>>>>>                  10.1.1.5         alias
>>>>>     internal      ALIASED
>>>>>                  internal       profile
>>>>> sip:mod_sofia at 10.1.1.5:5060      RUNNING (0)
>>>>>                  external       profile
>>>>> sip:mod_sofia at 10.1.1.5:5080      RUNNING (0)
>>>>>     external::example.com       gateway
>>>>> sip:joeuser at example.com      NOREG
>>>>> external::BatCave-inbound      gateway
>>>>> sip:J0k3R!@BacCave.hole.Xom      REGED
>>>>> external::BatCat-outbound     gateway      sip:J0k3R!@BacCave.hole.Xom
>>>>>    NOREG
>>>>>            GothamCity.xom         alias
>>>>>     internal      ALIASED
>>>>>             internal-ipv6       profile
>>>>> sip:mod_sofia@[::1]:5060      RUNNING (0)
>>>>>
>>>>> =================================================================================================
>>>>> 3 profiles 2 aliases
>>>>>
>>>>>
>>>>>  ==========================================
>>>>>  /usr/local/freeswitch/conf/dialplan/default/GothamCity.xom.xml
>>>>>
>>>>>  <!-- http://wiki.freeswitch.org/wiki/Dialplan_XML -->
>>>>> <include>
>>>>>   <context name="GothamCity.xom">
>>>>>    <extension name="vitel-inbound">
>>>>>      <condition field="destination_number" expression="">
>>>>>         <action application="transfer" data="1000 XML default"/>
>>>>>      </condition>
>>>>>     </extension>
>>>>> ==========================================
>>>>>
>>>>>   /usr/local/freeswitch/conf/dialplan/default/GothamCity.xom.xml
>>>>>
>>>>>  <include>
>>>>>
>>>>>    <extension name="local.example.com">
>>>>>     <condition field="${toll_allow}" expression="local"/>
>>>>>     <condition field="destination_number" expression="^(\d{7})$">
>>>>>       <action application="set"
>>>>> data="effective_caller_id_number=${outbound_caller_id_number}"/>
>>>>>       <action application="set"
>>>>> data="effective_caller_id_name=${outbound_caller_id_name}"/>
>>>>>       <action application="bridge"
>>>>> data="sofia/gateway/${default_gateway}/1${default_areacode}$1"/>
>>>>>     </condition>
>>>>>   </extension>
>>>>>
>>>>>    <extension name="domestic.example.com">
>>>>>     <condition field="${toll_allow}" expression="domestic"/>
>>>>>     <condition field="destination_number" expression="^(\d{11})$">
>>>>>       <action application="set"
>>>>> data="effective_caller_id_number=${outbound_caller_id_number}"/>
>>>>>       <action application="set"
>>>>> data="effective_caller_id_name=${outbound_caller_id_name}"/>
>>>>>       <action application="bridge"
>>>>> data="sofia/gateway/${default_gateway}/$1"/>
>>>>>     </condition>
>>>>>   </extension>
>>>>>
>>>>>    <extension name="international.example.com">
>>>>>     <condition field="${toll_allow}" expression="international"/>
>>>>>     <condition field="destination_number" expression="^(011\d+)$">
>>>>>       <action application="set"
>>>>> data="effective_caller_id_number=${outbound_caller_id_number}"/>
>>>>>       <action application="set"
>>>>> data="effective_caller_id_name=${outbound_caller_id_name}"/>
>>>>>       <action application="bridge"
>>>>> data="sofia/gateway/${default_gateway}/$1"/>
>>>>>     </condition>
>>>>>   </extension>
>>>>>
>>>>>  </include>
>>>>>
>>>>>  ==========================================
>>>>>  /usr/local/freeswitch/conf/sip_profiles/external/vitelity.xml
>>>>>
>>>>>  <include>
>>>>>         <gateway name="BatCave-outbound">
>>>>>            <!--/// account username *required* ///-->
>>>>>            <param name="username" value="Joker"/>
>>>>>            <!--/// auth realm: *optional* same as gateway name, if
>>>>> blank ///-->
>>>>>            <param name="realm" value="BatCave-outbound"/>
>>>>>            <!--/// account password *required* ///-->
>>>>>            <param name="password" value="2F at ce"/>
>>>>>            <!--/// extension for inbound calls: *optional* same as
>>>>> username, if blank ///-->
>>>>>            <param name="extension" value="default"/>
>>>>>            <!--/// proxy host: *optional* same as realm, if blank
>>>>> ///-->
>>>>>            <param name="proxy" value="outbound1.BatCave.net"/>
>>>>>            <!--/// expire in seconds: *optional* 3600, if blank ///-->
>>>>>            <param name="expire-seconds" value="600"/>
>>>>>            <!--/// register: *optional* true, if blank ///-->
>>>>>            <param name="register" value="false" />
>>>>>          </gateway>
>>>>>         </include>
>>>>>
>>>>>
>>>>>          <include>
>>>>>         <gateway name="BatCave-inbound">
>>>>>            <!--/// account username *required* ///-->
>>>>>            <param name="username" value="Joker"/>
>>>>>            <!--/// auth realm: *optional* same as gateway name, if
>>>>> blank ///-->
>>>>>            <param name="realm" value="BatCave-inbound"/>
>>>>>            <!--/// account password *required* (do not include
>>>>> allow=all) ///-->
>>>>>            <param name="password" value="2F at ce"/>
>>>>>            <!--/// extension for inbound calls: *optional* same as
>>>>> username, if blank ///-->
>>>>>            <param name="extension" value="default"/>
>>>>>            <!--/// proxy host: *optional* same as realm, if blank
>>>>> ///-->
>>>>>            <param name="proxy" value="Yup.Not.REAL.Port"/>
>>>>>            <!--/// expire in seconds: *optional* 3600, if blank ///-->
>>>>>            <param name="expire-seconds" value="600"/>
>>>>>            <param name="context" value="inbound"/>
>>>>>            <!--/// register: *optional* true, if blank ///-->
>>>>>            <param name="register" value="true" />
>>>>>          </gateway>
>>>>>         </include>
>>>>>
>>>>>  ==========================================
>>>>>  /usr/local/freeswitch/conf/directory/GothamCity.xom/1000.xml
>>>>>
>>>>>  <include>
>>>>>   <user id="1000">
>>>>>     <params>
>>>>>       <param name="password" value="$${default_password}"/>
>>>>>       <param name="vm-password" value="1000"/>
>>>>>     </params>
>>>>>     <variables>
>>>>>       <variable name="toll_allow"
>>>>> value="domestic,international,local"/>
>>>>>       <variable name="accountcode" value="1000"/>
>>>>>      <!-- <variable name="user_context" value="default"/>-->
>>>>>       <variable name="effective_caller_id_name" value="Extension
>>>>> 1000"/>
>>>>>       <variable name="effective_caller_id_number" value="1000"/>
>>>>>       <variable name="outbound_caller_id_name"
>>>>> value="$${outbound_caller_name}"/>
>>>>>        <variable name="outbound_caller_id_number"
>>>>> value="$${outbound_caller_id}"/>
>>>>>       <variable name="callgroup" value="techsupport"/>
>>>>>     </variables>
>>>>>   </user>
>>>>> </include>
>>>>>
>>>>>   ==========================================
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> _________________________________________________________________________
>>>>> Professional FreeSWITCH Consulting Services:consulting at freeswitch.orghttp://www.freeswitchsolutions.com
>>>>>
>>>>> FreeSWITCH-powered IP PBX: The CudaTel Communication Server
>>>>>
>>>>> Official FreeSWITCH Siteshttp://www.freeswitch.orghttp://wiki.freeswitch.orghttp://www.cluecon.com
>>>>>
>>>>> FreeSWITCH-users mailing listFreeSWITCH-users at lists.freeswitch.orghttp://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>>>>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-usershttp://www.freeswitch.org
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> _________________________________________________________________________
>>>>> Professional FreeSWITCH Consulting Services:
>>>>> consulting at freeswitch.org
>>>>> http://www.freeswitchsolutions.com
>>>>>
>>>>> 
>>>>> 
>>>>>
>>>>> Official FreeSWITCH Sites
>>>>> http://www.freeswitch.org
>>>>> http://wiki.freeswitch.org
>>>>> http://www.cluecon.com
>>>>>
>>>>> FreeSWITCH-users mailing list
>>>>> FreeSWITCH-users at lists.freeswitch.org
>>>>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>>>>> UNSUBSCRIBE:
>>>>> http://lists.freeswitch.org/mailman/options/freeswitch-users
>>>>> http://www.freeswitch.org
>>>>>
>>>>>
>>>>
>>>
>>> _________________________________________________________________________
>>> Professional FreeSWITCH Consulting Services:
>>> consulting at freeswitch.org
>>> http://www.freeswitchsolutions.com
>>>
>>> 
>>> 
>>>
>>> Official FreeSWITCH Sites
>>> http://www.freeswitch.org
>>> http://wiki.freeswitch.org
>>> http://www.cluecon.com
>>>
>>> FreeSWITCH-users mailing list
>>> FreeSWITCH-users at lists.freeswitch.org
>>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
>>> http://www.freeswitch.org
>>>
>>>
>>
>>
>> --
>> Michael S Collins
>> Twitter: @mercutioviz
>> http://www.FreeSWITCH.org
>> http://www.ClueCon.com
>> http://www.OSTAG.org
>>
>>
>> _________________________________________________________________________
>> Professional FreeSWITCH Consulting Services:
>> consulting at freeswitch.org
>> http://www.freeswitchsolutions.com
>>
>> 
>> 
>>
>> Official FreeSWITCH Sites
>> http://www.freeswitch.org
>> http://wiki.freeswitch.org
>> http://www.cluecon.com
>>
>> FreeSWITCH-users mailing list
>> FreeSWITCH-users at lists.freeswitch.org
>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
>> http://www.freeswitch.org
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20130521/42f4163f/attachment-0001.html 


Join us at ClueCon 2011 Aug 9-11, 2011
More information about the FreeSWITCH-users mailing list