星号和PHP - 音乐暂停?

时间:2014-01-07 21:58:21

标签: php asterisk

我正在使用PHP和Asterisk允许客户通过我们的网站向我们发起呼叫。我们希望在第一个分机接听时播放音频文件,该分机已经录制完毕。我的问题:这是可以在PHP方面配置的东西,还是应该在Asterisk中配置?如果是的话,在哪里?我无法找到在PHP中指定路径或文件名的操作。

这是我发起调用的PHP脚本的一大块

$socket = fsockopen($host, 5038, $errnum, $errstr, $timeout) or die("Connection failed");
    fputs($socket, "Action: login\r\n");
    fputs($socket, "Events: off\r\n");
    fputs($socket, "Username: $username\r\n");
    fputs($socket, "Secret: $password\r\n\r\n");
    fputs($socket, "Action: originate\r\n");
    fputs($socket, "Channel: $strChannel\r\n");
    fputs($socket, "WaitTime: $timeout\r\n");
    fputs($socket, "CallerId: $callId\r\n");
    fputs($socket, "Exten: $number\r\n");
    fputs($socket, "Context: $strContext\r\n");
    fputs($socket, "Priority: $strPriority\r\n\r\n");
    fputs($socket, "Action: Logoff\r\n\r\n");

修改
我知道musiconhold.conf文件 - 但是如果可能的话,我正在寻找一种方法来执行它

1 个答案:

答案 0 :(得分:2)

您已创建musiconhold类并将类附加到频道。

您只显示创建调用的代码,它不显示任何拨号方案,因此无法正确回答您的问题。

最简单的方法是提供m(musicclass)参数在第二个频道上拨打命令。

更复杂的方法可以使用更多的拨号技巧或on-answer-macro(M param)

由于您没有展示任何与星号相关的知识,因此首先阅读关于星号如何工作的好主意。我可以推荐ORelly的“Asterisk the Telephony”。