*号。在CDR中添加标头

时间:2018-04-24 14:58:47

标签: asterisk cdr

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列是

2 个答案:

答案 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中存在列时才会起作用。