使用FreePBX和Asterisk调用PHP脚本

时间:2016-03-17 14:46:47

标签: php asterisk freepbx

所以我通过FreePBX服务器设置了VOIP系统。我想拥有它,以便当FreePBX接听新的呼叫时,星号会将呼叫者ID和呼叫ID发送到php脚本,然后PHP脚本将使用该信息来收集与该呼叫者ID相关的帐户的票证信息。 。然后,它将使用找到的信息更新数据库。当用户接听电话时,我想将用户的分机和呼叫ID发送到另一个php脚本,并使用新信息更新数据库。

我已经研究过PHPARI,但是我缺乏文档。我只需要一种方式,PHPARI和类似的库似乎专注于从我所理解的两种方式。

我的互联网搜索没有任何结果,所以我向你们寻求帮助和指导。

FreePBX版本:13.0.83 星号版本:13.7.1

1 个答案:

答案 0 :(得分:1)

看看Asterisk AGI你应该能够通过拨号计划(extensions.conf)编写脚本,并包含任何vars,如来电显示。

我已经从我的extension.conf做了一个快速测试;

s用于捕获上下文中未使用被叫号码的位置。

exten => s,1,Verbose(Incoming call from Sip line CallerID=${CALLERID(all)})
exten => s,2,AGI(phone.php,${CALLERID(all)})
exten => s,3,Goto(internal-ext,3001,1)

我的phone.php位于/var/lib/asterisk/agi-bin/phone.php 将您的变量传递为script.php,<var>,<var>...

不要使用script.php?callNum=,因为它仅对Web应用程序有效,这应该被视为命令行。

该脚本写入/tmp/phone的文件,该文件使用呼叫来电显示更新。

在我的php脚本中,我做了以下内容;

#!/usr/bin/php

<?php
    $query = $argv[1];
    $file = fopen("/tmp/phone", "w");
        fwrite($file,$query);
        fclose($file);
?>