Asterisk 星号通话间隔很长

Asterisk 星号通话间隔很长,asterisk,Asterisk,我对星号不是很熟悉。 在我的程序逻辑中,我使用jar文件根据空闲线路(可用线路-忙线路)生成.call文件。如果有一些可用的行,我会在temp目录中生成.call文件,然后传入星号传出目录 问题是在执行.call文件并获取繁忙线路命令后延迟很长时间 asterisk -rx 'sip show channelstats' | grep active | cut -f 1 -d ' ' 我每2秒从我的jar执行一次这个命令,但在最后一次调用完成30秒后,我得到了结果。通话结束30秒后,电话线似乎

我对星号不是很熟悉。 在我的程序逻辑中,我使用jar文件根据空闲线路(可用线路-忙线路)生成.call文件。如果有一些可用的行,我会在temp目录中生成.call文件,然后传入星号传出目录

问题是在执行.call文件并获取繁忙线路命令后延迟很长时间

asterisk -rx 'sip show channelstats' | grep active | cut -f 1 -d ' '
我每2秒从我的jar执行一次这个命令,但在最后一次调用完成30秒后,我得到了结果。通话结束30秒后,电话线似乎仍然占线

Asterisk.conf文件中是否有任何变量,表示调用完成后的延迟。我在星号文档中找不到决策

我的计划是:

exten => 123,1,AGI(monitor.php,outgoing,Outgoing_UNLIMITED,${CALLERID(num)},${EXTEN},Set(CALLERID(num)=xxxxxxxx))
exten => 123,1,Dial(SIP/xxxxxxxx/${EXTEN:0},30,T)
exten => 123,2,Set(CDR(userfield)=${NumberDialed})
exten => 123,3,Set(i=1);
exten => 123,n,While($[${i} <= ${file_max}])
exten => 123,n,Playback(${file${i}})
exten => 123,n,Set(i=$[ ${i} + 1 ])
exten => 123,n,EndWhile
exten=>123,1,AGI(monitor.php,outing,outing_UNLIMITED,${CALLERID(num)},${exten},Set(CALLERID(num)=xxxxxxxx))
扩展=>123,1,拨号(SIP/xxxxxxxx/${exten:0},30,T)
extn=>123,2,Set(CDR(userfield)=${NumberDialed})
extn=>123,3,Set(i=1);
exten=>123,n,While($[${i}123,n,播放(${file${i}})
extn=>123,n,Set(i=$[${i}+1])
ext=>123,n,EndWhile

您使用的命令不正确


使用“核心显示频道”。但请注意,每隔几秒钟执行一次命令,有时会导致星号挂起。您可以找到其他方法查找当前在线呼叫(CDR、ami事件或其他)

我建议您使用一个简单的脚本文件来更新包含正在使用的行数的暂存文件。让您的JAR文件在后台打印文件时添加到计数器中,并让您的拨号计划“H”上下文在通话后减少文件中的行数

在调用文件中,启用“存档”选项,并使用cron作业监视已完成文件的“传出\u done”。任何状态不为“已完成”的文件都会减少行数

详情


如果你觉得这听起来很麻烦,你可以监视AMI或HTTP接口,寻找挂断事件。但是,这是一项非常重要的任务。

我回答你前面的问题-你没有足够的技能来使用拨号器。使用开源软件。不,呼叫结束后没有延迟。检查你的程序。+1谢谢,我会的试试+1谢谢你的回答