在实现自动呼叫的示例中我使用的是Asterisk manager API中的Originate方法,该方法在phpagi的中。具体定义如下:(英文我就不解释了,我英文很水)

/**

* Originate Call

*

* @link http://www.voip-info.org/wiki-Asterisk+Manager+API+Action+Originate

* @param string $channel Channel name to call

* @param string $exten Extension to use (requires Context and Priority)

* @param string $context Context to use (requires Exten and Priority)

* @param string $priority Priority to use (requires Exten and Context)

* @param string $application Application to use

* @param string $data Data to use (requires Application)

* @param integer $timeout How long to wait for call to be answered (in ms)

* @param string $callerid Caller ID to be set on the outgoing channel

* @param string $variable Channel variable to set (VAR1=value1|VAR2=value2)

* @param string $account Account code

* @param boolean $async true fast origination

* @param string $actionid message matching variable

*/

function Originate($channel,

$exten=NULL, $context=NULL, $priority=NULL,

$application=NULL, $data=NULL,

$timeout=NULL, $callerid=NULL, $variable=NULL, $account=NULL, $async=NULL, $actionid=NULL)

{

$parameters = array(Channel=>$channel);

if($exten) $parameters[Exten] = $exten;

if($context) $parameters[Context] = $context;

if($priority) $parameters[Priority] = $priority;

if($application) $parameters[Application] = $application;

if($data) $parameters[Data] = $data;

if($timeout) $parameters[Timeout] = $timeout;

if($callerid) $parameters[CallerID] = $callerid;

if($variable) $parameters[Variable] = $variable;

if($account) $parameters[Account] = $account;

if(!is_null($async)) $parameters[Async] = ($async) ? true : false;

if($actionid) $parameters[ActionID] = $actionid;

return $this->send_request(Originate, $parameters);

}

下面是服务端的简单代码(很简单我只是实现执行该文件自动拨号,对方接听后会听到 hello world 的语音)

ami.php

#!/usr/bin/php -q

include "phpagi-asmanager.php";

$ams = new AGI_AsteriskManager();

$ams->AGI_AsteriskManager("ami.conf");

$result = $ams->connect();

$res = $ams->Originate(sip/8001,8001,from-internal,1,Playback,hello-world,30000,192.168.1.112);

var_dump($res); //这个是查看输出信息的调试代码

?>

ami.conf文件是访问API的验证文件:内容如下:

[asmanager]

server=127.0.0.1 ; server to connect to

port=5038 ; default manager port

username=admin ; username for login

secret=123456 ; password for login

该文件的内容要和asterisk内的/etc/asterisk/manager.conf 文件中的用户密码相同 ,以上两个文件我是放在 /var/spool/asterisk/outgoing/ 目录中的

(要给执行的权限)

以上编写完成之后在服务器上直接运行就可以呼叫拨号了:

执行./ami.php

各位看官可以自己扩展一下,比如通过访问网址来传递呼叫参数!或者通过某些程序自动执行该程序!我只想把这个用到服务器监控上面,不用再使用旧的短信提示,如果宕机就直接拨负责人的电话,接通之后自动拨放录音,还要循环播放,让他不知道都难!

php开发自动拨号,使用Asterisk manager API实现自动拨号相关推荐

  1. Asterisk manager API(AMI)文档(中文版)

    Asterisk控制接口(AMI)允许管理客户端程序连接到一个asterisk实例并且可以通过TCP/IP流发送命令或读取事件.这在试图跟踪asterisk的状态或其中的电话客户端状态时很有用,AMI ...

  2. HTML5自动生成相框,HTML5拖放API实现自动生成相框功能

    实现功能: 将桌面图片拖入指定地方,生成相框和相关信息. 相框需要自己配置,设置为背景,在CSS中设置. 效果如图: html部分: H5拖放API之图片相框效果 > 请将图片拖放至此处 CSS ...

  3. windows api中文文档_Web服务开发:Spring集成Swagger,3步自动生成API文档

    目录: 1,Spring Boot集成Swagger 2,Swagger接口文档页面 3,常见问题和解决方法 在Sping开发REST接口服务时,API文档是不可缺少的一个重要部分.Swagger框架 ...

  4. swagger 修改dto注解_Web服务开发:Spring集成Swagger,3步自动生成API文档

    目录: 1,Spring Boot集成Swagger 2,Swagger接口文档页面 3,常见问题和解决方法 在Sping开发REST接口服务时,API文档是不可缺少的一个重要部分.Swagger框架 ...

  5. 微服务架构开发实战:如何实现微服务的自动扩展?

    微服务架构开发实战:如何实现微服务的自动扩展? 程序员高级码农II 2020-09-25 07:25:00 如何实现微服务的自动扩展 前面讲了一些关于自动扩展的理论知识,但如何实现自动扩展,并不是三言 ...

  6. 微信小程序开发系列六:微信框架API的调用

    微信小程序开发系列教程 微信小程序开发系列一:微信小程序的申请和开发环境的搭建 微信小程序开发系列二:微信小程序的视图设计 微信小程序开发系列三:微信小程序的调试方法 微信小程序开发系列四:微信小程序 ...

  7. Senparc.Weixin.MP SDK 微信公众平台开发教程(十六):AccessToken自动管理机制

    在<Senparc.Weixin.MP SDK 微信公众平台开发教程(八):通用接口说明>中,我介绍了获取AccessToken(通用接口)的方法. 在实际的开发过程中,所有的高级接口都需 ...

  8. Qt开发北斗定位系统融合百度地图API及Qt程序打包发布

    Qt开发北斗定位系统融合百度地图API及Qt程序打包发布 1.上位机介绍 最近有个接了一个小型项目,内容很简单,就是解析北斗GPS的串口数据然后输出经纬度,但接过来觉得太简单,就发挥了主观能动性,增加 ...

  9. FL2440 3G上网卡拨号上网,并实现mdev自动挂载

    ___________________________________ 主机操作系统:Centos 6.5 交叉编译器环境:arm-linux-gcc-4.5.4 开发板平台: FL2440     ...

最新文章

  1. 《编程匠艺》读书笔记之四
  2. 期末复习、化学反应工程科目(第一章)
  3. 30/100. Queue Reconstruction by Height
  4. nagios监控系统搭建!!
  5. mysql验证身份证号正确_通过SQL校验身份证号码是否正确
  6. [Ceoi2010]Pin
  7. autocad python二次开发_基于Python AutoCAD ActiveX 二次开发,pyautocad应用技术
  8. ElementUI:nav收起后点击后出现黑色边框
  9. python科学计算第三版-python科学计算pdf下载
  10. 教育学外文文献是哪里找的?
  11. EXCEL电子档色环电阻计算器
  12. 《那些年啊,那些事——一个程序员的奋斗史》六
  13. 洛谷P3709 大爷的字符串题 莫队
  14. windows电脑提醒功能,定时打卡
  15. C++校招面试题合集
  16. 微信小程序拼图游戏(有效果图)
  17. 记录一次chown -R 777 /误操作导致vultr utunbu服务器被迫销毁
  18. IPv6的TSO/GRO/GSO及其Linux实现的不妥
  19. 青海大学计算机系大三课程表,青海大学计算机系文体部工作计划.doc
  20. BUUCTF-web极客大挑战

热门文章

  1. Jacobi迭代求矩阵特征值和特征向量+C代码
  2. mysql b+树能存多少条数据?b+树每层有多少分支?
  3. Python实现Word文档标题格式判断
  4. 苹果mac休眠快捷键_只有Mac上才有的免费软件清单,个个好用到爆!
  5. 基于Python的加权平均融合实现图像全景拼接且去除缝隙
  6. 【sfu】开启 rtp头扩展的extmap-allow-mixed模式
  7. 撸猫游戏已洗牌,传统游戏将上链
  8. 《R语言数据挖掘》读书笔记:一、预备知识
  9. 关于课程及课程设计的后续安排
  10. Java 学习 Day17 多线程