PHP agi 编写测试

部分代码来源于网络,经过调试后写在此:

/etc/asterisk/phpagi.conf  配置内容:

[phpagi]
debug=true //是否打开debug,一般生产环境关闭
error_handler=true
tempdir=/var/spool/asterisk/tmp/

[asmanager]
server=10.1.0.7
port=5038
username=astman
secret=astman

[fastagi]
setuid=true
basedir=/var/lib/asterisk/agi-bin/

 

 

 

#!/usr/bin/php -q
<?php
set_time_limit(60);
ob_implicit_flush(false);
include("phpagi.php");
$agi=new AGI;
$agi->answer();
$agi->verbose('HELLO WORLD!!!!!!');
$agi->stream_file('welcome','#'); //播放语音流媒体,按#号终止播放
$agi->say_digits('1001','1234567890*#');
$agi->hangup();

?>

 

简单IVR流程:

 

#!/usr/bin/php -q
<?php
set_time_limit(60);
ob_implicit_flush(false);
include("phpagi.php");
$agi=new AGI;
$agi->answer();
$prompt_enter_dest="welcome";
$res_dtmf=$agi->get_data($prompt_enter_dest,1000,1); //超时1000,最多1个数字
$res_num=$res_dtmf["result"];
$agi->say_digits($res_num);
  if($res_num=="1")
    {
     $agi->verbose('You enter 1');
    }
  elseif($res_num=='2')
    {
      $agi->verbose('You enter 2');
    }
   else
    {
     $agi->stream_file('vm-goodbye','#');
    }
$agi->hangup();

?>

 如果带参数的方式调用AGI则按照如下规则:

调用方法:

exten => s,1,AGI(myagi.php,${exten},${mID})

在myagi.php 中则使用如下的方法来获取:

$argv[1] 对应${exten}

$argv[2] 对应${mID}

 

阅读更多
换一批

没有更多推荐了,返回首页