如何将应用程序写入 FreePBX



我在freepbx中看到了很多模块,并试图理解它们是如何工作的,但没有成功。

我无法理解他们如何拨打电话以及何时拨打电话,以便他们打电话并工作吗

例如,假设我编写了在进行调用时打印"CALL IS MADE"的模块我有安装.php和卸载.php和模块.xml和function.inc.php以及所有需要的文件我在 Function.inc 中有下一个代码.php

function callmade(){agi->Verbose("Call is Made");}

现在我知道我可以在 extension_freepbx.conf(而不是在 extension.conf)中手动创建拨号计划来调用我的 php,但如何使 freepbx 自动执行此操作(像所有模块一样)

对不起我的英语给帮手的感谢

install.phpfunctions.inc.php的引用已经过时了,这不再是现代 FreePBX 模块的构建方式。所有工作都在 FreePBXmodules 命名空间中的类中完成。所以在你的模块目录中,你将有这个类文件:

我的模块.class.php

<?php
namespace FreePBXmodules;
class Mymodule extends FreePBXFreePBX_Helpers implements FreePBXBMO
{
    public function install()
    {
        // here is the install stuff
    }
    public function uninstall()
    {
        // here is the uninstall stuff
    }
    public function myDialplanHooks()
    {
        // signal our intent to hook into the dialplan
        return true;        
    }
    public function doDialplanHook(&$ext, $engine, $pri)
    {
        // this is run when the PBX is reloaded
        $context = "from-internal";
        $extension = "s";
        $ext->splice($context, $exten, "n", new ext_log(1, "Call is made"));    
    }
}

现在,我不知道这是否有效。我对 FreePBX 模块非常熟悉,但通常不会挂接到拨号计划。但它会让你知道从哪里开始。看看 FreePBX 提供的模块,并深入研究代码。请记住,许多模块仍在使用上面提到的遗留文件,但它们已被弃用,并将在未来的版本中删除。

如果没有星号和 freepbx 内部的知识,就无法为 freepbx 编写应用程序。

freepbx wiki 网站上有手册。

你应该明白,freepbx 除了星号的 CREATE 配置之外什么都不做。

关于星号的配置,在大多数模块中,它位于 functions.inc 中.php在 modulename_config 等函数中。

大多数freepbx根本不使用agi。实际上,由于历史原因,只有那些对星号经验不足的人才会使用,并被包含在freepbx中。大多数 agi 都可以通过拨号计划重写,即使代码更少。

相关内容

  • 没有找到相关文章

最新更新