我在this链接之后使用带有普通PHP AGI的星号,问题是我的PHP AGI需要5秒才能执行。我只是想设置一些等待音,让用户等待AGI正在处理。在同一个链接上我发现了一些东西:
设置音乐:启用/禁用保持音乐发生器,例如“默认设置音乐”
但我不知道到底如何使用我的意思是确切的语法是什么以及我把它放在哪里。
我尝试过添加
same => n,Set(CHANNEL(musicclass)=default)
但是没有成功。
如果你使用phpagi,你必须这样做
$agi->set_music(true,"myholdclass")
...
$agi->set_music(false)
http://phpagi.sourceforge.net/phpagi2/docs/phpAGI/AGI.html#methodset_music
当然你需要先在 /etc/asterisk/musiconhold.conf 中描述 myholdclass
请查看播放音命令。
exten => s,2,Playtones(dial)
例如在extensions.conf(或包含)中
exten => test,1,....
same => n,StartMusicOnHold()
same => n,AGI(....)
same => n,StopMusicOnHold()
您可以让呼叫者听到铃声,要停止铃声您可以执行“Answer()”。
exten => test,1,....
same => n,Ringing()
same => n,AGI(....)
same => n,Answer()
请参阅设置音乐以保留音乐或使用AGI with EXEC Ringing进行响铃
您将一些声音文件放入您的声音目录中:
/var/lib/asterisk/mysoundFile
然后调用播放函数:
Playback(mysoundFile)
了解更多信息:http://www.voip-info.org/wiki/view/Asterisk+cmd+Playback
我有一个更简单的解决方案来解决您的问题。
你可以使用 Asterisk AGI,而不需要创建 AGI 脚本(我不喜欢 AGI 机制。我发明了一个更强大、更简单、更灵活的框架,允许我用 Asterisk 做疯狂的事情,而无需接触拨号计划或任何其他配置文件)。
对于您的问题,只需执行以下操作;
在 agi 目录中为“/bin/echo”应用程序创建符号链接:
ln -s /bin/echo /var/lib/asterisk/agi-bin/echo
从您的拨号计划中,通过拨打
exten => s,n,AGI( echo, SET MUSIC ON)
exten => s,n,AGI( echo, SET MUSIC OFF)
这是最简单的方法,无需创建 AGI 页面。