收藏 分享(赏)

asterisk_phpagi简单开发第一版.doc

上传人:11xg27ws 文档编号:7055572 上传时间:2019-05-04 格式:DOC 页数:3 大小:20.88KB
下载 相关 举报
asterisk_phpagi简单开发第一版.doc_第1页
第1页 / 共3页
asterisk_phpagi简单开发第一版.doc_第2页
第2页 / 共3页
asterisk_phpagi简单开发第一版.doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

1、Asterisk phpagi 开发入门由于本人刚接触 asterisk 开发,水平比较菜,苦苦搜索网上的资料也寥寥无几,搞得本人在开发过程中痛苦无比经过不断尝试,N+1 次的 google 和百度,总算用 agi 实现了一点点功能 在此分享一下我的经历和经验以供新手品鉴,本人水平有限,难免会有写的不周到或错误的地方,欢迎指正。 。首先是大概看了一下 asterisk 未来之路,这个是开发 asterisk 的必须的,这个文档网上有,我就不说什么了,看了后至少了解了 asterisk 开发的简单配置通过 asterisk 未来之路我配置了我人生中第一个拨号规则from-mytestexten

2、= _.,1,Answer()exten = _.,n,Background(tycz_welcome)exten = _Z,1,AGI(test.php,$EXTEN,1) exten = _Z,n,Hangup()exten = _826X,1,AGI(test.php,$EXTEN,0)exten = _826N,n,Hangup()exten = _Z,1,AGI(test.php,$EXTEN,1) -这个表示分组呼叫(比如按了 1)exten = _826X,1,AGI(test.php,$EXTEN,0)-这个表示直接拨分机号$EXTEN是通道变量好,如果你看不懂,不要急,先把

3、asterisk 未来之路多看几遍。 。好吧,我当你看懂了,那么要让你的拨号规则生效,之前你还要做几件事sip.conf 文件里当然也许不在这里面,因为在 sip.conf 文件里会有#include XXX.conf那说明可以把这个配置放到其他配置文件中indisallow=allusername=66687100type=peersecret=66687100qualify=noport=5060nat=yesinsecure=port,invitehost=allow=ulawcontext=from-mytest这个我目前只知道,第一个我们的通信是 sip 协议的,所以要配置 sip.

4、conf 文件in表示所有的呼入。 。然后在in里我们可以知道这个是设置 66687100(总机)被呼叫的时候的规则设置context=from-mytest好了context=from-mytest 表示当有来电呼叫 66687100 时触发 from-mytest 拨号规则from-mystest 在哪里?眼睛向上看。 。好了进入 extensions.conf 的 from-mytest我们看看规则。 。首先是无条件的应答,总机肯定是先无条件应答啦然后是播放欢迎 IVR 和提示来电者操作好,当来电者按了某个键这个时候触发 AGI好了,下面开始讲到了 AGI 了,一般来说我们把 phpag

5、i 接口放在 asterisk 的 agi-bin 目录里然后我们新建一个 test.php,这个 test.php 和 from-mytest 里写的需要一致我们在 test.php 里写下如下代码#!/usr/bin/php q /说明上面这个是 php 脚步的写法, /usr/bin/php 是你的 php 安装目录(这段话是我写的说明,请勿放在 test.php 里)_Z,1,AGI(test.php,$EXTEN)带过来的通道变量的值,获取来电者按了哪一个键$flag = $argv2;/表示是分组还是直接拨分机号$number = $num;if($flag)$url =“http

6、:/XXXXXX/?m=asteriskagi$res = file_get_contents($url);/* 调用远程接口去访问数据库(为了保密就 XXXX 了哈)说一下,这个地方我的思路是这样的,来电者按了 1 假设我们就当它代表 1 组,然后我们去数据库里查出 1 分组下面的空闲分机(我这样说懂吧。 。 )*/if($res)$number = $res;$agi=new AGI;$agi-answer();$agi-verbose($num);$agi-exec_setlanguage(cn);$agi-stream_file(welcome,#);/这个地方播放 IVR,比如说通话

7、我们要录音的(虽然没有录音功能,暂时。 。 )$agi-say_phonetic($number,1234567890*#);/播报工号(比如, XXX 号员工代表为您服务,这里我用分机号了,可以通过上面的接口查出数据库里设置的工号。 。 )$agi-stream_file(operator,#);/前面一个是报数字的,这里是后面的声音,是拼起来的$agi-exec_dial(SIP,$number);/通过接口找到了一个分机,呼叫这个分机,分机响铃/$agi-exec_dials(SIP/8260?最后的/$agi-exec_dials(SIP/8260我说一下:这个是多个分机同时响铃,拨号

8、规则可以存在数据库里,如果你的规则是当前分组下面空闲的分机同时响铃,那么就可以用这个方法 exec_dials郑重说明 exec_dials 这个方法 phpagi 中时不存在的是本人查阅资料在 exec_dial 的基础上改写的function exec_dials($type_identifier, $timeout=NULL, $options=NULL, $url=NULL)/return $this-exec(Dial, trim(“$type_identifier“.$this-option_delim.$timeout.$this-option_delim.$options.$this-option_delim.$url, $this-option_delim);把这个方法放入 phpagi.php 文件里$type_identifier 这个就是多个分机拼接起来的字符串比如 SIP/8821&SIP/8824注意&前后是没有空格的。好把好了,简单的 phpagi 实现呼叫目前我就做到这里了后面的需求还有很多,我会不定时更新,希望能帮到新人老手勿喷。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报