在 Asterisk CLI 中配置命令提示符

在 Asterisk CLI 中配置命令提示符
  1. 我正在尝试设置颜色提示asterisk CLI。在文档中我发现了以下内容:

    %Cn[;n]将终端前景(和可选背景)颜色更改为指定颜色。可以在 include/asterisk/term.h* 中找到完整的颜色列表

    但我找不到颜色代码应该采用什么格式。我尝试了所有可能的排列,但都不起作用:

    ASTERISK_PROMPT="%Cn[COLOR_BLUE] %H: " asterisk -vvvvvvr
    ASTERISK_PROMPT="%Cn[32;128] %H: " asterisk -vvvvvvr
    ASTERISK_PROMPT="%Cn[32;] %H: " asterisk -vvvvvvr
    ASTERISK_PROMPT="%Cn[;32] %H: " asterisk -vvvvvvr
    ASTERISK_PROMPT="%Cn[;COLOR_CYAN] %H: " asterisk -vvvvvvr
    ASTERISK_PROMPT="%Cn[32|128] %H: " asterisk -vvvvvvr 
    

    例如,有人可以告诉我如何使我的星号提示变为红色吗?

  2. 另外,我对 CLI 提示还有另一个问题:

    我在 Debian Wheezy 上使用 Asterisk 11.13。当我在 中时asterisk CLI,我可以使用命令历史记录和“类似 readline”的功能(例如 CTRL+r)进行搜索。但并非所有功能都可用。例如,用于搜索历史记录的“page up”和“page down”的替代映射不起作用。它们在其他所有东西(bash、mysql 等)中都有效

    $ cat /etc/inputrc
    "\e[5~": history-search-forward
    "\e[6~": history-search-backward
    

    有没有办法让它在星号中工作?

答案1

“ASTERISK_PROMPT”是一个环境变量,应在启动 CLI 之前设置以使其生效。

IE

export ASTERISK_PROMPT="%C31%H*CLI%#"
asterisk -r

至于您的具体版本,(Asterisk 11 分支)不显示颜色的原因如下:

  1. 连接到服务器的命令行选项包括“无颜色”标志。
  2. 没有定义“term”环境变量。
  3. 如果 terminfo 数据库存在,并且不包含 max_colors 定义,或者值 = 0。
  4. “term”环境变量不包含下列之一:
    • “xterm”
    • “xterm 颜色”
    • “xterm-256色”
    • “永恒”
    • “vt100”
    • “crt”

如果满足任何这些条件...您将无法获得 vt100 颜色。

此信息直接取自源代码

答案2

关于颜色问题。

  1. 首先要尝试的是:
    • 杀死所有星号:

      killall safe_asterisk

      killall asterisk

    • 设置你的期限:export TERM=xterm-256color

    • 从终端运行星号:(/usr/sbin/asterisk -c路径可能不同)

我确信你会看到它色彩缤纷。

  1. 如果 1. 没问题,那么深入研究 asterisk 如何从系统运行。我遇到的唯一问题是当 asterisk init 脚本是 时/etc/init.d/asterisk,但却使用 systemctl 运行。在我看来,systemctl 不知何故在 asterisk 启动时使用了它自己的 TERM 首选项。但是,我强制执行并添加了COLOR=yes/etc/init.d/asterisk如果您放入此脚本export TERM=xterm-256color,这可能会更加强制,但可用性取决于您。

答案3

要配置“类似 readline”的功能,请查看 libedit 提供的内容,您可以在 editrc 中进行配置(https://manpages.debian.org/jessie/libedit-dev/editrc.5.en.html)。
配置的程序名称应为“星号”(如果您要专门更改此程序的设置)。

相关内容