脚本说明

座席1001注册到freeswitch的internal1 profile上面,正常情况下是无法通过originate user/1001 &echo进行呼叫的。
只能先通过sofia_contact查找出具体的dialstring,再进行呼叫。

拨号规则

  1. <extension name="call_local_agent">
  2. <condition field="destination_number" expression="^(1001)$">
  3. <action application="lua" data="bridgeagent.lua 1001"/>
  4. </condition>
  5. </extension>

脚本实现

  1. agentId = argv[1]
  2. api = freeswitch.API()
  3. domain = api:executeString("global_getvar domain")
  4. --sofia_contact */1001@10.1.1.146
  5. contactInfo = api:executeString("sofia_contact */" .. agentId .. "@" .. domain)
  6. --add some variable
  7. contactInfo = "{continue_on_fail=true}" .. contactInfo
  8. session:execute("bridge", contactInfo)

注:sofia_contact默认是在internal这个profile里面寻找注册用户,要想查找所有profile,请使用sofia_contact /1001@domain来查找。 代表查找所有的profile,如果知道特定的profile,则可以:sofia_contact internal1/1001@domain