脚本说明
座席1001注册到freeswitch的internal1 profile上面,正常情况下是无法通过originate user/1001 &echo
进行呼叫的。
只能先通过sofia_contact查找出具体的dialstring,再进行呼叫。
拨号规则
<extension name="call_local_agent">
<condition field="destination_number" expression="^(1001)$">
<action application="lua" data="bridgeagent.lua 1001"/>
</condition>
</extension>
脚本实现
agentId = argv[1]
api = freeswitch.API()
domain = api:executeString("global_getvar domain")
--sofia_contact */1001@10.1.1.146
contactInfo = api:executeString("sofia_contact */" .. agentId .. "@" .. domain)
--add some variable
contactInfo = "{continue_on_fail=true}" .. contactInfo
session:execute("bridge", contactInfo)
注:sofia_contact默认是在internal这个profile里面寻找注册用户,要想查找所有profile,请使用sofia_contact /1001@domain来查找。 代表查找所有的profile,如果知道特定的profile,则可以:sofia_contact internal1/1001@domain