为asterisk agi功能处理设置等待音

问题描述 投票:0回答:5

我在this链接之后使用带有普通PHP AGI的星号,问题是我的PHP AGI需要5秒才能执行。我只是想设置一些等待音,让用户等待AGI正在处理。在同一个链接上我发现了一些东西:

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

但我不知道到底如何使用我的意思是确切的语法是什么以及我把它放在哪里。

我尝试过添加

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

但是没有成功。

php asterisk ivr agi
5个回答
2
投票

如果你使用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


0
投票

请查看播放音命令。

exten => s,2,Playtones(dial)

0
投票
  1. 您可以使用拨号方案应用程序 StartMusicOnHold 在调用 AGI 之前播放保持音乐,并在 AGI 退出后使用 StopMusicOnHold 停止保持音乐。

例如在extensions.conf(或包含)中

exten => test,1,....
same => n,StartMusicOnHold()
same => n,AGI(....)
same => n,StopMusicOnHold()
  1. 播放铃声

您可以让呼叫者听到铃声,要停止铃声您可以执行“Answer()”。

exten => test,1,....
same => n,Ringing()
same => n,AGI(....)
same => n,Answer()
  1. 您可以在 AGI 中执行上述两项操作,而不是从拨号方案中执行上述操作。

请参阅设置音乐以保留音乐或使用AGI with EXEC Ringing进行响铃

  1. 或者 php-agi 库也是一个选项。

-1
投票

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

/var/lib/asterisk/mysoundFile

然后调用播放函数:

Playback(mysoundFile)

了解更多信息:http://www.voip-info.org/wiki/view/Asterisk+cmd+Playback


-1
投票

我有一个更简单的解决方案来解决您的问题。

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

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

  1. 在 agi 目录中为“/bin/echo”应用程序创建符号链接:

    ln -s /bin/echo  /var/lib/asterisk/agi-bin/echo
    
  2. 从您的拨号计划中,通过拨打

    exten => s,n,AGI( echo, SET MUSIC ON)

  3. 开始保持音乐
  4. 行动起来
  5. 通过拨打
    exten => s,n,AGI( echo, SET MUSIC OFF)
  6. 停止保留的音乐
  7. 转移或做其他事情

这是最简单的方法,无需创建 AGI 页面。

© www.soinside.com 2019 - 2024. All rights reserved.