使用Asterisk通过网络服务器拨打电话

时间:2013-02-23 14:11:09

标签: php asterisk

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

我想的是:

  1. 我向网络服务器请求了一个页面
  2. Php向星号发送要拨打的号码(php和星号在同一台机器上运行)
  3. Asterisk拨打电话
    1. php sip客户端注册到远程星号服务器
    2. Php sip客户端向asterik发送要拨打的号码
    3. 电话响起
    4. 我不在乎我是否能听到某些东西,它足以让它响起来

1 个答案:

答案 0 :(得分:2)

致电文件

最简单的方法是生成一个呼叫文件。 Asterisk具有通过假脱机目录启动呼叫的功能。

https://wiki.asterisk.org/wiki/display/AST/Asterisk+Call+Files

提示和注释:

  • 您必须在单独的目录中创建调用文件 并移动它(不要使用copy,因为asterisk会立即解析文件,但移动是安全的)到假脱机目录中。

  • 调用文件必须由用户asterisk以

  • 运行
  • 星号(文件上的utime())检查修改时间戳,如果修改后的时间戳是将来的话,则在其上安排调用

AMI - Asterisk Manager界面

也可以initiate a Call over a Script (AMI)。 您必须在manager.conf中设置登录名(即用户名,密码)。 使用Telnet在端口5038的星号服务器ip上测试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星号管理器

AJAM是一个Web服务器,您可以通过http启用并使用它与Asterisk Manager Interface(AMI)进行通信。