Asterisk 调试AGI调用php
  Y8XIq1u6ceQW 2023年11月02日 73 0

Asterisk 调试AGI调用php

在这里为了方便调试,修改一下拨号计划Dialplan,定义一个快捷号*11直接调起test1.php进行测试,具体如何做呢?

拨号计划Dialplan

asterisk的配置在/etc/asterisk,我们知道extensions.conf就是最基本的配置了

一般新建立的分机都是用的from-internal,例如:

[1001]
type=endpoint
aors=1001
auth=1001-auth
tos_audio=ef
tos_video=af41
cos_audio=5
cos_video=4
allow=ulaw,alaw,gsm,g726,g722
context=from-internal
callerid=1001 <1001>

打开extensions.conf,可以看到类似于下方的配置 ,from-internal-custom配置没有找到,这里我们在extensions_custom.conf文件上加上[from-internal-custom]自已想定义*11键

#include extensions_override_freepbx.conf
#include extensions_additional.conf
#include extensions_custom.conf

[from-internal]
include => from-internal-noxfer
include => from-internal-xfer
include => bad-number ; auto-generated
exten => h,1,Macro(hangupcall)

[from-internal-noxfer]
include => from-internal-noxfer-custom
include => from-internal-noxfer-additional ; auto-generated
exten => h,1,Macro(hangupcall)

[from-internal-xfer]
include => from-internal-custom
include => from-internal-additional ; auto-generated
exten => h,1,Macro(hangupcall)

在extensions_custom.conf 加入如下内容,以便于测试

[from-internal-custom]
exten => *11,1,Answer
exten => *11,2,Background(welcome)
exten => *11,3,DeadAGI(test1.php,1001)
exten => *11,4,Hangup

重启asterisk服务

service asterisk restart

改完拨号计划,记得重新加载配置,这里用重启asterisk服务的方式来完成

Asterisk 调试AGI调用php_asterisk

创建test1.php

在/var/lib/asterisk/agi-bin目录下创建test1.php

内容为

#!/usr/bin/php -q
<?php
set_time_limit(60);
require("phpagi.php");
$agi = new AGI();
$agi->verbose("get argv begin");
//接收参数1
$data1=$argv[1];
$agi->verbose($data1);
$agi->verbose("get argv end");
//$agi->say_number($data1);
  $agi->say_digits($data1);
$agi->verbose("test get  CDR(channel) begin");
//通道参数
$cdr1=$agi->get_variable("CDR(channel)");
$cdr1Data1=$cdr1["data"];
$agi->verbose($cdr1Data1);
$agi->verbose("test get  CDR(channel) end");
$agi->verbose("test get_data enter begin");
//测试
$res_dtmf=$agi->get_data("evaluate",3000,1);
$res_num=$res_dtmf["result"];
$agi->verbose("your enter is ".$res_num);
$agi->verbose("test get_data enter end");
$agi->verbose("test say_digits begin");
$agi->say_digits($res_num);
$agi->verbose("test say_digits  end");
//$agi->hangup(); 
?>

打开asterisk控制台

asterisk -rvvvvvv
agi set debug on

Asterisk 调试AGI调用php_freepbx_02

拨号验证

在分机上拨*11,即能看到类似于下方的输出调试信息

Asterisk 调试AGI调用php_asterisk_03




【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

Y8XIq1u6ceQW