Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过http post收集星号cdr记录_Http_Url_Voip_Asterisk_Cdr - Fatal编程技术网

通过http post收集星号cdr记录

通过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

我用的是星号,想收集cdr记录。我搜索了一会儿,发现已经有一些模块可以用来将cdr记录收集到CSV文件或MySQL中

我想知道是否已经有一个模块可以让我通过http post收集cdr记录。这样,当通话结束时,Asterisk会将cdr记录发布到预定义的URL


感谢高级版。

我不知道这样的模块,但您可以在挂断时执行应用程序

您可以使用函数
${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}');