Php 设置星号agi函数处理的等待音

Php 设置星号agi函数处理的等待音,php,asterisk,ivr,agi,Php,Asterisk,Ivr,Agi,我使用星号与正常的PHP AGI以下链接的问题是,我的PHP AGI需要5秒来执行。我只是想设置一些等待音调,让用户等待,直到AGI正在处理。在同一个链接上,我发现了一些东西: 设置音乐:启用/禁用音乐保留生成器,例如“设置默认音乐” 但是我不知道如何使用,我的意思是确切的语法是什么,我应该把它放在哪里 我试着添加 same => n,Set(CHANNEL(musicclass)=default) 但它不起作用。您将一些声音文件放入了声音目录: /var/lib/asterisk/my

我使用星号与正常的PHP AGI以下链接的问题是,我的PHP AGI需要5秒来执行。我只是想设置一些等待音调,让用户等待,直到AGI正在处理。在同一个链接上,我发现了一些东西:

设置音乐:启用/禁用音乐保留生成器,例如“设置默认音乐”

但是我不知道如何使用,我的意思是确切的语法是什么,我应该把它放在哪里

我试着添加

same => n,Set(CHANNEL(musicclass)=default)

但它不起作用。

您将一些声音文件放入了声音目录:

/var/lib/asterisk/mysoundFile
然后调用回放功能:

Playback(mysoundFile)

有关更多信息:

如果使用phpagi,则必须执行以下操作

$agi->set_music(true,"myholdclass")
...
$agi->set_music(false)


确实需要首先在/etc/asterisk/musiconhold.conf中描述myholdclass,请查看Playtones命令

exten => s,2,Playtones(dial)

我有一个更容易解决你问题的办法

您可以使用Asterisk AGI,而无需创建AGI脚本(我不喜欢AGI机制。我发明了一个更强大、更简单、更灵活的框架,允许我使用Asterisk进行疯狂操作,而无需触摸拨号计划或任何其他配置文件)

对于您的问题,只需执行以下操作

  • 通过以下方式在agi目录中为“/bin/echo”应用程序创建符号链接:

    ln -s /bin/echo  /var/lib/asterisk/agi-bin/echo
    
  • 在拨号计划中,通过呼叫
    ext=>s,n,AGI(echo,启动音乐)

  • 行动起来
  • 通过调用
    ext=>s,n,AGI(echo,SET music OFF)停止暂停的音乐
  • 调动或做其他事情

  • 这是不需要创建AGI页面的最简单的方法。

    不,这不是我想要的。我希望在处理请求时,而不是在AGI请求之前播放音调。非常感谢您的回复,但我没有使用php AGI。我使用的是问题中所述的简单AGI。我建议您使用phpagi。没有意义,请自行决定。如果您是使用自定义脚本,您只需发送“设置保留音乐类”\r\n我已尝试通过星号设置该类,但在何处运行
    SET MUSIC ON hold
    您已将其发送到AGI连接(通常仅打印到标准输出)对不起,我不能理解你的意思。我必须用星号或php来指定它,以及它的语法是什么