我正在寻找一个变量,可以告诉我在多目标拨号命令中“赢得”了哪个号码。
示例:
拨号(SIP / 1000安培; SIP / 1001安培; SIP / 1002,30)
集(the_unlucky_winner = $ {...})
我从$ {DIALEDPEERx}变量中得不到任何东西。听起来这些vars已经坏了,但我不知道这是不是我应该使用的。
在此站点部署的古代版本1.2.14。所有客户都是SIP
谢谢任何人
答案 0 :(得分:0)
只有现实的方式才能做到这一点 - 通过像freepbx这样的本地频道来做(检查freepbx.org来源)或者在回答时使用宏(我恐怕不能在1.2中工作)
答案 1 :(得分:0)
解析文件的CDR记录的内容。其中一个字段是dstchannel
,其中包含的值为SIP/1002-9786b0b0
。
还要记住,挂断时会调用变量堆栈,除非你有一个" h
" (hangup)为上下文定义的扩展名。因此,您可以轻松地在那里处理您的呼叫后处理。
进一步阅读:
请注意:
如果这个答案可以解决您的问题,请"接受"这是为了其他人试图解决同样问题的好处
答案 2 :(得分:0)
大家好我有解决这个问题的方法。它适用于普通拨号和多目标拨号。
在dialstring中添加一个宏,这里我添加了“followme”宏。
M(followme)
$agi->exec("dial", "SIP/6001@sip.example.com&SIP/6002@sip.example.com,rtTgM(followme)");
然后在接听电话后,它将转到上下文
[macro-followme]
在此上下文中,您编写一个脚本以通过
获取已连接的呼叫信息$dstchannel=$agi->get_variable("DIALEDPEERNUMBER");
答案 3 :(得分:0)
我设法做到的方式如下
Dial(SIP/1000&SIP/1001&SIP/1002,30,M(whoanswered))
[macro-whoanswered]
exten => s,1,NoOp(${CHANNEL})
你会看到回答的实际扩展包含在$ {CHANNEL}中 如果1001回答该频道将类似于SIP / 1001-00017cf1 只需使用CUT命令将其剪切为 / 和 -