在网页上发起呼叫,接通或是未接通的情况下,都需要挂断,那如何实现呢?翻看 官方文档 有两种实现形式
Syntax
Action: Hangup
ActionID: <value>
Channel: <value>
Cause: <value>
Arguments
Channel - The exact channel name to be hungup, or to use a regular expression, set this parameter to: /regex/
Example exact channel: SIP/provider-0000012a
Example regular expression: /^SIP/provider-.*$/
第一种是具体的 channel
值,这个可以通过 agi
获取 agi_channel
得到,然后以分机为键,存入 redis
,之后挂断的时候再取出即可实现。
第二种是使用正则,这个最简单,只需 '/^SIP/444-.*$/'
#!/usr/bin/php -q
<?php
include "phpagi-asmanager.php";
$ams = new AGI_AsteriskManager();
$ams->AGI_AsteriskManager("ami.ini");
$result = $ams->connect();
$res = $ams->Hangup('/^SIP/444-.*$/');
var_dump($res); //这个是查看输出信息的调试代码