繁体   English   中英

为什么在MySQL中未记录星号中的自定义CDR字段?

[英]Why Are Custom CDR fields in Asterisk Not Recorded in 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 /

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

当代码运行时,我得到以下信息:

-- 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。 有什么建议吗?

您必须添加别名以在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/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM