1

我正在尝试配置呼叫拦截组,但我很难找到我的配置有什么问题。当我拨打功能代码以拦截 *110(interceptgroup no)(在本例中为 *110101)时,拨号计划不匹配并失败。哈希插入成功,我可以通过哈希选择/拦截_2/101在cli中看到它。我在这里想念什么?

这是我在 directory/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/1238@$${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>
4

1 回答 1

0

经过一番头痛后,我发现您不能在此特定功能代码前加上 *,它会导致 freeswitch 通过将功能代码本身(在本例中为 *110)与您作为参数输入的数字分开来以不同方式解析数字,在此case 是拦截组号。删除 * 修复它。

   <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>
于 2013-07-19T18:11:23.213 回答