通过http post收集星号cdr记录
我用的是星号,想收集cdr记录。我搜索了一会儿,发现已经有一些模块可以用来将cdr记录收集到CSV文件或MySQL中 我想知道是否已经有一个模块可以让我通过http post收集cdr记录。这样,当通话结束时,Asterisk会将cdr记录发布到预定义的URL通过http post收集星号cdr记录,http,url,voip,asterisk,cdr,Http,Url,Voip,Asterisk,Cdr,我用的是星号,想收集cdr记录。我搜索了一会儿,发现已经有一些模块可以用来将cdr记录收集到CSV文件或MySQL中 我想知道是否已经有一个模块可以让我通过http post收集cdr记录。这样,当通话结束时,Asterisk会将cdr记录发布到预定义的URL 感谢高级版。我不知道这样的模块,但您可以在挂断时执行应用程序 您可以使用函数${CURL(url[,post data])}: 另一种方法是在挂起时执行脚本: exten => h,n,System('php -f /opt/scr
感谢高级版。我不知道这样的模块,但您可以在挂断时执行应用程序 您可以使用函数
${CURL(url[,post data])}
:
另一种方法是在挂起时执行脚本:
exten => h,n,System('php -f /opt/scripts/cdr.php \
${CallerID(num)} ${EXTEN} "${CDR(answer)}" ${EPOCH}');
也许您也可以使用${CDR(billsec)}。另一个选项是使用CRON作业每隔几分钟运行一个Ruby或PHP脚本,以提取和HTTP发布自上次运行脚本以来的所有CDR。我为一位客户做了这件事,效果相当不错
也就是说,我发现,如果我需要让CDR可以“离线”访问,最简单的方法就是设置MySQL复制;将CDR写入PBX机器,从报告机器上的复制副本中读取。刚开始时,它的设置比较密集,但以后会使其他一切变得容易得多。注意,默认情况下,curl在同时连接10个以上时会出现问题。可以在源文件中更改。这看起来是一个很好的解决方案,但我对扩展脚本知之甚少。最后我阅读了mysql的cdr源代码,并自己制作了一个模块来完成这项任务。尽管如此,还是非常感谢。有这样的模块,但是由于没有人使用,它被删除了。您可以让具有c/c++技能的人来做这样的模块,这是一项简单的任务。
exten => h,n,System('php -f /opt/scripts/cdr.php \
${CallerID(num)} ${EXTEN} "${CDR(answer)}" ${EPOCH}');