最简单的方法是什么?以及如何实施?
我想到了类似的东西:
- 我向网络服务器请求一个页面
- php 向星号发送一个要拨打的号码(php 和星号在同一台机器上运行)
- Asterisk 拨打电话
或者
- 一个 php sip 客户端注册到远程星号服务器
- Php sip 客户端将要拨打的号码发送给 asterik
- 电话铃声
我不在乎我能不能听到什么,只要它响起就足够了
调用文件
最简单的方法是生成调用文件。Asterisk 具有通过假脱机目录发起呼叫的功能。
https://wiki.asterisk.org/wiki/display/AST/Asterisk+Call+Files
提示和注意事项:
您必须在单独的目录中创建调用文件并将其移动(不要使用复制,因为星号会立即解析文件,但移动是安全的)到假脱机目录。
调用文件必须由用户拥有,星号运行为
星号(文件上的 utime() )检查修改时间戳,如果修改的时间戳在未来,则安排调用它
AMI - Asterisk 管理器界面
也可以通过脚本 (AMI) 发起呼叫。您必须在 manager.conf 中设置登录名(即用户名、密码)。在端口 5038 的星号服务器 ip 上使用 Telnet 测试 AMI:
Action: Login
Username: username
Secret: password
Action: Originate
Channel: SIP/123
Context: default
Exten: 012345678
Priority: 1
Callerid: AMICall
Action: Logoff
您也可以使用 PHP-AMI(附带PHP-AGI)拨出。
manager.conf的安全说明:
---------------------------- SECURITY NOTE -------------------------------
; Note that you should not enable the AMI on a public IP address. If needed,
; block this TCP port with iptables (or another FW software) and reach it
; with IPsec, SSH, or SSL vpn tunnel. You can also make the manager
; interface available over http/https if Asterisk's http server is enabled in
; http.conf and if both "enabled" and "webenabled" are set to yes in
; this file. Both default to no. httptimeout provides the maximum
; timeout in seconds before a web based session is discarded. The
; default is 60 seconds.
;
AJAM - 异步 Javascript Asterisk Manager
AJAM 是一个 Web 服务器,您可以启用并使用它通过 http 与 Asterisk Manager Interface (AMI) 进行通信。