我目前正在从静态配置切换到使用mod_xml_curl
,并且在设置呼叫组时遇到了问题。
在我的拨号方案内(动态提供,按预期工作)我正在接通一个小组:
<action application="bridge" data="${group_call(call-group@domain-a.com)}"/>
Freeswitch正在向网络服务器发出section=directory&action=group_call
请求,我将回复一个包含该组和所有相关用户的目录块:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="freeswitch/xml">
<section name="directory">
<domain name="domain-a.com">
<params>
<param name="dial-string" value="{presence_id=${dialed_user}@${dialed_domain}}${sofia_contact(${dialed_user}@${dialed_domain})}" />
</params>
<variables>
<variable name="user_context" value="domain-a.com" />
</variables>
<group name="call-group">
<users>
<user id="john" number-alias="1000">
<params>
<param name="password" value="1234" />
<param name="vm-password" value="1000" />
</params>
<variables>
<variable name="toll_allow" value="domestic,international,local" />
<variable name="accountcode" value="1000" />
<variable name="outbound_caller_id_name" value="John at domain-a.com" />
<variable name="outbound_caller_id_number" value="1234567" />
</variables>
</user>
<user id="lucy" number-alias="1001">
<params>
<param name="password" value="1234" />
<param name="vm-password" value="1000" />
</params>
<variables>
<variable name="toll_allow" value="domestic,international,local" />
<variable name="accountcode" value="1001" />
<variable name="outbound_caller_id_name" value="Lucy" />
<variable name="outbound_caller_id_number" value="12345678" />
</variables>
</user>
</users>
</group>
</domain>
</section>
</document>
然而,group_call()
似乎失败了,在日志中我得到了``:
2016-02-24 10:42:14.249534 [DEBUG] mod_dptools.c:1498 SET sofia/internal/michael@domain-a.com [call_timeout]=[15]
2016-02-24 10:42:14.529107 [CONSOLE] mod_xml_curl.c:323 XML response is in /tmp/2f772a8a-4c3a-46f2-834f-b9ba2c735feb.tmp.xml
EXECUTE sofia/internal/michael@domain-a.com bridge(error/NO_ROUTE_DESTINATION)
也许任何人都有使用mod_xml_curl
设置群组通话的经验,并可以解释Freeswitch在回复中的期望是什么?
答案 0 :(得分:1)
咬牙切齿后,我开始工作了。线索是在 group_call 描述下面的 here:
<块引用>请注意:如果您需要在分支 B 中设置传出用户变量, 请确保您没有拨号字符串和组拨号字符串 域或拨号组变量列表;而是设置拨号字符串或 用户默认组中的 group-dial-string。这条路 group_call 将返回 user/101 和 user/ 将设置您的所有用户 腿 B 通道的变量。
因此,当您收到类型为 group_call
的操作时,将 dial-string
参数移动到组级别,而不是
<domain name="domain-a.com">
<params>
<param name="dial-string" value="{presence_id=${dialed_user}@${dialed_domain}}${sofia_contact(${dialed_user}@${dialed_domain})}" />
</params>
<variables>
<variable name="user_context" value="domain-a.com" />
</variables>
<group name="call-group">
<users>
<user id="john" number-alias="1000">
...
发送这个
<domain name="domain-a.com">
<variables>
<variable name="user_context" value="domain-a.com" />
</variables>
<group name="call-group">
<params>
<param name="dial-string" value="{presence_id=${dialed_user}@${dialed_domain}}${sofia_contact(${dialed_user}@${dialed_domain})}" />
</params>
<users>
<user id="john" number-alias="1000">
...
在我做出改变之后,一切都变得笨拙了。干杯!
答案 1 :(得分:0)
它与您的拨号方案有关。它没有完美生成。只需检查拨号方案中的domain-a.com上下文。