[Freeswitch-users] Freeswitch Multi-Tenant Dialplan

Zoltán Szabó zzoell at gmail.com
Tue Jun 25 16:25:31 MSD 2013


Hi,

I'm trying to set up a multi tenant config with FS. At the moment i
configured only one domain, lets say it is mydomain.com

This is my mydomain.com.xml in dialplan directory:

<?xml version="1.0" encoding="utf-8"?>
<include>
  <context name="mydomain.com">
    <extension name="Internal Call">
		<condition field="destination_number" expression="^(\d\d\d\d)$">
			<action application="bridge" data="sofia/mydomain.com/$1"/>
		</condition>
    </extension>
  </context>
</include>

Here is my mydomain.com.xml in the directory directory:

<include>
  <domain name="mydomain.com">
    <params>
      <param name="dial-string"
value="{presence_id=${dialed_user}@${dialed_domain}}${sofia_contact(${dialed_user}@${dialed_domain})}"/>
    </params>
    <variables>
      <variable name="record_stereo" value="true"/>
      <variable name="default_gateway" value="$${default_provider}"/>
      <variable name="default_areacode" value="$${default_areacode}"/>
      <variable name="transfer_fallback_extension" value="operator"/>
      <variable name="user_context" value="mydomain.com"/>
    </variables>
    <groups>
      <group name="mydomain.com">
        <users>
          <X-PRE-PROCESS cmd="include" data="mydomain.com/*.xml"/>
        </users>
      </group>
    </groups>
  </domain>
</include>

The directory/mydomain.com contains two users (i dont configured
user_context here because its configured in the previous config already):

6000.xml:

<include>
  <user id="6000">
    <params>
      <param name="password" value="12345"/>
      <param name="vm-password" value="12345"/>
    </params>
    <variables>
      <variable name="toll_allow" value="domestic,international,local"/>
      <variable name="accountcode" value="6000"/>
      <!--<variable name="user_context" value="default"/>-->
      <variable name="effective_caller_id_name" value="Mr. Teszt Elek"/>
      <variable name="effective_caller_id_number" value="6000"/>
      <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>

6001.xml:

<include>
  <user id="6001">
    <params>
      <param name="password" value="12345"/>
      <param name="vm-password" value="12345"/>
    </params>
    <variables>
      <variable name="toll_allow" value="domestic,international,local"/>
      <variable name="accountcode" value="6001"/>
      <!--<variable name="user_context" value="default"/>-->
      <variable name="effective_caller_id_name" value="Mekk Elek"/>
      <variable name="effective_caller_id_number" value="6001"/>
      <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>

I can login with softphones to 6000 and 6001. Now im trying to call from
6000 to 6001 and it seems not working for some reason. First of all every
time i call it tries to get dialplan from the public context. I changed the
context parameter in the interlan sip profile so it is now looking for the
dialplan in my mydomain.com contexts

2013-06-25 01:59:32.470028 [NOTICE] switch_channel.c:968 New Channel
sofia/internal/6000 at mydomain.com:5060
[ffc81a48-2c77-4797-8f96-fcf291fc6da3]
2013-06-25 01:59:32.650035 [INFO] mod_dialplan_xml.c:557 Processing
6000 <6000>->6001 in context mydomain.com
2013-06-25 01:59:32.650035 [WARNING] mod_sofia.c:4839 Cannot locate
registered user 6001 at mydomain.com
2013-06-25 01:59:32.650035 [NOTICE] mod_sofia.c:5079 Close Channel N/A [CS_NEW]
2013-06-25 01:59:32.650035 [NOTICE] switch_ivr_originate.c:2608 Cannot
create outgoing channel of type [sofia] cause: [USER_NOT_REGISTERED]
2013-06-25 01:59:32.650035 [INFO] mod_dptools.c:3055 Originate Failed.
 Cause: USER_NOT_REGISTERED
2013-06-25 01:59:32.650035 [NOTICE] mod_dptools.c:3175 Hangup
sofia/internal/6000 at mydomain.com:5060 [CS_EXECUTE]
[USER_NOT_REGISTERED]
2013-06-25 01:59:32.650035 [NOTICE] switch_core_session.c:1506 Session
4 (sofia/internal/6000 at mydomain.com:5060) Ended
2013-06-25 01:59:32.650035 [NOTICE] switch_core_session.c:1510 Close
Channel sofia/internal/6000 at mydomain.com:5060 [CS_DESTROY]

By the way my default port is not 5060 as it is written in the log, its a
totally different number.

I tried with this bridge too:

<action application="bridge" data="sofia/internal/$1 at mydomain.com"/>

The error now with this:

2013-06-25 02:04:06.910054 [NOTICE] switch_channel.c:968 New Channel
sofia/internal/6000 at mydomain.com:5060
[954bab64-1a79-4cd1-bab1-51d0f87410f2]
2013-06-25 02:04:07.090036 [INFO] mod_dialplan_xml.c:557 Processing
6000 <6000>->6001 in context mydomain.com
2013-06-25 02:04:07.090036 [NOTICE] switch_channel.c:968 New Channel
sofia/internal/6001 at mydomain.com
[3f59b312-7b62-4757-87c4-ce737ea405b8]
2013-06-25 02:04:07.090036 [NOTICE] sofia.c:6383 Hangup
sofia/internal/6001 at mydomain.com [CS_CONSUME_MEDIA]
[NORMAL_TEMPORARY_FAILURE]
2013-06-25 02:04:07.113421 [INFO] mod_dptools.c:3055 Originate Failed.
 Cause: NORMAL_TEMPORARY_FAILURE
2013-06-25 02:04:07.113421 [NOTICE] mod_dptools.c:3175 Hangup
sofia/internal/6000 at mydomain.com:5060 [CS_EXECUTE]
[NORMAL_TEMPORARY_FAILURE]
2013-06-25 02:04:07.160607 [NOTICE] switch_core_session.c:1506 Session
9 (sofia/internal/6001 at mydomain.com) Ended
2013-06-25 02:04:07.160607 [NOTICE] switch_core_session.c:1510 Close
Channel sofia/internal/6001 at mydomain.com [CS_DESTROY]
2013-06-25 02:04:07.223801 [NOTICE] switch_core_session.c:1506 Session
8 (sofia/internal/6000 at mydomain.com:5060) Ended
2013-06-25 02:04:07.223801 [NOTICE] switch_core_session.c:1510 Close
Channel sofia/internal/6000 at mydomain.com:5060 [CS_DESTROY]

Have two questions. Why is this error happening? From my asterisk
experiences maybe i have to create a context where my extensions can
receive the calls? Other question is how can i tell the mydomain.com domain
to use the mydomain.com.xml dialplan not the public?

Thanks,
Zoltan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20130625/41d2c2cf/attachment-0001.html 


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