I am trying to set up color prompt in
asterisk CLI. In the documentation I have found this:
%Cn[;n]Change terminal foreground (and optional background) color to specified. A full list of colors may be found in include/asterisk/term.h*
But nowhere could I find what format the color code should be. I have tried all possible permutations, none of them works:
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
can somebody please tell me how to make my asterisk prompt red, for example?
Also, I have another issue with the CLI prompt:
I am using Asterisk 11.13 on Debian Wheezy. When I am in
asterisk CLI, I can use command history and "readline-like" functions such as CTRL+r to search. But not all functions are available. For example, the alternate mappings for "page up" and "page down" to search the history do not work. They work in everything else (bash, mysql, ..)
$ cat /etc/inputrc "\e[5~": history-search-forward "\e[6~": history-search-backward
is there a way to make it work in asterisk ?
The "ASTERISK_PROMPT" is an environment variable and should be set prior to starting the CLI for it to take affect.
export ASTERISK_PROMPT="%C31%H*CLI%#" asterisk -r
As for your specific version, (Asterisk 11 branch) The reasons for not displaying colors is as follows:
- The command-line options to connect to the server includes the "no-color" flag.
- No "term" environment variable is defined.
- If the terminfo database exists, and either does not include a max_colors definition, or the value = 0.
- The "term" environment variable does not include one of the following:
If any of those criteria are met... you won't get vt100 colors.
This information is taken directly from the source-code.
About color issue.
- First thing to try:
kill all asterisk:
set your TERM:
run asterisk from terminal:
/usr/sbin/asterisk -c(path may differ)
I'm sure you'll see it colorful.
- If 1. was OK, then dig into how is asterisk run from system. The only issue I have
was when asterisk init script was
/etc/init.d/asterisk, but was run with systemctl. Looks to me, that systemctl somehow has it's own TERM preferences used at the moment asterisk starts. But, I forced things and added
/etc/init.d/asterisk. And this may be forced even more if you put in this script
export TERM=xterm-256color, but usability is up to you.
For configuring the "readline-like" functionality check out what libedit offers You to configure in editrc (https://manpages.debian.org/jessie/libedit-dev/editrc.5.en.html).
Program name for configuration should be "asterisk" (if You want to change settings specially for this program).