3

最简单的方法是什么?以及如何实施?

我想到了类似的东西:

  1. 我向网络服务器请求一个页面
  2. php 向星号发送一个要拨打的号码(php 和星号在同一台机器上运行)
  3. Asterisk 拨打电话

或者

  1. 一个 php sip 客户端注册到远程星号服务器
  2. Php sip 客户端将要拨打的号码发送给 asterik
  3. 电话铃声

我不在乎我能不能听到什么,只要它响起就足够了

4

1 回答 1

2

调用文件

最简单的方法是生成调用文件。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) 进行通信。

于 2013-02-23T14:53:22.257 回答