星号agi无法正常工作

时间:2016-12-15 10:57:23

标签: php asterisk agi freepbx

我正在使用简单的AGI脚本,当来电响应运行脚本时。 但是没有用。如何正确运行我的脚本?

对不起我的英语。

这是代码:

extensions_additional.conf

<dependency>
    <groupId>org.glassfish.jersey.media</groupId>
    <artifactId>jersey-media-jaxb</artifactId>
    <version>2.17</version>
</dependency>

拨打-answered.php:

[macro-auto-blkvm]

include => macro-auto-blkvm-custom

exten => s,1,Set(__MACRO_RESULT=)    
exten => s,n,DBDel(${BLKVM_OVERRIDE})

exten => s,n,AGI(call-answered.agi,${CALLERID(ANI)},${CHANNEL})   

控制台输出:

#!/usr/bin/php -q
<?php
include("phpagi.php");
$agi = new AGI();
$agi->verbose("------------------------------------------");
$ani = $agi->request['agi_callerid'];
$agi->noop("My CalleID: <<<<<<<=".$ani);

$user = 'root';
$pass = 'eLaStIx.2oo7';
$db = new PDO('mysql:host=localhost;dbname=call', $user, $pass);

$query = $db->prepare("INSERT INTO deneme SET
gsm = ?,
agent = ?");
$insert = $query->execute(array("123123", "213123"));

由于

2 个答案:

答案 0 :(得分:1)

您确定将文件命名为call-answered.php吗?您在拨号方案中将其称为call-answered.agi,看起来不一致。尝试将拨号方案更改为call-answered.php

检查.php文件是否具有读取和执行文件权限。运行chmod 755 /var/lib/asterisk/agi-bin/*.php进行设置。

同时检查它们是否位于正确的目录中(默认为/ var / lib / asterisk / agi-bin),或指定拨号方案中的完整路径。把它扔在引号中是为了安全:

exten => s,n,AGI('/var/lib/asterisk/agi-bin/call-answered.php',${CALLERID(ANI)},${CHANNEL})

您可以在Official AGI DocsVoip Info (unofficial) page找到更多帮助。

修改 您还可以通过运行以下命令直接从PHP cli运行脚本:

php /var/lib/asterisk/agi-bin/call-answered.php

反复按Enter键以模拟与Asterisk的通信。如果存在任何权限或脚本错误,您通常会在此cli会话中看到这些错误。如果仍然无效,请使用php的error_log()命令将一些有用的信息写入日志,以便判断脚本是否正在运行。

答案 1 :(得分:-2)

这意味着您的脚本中存在语法错误或权限问题。 或者也许只是路径上没有脚本。

即它根本没有回应。