2

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

我研究了 PHPARI,但我缺少文档。我只需要它走一条路,据我了解,PHPARI 和类似的库似乎都专注于双向走。

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

FreePBX 版本:13.0.83 星号版本:13.7.1

4

1 回答 1

4

看看 Asterisk AGI,您应该能够通过拨号计划 (extensions.conf) 编写脚本并包含任何变量,如呼叫者 ID。

我已经从我的 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该文件中使用调用者 ID 进行更新。

在我的 php 脚本中,我执行了以下操作;

#!/usr/bin/php

<?php
    $query = $argv[1];
    $file = fopen("/tmp/phone", "w");
        fwrite($file,$query);
        fclose($file);
?>
于 2016-03-17T17:50:24.180 回答