Implementando Soluções de VoIP com Asterisk Dov Bigio
Apresentação Dov Bigio Dov Bigio dov.bigio@locawebtelecom.com.br Engenheiro da Computação formado pela Escola Politécnica da USP Pós-graduado em Administração de Empresas pela FGV-SP Experiência de 4 anos em projetos de TI em consultoria multinacional Líder de Desenvolvimento do PABX Virtual da LocaWeb Telecom há 2 anos, bem como da implantação do Asterisk no Escritório rio + Call Center da empresa (atualmente com 350 usuários dos quais cerca de 200 em filas de atendimento) Tradutor do livro Construindo Sistemas de Telefonia com o Asterisk
Objetivos Apresentar o Asterisk como solução completa para substituir centrais telefônicas tradicionais Introdução ao Asterisk,, histórico do projeto, características e funcionalidades (secretária ria eletrônica, conferência, URA, DAC, etc...) Fontes e Bibliografia
Agenda O que é o Asterisk? Histórico Digium & Asterisk Arquivos de Configuração Configurações Básicas ramal e caixa postal conexão com operadora sala de conferência DAC distribuição de chamadas URA menu de atendimento Ferramentas A LocaWeb Telecom
O Que É o Asterisk??? O Asterisk é um PABX completo implementado em software. Roda em Linux,, BSD e MacOSX e provê todas as funcionalidades esperadas de um PBX, e muitas mais. O Asterisk suporta Voz sobre IP em diversos protocolos, e pode interoperar com praticamente qualquer equipamento de telefonia padronizado, utilizando hardware relativamente barato.
O Que É o Asterisk??? É um PABX híbrido, h para redes TDM e de pacotes Possui interfaces para qualquer hardware ou software de telefonia Seus canais suportam diferentes protocolos de comunicação Seu plano de discagem é quase uma linguagem de programação que permite o tratamento do fluxo das chamadas, usando as aplicações para executar tarefas
Histórico Digium & Asterisk Criado para atender às s necessidades da Linux Support Services,, de Mark Spencer, recém-formado em Engenharia da Computação, em 1999. Com apenas USD4.000 para começar, não tinha como comprar um PABX para sua empresa, então resolveu fazer um! Percebeu que, uma vez que a ligação estava no PC, poderia fazer QUALQUER coisa com ela (daí o nome Asterisk). Em 2001, conhece Jim Dixon (Zapata), - hardware de integração de telefonia + modelo de negócios consistente.
Histórico Digium & Asterisk Digium têm (no começo o de 2006) 5 desenvolvedores e cerca de 350 colaboradores na comunidade open source. Grandes empresas passaram a adotar e criar soluções baseadas em Asterisk,, inclusive empresas como IBM e Intel possuem ferramentas que se integram com o Asterisk. Digium tem taxa de crescimento de 100% nos últimos anos Em Agosto de 2006 recebeu seu primeiro aporte de capital externo, de USD 13.8 bilhões da Matrix Partners (Venture Capital)
Digium e seus Produtos G.729 Codec
Instalação Pacotes do Asterisk: asterisk, libpri (usado por fabricantes de placas TDM) e zaptel (para uso do hardware e clock) Requerimentos para o download: gcc (3.x ou superior), kernel (fonte e headers), bison, openssl, openssl-dev dev, opens-lib lib, libnewt Download: ftp.digium.com/pub/ ou www.asterisk.org make; make install; make config; Ou usar uma das versões prontas astlinux, trixbox,, etc...
Diretórios /etc/asterisk arquivos de configuração /usr/lib/asterisk/modules módulos instaláveis (codecs( codecs, canais, formatos, etc) /var/lib lib/asterisk contém m o astdb,, sons, binários, e licenças /var/spool spool/asterisk/ - arquivos temporários, rios, caixas postais, gravações, etc /var/run run contém m o ID do processo (PID) /var/log log/asterisk contém m os arquivos de log (messages, verbose,, debug, queue_log) /var/log log/asterisk/cdr-csvcsv os CDRs (call detail records)
Arquivos de Configuração /etc/asterisk asterisk.conf agents.conf cdr.conf conf cdr_mysql.conf conf extensions.conf / extensions.ael features.conf iax.conf manager.conf meetme.conf musiconhold.conf conf queues.conf sip.conf voicemail.conf conf zapata.conf
Configurações Básicas Formato dos Arquivos.conf ; Área global chave => valor chave => valor chave => valor Arquivos texto, semelhantes à maioria dos programas para Linux. [contexto] chave => valor chave => valor chave => valor
Configurações Básicas Aplicações São os programas (funcionalidades) que podem ser chamadas a partir do plano de discagem do Asterisk: AgentLogin, Answer, BackGround, ChanSpy, DBget,, DISA, Goto, GotoIfTime,, Macro, MeetMe, MySQL, Playback, Queue, SayNumber, SendURL, SetCallerID, System, VoiceMail, VoiceMailMain Versão 1.2.12.1 tem 163 aplicações padrão (considerando add- ons)
Configurações Básicas Sala de Conferência Console (asterisk -r)
Configurações Básicas Sala de Conferência Console (asterisk -r) reload restart now / gracefully / when convenient stop now / gracefully / when convenient sip debug show channels show queues, show agents + de 100 comandos de console
Configurações Básicas - Protegida por senha Ramal com Caixa Postal (Comedian Mail) - Mensagens de busy e unavailable - Diversas pastas de mensagens - Interface web - Notificação por e-mail e com arquivo de áudio em anexo - Indicador visual nos telefones IP - Configuração do usuário por URA
sip.conf Configurações Básicas Caixa Postal [general] context=default port=5060 bindaddr=0.0.0.0 srvlookup=yes [400] type=friend host=dynamic username=400 secret=abc123 canreinvite=no nat=yes context=local dtmfmode=rfc2833 allow=all [401] type=friend host=dynamic username=401 secret=cde456 canreinvite=no nat=yes context=interurbano dtmfmode=rfc2833 allow=all
Configurações Básicas Caixa Postal voicemail.conf [general] format=wav gsm maxmessage=300 minmessage=3 maxsilence=3 maxlogins=3 fromstring=locaweb IP PBX attach=no 400 => 123,Mark Spencer,markster@digium.com,, attach=no serveremail=voicemail@locaweb.com.br delete=no saycid=no review =no operator=no envelope=yes 401 => 123,Suporte LocaWeb,suporte@locaweb.com.br,, attach=yes serveremail=voicemail@locaweb.com.br delete=yes saycid=no revi ew=no operator=no envelope=yes
Configurações Básicas Caixa Postal extensions.conf [local] include=> interna [interurbano] include=> local [interna] exten [interna] => 400,1,NoOp(Fazendo uma ligacao para o ramal 400) exten _NNN,1,Macro(ramais,${EXTEN}) => 400,2,Dial(SIP/400,45,tT) exten _NNN,2,Hangup => 400,3,Voicemail(u400) exten => 400,4,Hangup [macro-ramais] exten => 400,103,Voicemail(b400) exten => s,1,noop(fazendo 400,104,Hangup uma ligacao para o ramal ${ARG1}) exten... => s,2,dial(sip/${arg1},45,tt) exten => s,3,goto(s-${dialstatus},1) exten => s-noanswer,1,voicemail(u${arg1}) exten => s-chanunavail,1,voicemail(b${arg1}) exten => s-busy,1,voicemail(b400) exten => _s-.,1,congestion
Configurações Básicas Caixa Postal Alguns Comandos servidor*cli> sip show peers Name/username Host Dyn Nat ACL Port Status sergio.ricardo/sergio.ric 200.234.206.117 D N 7152 OK (3 ms) samy.silva (Unspecified) D N 0 UNKNOWN rodrigo.paes/rodrigo.paes 200.234.206.13 D N 6217 OK (4 ms) rodrigo.cunha/rodrigo.cun 200.234.208.241 D N 8161 OK (4 ms) roberto-tec/roberto-tec 200.234.206.85 D N 6865 OK (90 ms) servidor*cli> iax2 show peers servidor*cli> show voicemail users Context Mbox User Zone NewMsg default 482 Danilo Santos 0 default 492 Daniel Azevedo 0 default 496 Diego Monteiro 0 default 499 Douglas Fontes 0 default 504 Edson Junior 0 default 513 Fernando Lira 0
Configurações Básicas Conexão com Operadora VoIP TMais GVT Skype (chan_skype) Vonage Broadvoice FreeWorldDialUp Matrix Taho Gizmo GT Group Datora Transit Inphonex Outras muitas outras! Teliax
Configurações Básicas Conexão com Operadora VoIP Licença a para operar (SCM / STFC) Rede localizada no Brasil Atendimento e Suporte Tarifas Ligação local onde operadora possui POP Tarifas LDN, LDI Tarifas Celular
Configurações Básicas Conexão com Operadora VoIP Rota (traceroute( traceroute) ) e tempo de resposta (ping( ping) ) dos pacotes Codecs suportados Protocolos suportados (SIP, IAX, H.323) Equipamentos de terminação (Cisco, AudioCodes, etc) Link dedicado? Banda? Testar a qualidade sempre antes de contratar o serviço o em definitivo!
sip.conf Configurações Básicas Operadora ; linha 114567890 register => USERNAME:PWD@IP_SERVIDOR_SIP/USERNAME [operadora] context=incoming fromuser=nome_de_usuario type=peer host=servidor_sip insecure=very auth=md5 secret=senha username= NOME_DE_USUARIO disallow=all allow=g729 notifyringing=no
Configurações Básicas Operadora extensions.conf [incoming] exten => USERNAME,1,Dial(SIP/400,45,tr) exten => USERNAME,n,Hangup Ou melhor [incoming] exten => USERNAME,1,Goto(interna,400,1) exten => USERNAME,n,Hangup
Configurações Básicas Operadora extensions.conf [local] exten => _0N.,1,Dial(SIP/${EXTEN:1}@operadora,60,tr) exten => _0N.,n,Hangup
Configurações Básicas Operadora Alguns Comandos servidor*cli> sip show registry Host Username Refresh State sip.tmais.com.br:5060 460895101 45 Registered sip.tmais.com.br:5060 102229601 45 Registered sip.tmais.com.br:5060 509662001 45 Registered 200.162.143.209:5060 552135210990 1785 Registered 200.162.143.209:5060 551135117000 1785 Registered servidor*cli> iax2 show registry Host Username Perceived Refresh State 200.234.216.8:4569 lv09 200.234.216.9:4569 60 Registered
Configurações Básicas Sala de Conferência - Protegida por senha - Música em espera para primeiro da sala (mp3) - Anúncio ncio de número de usuários - Anúncio ncio de entrada / saída de usuários - Gerenciador de Conferências Web (Web MeetMe)
Configurações Básicas Sala de Conferência meetme.conf [rooms] conf => 9000 conf => 9001,123456 conf => 9001,123456,654321 extensions.conf [interna]... exten => 500,1,NoOp(Entrando na sala de conferencia ${EXTEN}) exten => 500,n,MeetMe(9000 ac) exten => 500,n,Hangup
Configurações Básicas Sala de Conferência Alguns Comandos servidor*cli> meetme servidor*cli> meetme list <confno> servidor*cli> meetme kick <confno> <user> servidor*cli> meetme mute <confno> <user>
Configurações Básicas Filas & DAC Filas & DAC - Ligações recebida são enfileiradas (music( on hold) - Membros podem logar / pausar / despausar / deslogar - Distribuição de chamadas com diversas estratégias ringall roundrobin leastrecent fewestcalls random rrmemory - Anúncios ncios para membros e clientes - Transbordo por timeout / agentes disponíveis
Configurações Básicas Filas & DAC Filas & DAC - Arquivo texto com estatísticas sticas (queue_log( queue_log) - Há softwares prontos que importam para bancos de dados e geram estatísticas, sticas, mas os dados são simples o suficiente para que um desenvolvedor crie os relatórios rios que precisar!
Configurações Básicas Filas & DAC - Arquivos envolvidos - queues.conf - agents.conf - extensions.conf - Aplicações envolvidas Filas & DAC Queue, AgentLogin, AgentLogoff, AgentCallBackLogin, AgentCallBackLogoff
Configurações Básicas URA URA (Menu de Atendimento) - Sistema automatizado de voz que permite o desenvolvimento de estruturas de menu em que o usuário pode navegar através do teclado numérico de seu telefone. - Reconhecimento de DTMF (diversas especificações) - É possível criar extensões para gravar os prompts do menu (Record) - Tratamento de ligações por horário rio
Configurações Básicas URA URA (Menu de Atendimento) Bem vindo à LocaWeb Se você já é cliente, disque 1, se não, disque 2 1 Disque 1 para Suporte, 2 para Cobrança ou 3 para enviar um fax Queue RxFax Horário Queue VoiceMail
Configurações Básicas URA URA (Menu de Atendimento) exten => s,1,answer() exten => s,n(inicio),set(timeout(digit)=10) exten => s,n,set(timeout(response)=10) exten => s,n(zero),background(bemvindo) exten => 0,1,Dial(SIP/400,60,tr) exten => 1,1,RxFax(/var/spool/asterisk/faxes/${CALLERIDNUM}.tif) exten => 2,1,Goto(filas,cobranca,1) exten => 9,1,Goto(s,inicio) exten => t,1,goto(s,inicio) exten => i,1,playback(pbx-invalid) exten => i,n,goto(s,inicio)
Configurações Básicas Filas & DAC Para se Aprofundar - AMI (Asterisk( Manager Interface) - astdb (Asterisk Database) - Asterisk AGI Scripts (Asterisk-Java) - Protocolo IAX - High Availability; Load Balance, Clustering, Fail Over - Outras aplicações interessantes: MySQL, Festival, Park, Read, TxFax, RxFax, SMS
Ferramentas Ferramentas - TrixBox - (http://www.trixbox.org/ http://www.trixbox.org/) - AsterNIC - Flash Operator Panel (www.asternic.org) - Asterisk Guru Operator Panel (www.asteriskguru.com( www.asteriskguru.com) - Asterisk Guru - SoftPhone IdeFISK (www.asteriskguru.com) - Web Meet Me Control (sourceforge( sourceforge.net/projects/web-meetme) - Asterisk Guru Queue Statistics (www.asteriskguru.com( www.asteriskguru.com)
Ferramentas TrixBox & freepbx
Ferramentas Flash Operator Panel
Ferramentas Asterisk Guru Operator Panel
Ferramentas Softphone IAX - IdeFisk
Ferramentas Web Meet Me Control
Ferramentas Queue Statistics
Ferramentas E muito mais!!! - AstBill Asterisk Billing and Management (www.astbill.com( www.astbill.com) - Procure por Asterisk no SourceForge http://sourceforge.net/ Searching projects gives 188 results!!!
Bibliografia e Fontes Recomendadas Sites http://www.asteriskbrasil.org/ http://www.asteriskonline.com.br/ http://www.asterisk.org/ http://www.voip-info.org/ info.org/ http://www.digium.com/ http://www.asteriskguru.com/
Bibliografia e Fontes Recomendadas Livros Construindo Sistemas de Telefonia com o Asterisk http://www.temporeal.com.br/produtos. php?id=170325&?id=170325&rnd=1346 Asterisk O Futuro da Telefonia http://www.livcultura.com.br/scripts/cult ura/externo/index.asp?id_linkid_link =2666&tip o=2&isbn=857608094x Asterisk Guia de Configuração (2a Geração) http://www.temporeal.com.br/produtos. php?id=170480&?id=170480&rnd=1346
LocaWeb
Produtos LocaWeb Telecom PABX Virtual http://www.locawebtelecom.com.br www.locawebtelecom.com.br/
Produtos LocaWeb Telecom Portal de Voz http://www.locawebtelecom.com.br www.locawebtelecom.com.br/
Obrigado!!! Dov Bigio LocaWeb Telecom Av. Juscelino Kubitschek 1830 http://www.locawebtelecom.com.br www.locawebtelecom.com.br/ Tel: (11) 2122-0202