DICAS ASTERISK - Comandos úteis e arquivos de configuração
DICAS ASTERISK - Comandos úteis e arquivos de configuração
O Asterisk é um framework GPL (Gnu Public License), e atualmente a maior plataforma de telefonia IP do mundo. A Lojamundi é especialista em soluções baseadas em Asterisk. Por ser mais que uma central telefônica, você pode encontrar o Asterisk sendo utilizado em portões, câmeras, automação residencial e empresarial em possibilidades quase que infinitas. Tudo depende do conhecimento aplicado e da necessidade a ser suprida. 
Como também somos entusiastas dessa plataforma há mais de 15 anos, vamos apresentar neste artigo alguns comando úteis e arquivos de configuração que podem ser utilizados para gerenciar sua central.
Já conhece nossa consultoria especializada em Telefonia IP? 
Saiba o que podemos fazer pela telefonia da sua empresa.
| INICIAR E PARA O ASTERISK | 
| asterisk | Arrancar o Asterisk | 
| asterisk -c | Iniciar o Asterisk e abrir o console (CLI) | 
| asterisk -r | Ingressar no console remoto | 
| asterisk -rx ‘comando’ | Executar o comando sem ingressar no console | 
| stop now | Parar o servidor Asterisk - executado dentro da CLI | 
| stop gracefully | Para o serviço do Asterisk quando todos os canais ativos estiverem ocupados | 
| stop when convenient | Parar o serviço do Asterisk assim que não tiverem mais chamadas ativas. Aceita uma nova chamada | 
| exit  | Sai do console remoto, sem parar o Asterisk | 
| COMANDOS IMPORTANTES - CLI | 
| Set verbose 9 | Aumenta a verbose no CLI | 
| Set debug | Aciona o modo debug no CLI | 
| sip show peers | Listar todas contas SIP’s do Asterisk | 
| sip show channels | Listar todos os canais e conexões ativos | 
| AJUDA DENTRO DO CLI | 
| help | Mostrar uma lista de comandos utilizados | 
| help sip | Mostrar uma lista de funcionalidades para o arquivo  | 
| help sip show | Mostrar as opções de visualização do comando sip show | 
| help sip show peers | Mostrar a visão do comando sip show peers | 
REGEX: vem do termo em inglês regular expression (expressão regular). Uma forma de identificar formas, palavras e padrões de caracteres.
| REGEX E EXTENSIONS.CONF | 
| X | Dígitos entre 0-9 | 
| Z | Dígitos entre 1-9 | 
| N | Dígitos entre 2-9 | 
| [5-7] | Dígitos 5,6 e 7 | 
| [15-7] | Dígitos 1, 5,6 e 7 | 
| . | Qualquer valor numérico ou caracter | 
| EXTENSIONS.CONF | 
| [general] | Configurações gerais do plano de discagem | 
| static=yes | Configuração estática | 
| writeprotect=yes | Não permite alterações do plano de discagem sejam realizadas a partir do console (CLI) | 
| [globals] | Seção de variáveis | 
| VAR2=23 | Atribuir valor a uma variável global | 
| [name] | Define um nome contexto. Poderíamos utilizar um contexto chamado de [from-internal] ou simplesmente [joao]  | 
| setGlobal(VAR1=1) | Seta a variável global VAR1 com o valor 1 | 
| set(VAR3=Test) | Seta uma variável de canal. Utilizada no plano de discagem corrente | 
| dial(tech/u:p@host) | Conecta com um host / usuário usando um canal | 
| answer() | Abre um canal | 
| hangup() | Encerra um canal | 
| wait(n) | Espera por n segundos | 
| goto(n) | Salta de uma prioridade n na mesma extensão. Goto(100,12) aqui o salto é para extensão e prioridade 12. | 
| gotoif($[ ${X}=1 ]?,1:5) | Salta para prioridade 1 se a variável X for igual a 1. Caso contrário salta para prioridade 5 da extensão | 
| gotoiftime(9:00-17:00|monfri|1-31|*?dia,s,1) | Salta para o contexto dia na extensão s , prioridade 1 caso seja entre 9h:00 e 17h:00. De segunda a sexta. | 
| saynumber() | Nomear um número | 
| sayalpha() | Nomear uma string | 
| saydigits() | Nomear os dígitos | 
| sayunixtime() | Nome data/hora do servidor | 
| voicemail() | Conectar uma chamada ao correio de voz. Utilizar as opções u: unavailble, b: busy e s: gravação | 
| voicemailmain() | Conectar um usuário ao menu principal do sistema de correio de voz  | 
| DIRETÓRIOS E ARQUIVOS | 
| /etc/asterisk | Contém todos os arquivos de configuração | 
| /etc/asterisk/extensions.conf | Arquivo de configuração do plano de discagem | 
| /etc/asterisk/sip.conf | Arquivo de configuração dos canais SIP | 
| /etc/asterisk/iax.conf | Arquivo de configuração dos canais IAX | 
| /etc/asterisk/voicemail.conf | Arquivo de configuração do correios de voz | 
| /usr/lib/asterisk/modules | Contém as bibliotecas, aplicações e módulos | 
| /var/run/asterisk | Contém os dados dos processos | 
| /var/lib/asterisk/sounds | Contém os arquivos de áudio do Asterisk | 
| /var/log/asterisk | Contém os arquivos de registro / logs do Asterisk | 
| /var/spool/asterisk | Contém os arquivos das chamadas | 
| SIP.CONF | 
| [general] | Seção de configuração global. O que é inserido aqui é aplicado para todos os canais SIP criados | 
| port=5060 | O Asterisk escuta a porta 5060 para conexão | 
| bindaddr=0.0.0.0 | Escuta as solicitações de todas as interfaces | 
| [1701] | Configura o canal SIP 1701. Também aceita valores alfanuméricos  | 
| type=friend | Configura o tipo de canal. Asterisk <=user; Asterisk =>peer e Asterisk = friend | 
| username=1701 | Usuário | 
| secret=123456 | senha do canal SIP para registro  | 
| host=dynamic | Define os endereços IP para o dispositivo SIP. A opção dynamic aceita todos os IPs | 
| context=from-internal | Contexto utilizado quando o dispositivo abre o canal. Configurado em extensions.conf | 
| qualify=yes | Monitora a latência | 
| nat=yes | Suporte a NAT. Dica nas versões mais novas do Asterisk utilize: nat=force_rport,comedia | 
| EXTENSÕES ESPECIAIS | 
| s | Contexto inicial de uma chamada sem destino específico. | 
| h | Uma vez que a chamada é finalizada essa extensão é chamada | 
| i | Utilizada com a aplicação background() quando um dígito é discado e não está definido no contexto | 
| o,a | Ambos utilizados na aplicação de voicemail (o para 0 e a para *) | 
Exemplo de conta SIP criada no sip.conf
[general]
faxdetect=no
context=from-sip-external
notifyringing=yes
notifyhold=yes
tos_sip=cs3
tos_audio=ef
videosupport=yes
tos_video=af41
alwaysauthreject=yes
useragent=Asterisk
disallow=all
allow=ulaw
allow=alaw
;allow=g729
;allow=ulaw
;allow=h263
;allow=h264
allow=g722
allowguest=no
[800]
username=800
type=friend
secret=123456
insecure=port,invite
qualify=yes
context=from-internal
dtmfmode=Inband
nat=force_rport,comedia
host=dynamic
disallow=all
allow=ulaw
allow=alaw
canreinvite=no