扩展Asterisk1.8.7 CLI接口教程

需积分: 0 0 下载量 128 浏览量 更新于2024-08-05 收藏 142KB PDF 举报
"这篇文章主要介绍了如何扩展Asterisk 1.8.7的CLI接口,通过创建一个新的插件目录和编写相应的C代码来实现。扩展的目的在于满足更复杂的业务需求,例如与数据库交互,比如使用SQL Server存储录音记录。文章详细讲解了扩展过程,包括建立目录结构、配置Makefile、编写CLI插件代码等步骤。" 在Asterisk系统中,CLI(命令行界面)和AMI(Asterisk管理接口)通常用于管理和配置拨号方案。然而,对于涉及数据库操作或需要动态交互的高级功能,这些接口可能不够用。Asterisk的插件机制允许开发者通过源代码扩展其功能,以适应更复杂的需求。 扩展Asterisk CLI接口的第一步是建立一个新的插件目录。在本例中,作者创建了一个名为`addons_test`的文件夹,用于存放扩展代码。接着,将`apps`目录下的`Makefile`复制到`addons_test`,以便遵循Asterisk的构建规则。然后,需要编辑Asterisk主目录的`Makefile`,在`MOD_SUBDIRS`变量中添加`addons_test`,确保编译时会包含这个新的插件目录。 接下来是编写CLI插件代码。在`addons_test`目录下创建两个文件:`app_testApp20120605.c`和`app_testApp20120605.exports`。前者是实际的C语言源代码,后者定义了动态库的导出。`app_testApp20120605.exports`文件可以参照`apps`目录中的其他`.exports`文件进行设置,主要目的是告诉Asterisk这个插件提供了哪些接口。 `app_testApp20120605.c`文件是核心,需要包含必要的头文件,如`asterisk.h`、`module.h`和`cli.h`,以利用Asterisk提供的API。定义应用名称`app_testApp`,然后编写模块加载函数`testApp_exec`。这个函数会在CLI命令执行时被调用,可以实现自定义的功能,如与数据库交互或者处理特定业务逻辑。 在实际开发中,`testApp_exec`函数可以根据需求实现各种功能。例如,它可能连接到SQL Server数据库,查询或存储录音记录。此外,还可以通过`CLI_REGISTER_COMMAND`宏注册新的CLI命令,使得用户可以通过Asterisk的CLI界面调用这个扩展功能。 总结来说,扩展Asterisk 1.8.7的CLI接口是通过创建新的插件目录,编写C代码并配置Makefile来实现的。这种方式允许开发者根据业务需求定制Asterisk的功能,增强其与数据库或其他系统的集成能力。这在处理复杂业务流程、实现自动化或提供更高级的服务时尤其有用。