星号 - 在.call文件中播放多个声音文件的最佳做法

时间:2013-03-22 14:50:43

标签: asterisk

我在.call文件中播放多个声音文件(.wav)时遇到问题。 我在变量中传递了大量声音文件(SetVar:Sound = custom / 1_Messages0201& custom / 20c& ...) 问题是字符串大小。当大小小于240个字符时,所有声音文件都能正常播放。修剪第240个字符后的所有文件,并显示错误

pbx_spool.c: Syntax error at line 10 of /var/spool/asterisk/outgoing/333.call

我正在阅读拨号字符串长度的限制

  

注意:在Asterisk 1.2之前和之后,Dial字符串的长度不能超过240个字符(任何超出的字符都将被截断)。除非您在编译选项中设置了LOW_MEMORY,否则此限制已在Asterisk 1.4中删除。

有没有办法删除此限制,或增加拨号字符串大小。 也许任何人都可以向我推荐任何其他更好的主意。

Asterisk版本:

Asterisk 11.2.1 built by root @ ip-XX-XXX-XXX-XXX on a x86_64 running Linux

拨号计划:

exten =>    123,1,AGI(monitor.php,outgoing,Outgoing_UNLIMITED,${CALLERID(num)},${EXTEN},Set(CALLERID (num)=XXXXXXXXX))
exten => 123,1,Dial(SIP/6845987568/${EXTEN:0},30,T)
exten => 123,2,Set(CDR(userfield)=${NumberDialed})
exten => 123,3,Playback(${Sound})

呼叫文件:

Channel: SIP/XXXXX/XXXXXX
CallerID: XXXXXXX
MaxRetries: 2
RetryTime: 15
Context: XXXXXX
Extension: 123
Priority: 1
Account: XXXXXX
SetVar:    Sound=custom/1_Messages0201&custom/20c&custom/i&custom/1om&custom/March&custom/2c&custom/hiliadi&custom/i&custom/13of&custom/godina&custom/1_Messages0202&custom/3c&custom/3c&custom/3c&custom/3c&custom/3c&custom/3c&custom/3c&custom/3c&custom/1_Messages0203&custom/200c&custom/50c&custom/i&custom/6c&custom/leva&custom/i&custom/70c&custom/i&custom/8c&custom/stotinki&custom/1_Messages0204
SetVar: NumberDialed=XXXXXXXX

2 个答案:

答案 0 :(得分:2)

在调用文件后,您的拨号方案也会出现同样的问题(它也有限制)。播放应用程序不适用于播放大量不同的文件。如果你需要这样做,你可以通过拨号方案来做到这一点。

您可以这样发送:

Setvar: file_max=2
Setvar: file1=custom/1_message
Setvar: file2=custom/2_message

之后使用星号的拨号方案逐个播放文件。例如:

exten => 123,3,Set(i=0);
exten => 123,n(loop),Set(i=$[ ${i} + 1 ])
exten => 123,n,GotoIF($[ $i > ${file_max} ]?exit)
exten => 123,n,Playback(${file${i}})
exten => 123,n,Goto(loop)
exten => 123,n(exit),Noop(end)

请注意,此任务还有很多其他问题,我建议您检查开源拨号代码,如vicidial或聘请专家。

答案 1 :(得分:0)

我对此问题的解决方案是设置“广告系列”调用变量,然后在数据库中定义各种“广告系列”。然后,我在拨号计划中使用数据库查找以获取声音文件列表。我有我的DBGet Ruby脚本返回两个值;一个“更多文件”标志和一个最多十个声音文件的列表。只要“more files”标志为真,我就循环DBGet并继续向客户播放文件集。

它就像一个魅力。并保持调用文件 - 更容易阅读。