3 回答
TA贡献1833条经验 获得超4个赞
调用文件非常适合调度,但我会使用 PHP AGI 而不是拨号计划来做 web 端。
您可以让呼叫文件使用目标电话号码和查询 Web 服务所需的任何参数(用户 ID、电子邮件等)拨打本地分机号。然后 AGI 执行 curl 请求,您可以继续从 AGI 内部拨号。我猜这对你来说比拨号计划更舒服。它将消除“出于某种原因它做了 X”的困惑部分,因为您可以在 PHP 中直接控制调用,并且可以从您的 AGI 脚本中记录到文件。
您还可以执行更高级的 API 查询,例如需要身份验证令牌的外部 API、处理更复杂的输出等。
TA贡献1785条经验 获得超4个赞
从 Asterisk 社区得到了一些很大的帮助。主要问题是需要两个上下文,一个用于呼叫的每一段。
使用 Dial 进行呼叫的一种上下文(下面的 message_dial)
播放声音文件的另一个上下文。(下方留言)
这是有效的 extensions.conf 文件。只需在拨号命令之前在 message_dial 的拨号计划中添加任何条件:
[message_dial]
exten => s,1,NoOp()
same => n,Dial(SIP/voxbeam_outbound/${PHONE_NUMBER})
[message]
exten => s,1,NoOp()
same => n,Playback(message)
same => n,Hangup
调用文件可能如下所示
Channel: Local/s@message_dial
CallerID: +46<hidden>
MaxRetries: 3
RetryTime: 15
Context: message
Extension: s
Priority: 1
Archive: Yes
SetVar: PHONE_NUMBER=+46<hidden>
所以看看最终的解决方案,对于任何精通 Asterisk 的人来说,实现它真的很简单。
- 3 回答
- 0 关注
- 122 浏览
添加回答
举报