繁体   English   中英

如何在星号的呼叫文件中循环播放单个播放声音文件?

[英]How do I loop a single playback sound file in a callfile for asterisk?

我正在运行星号,并尝试使单个声音文件循环x次或在特定时间段内循环。 谁能指出我正确的方向? 我当前的Asterisk调用文件如下所示:

Channel: /sip/flowout/1202XXXXXXX
CallerID: <3333>
Application: Playback
Data: soundfile

当前配置呼叫目标用户并播放录音并挂断。 但是我想知道此应用程序是否可以使用循环吗?

非常感谢你的帮助..

例如,您可以在拨号方案中呼叫扩展名,以重复您的声音

Callfile:

Channel: SIP/flowout/1202XXXXXXX
CallerID: <3333>
Context: play_sound
Extension: 100
Priority: 1

Diallplan:

[play_with_timeout]
exten => 100,1,Dial(Local/100@play_sound,15,S(60))

[play_sound]
exten => 100,1,Set(repeatCount=5)
exten => 100,n(playback),Playback(hello-world)
exten => 100,n,Set(repeatCount=$[${repeatCount} - 1])
exten => 100,n,GotoIf(GotoIf($[${repeatCount} = 0]]?exit:playback)
exten => 100,n(exit)Hangup()

S(x)-使用此选项,您可以指定将线路挂断的一段时间。 被叫人接听电话后计时器开始计时

如果在呼叫Context: play_sound中设置了Context: play_sound ,则声音将播放4次,但如果将其更改为Context: play_with_timeout您的呼叫将在60秒后挂断或播放4次声音。

你也可以这样放5次

Channel: /sip/flowout/1202XXXXXXX
CallerID: <3333>
Application: Playback
Data: soundfile&soundfile&soundfile&soundfile&soundfile

当然,它的灵活性较差,但更为简单。

您也可以使用Asterisk cmd While

Callfile:

Channel: /sip/flowout/1202XXXXXXX
CallerID: <3333>
Context: play_sound
Set: _soundfile=soundfile
Set: _timePeriod=30

Diallplan:

same => n,Progress()
same => n,While($[${CDR(duration)} < ${timePeriod} ])       
    same => n,Playback(soundfile,noanswer)
same => n,EndWhile
same => n,HangUp

暂无
暂无

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

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