CDR报告未显示目的地号码(adhearsion - asterisk)

时间:2015-07-03 08:40:46

标签: ruby asterisk ivr asteriskami adhearsion

我一直用星号来连接我系统的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?

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,或者您要拨打的任何数字。