我正在尝试配置呼叫拦截组,我很难找到我的配置有什么问题。当我拨打功能代码来拦截* 110(拦截组号)(在这种情况下为* 110101)时,拨号方案不匹配并失败。哈希插入成功,我可以通过hash select / intercept_2 / 101在cli中看到它。我在这里缺少什么?
这是我的目录/ 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的我的dialplan配置:
<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>
答案 0 :(得分: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>