Freeswitch Multi-Tenant Dialplan

Fórumok

Sziasztok,

Freeswitchel probalok egy multi-tenantos konfiguraciot osszehozni. Jelenleg 1 domaint probaltam beallitani, a pelda kedveert legyen ez most mydomain.com.

A dialplan konyvtarban letrehoztam egy mydomain.com.xml-t. Ez igy nez ki, semmi extra:


<?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>

A directory konyvtarban is bekerult a mydomain.com.xml:


<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>

A directory/mydomain.com/ konyvtarba pedig letrehoztam ket usert (az user_context-et direkt kihagytam, mert elvileg fentebb mar be van allitva):

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>

Softphone-al be is tudok logolni mindket userrel kulon kulon. Most kovetkezik az, hogy probalnam hivni egyikrol a masikat, de nem akar osszejonni. A gond ot kezdodik, hogy allandoan a public context-ben keresi a dialplan-re vonatkozokat. Ha azonban az internal sip-profile-ban atirom a context parameter-t mydomain.com-ra akkor mar jo helyen keresi, viszont a kovetkezo a problema:


2013-06-25 01:59:32.470028 [NOTICE] switch_channel.c:968 New Channel sofia/internal/6000@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@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@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@mydomain.com:5060) Ended
2013-06-25 01:59:32.650035 [NOTICE] switch_core_session.c:1510 Close Channel sofia/internal/6000@mydomain.com:5060 [CS_DESTROY]

Hozza kell tenni, hogy az internal profile-om nem az 5060-as porton fut hanem egy teljesen mason, igy a mydomain.com:5060 az kicsit furcsa ott nekem.

Probalkoztam egy ilyen bridge-el is a dialplanemben:


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

Erre a kovetkezo a hiba:


2013-06-25 02:04:06.910054 [NOTICE] switch_channel.c:968 New Channel sofia/internal/6000@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@mydomain.com [3f59b312-7b62-4757-87c4-ce737ea405b8]
2013-06-25 02:04:07.090036 [NOTICE] sofia.c:6383 Hangup sofia/internal/6001@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@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@mydomain.com) Ended
2013-06-25 02:04:07.160607 [NOTICE] switch_core_session.c:1510 Close Channel sofia/internal/6001@mydomain.com [CS_DESTROY]
2013-06-25 02:04:07.223801 [NOTICE] switch_core_session.c:1506 Session 8 (sofia/internal/6000@mydomain.com:5060) Ended
2013-06-25 02:04:07.223801 [NOTICE] switch_core_session.c:1510 Close Channel sofia/internal/6000@mydomain.com:5060 [CS_DESTROY]

Ket kerdesem van ezzel kapcsolatban. Elso, hogy mitol lehet ez a hiba? Asteriskes tapasztalatokbol gyanitom, hogy nincs megadva sehol olyan context amely elfogadja a hivast a hivo feltol. Lehet ez kellene itt is? Masik pedig, hogy miert akarja allandoan a public context-ben keresni a dialplanre vonatkozo beallitasokat? ha felveszek meg 50 domaint, hogyan adom meg, hogy melyik domainre melyik dialplan vonatkozik?

A Freeswitch wiki-je nem rosz, de latok benne hianyossagokat.

Koszonom!
zoell

Hozzászólások

Kérlek tedd fel pastebinre a freeswitch.xml.fsxml fájlodat és a teljes console logot a hibás hívásról.