使用PHP编程Asterisk PBX?

时间:2010-07-23 03:23:38

标签: php voip asterisk telephony pbx

好的我安装了星号,现在我想知道

  1. 如何使用PHP编写星号PBX?
  2. Asterisk是否有我可以使用的API?
  3. 请提供我如何执行以下方案的基本示例

    1. 将电话号码发送至星号
    2. 星号拨打电话号码

8 个答案:

答案 0 :(得分:8)

您似乎是星号的新手,请转到星号文档并查看本书

Asterisk Gateway Interface 1.4 & 1.6 Programming

答案 1 :(得分:4)

您也可以尝试PAGI或PAMI,两者都是PHP 5.3+框架,分别使用AGI和AMI,您可以在http://marcelog.github.com/PAGIhttp://marcelog.github.com/PAMI找到它们。

它们是面向OOP的(PAMI是事件驱动的,所以只要在星号中发生有趣的事件就会调用你的监听器)

答案 2 :(得分:2)

您可能正在考虑使用Asterisk网关接口(http://www.voip-info.org/wiki/view/Asterisk+AGI+php),但您最好通过Manager界面的“originate”操作来实现。看看voip-info.org中的PHP示例:http://www.voip-info.org/wiki/view/Asterisk+manager+Examples

答案 3 :(得分:2)

您可以将AMI用于您选择的不同语言

答案 4 :(得分:2)

php可以使用AGI来编程asterisk pbx

答案 5 :(得分:1)

如果要从外部应用程序生成传出呼叫,也可以使用Call Files

如果这样做,请确保将mv文件放入假脱机目录,不要使用cp!

答案 6 :(得分:1)

使用php agi编程星号pbx非常简单。

检查agi文档

答案 7 :(得分:0)

如果您尝试做的所有事情都是生成呼叫,那么呼叫文件路由就是完全可行的方法。我这样做是为了用第二部PBX锤击电话系统。

这是一个例子。假设我想拨打713-590-1234,当它连接时我希望它播放消息和挂断。

首先在拨号计划中创建菜单,以便PBX在拨打号码后有一个发送呼叫的地方。

[my-menu]
exten => s,1,Noop()
exten => s,n,Playback(recorded-message)
exten => s,n,Hangup()

然后生成一个调用文件并将其放在/ var / spool / asterisk / monitor目录中。正如其他人所指出的那样,你必须在其他地方的磁盘上创建文件,然后mv(移动)它到位,这样就不会拾取部分文件。

示例调用文件可能如下所示。

Channel: SIP/myprovider/7135901234
MaxRetries: 2
RetryTime: 60
WaitTime: 30
Context: my-menu
Extension: s
Priority: 1

写一个将这些调用放入/ var / spool / asterisk / monitor文件夹的PHP脚本没什么大不了的。为了敲击PBX,我在for循环中生成这些,以生成尽可能多的调用,并且睡眠记录的长度。