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)=“)
为什么标头的值不传输?是否可以这样做?附:数据库中的Test-header列是
答案 0 :(得分:1)
用户域解决方案应该可以工作,但如果您需要多个列,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;
答案 1 :(得分:0)
您有CDR(用户区)值
自定义cdr字段仅适用于某些驱动程序(仅在res_mysql中的接口),并且只有在星号开头的db中存在列时才会起作用。