0

Aterisk 13. 定制双翼飞机。通话正常,CDR 已写入。

但我需要在通话期间将我自己的标题添加到 CDR。

示例 extensions.conf:

exten => _1XX, n, SIPAddHeader (Test-header: 123) exten => _4XX, n, Set (CDR (Test column) = $ {SIP_HEADER (Test-header)})

控制台输出:

  • 在新堆栈中执行 [6001 @ test: 2] SIPAddHeader ("SIP / 100-00000000", "Test-header: 123") - 执行 [6001 @ test: 2] Set ("SIP / 100-00000000" CDR (Test -header) = ") 在新堆栈中

为什么不传输标头的值?有可能做到这一点吗?PS数据库中的列Test-header是

4

2 回答 2

1

userfield 解决方案应该可以工作,但如果您需要多个列,CDR MySQL 后端支持自定义列。在cdr_mysql.conf中,创建此部分:

[columns]
alias testcolumn => testcolumn

在你的拨号方案中:

Set(CDR(testcolumn)=${SIP_HEADER(Test-header)})

Asterisk 不会在 CDR 表中创建此列,您必须更改它:

ALTER TABLE cdr ADD COLUMN testcolumn VARCHAR(255) DEFAULT NULL;
于 2018-04-29T20:11:36.810 回答
0

你有 CDR(userfield) 值

自定义 cdr 字段仅适用于某些驱动程序(接缝仅在 res_mysql 中)并且仅当 db 中存在星号开头的列时。

于 2018-04-24T16:06:41.670 回答