在Fedora 21 Server上运行Asterisk 13。 SELinux = Permissive。
我已经配置了星号来将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
这是详细模式。请注意,设置CDR的代码运行时没有错误,数据将发布到CDR。
cdr_adaptive_odbc.conf看起来像这样:
[adaptive-connection]
connection=asterisk
table=cdr
alias start => calldate
usegmtime=yes
这就是我应该需要的。已按照拨号计划重新加载cdr_adaptive_odbc模块。
但是,这些字段在cdr表中显示为NULL。建议?
答案 0 :(得分:-1)
您必须添加别名才能在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/