如何写Asterisk模块(3)

在该部分你将看到如何实现Asterisk CLI命令。对Asterisk来说,CLI是尤为重要的,无论是在进行配置、显示状态以及调试都会用到。该部分将对如何写Asterisk模块(2)的基础上进行添加代码。

       首先我们需要包含定义CLI命令接口的头文件。

       #include “asterisk/cli.h”

       我们要实现的命令是echo,用于回显,不过只回显第一个参数。用于实现CLI回显的部分代码如下,稍后解释。

static char *handle_cli_echo(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)

 

{
    switch (cmd) {
    case CLI_INIT:
        e->command = "echo";
        e->usage =
            "Usage: echo <stuff>/n"
            "       Print back the first argument./n"
            "Examples:/n"
            "       echo foo/n"
            "       echo /"multiple words/"/n"
            "";
        return NULL;
    case CLI_GENERATE:
        return NULL;
    }
 
    if (a->argc == e->args) {
        ast_cli(a->fd, "You did not provide an argument to echo/n/n");
        return CLI_SHOWUSAGE;
    }
 
    ast_cli(a->fd, "%s/n", a->argv[1]);
 
    return CLI_SUCCESS;
}

首行定义的CLI处理接口符合CLI命令行处理的函数原型。ast_cli_entry包含CLI命令处理的静态信息,比如该命令是怎么使用的,命令的帮组信息如何?ast_cli_args包含参数信息。

static char *handle_cli_echo(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)

CLI_INIT用户返回使用信息;CLI_GENERATE用户自动补全。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值