2

我一直在使用星号连接到我的系统的 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'

预听电话1@adhearsion-redirect,1 个目的地号码。

 Executing [1@adhearsion-redirect:1] AGI("SIP/ncell-out-00000004", "agi:async") 

从adhearsion发起呼叫时,我应该如何在cdr中获取目的地号码而不是1?

4

1 回答 1

0

(如果我有足够的代表发表评论,我会要求您发布您的控制器代码,以便我知道呼叫如何到达 1@adhearsion-redirect)。

看起来您可以使用辅助上下文在 CDR 中存储一些数据,然后再继续使用 adhearsion-redirect 上下文。我缺少的部分是如何将您现有的设置重定向帮助程序上下文。

这是一个帮助上下文的例子。由于我不知道您的控制器代码,因此您基本上需要制作它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)

基本上,这样做是让任何扩展匹配在辅助上下文中,并将 CDR 中的“用户字段”设置为数字。(您可以将其更改为其他 CDR 字段,但在您的日志中此字段为 NULL,因此选择的时机已经成熟。)然后它转发到 adhearsion-redirect 上下文。使用Dial上面显示的,这会将 CDR 的用户字段设置为 1234567890,或者您想拨打的任何号码。

于 2015-07-18T06:34:55.527 回答