我正在使用PHP和Asterisk允许客户通过我们的网站向我们发起呼叫。我们希望在第一个扩展名出现时播放一个音频文件,该文件已经录制好了。我的问题:这是可以在PHP端配置的东西,还是应该在Asterisk中配置?如果是,在哪里?我找不到在 PHP 中指定路径或文件名的操作。
这是我的PHP脚本的一部分来发起调用
$socket = fsockopen($host, 5038, $errnum, $errstr, $timeout) or die("Connection failed");
fputs($socket, "Action: loginrn");
fputs($socket, "Events: offrn");
fputs($socket, "Username: $usernamern");
fputs($socket, "Secret: $passwordrnrn");
fputs($socket, "Action: originatern");
fputs($socket, "Channel: $strChannelrn");
fputs($socket, "WaitTime: $timeoutrn");
fputs($socket, "CallerId: $callIdrn");
fputs($socket, "Exten: $numberrn");
fputs($socket, "Context: $strContextrn");
fputs($socket, "Priority: $strPriorityrnrn");
fputs($socket, "Action: Logoffrnrn");
编辑
我知道 musiconhold.conf 文件 - 但如果可能的话,我正在寻找一种在这里执行它的方法
您已经创建了 musiconhold 类并将类附加到频道。
您显示的代码只是创建呼叫,它不显示任何拨号计划,因此无法正确回答您的问题。
最简单的方法是提供m(音乐类)参数到第二个通道上的拨号命令。
更复杂的方法可以使用更多的拨号计划技巧或应答宏(M 参数)
由于您没有展示任何与星号相关的知识,因此最好先阅读有关星号如何工作的书。我可以推荐ORelly的"Asterisk the Future of Phonephony"。