问题
I am using asterisk with normal PHP AGI following this link the problem is that my PHP AGI takes 5 seconds to execute .I just want to set some waiting tone for the user to wait until the AGI is been processing. On the same link I found something:
set music: Enable/Disable Music on hold generator, example "SET MUSIC ON default
but I don't know exactly how to use I mean what would be the exact syntax and where do I put it.
I have tried adding
same => n,Set(CHANNEL(musicclass)=default)
but it didn't work.
回答1:
If you use phpagi, you have do something like this
$agi->set_music(true,"myholdclass")
...
$agi->set_music(false)
http://phpagi.sourceforge.net/phpagi2/docs/phpAGI/AGI.html#methodset_music
Sure you need first describe myholdclass in /etc/asterisk/musiconhold.conf
回答2:
You put some sound file into your sound directory:
/var/lib/asterisk/mysoundFile
Then call the playback function:
Playback(mysoundFile)
For more information: http://www.voip-info.org/wiki/view/Asterisk+cmd+Playback
回答3:
Please Check Out The Playtones Command.
exten => s,2,Playtones(dial)
回答4:
I have an easier solution for your problem.
You use Asterisk AGI for it, without needing to create an AGI script (I do not like the AGI mechanism. I have invented a framework that is more powerful, easier and flexible and allows me to do crazy stuff with Asterisk without ever touching the Dial plan or any other config file).
For you problem, just do the following;
create a symbolic link for the '/bin/echo' application in the agi directory by:
ln -s /bin/echo /var/lib/asterisk/agi-bin/echo
from your dial plan, start music on hold by calling
exten => s,n,AGI( echo, SET MUSIC ON)
- do your action
- stop the music on hold by calling
exten => s,n,AGI( echo, SET MUSIC OFF)
- transfer or do other things
This is the easiest way without needing to create AGI pages.
来源:https://stackoverflow.com/questions/32391634/set-waiting-tone-for-asterisk-agi-function-processing