Asterisk 如何将远程方ID保存到星号中的CDR?

Asterisk 如何将远程方ID保存到星号中的CDR?,asterisk,custom-fields,cdr,elastix,Asterisk,Custom Fields,Cdr,Elastix,我是新来的星号,所以任何帮助都将不胜感激 我正在尝试将远程方ID CONNECTEDLINE保存在转接呼叫中的CDR日志表中。在盲传输中并没有问题,因为我在src字段中获取远程方ID作为呼叫者ID 在有人值守的转接中,我丢失了原始的来电显示 这就是转移的过程: A打电话给B A和B谈话 B握住A,打电话给C B,与C交谈 B将A转到C A与C对话 现在,在CDRs表中,我得到了两条记录。一个用于第一次呼叫AB,另一个用于第二次呼叫BC和AC。重点是在第二次CDR中,我丢失了对A的任何引用 我想在

我是新来的星号,所以任何帮助都将不胜感激

我正在尝试将远程方ID CONNECTEDLINE保存在转接呼叫中的CDR日志表中。在盲传输中并没有问题,因为我在src字段中获取远程方ID作为呼叫者ID

在有人值守的转接中,我丢失了原始的来电显示

这就是转移的过程:

A打电话给B A和B谈话 B握住A,打电话给C B,与C交谈 B将A转到C A与C对话 现在,在CDRs表中,我得到了两条记录。一个用于第一次呼叫AB,另一个用于第二次呼叫BC和AC。重点是在第二次CDR中,我丢失了对A的任何引用

我想在第二个CDR中保存远程方ID A。 我已经在CDR表connectedID中添加了一个自定义字段

我正在阅读有关编辑一些配置文件的内容,添加了以下句子:

"exten => s,1,set(CDR(connectedID)=${CONNECTEDLINE})"
然而,我完全迷路了。我不知道我需要编辑哪个文件,甚至不知道我应该把这些代码放在文件的哪个部分


有人能给我指出正确的方向吗?

您可以使用Func_SHARED,将cid保存在共享变量中,并通过桥接通道名称进行查找

然而,这一切都需要调试和您自己的努力


另一个选项是收集事件和remmember所有传输

通过AMI读取呼叫事件感谢@arheops我管理如何在CDR中保存远程方ID

在挂起事件中,我们可以在ConnectedLineNum字段中看到远程方ID

对于像这样的转接呼叫:

401电话208 208呼叫308 401暂停 208将原始通话转接至308 401与308通话 这是通话最后一段的挂断事件示例

事件挂起 特权:呼叫所有人 频道:SIP/308-00000665 唯一标识:1421757614.1658 CallerIDNum:208 姓名:胡安·鲁伊斯 ConnectedLineNum:401 ConnectedLineName:Test1 原因:16 原因:正常清除

原始调用者存储在ConnectedLineNum变量中

因此,我将这一行添加到挂起部分:

extn=>s,1,SetCDRconnectedid=${CONNECTEDLINEnumber}

我使用的是Elastix 2.4.0,所以我在extensions\u override\u Elastix.conf文件中[macro hangupcall]宏的末尾添加了这一行


在其他基于星号的发行版中,它应该位于另一个文件中。

在有人值守的转接中,我没有任何交叉参考值可用于跟踪通话的两个部分,我有4个不同的频道,每个通话段2个。也许这就是我手机的工作原理。然而,我认为Func_SHARED是在适当的环境中达到我要求的正确方法。您可以通过AMI读取事件,将链接/取消链接事件数设为1,用于attendend transfer,可用于确定结果。感谢@arheops,我将尝试AMI事件方法。