我一直在使用星号连接到我的系统的adhearsion。系统使用follow脚本发起对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'
广告呼叫1@adhearsion-redirect
,1目的地号码。
Executing [1@adhearsion-redirect:1] AGI("SIP/ncell-out-00000004", "agi:async")
当从adhearsion发起呼叫时,我应该如何在cdr中获得目的地号码而不是1?
(如果我有足够的代表发表评论,我会让你发布你的控制器代码,这样我就知道调用是如何到达1@adhearsion重定向的(。
在继续访问adhearsion重定向上下文之前,似乎可以使用助手上下文在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上下文中匹配,并将CDR中的"userfield"设置为数字。(您可以将其更改为其他CDR字段,但日志中的字段为NULL,因此选择时机已成熟。(然后,它将转发到adhearsion重定向上下文。使用上面显示的Dial
,可以将CDR的userfield设置为1234567890,或者您想要拨打的任何号码。