zoukankan      html  css  js  c++  java
  • 给asterisk写app供CLI调用

    环境:CentOS6.2 + Asterisk 1.8.7.1

    一、添加源文件

    复制app_verbose.capp_testApp.c

    复制app_verbose.exportsapp_testApp.exports

    主要是修改一些标识,编译不会出错就行,这里列出我进行的主要修改。

    1、添加头文件

    #include "asterisk/cli.h"

    2、修改变量

    static char *app_testApp = "testApp";
    static char *app_testApplog = "testAppLog";

    3、在load_module中进行注册

    res |= ast_register_application_xml(app_testApp, testApp_exec);

    4、添加功能函数

    static int testApp_exec(struct ast_channel *chan, const char *data)
    {
            ast_verb(2,"testApp_exec : %s\r\n",data);
            return0;
    }

    5、添加cli调用接口

    注册commande->command = "testApp {print}";

    调用command

    if (!strcasecmp(a->argv[1], "print")) {

                    testApp_exec(chan, a->argv[2]);
    }
    

    6、在unload_module中进行反注册

    res = ast_unregister_application(app_testApp);

    二、编译并安装

    asterisk -rx "core stop now" && make && make install && asterisk && asterisk -rvvvvvvvvvvvvv 

    三、测试

    运行asterisk -rvvvvvvvv进入CLI模式

    输入:core show help testApp

    会输出帮助文档

    输入:core show help testApp "something to test!"

    会输出:something to test! 

    好,就这些了,希望对你有帮助。

  • E-Mail : Mike_Zhang@live.com
  • 转载请注明出处,谢谢!
查看全文
  • 相关阅读:
    解决Python错误-----SSL: CERTIFICATE_VERIFY_FAILED
    SpringBoot性能优化
    解决WARN:No URLs will be polled as dynamic configuration sources.
    浅析如何解决终端输入长命令不换行覆盖(Docker容器内输入长命令折行覆盖)问题:如何设置docker容器tty终端窗口大小-Linux stty命令设置串口终端行列数
    shell中的传递参数$0 / $n、shell运算符(算术/关系/布尔/字符串/文件测试)、echo 命令输出字符串、printf 命令输出格式化的字符串、test 命令检查某条件是否成立
    【转】Grafna学习随记
    【转】使用InfluxDB的连续查询解决聚合性能问题
    【转】TDengine踩坑随记(最后一次更新:2021-4-7 20:30)
    【转】tdengine的更新功能,呼声最高的数据更新功能来了,用户需要什么,我们就开源什么
    【转】Go mod常用与高级操作
  • 原文地址:https://www.cnblogs.com/MikeZhang/p/asteriskCLIAppTest20120414.html
  • Copyright © 2011-2022 走看看