Criando seus comandos personalizados no CLI do Asterisk

Em cada cenário onde temos nosso Asterisk instalado para atender a diferentes clientes, por certo temos necessidades diferentes. Óbvio. Mas o que muitos desconhecem, é que para facilitar a vida do administrador do Asterisk podemos criar apelidos para os comandos mais usuais que executamos com maior frequência no CLI.

Para que possamos usar, por exemplo, o comando ‘silencio’ para que em background seja executado o comando ‘logger mute’ (veja mais sobre a utilidade do comando ‘logger mute’ neste outro artigo) basta que façamos algumas poucas alterações em alguns arquivos específicos em nosso Asterisk.

Vamos colocar as mãos na massa com um exemplo simples para facilitar o entendimento.

Objetivo: criar o alias (apelido) ‘silencio’ para o comando ‘logger mute’.

Vamos então editar o arquivo /etc/asterisk/cli_aliases.conf (use seu editor preferido) para inserir nosso novo contexto personalizado, com o novo alias.

Antes de prosseguirmos, vale uma pequena explicação sobre este arquivo. O cli_aliases.conf, como outros arquivos de configuração do asterisk, trabalha com trechos designados *contexto*  e que também aceita a criação de *templates*, utilizando o símbolo ! (exclamação)  dentro de parenteses colocados logo a frente do nome do contexto.

Ex.: [contexto_template](!)

Feito isto, esse contexto pode ser passado como parâmetro a outros em que você julgue necessário incorporar o conteúdo deste template. Basta que você insira a frente do nome deste novo contexto, o nome do contexto definido como template entre parenteses.

Ex.: [contexto_personalizado](contexto_template)

Bem, dada a explicação, vamos a alteração do nosso cli_aliases.conf para que este contenha o novo alias ‘silencio’.

Passo 01. Na seção [general], comente a linha que define o template que está sendo oficialmente carregado (para comentar uma linha insira o sinal ‘;’ no início da linha). Em nosso caso comentamos a linha abaixo:

;template = friendly

Passo 02. Vamos inserir uma nova linha para que o Asterisk carregue o nosso novo contexto personalizado ao ser iniciado. Digite logo abaixo da linha que comentamos no passo anterior, a seguinte linha:

template = eden

Passo 03. Feito isto, vamos tornar o contexto ‘friendly’ um template para que possamos adicioná-lo ao nosso contexto personalizado. Para isso, apenas inclua na frente do nome do contexto o sinal de exclamação dentro de parenteses.

[friendly](!)

Passo 04. Agora vamos criar nosso contexto personalizado. Vamos dar a ele um nome (eden) e a frente do nome do contexto, vamos inserir entre parenteses o nome do contexto utilizado como template, para que o conteúdo deste contexto de template seja adicionado ao nosso contexto personalizado, mantendo todos os aliases criados aqui, disponíveis em nosso CLI.

[eden](friendly)

Passo 05. Por último é só adicionar nossas linhas personalizadas. Importante ressaltar que cada alias deve ser incluido em uma nova linha e que a linha é composta por um nome que damos ao nosso alias, seguido do sinal de igual e por fim o comando da forma como ele é utilizado na CLI. Em nosso caso, teremos:

silencio=logger mute

Pronto. Feitas as alterações, basta recarregarmos o nosso novo cli_aliases.conf digitando no CLI o seguinte comando:

eden*CLI> module reload res_clialiases.so

Para verificar se seu novo alias está devidamente carregado, você pode digitá-lo no CLI de seu Asterisk ou verificar todos os aliases digitando o comando ‘cli show aliases‘ também no CLI e verá uma saída em duas colunas, sendo a coluna da esquerda o alias que você irá utilizar diretamente no CLI e a coluna da direita o comando real:

eden*CLI> silencio
Console is muted.

eden*CLI> cli show aliases
Alias Command              Real Command
silencio                              logger mute
help                                    core show help
hangup  request              channel request hangup
pri intense debug            span pri set debug 2 span
originate                           channel originate

Agora é aplicar as suas necessidades. Veja abaixo como ficou nosso cli_aliases.conf:

; CLI Aliases configuration

[general] ;template = friendly ; By default, include friendly aliases
template = eden

[friendly](!)
hangup request=channel request hangup
originate=channel originate
help=core show help
pri intense debug span=pri set debug 2 span
reload=module reload

[eden](friendly)
silencio=logger mute

Qualquer dúvida, não deixe de enviar seu comentário ou dúvida para que possamos tentar ajudar.

Deixe uma resposta