如何在呼叫文件中循环播放单个播放声音文件以获取星号?
问题描述:
我正在运行星号并试图将一个声音文件循环x次或一段时间。任何人都可以将我指向正确的方向吗?我目前的Asterisk调用文件如下所示:如何在呼叫文件中循环播放单个播放声音文件以获取星号?
Channel: /sip/flowout/1202XXXXXXX
CallerID: <3333>
Application: Playback
Data: soundfile
当前配置调用目标方并播放录音并挂断。但我想知道如果循环可用于此应用程序?
非常感谢您的帮助..
答
例如,你可以在你的diall计划到分机,将重复你的声音
Callfile:
Channel: SIP/flowout/1202XXXXXXX
CallerID: <3333>
Context: play_sound
Extension: 100
Priority: 1
Diallplan:
[play_with_timeout]
exten => 100,1,Dial(Local/[email protected]_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)-Wi通过此选项,您可以指定一段时间,在该时间段之后,行 将被挂起。定时器开始被呼叫人后响应号召
如果您在callfile你的声音设置Context: play_sound
将播放4次,但如果你将其更改为Context: play_with_timeout
您的通话将hungup 60秒后,或播放声音的4倍。
答
你也可以只是把它5次这样的
Channel: /sip/flowout/1202XXXXXXX
CallerID: <3333>
Application: Playback
Data: soundfile&soundfile&soundfile&soundfile&soundfile
当然这是不太灵活,但更简单。
答
您也可以使用Asterisk命令虽然
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