Parte 1 de 2 Dando continuidade na série de artigos FreeBSD + Asterisk, vamos abordar o uso de VOICEMAIL e mobilidade em planos de discagem, como SIGA-ME se eu estiver indisponível ou SIGA-ME se eu estiver ocupado. Iremos passar por uma pequena "preparação" sobre o uso do ASTDB (Asterisk Data Base) e algumas variáveis de ambiente nativas do Asterisk.
1 - Introdução a mobilidade em telefonia convencional.
Nos últimos tempos a falta de informação ou a desconexão seja ela nas vias convêncionais (EMAIL, IM, TELEFONE FIXO e CELULAR), podem acarretar em prejuízos financeiros, em perda de negócios ou até mesmo, perder aquela cervejinha com os amigos.
- História na telefonia convencional.
Imagine-se em seu escritório aguardando uma ligação de um importante cliente. Seu celular toca, e após desliga-lo, sem planejar, sua esposa pede que você busque as crianças imediatamente na "ESCOLA".
Você então redireciona as ligações do seu TELEFONE FIXO para seu CELULAR, usando os recursos de SIGA-ME de sua operadora LOCAL. O cliente liga para seu escritório e após algumas chamadas é redirecionado para seu CELULAR.
Infelizmente seu CELULAR esta fora de AREA e ao perceber a mensagem da caixa postal o cliente desliga.
"Conclusão, sua imagem denegrida e falta de profissionalismo."
- Agora esta mesma história, na versão IP.
Antes de sair para buscar as crianças, você acessa um menu administrativo e grava uma mensagem para seu cliente e redireciona a ligação para seu celular. Agora você desliga seu ATA e juntos vão em busca das crianças na "ESCOLA".
O cliente liga para seu escritório, o Asterisk verifica que seu ATA esta INDISPONÍVEL e redireciona a ligação para seu CELULAR, verificando que a ligação não completou, o Asterisk redireciona novamente o cliente para a mensagem que você gravou anteriormente.
Antes de você levar as crianças até em casa, uma rápida parada em um CyberCafé, pluga o ATA na INTERNET, acessa sua caixa de VOICEMAIL e entra em contato com o cliente via Asterisk, usando a linha do seu escritório.
"Conclusão, eficiência e profissionalismo."
2 - Configurando o VOICEMAIL no Asterisk.
Vamos editar o arquivo voicemail.conf.
nagazaki# pwd /usr/local/etc/asterisk nagazaki# vi voicemail.conf
Vamos descomentar 2 parâmetros e adicionar um usuário e senha de VOICEMAIL.
usedirectory=yes searchcontexts=yes
No final do arquivo configuramos o usuário do VOICEMAIL.
[escritorio] include => general 9010 => 1212,Marcelo Araujo,<EMAIL PROTECT>
A configuração básica para uma conta VOICEMAIL.
NUMERO => SENHA,NOME DO USUARIO,EMAIL
3 - Aplicando o redirecionamento do VOICEMAIL no seu plano de discagem.
Editando o arquivo extensions.conf, vamos montar uma plano de discagem para um usuário SIP pré-configurado.
exten => 9010,1,Dial(SIP/araujo,20) exten => 9010,2,Voicemail(9010@escritorio) exten => 9010,3,Hangup()
Ligando para o número "9010" após 20 segundos se a chamada não for atendida, o originador será redirecionado ao VOICEMAIL, recebendo uma mensagem padrão solicitando que "deixe sua mensagem após o sinal".
Agora iremos configurar um menu administrativo para nossa conta de VOICEMAIL. Editando o arquivo extensions.conf, vamos criar um número de acesso a nossa conta VOICEMAIL.
exten => 90109,1,VoiceMailMain(9010@escritorio) exten => 90109,Hangup()
Existe um projeto chamado ASTERISK-BR que se propõem em converter os prompts DEFAULTS do Asterisk para a lingua nativa PT_BR. Discando para o número "90109", sera solicitado a senha da conta "1212" configurada no arquivo voicemail.conf, iremos ser redirecionados a um MENU com diversas opções como:
Gravar mensagem de indisponível. Gravar mensagem de ocupado. Dentre outras opções......
Antes de usarmos algumas opções de mensagens personalizadas, é vital o entendimento de algumas variáveis nátivas do Asterisk.
4 - Asterisk DIALSTATUS.
O Asterisk nos permite identificar o status de um cliente ou canal conectado no IPBX através de uma variável de ambiente chamada DIALSTATUS.
Vamos abordar apenas 2 status CHANUNAVAIL e BUSY, excenciais para um melhor controle nos planos de discagem.
Editando o arquivo extensions.conf, inserimos em um plano de discagem, as seguintes extensões.
exten => 9010,1,Dial(SIP/araujo) exten => 9010,2,Goto(9010-${DIALSTATUS},1) exten => 9010-BUSY,1,Dial(SIP/marcelo) exten => 9010-CHANUNAVAIL,1,Dial(SIP/secretaria)
Neste exemplo ao recebermos uma chamada no número "9010" e o mesmo estiver OCUPADO (Busy) por já estar recebendo ou efetuando uma ligação e/ou CHANUNAVAIL (INDISPONÍVEL) por não estar autenticado, o originador sera redirecionado para:
Caso ocupado = Cliente SIP "marcelo". Caso indisponível = Cliente SIP "secretaria".
5 - Asterisk GoToIf.
Podemos adicionar um controle de fluxo nas extensões do plano de discagem, facilitando a tomada de decisões no encaminhamento da chamadas.
Antes de editarmos o arquivo extensions.conf, ligue para o menu administrativo da sua caixa de VOICEMAIL e grave as mensagens de INDISPONÍVEL e OCUPADO. No arquivo extensions.conf, vamos criar um plano de discagem inteligente para redirecionar nossas ligações.
exten => 9010,1,Dial(SIP/araujo) exten => 9010,2,GoToIf($[${DIALSTATUS} = CHANUNAVAIL]?5) exten => 9010,3,GoToIf($[${DIALSTATUS} = BUSY]?6) exten => 9010,4,Hangup() exten => 9010,5,Voicemail(u9010@escritorio) exten => 9010,6,Voicemail(b9010@escritorio)
Quando discarmos para o número "9010", caso o status do cliente SIP "araujo" esteja INDISPONÍVEL, o originador da chamada é redirecionado a extensão 5 e se o status for OCUPADO, sera redirecionado para a extensão 6. Se o status do cliente SIP não for nenhum dos 2, a conexão é encerrada.
Nas extensões 5 e 6, podemos perceber a letra "u" e "b" na frente da nossa conta de VOICEMAIL.
"u" = Unavail (INDISPONíVEL). "b" = Busy (OCUPADO).
Usando estas duas opções, podemos redirecionar o originador da chamada para o status correto em que se encontra o nosso número de telefone.
6 - Introdução ao ASTDB (Asterisk Data Base).
O Asterisk nativamente suporta o BDB(Berkeley Data Base) dentre outros bancos de dados que suportem acesso via ODBC e alguns outros através de API'S, exemplo o Mysql.
Vamos criar um plano de discagem no arquivo extensions.conf e usaremos algumas funcionalidades de redirecionamento via ASTDB.
exten => 9010,1,Dial(SIP/araujo) exten => 9010,2,Goto(9010-${DIALSTATUS},1) exten => 9010-BUSY,1,Dbget(redir=forward/9010) exten => 9010-BUSY,2,Dial(SIP/${redir}) exten => 9010,3,Hangup()
Vamos startar o asterisk e usar a CLI(Prompt de comando) para manipular os redirecionamentos das ligações.
nagazaki# asterisk -vvvvvvvvvc
*CLI> database put forward 9010 marcelo Updated database successfully *CLI>
Podemos acompanhar todo o processo de redirecionamento nos logs do Asterisk(CONSOLE CLI). Discando para o número "9010" iremos ser redirecionados para o cliente SIP "marcelo".
-- DBget: varname=redir, family=forward, key=9010 -- DBget: set variable redir to marcelo -- Executing Dial("SIP/araujo-0366", "SIP/marcelo") in new stack -- Called marcelo -- SIP/marcelo-914e is ringing
Para verificar e deletar os redirecionamentos na base ASTDB.
*CLI> database show forward 9010 /forward/9010 : marcelo *CLI> database del forward 9010 Database entry removed. *CLI>
OBS: Caso você adicione um redirecionamento no ASTDB, esse redirecionamento torna-se permanente mesmo após um restart no Asterisk.
7 - Conclusão.
Mobilidade é a palavra do momento, estar conectado na Internet em qualquer lugar do mundo, poder ter um único número de telefone e receber estas ligações na Europa, China e no Brasil. Redirecionar ligações para outros números ou para vários números, trabalhar em HomeOffice tendo o ramal do escritório disponível em sua casa. Originar chamadas e ter vários números de telefones em localidades diferentes no mesmo aparelho.
Todos esses sonhos de um mundo moderno desenvolvido gratuitamente e testado por milhões de engenheiros, desenvolvedores e apaixonados pela escolha de compartilhar experiências, digitando códigos e revolucionando a história.
O Software Livre nunca teve um impacto tão grande como este, chegando aos poucos para modificar todos os conceitos de telefonia e telecomunicações.
Importante: este é o segundo artigo de uma série; os outros artigos estão disponíveis em: Marcelo Araujo araujo at fug dot com dot br.
|