为什么Asterisk中的自定义CDR字段没有记录在MySQL中



在Fedora 21服务器上运行Asterisk 13。SELinux=允许。

我已配置星号将CDR写入MySQL。我将所有的普通字段写入CDR。

我在拨号计划(extensions.conf)中也有这个:

exten => h,n,Set(CDR(cause_code)=${HANGUPCAUSE})
exten => h,n,Set(CDR(cause_name)= ${ODBC_GET_CAUSE(${HANGUPCAUSE})})
exten => h,n,Set(TrNumber=${ODBC_GET_DIALED_NUMBER(${CDR(lastdata)})})
exten => h,n(writeTranslate),SET(CDR(TranslatedNumber)=${TrNumber})

注意自定义字段cause_code、cause_name和TranslatedNumber/

字段cause_code、cause_name和TranslatedNumber存在于cdr表中。

当代码运行时,我得到这个:

-- Executing [h@context-out:5] Set("SIP/xx.xxx.xx.xx-00000004", "CDR(cause_code)=16") in new stack
-- Executing [h@context-out:6] Set("SIP/xx.xxx.xx.xx-00000004", "CDR(cause_name)= normal call clearing") in new stack
-- Executing [h@context-out:7] Set("SIP/xx.xxx.xx.xx-00000004", "TrNumber=15555552233") in new stack
-- Executing [h@context-out:9] Set("SIP/xx.xxx.xx.xx-00000004", "CDR(translatedNumber)=15555552233") in new stack

这处于详细模式。请注意,代码Setting the CDR运行时没有出现错误,并且数据将发布到CDR中。

cdr_adaptive_odbc.conf如下所示:

 [adaptive-connection]
 connection=asterisk
 table=cdr
 alias start => calldate
 usegmtime=yes

这就是我所需要的。cdr_adaptive_odbc模块已按照拨号计划重新加载。

是的,这些字段在cdr表中显示为NULL。建议?

您必须添加别名才能在CDR 中添加自定义字段

[aliases]
cause_code = cause_code
cause_name = cause_name
TranslatedNumber = TranslatedNumber

我试过星号11,下面是完整的指南:

http://blog.ones-app.com/add-custom-fields-in-asterisks-mysql-cdrs/

相关内容

  • 没有找到相关文章

最新更新