4

每次接听电话(由使用 sip 电话的人)时,我都需要运行 perl 或 php 脚本。

我正在使用 FreePBX,该系统将用于管理扩展,所以无论我做什么,我都需要确保从 FreePBX 界面添加新扩展或修改扩展不会清除调用脚本的部分。

该人可能直接拨打分机,通过振铃组或 IVR 到达分机,或者他们可能已被转移。该脚本需要在所有情况下运行。

我知道我需要在其中一个配置文件中添加一行:

exten => s,n,System(myperlscript.pl "caller=${ARG1} exten=${ARG2} 被调用=${ARG3}")

这只是一个示例代码,我很可能会弄清楚那部分。

问题是我不知道将其放入哪个配置文件,或者将其放入该文件的何处。

4

1 回答 1

0

我想通了,所以我会把答案放在这里,以防它帮助任何人。

在 FreePBX 网络管理员中有两个文件

/libararies/extensions.class.php /modules/core/functions.inc.php

在 extensions.class.php 我添加了以下类

class ext_crmagi extends extension {
    var $pri;
    var $ext;
    var $context;

function ext_crmagi($pri, $ext = false, $context = false) {
    if ($context !== false && $ext === false) {
        trigger_error("\$ext is required when passing \$context in ext_crmagi::ext_crmagi()");
    }

    $this->pri = $pri;
    $this->ext = $ext;
    $this->context = $context;
}

function incrementContents($value) {
    $this->pri += $value;
}

function output() {
    return 'AGI(myphpscript.php, ${CALLERID(num)}, ${CALLERID(name)}, ${EXTEN}, ${SIPCALLID}, ${UNIQUEID})' ;
}
}

我添加的 in functions.inc.php

$ext->add('ext-local', $exten['extension'], '', new ext_crmagi('',''));

然后,无论何时您使用 Web 界面添加扩展,它也会添加到 agi 脚本中,从而允许您使用 php 与星号进行交互。

于 2012-10-27T21:34:34.980 回答