2013-07-19 2 views
1

Я пытаюсь настроить группы перехвата вызовов, и мне трудно найти, что не так с моей конфигурацией. Когда я набираю код функции для перехвата * 110 (interceptgroup no) (в этом случае * 110101), dialplan не соответствует и не работает. Хэш вставлен успешно, я вижу его в cli через хеш select/intercept_2/101. Что мне здесь не хватает?Freeswitch call intercerpt configuration

Вот мой пользователь конфигурации из каталога/DEFAULT.XML:

 <user bluebox_id="3" id="1001"> 
     <variables> 
      <variable name="internal_caller_id_number" value="1001"/> 
      <variable name="user_context" value="context_4"/> 
      <variable name="force_transfer_context" value="context_4"/> 
      <variable name="user_originated" value="true"/> 
      <variable name="toll_allow" value="domestic"/> 
      <variable name="accountcode" value="1001"/> 
      <variable name="callrecord_inbound" value="1"/> 
      <variable name="callrecord_outbound" value="1"/> 
      <variable name="interceptgroup" value="101"/> 
     </variables> 
     <params> 
      <param name="password" value="removed"/> 
      <param name="dial-string" value="{presence_id=${dialed_user}@${dialed_domain}}${sofia_contact(${dialed_user}@${dialed_domain})}"/> 
     </params> 
     </user> 
     <user bluebox_id="5" id="1238"> 
     <variables> 
      <variable name="internal_caller_id_number" value="1238"/> 
      <variable name="user_context" value="context_4"/> 
      <variable name="force_transfer_context" value="context_4"/> 
      <variable name="user_originated" value="true"/> 
      <variable name="toll_allow" value="domestic"/> 
      <variable name="accountcode" value="1238"/> 
      <variable name="callrecord_inbound" value="1"/> 
      <variable name="callrecord_outbound" value="1"/> 
      <variable name="interceptgroup" value="101"/> 
     </variables> 
     <params> 
      <param name="password" value="removed"/> 
      <param name="dial-string" value="{presence_id=${dialed_user}@${dialed_domain}}${sofia_contact(${dialed_user}@${dialed_domain})}"/> 
     </params> 
     </user> 

Вот мой диалплан конфигурации из dialplan.xml:

<extension name="main_number_43" continue="true"> 
    <condition field="destination_number" expression="^1238$"> 
    <action application="hash" data="insert/intercept_2/101/${uuid}"/> 
    <action application="set" bluebox="settingTimeout" data="call_timeout=30"/> 
    <action application="set" bluebox="settingRing" data="ringback=${us-ring}"/> 
    <action application="set" bluebox="settingRingXfer" data="transfer_ringback=${us-ring}"/> 
    <action application="export" bluebox="sipCalleeIdName" data="sip_callee_id_name=linksys"/> 
    <action application="export" bluebox="sipCalleeIdNumber" data="sip_callee_id_number=1238"/> 
    <action application="bridge" data="user/[email protected]$${location_4}"/> 
    <action application="hangup"/> 
    </condition> 
</extension> 
<extension name="main_number_45" continue="true"> 
    <condition field="${regex(m:/${destination_number}/^\*110([0-9]+)$/$1)}" expression="^${interceptgroup}$"/> 
    <condition field="destination_number" expression="^\*110([0-9]+)$"> 
    <action application="answer"/> 
    <action application="set" data="intercept_unanswered_only=true"/> 
    <action application="intercept" data="${hash(select/intercept_2/$1)}"/> 
    <action application="sleep" data="2000"/> 
    <action application="hangup"/> 
    </condition> 
</extension> 

ответ

0

После некоторой головной боли, я обнаружил, что вы не можете предварять это специальный код функции с *, он заставляет freeswitch анализировать цифры по-разному, отделяя сам код функции (* 110 в этом случае) от цифр, которые вы вводите в качестве аргумента, который в этом случае является номером группы перехвата. Удаление * исправлено.

<extension name="main_number_45" continue="true"> 
    <condition field="${regex(m:/${destination_number}/^\110([0-9]+)$/$1)}" expression="^${interceptgroup}$"/> 
    <condition field="destination_number" expression="^\110([0-9]+)$"> 
     <action application="answer"/> 
     <action application="set" data="intercept_unanswered_only=true"/> 
     <action application="intercept" data="${hash(select/intercept_2/$1)}"/> 
     <action application="sleep" data="2000"/> 
     <action application="hangup"/> 
    </condition> 
    </extension> 
Смежные вопросы