我一直用星号来连接我系统的adhearsion。系统使用跟随脚本发起对sip号的调用。
Adhearsion::OutboundCall.originate number,
from: call_from,
controller: controller ,
controller_metadata: {id: @id, initiate_from:'outbound'}
和星号的cdr用于维护呼叫状态。我打电话的号码(目的地电话号码)没有显示在cdr报告中:
`id`, `calldate`, `clid`, `src`, `dst`, `dcontext`, `lastapp`, `lastdata`, `duration`, `billsec`, `disposition`, `channel`, `dstchannel`,`amaflags`, `accountcode`, `uniqueid`, `userfield`, `answer`, `end`
'2015-07-03 11:29:21', '9801243867', '9801243867', '1', 'adhearsion-redirect', 'Dial', 'SIP/ncell-out/playback', 5.12455, 5.89977, ' ANSWER', 'SIP/ncell-out-00000002', NULL, 'DOCUMENTATION', NULL, '1435902231.2', NULL, '0000-00-00 00:00:00', '2015-07-03 11:29:21'
'2015-07-03 11:29:26', '9801243867', '9801243867', '1', 'adhearsion-redirect', 'Dial', 'SIP/ncell-out/9771002', 0.000001, 0, 'NO ANSWER', 'SIP/ncell-out-00000003', NULL, 'DOCUMENTATION', NULL, '1435902236.3', NULL, '0000-00-00 00:00:00', '2015-07-03 11:29:26'
Adhearsion call 1@adhearsion-redirect
,1个目的地号码。
Executing [1@adhearsion-redirect:1] AGI("SIP/ncell-out-00000004", "agi:async")
当从adhearsion发起呼叫时,我应该如何获得cdr中的目的地号码而不是1?
答案 0 :(得分:0)
(如果我有足够的代表发表评论,我会要求您发布您的控制器代码,以便我知道该电话是如何进入1 @ adhearsion-redirect的。)
在继续进行adhearsion-redirect上下文之前,您似乎可以使用辅助上下文在CDR中存储一些数据。我缺少的部分是如何将现有设置重定向到帮助程序上下文。
这是助手上下文的一个例子。由于我不了解您的控制器代码,因此您基本上需要将其设为Dial(Local/1234567890@helper-context)
而不是Dial(Local/1@adheasion-redirect)
。这是上下文:
[helper-context]
exten=_X.,1,Set(CDR(userfield)=${EXTEN})
exten=_X.,n,Goto(1,adhearsion-redirect)
基本上这样做是让任何扩展匹配在helper-context中,并设置" userfield"在CDR中的数字。 (您可以将其更改为其他CDR字段,但在日志中这是NULL,因此拾取的时机已经成熟。)然后它转发到adhearsion-redirect上下文。使用上面显示的Dial
,这会将CDR的用户字段设置为1234567890,或者您要拨打的任何数字。