Apostila Asterisk

Published on January 2017 | Categories: Documents | Downloads: 97 | Comments: 0 | Views: 866
of 13
Download PDF   Embed   Report

Comments

Content

12/9/2010

AsteriskBrasil.org - A comunidade bras…
pesquisar... Pesquisar Novo Blog AsteriskBrasil.org! Programa��o do IPComm 2008 dispon�vel! HOME WIKI LISTAS NOT�CIAS GALERIA CONTATO

PABX IP Asterisk A melhor integradora Asterisk C onsultoria, Instalação e Hardware
www.sincronismo te leco m .co m

Aastra Telecom do Brasil Fabricante de Soluções IP PABX VoIP Gateways Softswitches Call C enter
www.a a stra .co m.br

Solução de PABX IP Veja C entral Pabx! Saiba Mais Online ou 11-3355-3400
www.to ta lIP .co m.br

Não diga alô, diga Asterisk! Apostila AsteriskBrasil.org CAPA: Vários telefones fazendo um papel de parede e no meio um asterisc o vazado em branc o ou o inverso. Índic e de Capítulos 1 Sou alienígena, fale sobre Telefonia....................................................................................... 4 1.1.Breve história da telefonia...................................................................................................... 4 1.2.A evoluç ão e as novas tendências........................................................................................ 6 1.1.1 Telefonia Analógic a.............................................................................................................. 7 1.1.2 Telefonia Digital..................................................................................................................... 7 1.1.3 Telefonia IP............................................................................................................................. 7 1.1.4 Telefonia IP x Voz sobre IP.................................................................................................. 8 1.1.5 Telefonia Móvel...................................................................................................................... 8 2 Conhec endo o Asterisk.............................................................................................................. 9 2.1 Quem? Quando? Porque? Como?....................................................................................... 9 2.1.1 O que é o Asterisk?............................................................................................................... 9 2.1.2 Entendendo o desenvolvimento do Asterisk................................................................... 9 2.1.3 Partic ipe também!............................................................................................................... 10 2.2 Arquitetura tec nológica do Asterisk.................................................................................... 10 2.2.1 Diretórios e arquivos.......................................................................................................... 10 2.2.2 O servidor............................................................................................................................. 12 2.2.3 Sopa de letrinhas... Codec s e Protoc olos..................................................................... 12 2.2.3.1 Telefonia IP....................................................................................................................... 12 2.2.3.2 Telefonia Digital............................................................................................................... 13 2.2.3.3 Telefonia Analógic a......................................................................................................... 13 2.2.3.4 CODECs............................................................................................................................ 13 2.2.4 Os Canais(channels)......................................................................................................... 13 2.2.4.1 Canal SIP (c han_sip.so)................................................................................................ 13 2.2.4.2 Canal IAX (c han_iax2.so)............................................................................................... 17 2.2.4.3 Canal Local (chan_loc al.so)......................................................................................... 18 2.2.4.4 Canal ZAP (c han_zap.so )............................................................................................. 18 2.2.4.5 Canal Unicall (c han_unic all.so)................................................................................... 18 2.2.5 Equipamentos periféricos................................................................................................. 19 2.2.5.1 Placas digitais e analógic as......................................................................................... 19 2.2.5.2 Telefones.......................................................................................................................... 20 2.2.5.3 ATAs................................................................................................................................... 20 2.2.5.4 Softphones........................................................................................................................ 21 2.2.5.5 Outros................................................................................................................................ 21 2.3 Doc umentaç ão adic ional e Downloads............................................................................ 21 3 Configuraç ões básic as do Asterisk....................................................................................... 21 3.1 Inserindo os padrões de telefonia Brasileiro................................................................... 22 3.2 Adicionando a linguagem pt_BR ao Asterisk................................................................... 22 3.3 Criando ramais....................................................................................................................... 23 3.4 Criando troncos...................................................................................................................... 23 3.5 Realtime................................................................................................................................... 23 4 Mergulhando no Dialplan......................................................................................................... 24 4.1 Contextos(c ontext).................................................................................................................. 25 4.1.1 Contexto [general]............................................................................................................... 25 4.1.2 Contexto [globals]............................................................................................................... 26 4.1.3 Parâmetro include.............................................................................................................. 27 4.1.4 Parâmetros específic os de um contexto........................................................................ 28 4.2 Extensões(exten).................................................................................................................... 28 4.2.1 Extensões especiais.......................................................................................................... 29 4.2.2 Padrões de disc agem ...................................................................................................... 29 4.3 Prioridades.............................................................................................................................. 29 4.3.1 Prioridade n+101................................................................................................................ 30 4.3.2 Prioridade next..................................................................................................................... 30 4.3.3 Prioridade same................................................................................................................. 30 4.3.4 Sinais numéric os e prioridades...................................................................................... 31 4.4 Aplicaç ões............................................................................................................................... 31 4.4.1 Aplic ação Dial – Onde tudo c omeça............................................................................... 32 4.4.2 Aplicaç ão Set....................................................................................................................... 33 4.4.2.1 Dec laraç ão de variáveis................................................................................................. 33 4.4.2.2 Exec uç ão de funç ões...................................................................................................... 34 4.4.2.3 AstDB................................................................................................................................. 35 4.4.3 Goto, GotoIf, GotoIfTime..................................................................................................... 36 4.4.4 Aplicaç ão Macro.................................................................................................................. 36 4.4.5 Aplicaç ão Voic eMail – O famoso Correio de Voz.......................................................... 36 4.4.5.1 Armazenamento de mensagens.................................................................................. 37 4.4.5.2 Configuraç ão das c aixas de c orreio de voz................................................................ 38 4.4.5.3 Notas importantes sobre a aplic aç ão Voic eMail().................................................... 39 4.4.5.4 Aplic aç ões c omplementares ao Correio de Voz....................................................... 39 4.4.6 MeetMe.................................................................................................................................. 42 4.4.7 Queue.................................................................................................................................... 42

BLOG Rumor aponta que tablet do Google será anunc iado dia 26 de novembro he Asterisk Development Team has announc ed the first release c andidate of Asterisk 1.6.2.12 The Asterisk Development Team has announc ed the first release c andidate of Asterisk 1.4.36 Mantendo o Asterisk um pouc o mais seguro com Fail2Ban Rumores dizem que o Google Chrome OS Tablet será lanç ado em Novembro

APOIO

LOGIN Nome de Usu�rio Senha

Memorizar Confirmar Perdeu a senha? Cadastre-se agora!

www.asteriskbrasil.org/index.php?opti…

1/13

12/9/2010

AsteriskBrasil.org - A comunidade bras…

4.6.2 Operadores Matemátic os.................................................................................................. 49 4.7 Exemplos c ompletos de dialplan....................................................................................... 49 5 Gerenc iando o Asterisk............................................................................................................ 49 5.1 Gerenc iamento de ramais................................................................................................... 49 5.2 Gerenc iamento de tronc os................................................................................................... 50 5.3 CDR.......................................................................................................................................... 50 5.4 Troubleshooting..................................................................................................................... 50 5.4.1 Logging................................................................................................................................. 50 5.4.2 Ec o......................................................................................................................................... 50 5.4.3 Pic otamento......................................................................................................................... 50 5.4.4 Delay...................................................................................................................................... 50 5.4.5 Códigos SIP......................................................................................................................... 50 5.5 Backup...................................................................................................................................... 53 5.6 Tunning.................................................................................................................................... 53 5.7 Seguranç a............................................................................................................................... 53 5.8 Sistemas distribuídos e alta disponibilidade................................................................... 53 6 Dic as e Truques........................................................................................................................ 53 I.Índic e c om todas as aplicaç ões disponíveis na série 1.2 do Asterisk............................. 53 II.Índic e c om todas as variáveis internas do Asterisk............................................................. 53 III.Siglas e Dic ionário.................................................................................................................... 53 1 Sou alienígena, fale sobre Telefonia. Entende-se por telefonia, toda e qualquer forma de transmitir voz humana, de um ponto a outro com a utilização de instrumentos amplificadores. Ou segundo o Wikipedia: INSERIR DEFIFINICAO DO WIKIPEDIA Impossível imaginar a evoluç ão de toda a c omunidade sem menc ionar os devidos c réditos ao poder, que nós ser humanos desenvolvemos de desejar c omunic aç ão a todo custo a toda hora e de várias formas. Ainda somos e seremos esc ravos da transmissão e rec epção de informaç ão, é fato. 1.1. Breve história da telefonia X Alexander Graham Bell Elisha Gray Nos idos de 1870, dois inventores, Elisha Gray e Alexander Graham Bell, ambos, indepedentemente projetaram um euipamento que poderia transmitir a voz eletronic amente, o famoso telefone. Ambos correram pra patentear suas soluç ões, porém Alexander Graham Bell ganhou a c orrida por questões de algumas horas. Apartir deste momento os dois travaram uma batalha famosa sobre a invenção do telefone na qual Bell se saiu c ampeão. Alexander Graham Bell nasc eu em 1847 em Edinburgh, Escóc ia. Ele mudou-se para Ontario, e então para os Estados Unidos se estabelec endo em Boston antes de iniciar sua c arreira c omo inventor. Ao longo de sua vida, Bell dedic ou-se à educ ação de pessoas surdas. Este interesse o levou a inventar o mic rofone e, em 1876, a sua “maquina elétric a de voz(elec tric al speech mac hine)” que hoje nós chamamos de telefone. As notíc ias de seu invento rapidamente se espalharam pelo país e até na Europa. Em 1878, Bell realizou a primeira c hamada em New Haven, Connec ticut. Em 1884, c hamadas de longa distância foram feitas entre Boston e Nova York. Bell imaginou grandes possibilidades de uso para o seu invento, porém ele nunc a imaginou que sua máquina de transmissão elétrica de voz pudesse também transmitir vídeo um dia. Esse dia c hegou, e desde a sua morte em 1922 a indústria de telec omunic ações tem vivenc iado uma incrível revoluç ão. Hoje pessoas que não houvem podem c omunic ar-se através de telefones espec iais. Fibras óticas estão melhorando a qualidade e veloc idade na transmissão de dados. Comunic aç ões sem fio são capazes de deixa-lo informado e presente mesmo em loc ais remotos, enfim iremos abpradr um pouc o sobre todos os benefíc ios que a máquina falante de Bell alavanc ou a toda a c omunidade mundial. 1.2. A evolução e as novas tendências A busc a inc ansável por reduç ões de c usto, qualidade, versatilidade, independênc ia, fac ilidade e demais adjetivos tornaram possível a evolução sistemática dos meios de c omunicaç ão. A Telefonia moderna é um dos produtos deste cresc imento. É possível estar em dois lugares ao mesmo tempo. Atualmente falar ao telefone é algo que se faz em todo momento a toda hora e em qualquer lugar. Esteja voc ê no trem, no ônibus, no metrô, no carro, no avião ou em lugares menos móveis como a sua c asa, apartamento, esc ritório, fábric a, hotel ou motel, definitivamente estamos imersos neste mundo de c ircuitos e mais circ uitos. Habilitar uma c redenc ial neste mundo é tão simples quanto o seu uso, algo que em tempos remotos foi um investimento c om visível participação na renda familiar, hoje é mais um adereç o da moda e participa ativamente na vida de c rianç as. LINHA DO TEMPO: FOTOS DE VÁRIOS TELEFONES: DO MAIS ANTIGO PRO MAIS MODERNO Cada país possui o seu órgão que regulamenta os meios de c omunicaç ão, em alguns lugares existem órgãos específic os para o tema Telefonia. No Brasil este órgão é c onhecido por ANATEL[1]. 1.1.1 Telefonia Analógic a Método original inventando por diversos inventores e que enc ontrou seu ápic e de desenvolvimento e utilizaç ão, ou melhor, de massific ação durante os anos 50. Utiliza-se c omo meio de comunic ação princ ipalente os cabos de c obre, os pares de c obre que ainda hoje reinam nos quadros de distribuiç ão de empresas de telefonia. 1.1.2 Telefonia Digital Telefonia multiplexada, sinais digitais, proc essador de sinais digitais(DSP) entram em c ena para transformar este sinal analógic o, conhec ido por voz, em um sinal digital. O sinal digital se distingue por identificadores individuais, troc ados no momento que antecede o streaming de voz, a chamada fase de sinalizaç ão. Estes identific adores individuais permitem o c onvívio de diversos outros sinais ao mesmo instante. Em suma isso é o que c hamamos de multiplexaç ão. Várias c hamadas acontec endo ao mesmo tempo e pelo mesmo meio físic o. Na Telefonia Digital c omumente c onhec ida utiliza-se o transporte de voz sem c ompactaç ão, assim c omo ela é, somente digitalizada. Enviando 64Kb por segundo com 8khz e 8 bits(...detalhar khz e bit...). 1.1.3 Telefonia IP Telefonia IP é o conc eito mais atual para utilização de c omunicaç ão por voz.. Como toda e qualquer tec nologia teve seus momentos de testes ferrenhos e provas de bala e fogo. Em determinado momento c hegou-se a algo que se poderia dizer como: utilizável. Com c ustos ainda proibitivos para a sua massific aç ão, a Telefonia IP c riou-se em meio a grandes implementaç ões de transporte de áudio. Backbones de grandes empresas de telefonia já cruzavam o Atlântic o lanç ando cabos e mais cabos por onde trafegariam enormes quantias de minutos de c onversas, reuniões e bate-papos, todas elas utilizando o protoc olo IP de comnic aç ão. O protocolo IP[2] c hegou para trazer mais um c onc eito dentro dos meios de c omunicaç ão. Sua fácil implementaç ão e sua riqueza em c ontroles e documentaç ão virou uma página importante na história das telec omunic aç ões. Um dia foi o que c hamavam de ARPANET[3], uma rede de dessentralizaç ão de informaç ão c riada c omo um artifício de estratégia militar pelo exérc ito americ ano. A INTERNET hoje é o ponto de encontro de c omunidades virtuais,

ENQUETE Meu dia a dia com o Asterisk �: Mantendo o IPBX/Gateway da empresa onde trabalho Desenvolvendo produtos para empresas de TI/Telec om Fu�ando como hobby Votar chCounter: MySQL error! SQL query: LOCK TABLES `joomla_asterisk`.`jos_astats_counted_users` AS c WRITE, `joomla_asterisk`.`jos_astats_counted_users` WRITE, `joomla_asterisk`.`jos_astats_ignored_users` AS i WRITE, `joomla_asterisk`.`jos_astats_ignored_users` WRITE, `joomla_asterisk`.`jos_astats_data`as d WRITE, `joomla_asterisk`.`jos_astats_data` WRITE, `joomla_asterisk`.`jos_astats_pages`as p WRITE, `joomla_asterisk`.`jos_astats_online_users` as o WRITE, `joomla_asterisk`.`jos_astats_online_users`AS online WRITE, `joomla_asterisk`.`jos_astats_online_users` WRITE, `joomla_asterisk`.`jos_astats_log_data` WRITE; Error number: 145 Table './joomla_asterisk/jos_astats_pages' is marked as c rashed and should be repaired Sc ript stopped. Ver

www.asteriskbrasil.org/index.php?opti…

2/13

12/9/2010

AsteriskBrasil.org - A comunidade bras…

CODific aç ão e DECodific ação utilizam-se de funç ões matemáticas para transformar um pac ote de voz com 64Kb para um pacote de, por exemplo, 8Kb. Cada algoritmo desse tem um nome/apelido. Alguns deles são G729a, µlaw, alaw, GSM, iLBC dentre outros[4]. 1.1.4 Telefonia IP x Voz sobre IP Telefonia IP e Voz Sobre IP, ou VoIP, são duas distintas classes na escala do transporte de voz. Telefonia IP envolve todos os serviços e meios de utilizaç ão de voz empac otada. Correio de voz, gravaç ão de chamadas, transferências, conferências todas elas oc orrendo no mesmo mundo IP, o uso destes infinitos rec ursos é c arac terizado como Telefonia IP. Voz sobre IP ou VoIP é ato de se transferir voz sobre um c anal IP de c omunic aç ão em. Pode ser representado c omo sendo o c ombustível ou o meio de transporte da Telefonia IP. 1.1.5 Telefonia Móvel Existem diversas formas de se c omunic ar de forma dinâmica, mas nenhuma delas se compara ao poder da mobilidade. O que em c erta époc a era apenas um dos rec ursos disponíveis em aeronaves e foguetes hoje ec ontra-se em todos os lares do mundo, na maioria deles pelo menos. A Telefonia Móvel tem sua masssificaç ão c laramente denotada pela disseminaç ão dos famosos “telefones c elulares”. Tec nologias c omo TDMA, CDMA, GSM tomaram c onta da mídia e ainda hojem permanecem fortes em um crescente segmento das telec omunicaç ões. A Telefonia Móvel tem se tornado uma parc eira ideal para o c resc imento da Telefonia IP. Já existem diversos produtos IP enc oporando tec nologias móveis, porém este ainda é um meio menos popular de transporte de voz. 2 Conhec endo o Asterisk O Asterisk é o c anivete suiço das telec omunicaç ões. Hoje ele faz muito mais que qualquer outra plataforma de telefonia(vídeo e imagem definitivamente também). O limite é sua c riatividade, lembre-se disto sempre. 2.1 Quem? Quando? Porque? Como? O Asterisk foi criado em 1999 por Mark Spenc er, fundador da Linux Support Servic es, uma empresa que inicialmente prestava serviç os de consultoria e suporte em platafromas GNU/Linux(para não ferir alguns xiitas...). Em um determinado momento Mark encontrou-se em frente a um projeto de telefonia: A nec essidade de soluc ionar um problema em seus atendimentos de c hamados telefônic os(Help Desk). Hoje aquele seu projeto é c onsiderado c omo uma das próximas inovaç ões do mundo Open Sourc e após o surgimento do Linux. Batizado c omo Asterisk, um c arac tere c oringa em ambientes UNIX like, este software esc rito originialmente em linguagem C(VERIFICAR SE É SOMENTE C) é parte do vasto território dos programas de c ódigo aberto disponíveis ao redor do globo. 2.1.1 O que é o Asterisk? O Asterisk é um software de PBX, ou seja, um programa de c omputador que possui todos os rec ursos de uma Central Telefônic a e faz a c onexão de redes privadas de telefonia com a rede públic a de telefonia. Assim c omo em qualquer 2.1.2 Entendendo o desenvolvimento do Asterisk O estrondoso sucesso do Asterisk teve seu iníc io c om o lanç amento da primeira versão estável do sistema, o Asterisk 1.0. Atualmente ele enc ontra-se na versão Asterisk 1.4. Seguindo os mesmos moldes de versionamento do Kernel Linux, o Asterisk possui um versão em desenvolvimento que tem o seu último dígito identific ador um número ímpar, por exemplo, a versão atual em desenvolvimento é a versão Asterisk 1.5. Em breve, quando ela estiver estabilizada e devidamente testada, esta versão irá tornar-se Asterisk 1.6 e será divulgada c omom última versão estável do sistema. Cada série(1.0, 1.2, 1.4, etc.) Tem seu prórpio mantenedor, ou seja, c ada versão lanç ada tem um c oordenador, que irá c ontrolar o sistema após o seu lançamento. Cada nova versão lançada, automatic amente encerra o desenvolvimento de uma versão antiga. Por exemplo, no lanç amento da versão Asterisk 1.6, o Asterisk 1.4 será descontinuado. Claro que correç ões de seguranç a e bugs ainda serão implementados, porém novas funcionalidades e a evolução do sistema será todo focado para a versÃo mais recente. O Asterisk utiliza o software SVN para versionamento de seu c ódigo e a ferramenta Mantis para registros de bugs e requisiç ão de novas func ionalidades. 2.1.3 Partic ipe também! Para partic ipar no desenvolvimento do Asterisk, voc ê pode c ontribuir de diversas formas. Doc umentando o projeto, que envolve manuais, howtos, doc umentaç ão de c ódigo entre outros. Projetos a para c ontinent e, país para pais e até de estado para estado. Para ser um desenvolvedor você prec isa estar muito próximo do c ódigo do sistema e ter uma boa noç ão de programação e desejável c onhecimento dos protocolos e padrões de telefonia. Como o Asterisk é distribuído sob a GPL 2.0, basta escrever suas linhas de código e reportar ao líder do projeto(o mantenedor do c ódigo da respec tiva versão), ele irá determinar se o seu c ódigo irá ou não fazer parte do sistema. É claro que antes de se aventurar é importante e determinante que voc ê participe da lista de emails dos desenvolvedores[5]. 2.2 Arquitetura tec nológic a do Asterisk Basta entender um pouc o sobre as c arac terísticas do Asterisk para c omeç ar a evoluir seus c onhec imentos neste software. Este c apítulo irá trazer o básic o para iniciar uma imersão mais profunda neste sistema. INSERIR IMAGEM DESCRITIVA DO ASTERISK 2.2.1 Diretórios e arquivos O Asterisk segue o modelo LSB[6] de disposiç ão de diretórios e arquivos. Veja abaixo a espinha dorsal do sistema: /etc/asterisk Arquivos de configuraç ão. Voc ê irá c onhec ê-los com mais detalhes no dec orrer deste livro ou gerando os arquivos de exemplo do sistema. Ao final da c ompilaç ão do Asterisk, digite “make samples”, para gerar estes arquivos. Exemplo de um arquivo de c onfiguraç ão do Asterisk: /etc/asterisk/sip.c onf [101] ;c ontexto type=peers ;parâmetro de configuração context=ramais ;parâmetro de configuração sec ret=senha ;parâmetro de c onfiguraç ão language=pt_BR ;parâmetro de c onfiguraç ão disallow=all ;parâmetro de c onfiguraç ão allow=g729,alaw ;parâmetro de c onfiguraç ão mailbox=101@c orreio ;parâmetro de c onfiguraç ão ou /etc/asterisk/extensions.conf [ramais] ;c ontexto inc lude ⇒ ramais.c onf ;incluir conteúdo de outro arquivo exten ⇒ 101,1,Dial(SIP/101,10) ;extensão c om prioridade 1 exten ⇒ 101,2,Voic eMail(u101@c orreio);extensão c om proridade 2 Todos os arquivos seguem a notaç ão acima c om c ontextos e c ontéudos(parâmetros, inc ludes e extensões). Os c onteúdos variam de arquivo para arquivo e alguns contextos possuem c omportamento expecial como veremos nos próximos c apítulos deste livro. /var/lib/asterisk/sounds Arquivos de som do sistema. Mensagens e sons utilizados nas diversas aplic aç ões do Asterisk fic am armazendas neste diretório. Caso voc ê esteja usando o Asterisk no Brasil, voc ê irá prec isar c onfigurar o sistema de acordo c om a linguagem Português do Brasil, utilizando o c ódigo de linguagem pt_BR onde for requisitado. Alguns subdiretórios possuem arquivos de áudio espec ífic os. /var/lib/asterisk/sounds/digits /var/lib/asterisk/sounds/letters /var/lib/asterisk/sounds/phonetic /var/lib/asterisk/agi-bin Diretório que c ontém as aplicaç ões AGI[7] utilizadas pelo Asterisk. São pequenos programas auxiliares que podem ajudar o Asterisk em momentos de tomada de dec isões no fluxo de uma c hamada ou trazendo mais recursos e aplic aç ões no formato “plugin”. /var/spool/asterisk Loc al para onde as c hamadas são enviadas antes de chegar ao seu destino final. Aqui as chamadas são enfileiradas e saem uma a uma aos seus destinos. É aqui que também fic am as c aixas postais dos ramais do sistema. /usr/lib/asterisk/modules O c ódigo do Asterisk é todo moduarizado, ou seja, voc ê pode unir peç a a peça para moldar o sistema de ac ordo c om suas nec essidades. Os arquivos neste diretório tem aseguinte nomenc latura: tipo_nome.so (Ex.: channel_zap.so) Alguns módulos bastante c omuns em um sistema Asterisk são: format_g729.so Suporte ao c odec g729 c han_sip.so Suporte ao protocolo SIP de c omunic aç ão IP app_voicemail.so Módulo que controla o c orreio de voz app_meetme.so Módulo que gerenc ia as c onferênc ias /var/log/asterisk Arquivos de log so sistema. Neste diretório voc ê enc ontra os arquivos que c ontém os “rastros” de atividade do Asterisk. Voc ê pode possuir diferentes arquivos c ada qual com um nível de detelhamento ou tipo de mensagem. O arquivo que c ontrola o seu c onteúdo é o /etc/asterisk/logger.c onf[8]. 2.2.2 O servidor O Asterisk possui versões que podem ser ujtilizadas em FreeBSD, Mac OSX, Linux dentre outros menos expressivos sistemas operac ionais. A versão mais utilizada e melhor documentada e testada é a versão para o sistema operac ional Linux. O hardware indic ado para utilizaç ão do Asterisk varia de ac ordo com a sua utilizaç ão. Voc ê deve dimensionar o seu sistema baseado na quantidade de ramais/tronc os e/ou nas aplicaç ões a serem utilizadas em sua implementaç ão. Exemplo de maquina para SOHO Exemplo de maquina para Empresa Media Exemplo de maquina para Empresa Grande 2.2.3 Sopa de letrinhas... Codec s e

www.asteriskbrasil.org/index.php?opti…

3/13

12/9/2010 Protoc ol) O protoc olo base da rede Internet e de redes privadas.-- A comunidade bras… AsteriskBrasil.org TCP (Transport Control - IP (Internet
Protoc ol) Protoc olo de transporte de dados em redes IP com controle de entrega de pac otes. - UDP (...) Protoc olo de transporte de dados em redes IP sem c ontrole de entrega de pac otes. - SIP (Session Initiation Protoc ol) Protoc olo de transporte de pac otes de voz em redes de dados IP. O SIP é o protoc olo mais utilizado nas implementaç ões atuais de transporte de voz. Seu c aráter aberto e fác il implementaç ão tornaram este protoc olo um padrão presente em todos(ou na grande maioria) os produtos e serviços de telefonia IP. - H323 (...) O H323 .... 2.2.3.2 Telefonia Digital - MFCR2 (...) Uma variante brasileira deste protoc olo é MFCR2DBR - PRI Padrão de sinalizaç ão E1 utilizado nos países norte americ anos. 2.2.3.3 Telefonia Analógic a - FXS (Foreign eXc hange Station) Sinalizaç ão enviada para telefones analógic os. - FXO (Foreign eXc hange Office) Sinalizaç ão enviada para tronc os analógicos 2.2.3.4 CODECs - G729 - G723 - G726 - iLBC - Speex 2.2.4 Os Canais(c hannels) Os canais são os responsáveis pela c omunicaç ão entre as aplicaç ões, ramais e troncos do Asterisk. Todos os rec ursos que envolvem c hamadas, são disponibilizados por meios de c anais de c omunic ação, os “channels” do Asterisk. IMAGEM COM CANAIS E O ASTERISK O Asterisk possui diversos tipos de c anais. Os tipos de c anais possíveis são: 2.2.4.1 Canal SIP (c han_sip.so) Este c anal é reponsável pela comunic ação SIP entre o Asterisk e ramais ou troncos que falem este protoc olo. O c anal SIP é configurado através do arquivo /etc /asterisk/sip.c onf Os parâmetros de c onfiguraç ão SIP para o c ontexto [general] são: Parâmetros Valores Desc rição disallow all|lista de c odec s disallow=all Desabilita todos os c odec s. allow all|lista de codecs Habilita todos(all) ou os c odec s espec ificados e espaçados por vírgulas por ordem de preferência. Utilizar disallow=all para espec ificar alguns. allowexternalinvites yes|no Permite ou não o INVITE e REFER para domínios não loc ais. Deafult é yes. allowguest yes|no Permite ou não chamadas não c onhec idas(guest). Default é yes autocreatepeer yes|no Se estiver c omo yes irá permitir que qualquer um se autentique c c omo peer(sem c hec agem de c redenciais). Interessante em conjunto c om o SER. Default é no. autodomain yes|no Habilita ou não a abilidade do Asterisk inserir hosts loc ais ou Ips loc ais a lista de domínios. Default é no. bindaddr número ip Endereç o IP onde o Asterisk irá escutar as requisiç ões SIP. Default é 0.0.0.0. bindport número inteiro Porta UDP onde o Asterisk irá esc utar as requisições SIP. Default é 5060. c allerid nome Callerid padrão c aso nenhum seja espec ifdic ado. O default é asterisk. c anreinvite update|yes|no Permite que A e B trafeguem mídia de voz diretamente sem utilziar o Asterisk. Default é yes. c hec kmwi tempo em segundos Tempo em segundos do intervalo de checagem das c aixas de c orreio. Default é 10. c ompactheaders yes|no Se o Asterisk enviará ou não c abeç alhos compac ados(aabreviados) nas mensagens SIP. Default é no. c ontext nome O c ontexto default. Usado quando um endpoint não possui esta informaç cão. defaultexpirey tempo em segundos O tempo em segundos para registros SIP(entrante/saintes). Default é 120. dtmfmode inband|info|rfc2833 Modo DTMF. Default é rfc 2833. domain nome Lista de domínios, separados por vírgula, ao qual o Asterisk irá ser responsável. dumphistory yes|no Habilita o suporte de gerar um dump de c onversas SIP no LOG_DEBUG. Default é no. extermip número ip ou nome Endreço IP ou nome do host que será c oloc ado em mensagens SIP se o Asterisk estiver atrás de NAT. Se for usado o nome de host, ele será verificado somente uma vez. Usar externhost se o nome estiver associado a um IP dinâmic o. externhost nome Nome do host que será c oloc ado em mensagens SIP se o Asterisk estiver atrás de NAT. extermrefresh tempo em segundos Tempo em segundos que será feito um refresh do DNS do nome espec ific ado em externhost. Default é 10. ignoreregexpire yes|no Indic a quando usar a informação de Contact de um peer se esta informaç ão estiver oc iosa por ter alcanç ado seu tempo máximo de expiraç ão.. language nome Idioma padrão para as aplic aç ões Playbac k() e Bac kground() loc alnet endereç o ip/ mascara de rede Endereç o de rede loc al e masc ara. fromdomain nome de domínio Altera o c ampo From: do c abeç alho SIP quando o Asterisk é um UA(User Agent). insecure very|yes|no|invite|port Como tratar c onexões SIP c om peers. Default é no(autentic a todas as conexões). maxexpirey tempo em segundos Tempo máximo, em segundos, que será aguardado para registros SIP. Default é 3600. musicc lass nome Uma das classes de Músic a em Espera disponível no sistema(music onhold.conf) music onhlod nome Mesmo que music c lass nat yes|no|never|route Default é no. Use yes c aso o seu UA esteja atrás de NAT. notifymimetype mediatype/subtype Permite sobrepor o tipo de midia[9] no MWI NOTIFY usado no c orreio de voz. notifyringing yes|no NOTIFY no momento de ringing. Default é yes. outboundproxy número ip ou dns srv Proxy para envio de c hamadas saintes. Não espec ific ar o prefixo _sip._udp em caso de DNS SRV. outboundproxyport número inteiro Porta UDP do proxy de chamdas saintes. pedantic yes|no Permite a c hecagem pedantic de c allerid, c abeç alhos multiline SIP e c abeç alhos URI c odific ados. port número inteiro Porta SIP do UA. Não é a mesma coisa do que bindport. progreeinband never|no|yes Se é nec essário gerar ring inband SEMPRE. Default é never/ promisc redir yes|no Permite o suporte a Redirects 302. Irá redirecionar todos a extensão loc al presente no c ampo Contac t ao invés da extensão de destino. qualify yes|no|tempo em milisegundos Chec a se o c liente(UA) está alc anç avel. Se yes irá chec ar a c ada 2000ms. Default é no. realm nome Alterar o realm padrão(asterisk). recordhistory yes|no Habilita o logging do históric o de transações SIP. regcontext nome Contexto padrão para utilizar nas respostas SIP REGISTERs dos servidores SIP. register ⇒ <username>:<password>:[authid]@<sip client/peer id in sip.c onf>/<contac t> Para realizar o registro SIP em outro server. registerattempts número inteiro Número de tentativas de registro antes de desistir de realizar o registro. Default é 0. registertimeout tempo em segundos Tempo para esperar para caracaterizar um timeout de registro. Default é 0(sem limite). relaxdtmf yes|no Relaxar a detec ç ão DMTF. rtautoc lear yes|no|tempo em segundos Auto expirar contas c riadas no realtime. Default é 120. rtc achefriends yes|no Fazer c ache de c ontas SIP na lista interna do Asterisk c omo é feito usando os arquivos de c onfiguraç ão ao invés de realtime. Default é no. rtpholdtimeout tempo em segundos Tempo, em segundos, de timeout de uma c hamada em hold antes de derruba-la. Default é 0(ilimitado). rtpkeepalive tempo em segundos Tempo em segundos até que seja enmviado um RTP Keepalive em c aso de inatividaade de um c anal de voz. rtptimeout tempo em segundos Tempo em segundos até c arac terizar a c hamada c omo inativa. Default é 0(sem RTP timeout). rtupdate yes|no Envia updates de registry ao banc o de dados do Asterisk quando estiver usando realtime. sendrpid yes|no Se um RemoteParty_ID do cabeç alho SIP devará ser enviado. Default é no. sipdebug yes|no Modo debug no iníc io do módulo SIP. srvlookup yes|no Habilitar consultas DNS SRV. Default é no. tos valor qos Parametro QoS parra saída de c hamdas. Valores numéric os pode ser usados c omo tos=184 trustrpid yes|no Se o Remote-Party- ID do cabeçalho SIP deverá ser confiável. useclientc ode yes|no useregphone yes|no Para usar user=phone ao URI. useragent nome Customizar o c abeç alho User-Agent do protocolo SIP. Alterar a identific aç ão do Asterisk. Default é asterisk. videosupport yes|no Para usar o suporte a vídeo. Default é no. vmexten nome Extenssão do dialplan para ac essar o c orreio de voz. Default é asterisk. Parâmetros específic os para type=peer e type=user. Parâmetros Valores Descriç ão type host disallow allow allowexternalinvites Yes|no Permite ou não o INVITE e REFER para domínios não loc ais. Deafult é yes. allowguest Yes|no Permite ou não c hamadas não c onhecidas(guest). Default é yes 2.2.4.2 Canal IAX (c han_iax2.so) Este c anal é reponsável pela comunic ação SIP entre o Asterisk e ramais ou troncos que falem este protoc olo. O c anal SIP é configurado através do arquivo /etc /asterisk/sip.c onf Os parâmetros de c onfiguraç ão SIP são: Parâmetros Desc riç ão Type host=0.0.0.0 Host permitido para ac esso ao sistema. peer/user disallow=all peer/user allow=g729,ulaw peer friend 2.2.4.3 Canal Loc al (c han_loc al.so) Canais do tipo “Loc al” são utilizados para acessar recursos locais do Asterisk. Voc ê pode por exemplo chamar um ramal SIP utilizando a seguinte notação: Loc al/3333 ao invés de SIP/333. 2.2.4.4 Canal ZAP (c han_zap.so ) Os canais ZAP são utilizados para realizar a c omunic aç ão do Asterisk c om o mundo da telefonia Digital e Analógica. É através dele que configuraremos os tronc os E1(PRI), por exemplo, com uma operadora de telefonia. Ou através dele disponibilizamos ramais analógicos conectados diretamente ao servidor Asterisk. Para a utilizaç ão deste tipo de c anal é nec essário a utilizaç ão de plac as(geralmente c om barramento PCI) c onec tadas ao servidor Asterisk. Vamos falar um pouco mais sobre placas deste tipo mais adiante. O arquivo que c onfigura este c anal é o /etc /asterisk/zapata.c onf. Veja na tabela abaixo os parâmetros disponíveis neste arquivo: Parâmetros Desc riç ão language=pt_BR group=0 c hannels=1-4 2.2.4.5 Canal Unic all[10] (c han_unic all.so)

www.asteriskbrasil.org/index.php?opti…

4/13

12/9/2010

AsteriskBrasil.org - A comunidade bras…

O Canal Unicall tem enorme importânc ia em território brasileiro, pois é ele o responsável pelo suporte ao protoc olo de sinalizaç ão de E1 CAS MFCR2DBR. O arquivo que c onfigura este módulo é o /etc /asterisk/unic all.conf. Os parâmetros utilizados neste arquivo se assemelham muito c om os parâmteros utilizado no arquivo de configuração de c anais ZAP. Veja na tabela abaixo ps parâmetros disponíveis neste arquivo: Parâmetros Desc riç ão language=pt_BR group=0 channels=1-4 2.2.5 Equipamentos periféricos O Asterisk, como qualquer outro ambiente de telefonia, possui apetrec hos tec nológicos para disponibilizar um ambiente c ompleto de c omunicaç ão. Telefones, plac as, gateways, enfim, é nec essário alguns ac essórios para que se faç a o uso c ompleto do Asterisk. Neste c apítulo iremos c onhec er alguns destes acessórios. 2.2.5.1 Plac as digitais e analógic as Para c onec tar o Asterisk às redes de telefonia c onvenc ionais(chamaremos de PSTN[11] estas redes no decorrer deste livro). Existem diversos fabricantes de plac as analógic as e digitais que possuem suporte no Asterisk. As mais c onhec idas são as plac as Digium, empresa de Mark Spencer, criador do Asterisk. Abaixo vamos listar alguns fabric antes e seus produtos. Digium (LOGO) TE110P (FOTO DA PLACA) LISTAR TODAS AS PLACAS Sangoma LISTAR TODAS AS PLACAS Voicetronix LISTAR TODAS AS PLACAS Go Varion LISTAR TODAS AS PLACAS Digivoic e LISTAR TODAS AS PLACAS Khomp LISTAR TODAS AS PLACAS Pika LISTAR TODAS AS PLACAS O projeto Zapata Telephony[12] disponibiliza sob a licenç a GPL um projeto para fabricaç ão de alguma destas placas, ou seja, no Asterisk até hardware utilizado pode ter espec ific ação aberta. A maioria das placas ac ima são basedas no projeto Zapata Telephony e suas c onfiguraç ões estão disponíveis no arquivo /etc /zaptel.c onf. 2.2.5.2 Telefones Impossível imaginar(pelo menos por enquanto) um sistema de telefonia sem telefones. Pois bem, o Asterisk possui uma lista extensa de telefones suportados. Vamos c omentar sobre alguns deles. Polyc om FOTO Cisco FOTO Snom FOTO Analógico SIEMENS (FXS) UM BEM ANTIGO... (FXS) 2.2.5.3 ATAs Analog Telephony Adapter, este é o signific ado de ATA. Um ATA é utilizado para transformar um telefone analógico em telefone IP. Existem diversos ATAs disponíveis no merc ado, basic amente a sua diferenç a está na quantidade de portas(conectores). Existem ATAs de uma porta analógic a e de até vinte e quatro portas analógicas, o que signific a que podemos ter um telefone ou vinte e quatro telefones c onec tados no mesmo equipamento, c ada qual c om seu número próprio. Um ATA é um gateway de pequeno porte que faz a converç ão de um sinal analógic o para um sinal IP. Alguns ATAs estão listados abaixo. IAXy (FOTO) Handy Tone (FOTO) Linzsys PAP2 (FOTO) 2.2.5.4 Softphones Softphones são telefones IP via software, ou seja, são telefones que podemos utilizar em um c omputador. Existem diversos(para nÃo dizer milhares) de opções de softwaphones disponíveis. Alguns c omerc iair, outros livres. Para Windows, Linux ou Mac OSX, PDAs e handhelds, enfim, a oferta é grande e voc ê saberá escolher o que melhor se adapta ao seu projeto. Xten (SCREENSHOT) Firefly (SCREENSHOT) EyeBeam (SCREENSHOT) Kphone (SCREENSHOT) Ekiga (SCREENSHOT) 2.2.5.5 Outros Channels banks PABX IPBX Gateways balun A balun is a devic e designed to c onvert between balanc ed and unbalanced elec tric al signals, suc h as between coaxial c able and ladder line. Baluns can be c onsidered as simple forms of transmission line transformers. 2.3 Documentação adic ional e Downloads Canal Unic all – http://www.soft-switc h.org/unic all [http://w w w.soft-sw itch.org/unicall] Projeto Asterisk – http://www.asterisk.org [http://w ww .asterisk.org] Projeto AsteriskBrasil.org – http://www.asteriskbrasil.org [http://w ww .asteriskbrasil.org] Biblia Sagrada do Engenheiro VoIP – http://www.voip-info.org [http://ww w .voip-info.org] 3 Configuraç ões básicas do Asterisk Todas as c onfiguraç ões do Asterisk se enc ontram nos arquivos *.conf do diretório /etc /asterisk. Não existe distinç ão no local onde se c onfigura um ramal ou um tronc o ou mesmo uma sala de c onferência. Todos estes rec ursos estão presentes, muitas vezes, nos mesmos arquivos de c onfiguraç ão. O que os distingue dentro do mesmo arquivo, são os c ontextos. Antes de c omeç ar a Asteriskar é nec essário fazer um preparo do seu sistema. Vamos tropic alizar o servidor e realizar alguns ajustes. 3.1 Inserindo os padrões de telefonia Brasileiro /etc /asterisk/.indic ations.c onf [general] c ountry = br [br] description = Brazil ringc adanc e = 1000,4000 dial = 425 busy = 425/250,0/250 ring = 425/1000,0/4000 c ongestion = 425/250,0/250,425/750,0/250 c allwaiting = 425/50,0/1000 ; Dialrecall não é utilizado no Brasil. Use o padrão inglês. dialrec all = 350+440 ; Rec ord não é utilizado no Brasil. Use tom de oc upado rec ord =

www.asteriskbrasil.org/index.php?opti…

5/13

12/9/2010

AsteriskBrasil.org - A comunidade bras…

linguagem Português do Brasil basta regravar os áudios e adic iona-los nos diretórios abaixo # mkdir /var/lib/asterisk/sounds/pt_BR # mkdir /var/lib/asterisk/sounds/digits/pt_BR # mkdir /var/lib/asterisk/sounds/letters/pt_BR # mkdir /var/lib/asterisk/sounds/phonetic /pt_BR Os arquivos de áudio devem possuir o mesmo nome porém podem ser gravados c om outros formatos de áudio. O formato padrão dos arquivos originais é o GSM, porém para se ter maior qualidade nas loc uções é interessante gravar o áudio c om uma qualidade mais alta. Os áudios devem posssuir amostragem de 8Khz e qualidade de 16 bits para que se possa trafegar em redes de telefonia. Observe que se um ramal, c om suporte somente ao codec GSM, acessar o servidor com os áudios gravados em outro formato não GSM, o Asterisk irá realizar um processo de transc oding[13], o que irá trazer impac tos de performanc e. 3.3 Criando ramais Ramal SIP: sip.conf Exemplo: Ramal Analógic o(ZAP): zapata.c onf Exemlo: Ramal IAX: iax.c onf Exemplo: 3.4 Criando troncos Tronco SIP: sip.c onf Tronc o Digital(ZAP): zapata.c onf ; Note the ‘g2’ in the TRUNK variable above. It spec ifies whic h group (defined ; in zapata.c onf) to dial, i.e. group 2, and how to choose a c hannel to use in ; the spec ified group. The four possible options are: ; ; g: selec t the lowest-numbered non-busy Zap channel ; (aka. ascending sequential hunt group). ; G: selec t the highest-numbered non-busy Zap c hannel ; (aka. descending sequential hunt group). ; r: use a round-robin searc h, starting at the next highest c hannel than last ; time (aka. asc ending rotary hunt group). ; R: use a round-robin search, starting at the next lowest channel than last ; time (aka. desc ending rotary hunt group). Tronc o Digital(Unic all) Tronc o Analógic o: zapata.c onf 3.5 Realtime O Realtime é um rec urso relativamente novo no Asterisk. Em suma ele permite que se armazene c onfiguraç ões e o próprio plano de disc agem do Asterisk em u m banc o de dados relac ional. Estas c onfiguraç ões, neste modo de operaç ão, são automatic amente instanc iadas no sistema, sem que haja a necessidade de se refazer uma leitura nos arquivos de c onfiguraç ão do Asterisk. Este recurso é indispensável em ambiente de alto tráfego de telefonia. Um simples reinic iar da plataforma de telefonia poderia oc asionar interrupaç ão de serviç os por alguns instantes, mas o sufcietnte para ser sensível aos usuários. O realtime ainda é um rec urso novo no Asterisk, portanto nem tudo pode estar presente neste modo de operaç c ão. Alguns arquivos de c onfiguraç ão ainda são necessários. Use realtime sempre que possível. 4 Mergulhando no Dialplan O arquivo responsável pelo Dialplan, ou plano de disc agem, do Asterisk é o /etc/asterisk/extensions.conf. Podemos c hamar de a Peç a Chave do Asterisk o arquivo extensions.c onf. Um plano de discagem é composto por c ontextos, extensões, prioridades e aplicaç ões. Alguns c ontextos são reservados e possuem uma sintaxe espec ial. Veja a sintaxe do arquivo /etc /asterisk/extensions.c onf: [general] parametro01 = valor01 parametro02 = valor02 ... [globals] GLOBALVAR01 = valor01 GLOBALVAR02 = valor02 ... [contexto] exten ⇒ extensão,prioridade,aplic ação(argumentos) Vamos analizar um pequeno trecho deste arquivo para entender sua morfologia e sintaxe. [ramais] exten ⇒ 101,1,Dial(SIP/101,10) exten ⇒ 101,2,VoiceMail(u101@correio) exten ⇒ 101,3,Hangup() exten ⇒ 102,1,Dial(SIP/102,10) exten ⇒ 102,2,Voic eMail(u102@c orreio) exten ⇒ 102,3,Hangup() [ramais] é o c ontexto, 101 e 102 são as extensões o segundo parâmetro(1.2.3) são as prioridades e Dial, VoiceMail e Hangup são as aplic aç ões. Neste c apítulo vamos entender um pouco mais sobre c ada uma destas peç as do plano de discagem do Asterisk. Usando #inc lude para inc luir arquivos Voc ê pode inc luir outros arquivos dentro do dialplan, para isso adic ione a seguinte linha dentro do extensions.c onf. #inc lude extensions_ramais.c onf O conteúdo do arquivo /etc/asterisk/extensions_ramais.c onf também estará disponível no dialplan. NÃO CONFUNDIR ESTE INCLUDE COM O INCLUDE DE CONTEXTOS, ANALISADO MAIS ADIANTE. Vale lenbrar que todos os arquivos do projeto Asterisk permitem a utilizaç ão de #inc lude[14]. Porém há diferenç a entre dois 4.1 Contextos(context) [ramais] É o c ontexto do trec ho de dialplan exemplificado ac ima, é ele o responsável pela diferenciaç ão deste segmento de c ódigo para outros no mesmo arquivo. Este método possibilita a divisão do arquivo em grupos que podem ser totalmente distintos entre si. Os nomes dos c ontextos não podem c onter espaç os, somente c arac teres alfanumeric os. 4.1.1 Contexto [general] O c ontexto [general] é utilizado para adic ionar alguns parâmetros gerais de c onfiguraç ão do dialplan, portanto o nome de contexto general é reservado pelo Asterisk. São estes os parâmetros de configuraç ão do c ontexto [general]: Parametro Valor Desc riç ão static Yes|no If static is set to no, or omitted, then the pbx_c onfig will rewrite ; this file when extensions are modified. Remember that all c omments ; made in the file will be lost when that happens. writeprotec t Yes|no if static =yes and writeprotec t=no, you c an save dialplan by ; CLI c ommand ‘save dialplan’ too ; autofallthrough Yes|no ; If autofallthrough is set, then if an extension runs out of ; things to do, it will terminate the c all with BUSY, CONGESTION ; or HANGUP depending on Asterisk’s best guess (strongly rec ommended). ; ; If autofallthrough is not set, then if an extension runs out of ; things to do, asterisk will wait for a new extension to be dialed ; (this is the original behavior of Asterisk 1.0 and earlier). c learglobalvars Yes|no ; If c learglobalvars is set, global variables will be c leared ; and reparsed on an extensions reload, or Asterisk reload. ; ; If c learglobalvars is not set, then global variables will persist ; through reloads, and even if deleted from the extensions.c onf or ; one of its inc luded files, will remain set to the previous value. ; priorityjumping Yes|no ; If priorityjumping is set to ‘yes’, then applic ations that support ; ‘jumping’ to a different priority based on the result of their operations ; will do so (this is backwards compatible behavior with pre-1.2 releases ; of Asterisk). Individual applic ations c an also be requested to do this

www.asteriskbrasil.org/index.php?opti…

6/13

12/9/2010

AsteriskBrasil.org - A comunidade bras…

simples, que retorna o valor da variavel ${ENV(VARIAVEL)} Para utilizar o valor de uma variável de ambiente(sistema operac ional) ${texto${VARIAVEL}} Ac resc entando um prefixo a um valor de variável 4.1.3 Parâmetro include É possível incluir um contexto dentro de outro utilizando o parâmetro inc lude da seguinte forma: [ramais] inc lude ⇒ ramaisIP exten ⇒ 101,1,Dial(SIP/101,10) exten ⇒ 101,2,Voic eMail(u101@correio) exten ⇒ 101,3,Hangup() exten ⇒ 102,1,Dial(SIP/102,10) exten ⇒ 102,2,Voic eMail(u102@c orreio) exten ⇒ 102,3,Hangup() Neste c aso quem estiver c om permissões de ac esso ao c ontexto [ramais] também terá ac esso ao c ontexto [ramaisIP]. Isto é possível graç as ao parametro include dentro do c ontexto [ramais]. Os inc ludes podem assumir uma c ondição de tempo para serem ativados. Por exemplo, poderíamos inserir o inc lude do exemplo acima da seguinte forma: [ramais] inc lude ⇒ ramaisIP|9:00-17:00|mon-fri|*|* exten ⇒ 101,1,Dial(SIP/101,10) exten ⇒ 101,2,Voic eMail(u101@c orreio) exten ⇒ 101,3,Hangup() exten ⇒ 102,1,Dial(SIP/102,10) exten ⇒ 102,2,Voic eMail(u102@c orreio) exten ⇒ 102,3,Hangup() Neste c aso o c ontexto [ramaisIP] só estaria disponível para o c ontexto ramais, de segunda a sexta das nove as cinc o horas da tarde. 4.1.4 Parâmetros espec íficos de um c ontexto Alguns parâmetros diferentes de exten ⇒ podem ser usados dentro de contextos. Você pode acessar um plano de disc agem remoto, de outro servidor Asterisk, utilizando o parâmetro swic th ⇒. switc h ⇒ IAX2/user:password@bigserver/local Variantes do swic th ⇒ também podem ser úteis. lswic th ⇒ Loopbac k/12${EXTEN}@outroontexto O lswitc h ⇒ possui a mesma funç ão do parâmetros switc h, porém quando voc ê deseja passar um valor que contenha uma variável, ele não faz a subistituiç ão da mesma, ou seja, a string é enviada de forma literal. eswitc h ⇒ Loopbac k/12${EXTEN}@outroc ontexto O eswitc h ⇒ realiza a mesma função do lswitc h ⇒ porém realiza a substituiç ão de variáveis antes de enc aminhar o dialplan ao realtime. 4.2 Extensões(exten) Uma extensão pode ser c omposta por letras, números ou uma combinação de ambos. exten ⇒ Define uma linha de programaç ão do dialplan. São elas as responsáveis pela inteligênc ia do Asterisk. Por elas c onfiguramos as tarefas contidas nos planos de discagem bem c omo a sua ordem de exec uç ão. exten ⇒ 101,1,Dial(SIP/101,10) exten ⇒ 101,2,Voic eMail(u101@c orreio) exten ⇒ 101,3,Hangup() Este dialplan nos diria, se falassse português, a seguinte frase: “Quando alguém ou alguma c oisa digitar(enviar estes dígitos: 101) ao Asterisk, ele irá exec utar a alpicaç ão Dial c om o argumento SIP/101,10. Após c onc luída esta primeira aç ão ele irá exec utar a aplic ação Voic eMail com os parâmteros u101@correio. Por último execute a aplic aç ão Hangup sem parâmetro algum.” E em português brasileiro, mais c laro ainda: “Chame o ramal 101, se ele não atender envie esta c hamada para o seu Correio de Voz e desligue a c hamda em seguida.” Chamamos de extensão a seguinte porç ão deste exmplo: exten ⇒ 101 Após a vírgula temos as c hamadas Prioridades e na sequência as Aplic aç ões. 4.2.1 Extensões espec iais Algumas extensões expec iais presentes no Asterisk são: exten ⇒ t Representa timeout exten ⇒ s Exten inic ial, quando uma c hamda for enviada a um c ontexto sem uma extensão definida. S de start. exten ⇒ h Extensão de hangup exten ⇒ o Extensão out, utilizado pela aplic ação Voic eMail exten ⇒ talk exten ⇒ hint exten ⇒ fax exten ⇒ T exten ⇒ failed 4.2.2 Padrões de disc agem É possível utilizar c arac teres c oringas c omo valor de extensões. Se uma extensão é inic iada com o c arac tere undersc ore ‘_’ isto não é interpretado literalmente pelo Asterisk e sim c omo um padrão de discagem. Os padrões de disc agem definem c oringas para representar dígitos ou um grupo de dígitos sem ter a mecessidade de especific a-los explic itamente c omo uma extensão do plan o de disc agem. Veja a seguinte linha de um dialplan: exten ⇒ _014ZZXXXXXXX,2,Mac ro(c hama-tronc o,2,${EXTEN}) Neste caso qualquer número que inic ie c om 014, tenha um total de 12 dígitos, sendo o quarto e quinto dígito um número entre 1 e 9 e os demais números sendo qualquer dígito entre 0 e 9 irá seguir por essa linha do diaplan enviando para a macro chamaramal o valor da variável ${EXTEN}. Veja, na tabela abaixo, o signific ado de todos os padrões de disc agem disponíveis: Padrão Desc riç ão X Qualquer dígito entre 0 e 9 Z Qualquer dígito entre 1 e 9 N Qualquer dígito entre 2 e 9 [1235-9] Qualquer dígito entre c olchetes (neste exemplo, 1,2,3,5,6,7,8,9 . O ponto é um c oringa, siginific a qualquer c oisa (Por exemplo _9011. signific a qualquer c oisa c omeç ando c om 9011 menos o prórpio 9011) ! wildc ard, c auses the matching process to c omplete as soon as it can unambiguously determine that no other matc hes are possible 4.3 Prioridades As prioridades são o segundo parâmetro das extensões. É c om ela que definimos a rodem de aç ões dentro de um plano de disc agem. As prioridades devem ser especific adas de forma c resc ente e não prec isam nec essariamente ser c ontínuas, por exmplo: exten ⇒ 101,1,Dial(SIP/101,10) exten ⇒ 101,2,Voic eMail(u101@c orreio) exten ⇒ 101,3,Hangup() As prioridades 1, 2 e 3 poderiam ser esc ritas da seguinte forma: exten ⇒ 101,1,Dial(SIP/101,10) exten ⇒ 101,15,VoiceMail(u101@correio) exten ⇒ 101,18,Hangup() 1, 15 e 18 são as novas prioridades. Isso pode ajudar muito em casos onde se está desenvolvendo um dialplan e existe a nec essidade de se adic ionar linhas entre as extensões já c riadas. Lembre-se que as prioridades sempre devem c omeç ar c om 1 nestes c asos. VERIFICAR A VERACIDADE 4.3.1 Prioridade n+101 Uma prioridade espec ífic a merec e atenção. A prioridade n + 101. Veja o exemplo abaixo. exten ⇒ 101,1,Dial(SIP/101,10) exten ⇒ 101,2,Voic eMail(u101@c orreio) exten ⇒ 101,102,VoiceMail(b101@c orreio) exten ⇒ 101,3,Hangup() Neste c aso a prioridade 102, ou 1 + 101 diz que c aso a prioridade número 1 encontre sinal de oc upado o Asterisk deve enviar a chamada para a prioridade 102, caso c ontrário c ontinuará exec utando a prioridade seguinte a número 2. 4.3.2 Prioridade next A prioridade next ou simplesmente n siginific a a prioridade anterior mais um. exten ⇒ 101,1,Dial(SIP/101,10) exten ⇒ 101,n,Voic eMail(u101@c orreio) exten ⇒ 101,1+101,Voic eMail(b101@c orreio) exten ⇒ 101,n,Hangup() Moleza hein? 4.3.3 Prioridade same A prioridade same ou simplesmente s, significa que esta prioridade tem o mesmo valor da prioridade anterior. A prioridade s+1 tem o mesmo valor que a prioridade n. exten ⇒ 101,1,Dial(SIP/101,10) exten ⇒ 101,s+1,VoiceMail(u101@c orreio) exten ⇒ 101,102,VoiceMail(b101@correio) exten ⇒ 101,s+1,Hangup() 4.3.4 Sinais numéric os e prioridades As prioridades podem ser seguidas de um sinal ‘+’ (ou outro sinal numéric o)e um valor a ser somado. Este rec urso é utilizável em c onjunto c om as prioridades next e same. exten ⇒ 101,1,Dial(SIP/101,10) exten ⇒ 101,2,Voic eMail(u101@c orreio) exten ⇒ 101,1+101,Voic eMail(b101@c orreio) exten ⇒ 101,3,Hangup() 4.3.5 Apelidos para prioridades As prioridades podem possuir apelidos ou alias para que possam ser referenciadas c om a aplic aç ão Goto() ou em outras áreas do plano de disc agem.. Este apelidos devem ser especific ados entre parentesis logo após o valor da prioridade, como no exemplo abaixo. exten ⇒ 101,1(dial),Dial(SIP/101,10) exten ⇒ 101,2,Voic eMail(u101@c orreio) exten ⇒ 101,dial+101,VoiceMail(b101@correio) exten ⇒ 101,3,Hangup() Outro exemplo: exten ⇒ 101,1(,Dial(SIP/101,10) exten ⇒ 101,2,Voic eMail(u101@c orreio) exten ⇒ 101,102,VoiceMail(b101@correio) exten ⇒ 101,n,Goto(${EXTEN},hangup) exten ⇒ 101,hangup,Hangup() 4.4 Aplicaç ões As aplic aç ões formam o c oraç ão do dialplan. Elas trazem aplic ativos pré empacotados ao plano de discagem. As aplic aç ões são o terceiro parâmetro de uma extensão. Uma aplic ação pode rec eber parâmetros e sua notaç ão é a seguinte: Aplic ação(parâmetro1,parâmetro2,parâmtero3) Geralmente os parâmetros são

www.asteriskbrasil.org/index.php?opti…

7/13

12/9/2010

AsteriskBrasil.org - A comunidade bras…

ou melhor, é ela que as realiza. O Dial em termos Asterísticos, c onec ta um canal(c hannel) a outro c anal(c hannel). Um exmplo de utilizaç ão da aplic aç ão Dial pode ser visto abaixo: exten ⇒ 101,10,Dial(SIP/101,10) No c aso acima a aplic ação Dial possui dois parâmetros, o primeiro espec ifica o c anal e informaç ões necessárias para a sua utilização, o segundo parâmetro designa a duraç ão em segundos que a aplicaç ão Dial irá tentar estabelac er o canal. Exiiste a possibilidade de um terc eiro parâmetro, c hamado de flag. Por exemplo, a linha de exten ⇒ acima poderia estar esc rita da seguinte forma: exten ⇒ 101,10,Dial(SIP/101,10,tw) Um flag é representada por uma letra do alfabeto e cada uma tem sua função. No exemplo ac ima utilizamos as flags t e w. Veja abaio o signific ado destas e de outras flags disponíveis para o c omando Dial. Flag Descriç ão T Permite a transferênc ia pelo orginador da c hamada t Permite a transferênc ia pelo recebedor da c hamada W Permite a gravaç ão sob demanda do orginador da c hamada w Permite a gravaç ão sob demanda do orginador da c hamada f forc es c allerid to be set as the extension of the line making/redirec ting the outgoing c all. For example, some PSTNs don’t allow callerids from other extensions than the ones that are assigned to you. d This flag trumps the ‘H’ flag and intercepts any dtmf while waiting for the call to be answered and returns that value on the spot. This allows you to dial a 1-digit exit extension while waiting for the c all to be answered - see also RetryDial o Restore the Asterisk v1.0 CallerId behaviour (send the original c aller’s ID) in Asterisk v1.2 (default: send this extension’s number) r Gerar ringtone antes mesmo de começ ar a c hamar o ramal. Usar c om c uidado. m[classe] Toc a uma música em espera a pessoa que está c hamando um ramal. Utilizar m(c lasse da músic a em espera). Utilizar em c onjunto c om a opç ão “r”. M(x[^argumento]) Exec utes the mac ro (x) upon c onnec t of the c all (i.e. when the c alled party answers) h Permite o recebedor desligar uma c hamada pressionando *. H Permite o originador desligar uma c hamada pressionando *. C Reset the CDR (Call Detail Record) for this c all. This is like using the NoCDR c ommand. P[(x)] Usa o Privac yManager, usando “x” como valor do banco de dados.(x é opc ional) g When the c alled party hangs up, exit to exec ute more c ommands in the current c ontext G(c ontexto^ramal^prioridade) If the c all is answered, transfer both parties to the spec ified context and extension. The c alling party is transferred to priority x, and the c alled party to priority x+1. This allows the dialplan to distinguish between the c alling and c alled legs of the c all (new in v1.2). A(arquivo) Toca um anúnc io(arquivo.gsm|.wav|.*) para o rec ebedor da chamada. D([chamado][:c hamador]) After the c alled party answers, send digits as a DTMF stream, then connec t the c all to the originating c hannel. (You can also use ‘w’ to produce .5 sec ond pauses.) L(x[:y][:z]) n IMPORTANTE! - Não utilize espaç os entre as flags da aplic aç ão Dial(), pois eles não irão func ionar. - Se voc ê utilizar algumas destas flags(t, T, h, H, w, W ou L) na aplic ação Dial() o Asterisk sempre estará no mediapath, ou seja, o parâmetro canreinvite=yes não irá funcionar. 4.4.2 Aplic aç ão Set A aplic ação Set tornou-se muito mais expressiva na versão Asterisk 1.2. Diversas aplic ações foram inutilizadas pois desenvolveu-se sua análoga no formato de funç ões da aplicaç ão Set. Em versões anteriores do Asterisk, a aplic aç ão Set foi muito utilizada para nomear variáveis(globais e de c anal). Vamos conhec er um pouco sobre as opç ões que esta aplic aç ão fornece para a c onstruç ão de um plano de discagem. Estas opções são três, Dec laração de Variáveis, Exec uç ão de funç ões e Interaç ão c om o AstDB(Banc o de dados interno do Asterisk) 4.4.2.1 Dec laraç ão de variáveis Utilizando a aplic aç ão Set, podemos declarar variáveis no sistema Asterisk. A dec laraç ão de váriáveis nas versões anteriores do Asterisk(série 1.0) eram realizadas pela aplicaç ão SetVar. Atualmente ela foi descontinuada em favor da aplic aç ão Set. Para dec larar uma variável de c anal(válida somente no momento da chamada ou enquanto o c anal estiver sendo exec utado) utilize o exemplo abaixo como referência: exten ⇒ 101,1,Set(TEMPORING=30) exten ⇒ 101,2,Dial(SIP/101,${TEMPORING},tw) exten ⇒ 101,3,Voic eMail(u101@c orreio) exten ⇒ 101,103,VoiceMail(b101@correio) exten ⇒ 101,4,Hangup() Após declarar uma variável voc ê pode fazer uso dela inserindo o nome da variável entre um c ifrão e uma c have aberta e outra c have fec hada c omo abaixo: ${TEMPORING} O Asterisk irá substituir ${TEMPORING} por 30 que neste exmplo signific a que o tempo que a aplic ação Dial irá utilizaar para c hamar o ramal 101 será de 30 segundos. Para dec larar uma variável global, ou seja, visível por todas as extensões do seu diaplan, utilize a aplicaç ão SetGlobalVar. 4.4.2.2 Exec uç ão de funç ões Como dito no início deste tópico, tem se migrado uma série de pequenas aplic aç ões para o formato de função. Isto signific a que a aplic aç ão Set tem outras habilidades que não seja somente a declaração de variáveis ela pode realizar funções antes exec utadas por aplic aç ões. As funções possuem uma sintaxe muito semelhante a utilizada na dec laraç ão de variáveis, porém as funç ões rec ebem um argumento a mais antes do valor declarado. Veja o exemplo abaixo: exten ⇒ s,1,Set(TIMEOUT(digit)=30) No c aso acima estamos usando a funç ão “TIMEOUT” com o argumento “digit” para dec larar o tempo máximo entre os dígitos....... A funç ão TIMEOUT foi c oncebida apartir de suas análogas aplicaç ões DigitTimeout, AbsoluteTimeout e ResponseTimeout. Como na dec laraç ão de variáveis o uso de ${} também é permitido c aso queira utilizar o valor retronado da funç ão em algum outro lugar do seu plano de disc agem. Veja o exemplo abaixo: Algumas funções disponíveis são estas: Função Argumentos Desc riç ão TIMEOUT Digits|absolute|response CALLERID All|Name|num|rdnis LANGUAGE CUT DB CDR MATH CHECK MD5 MD5 GROUP_COUNT DB_EXISTS FAMILA/CHAVE Chec a se existe o PAR/CHAVE no AstDB SIP_HEADER Voc ê pode verific ar todas as funções disponíveis exec utando show func tions na linha de c omando Asterisk. *c li> show func tions 4.4.2.3 AstDB O AstDB é o banco de dados interno do Asterisk. Este banc o de dados não é um banc o de dados relac ional c omo o MySQL, Orac le, PostgreSQL. O AstDB é um banc o de dados baseado no Berkeley DB v.1. O Asterisk armazena seus dados dentro do AstDB utilizando o seguinte formato: FAMILIA/CHAVE=VALOR Cada familia pode ter somente uma c have c om o mesmo nome. Resursos poderosos podem ser utilizados c om o AstDB. Voc ê pode, por exemplo, desenvolver aplic aç ões(você vai estudar sobre AGI para realizar este desenvolvimento) que inserem dados sobre a disponibilidade de uma ramal. É c laro que o prórpio Asterisk guarda esta informação dentro do AstDB, porém você pode manipular esta informação e forçar um status. Um exmeplo prátic o desta aploc aç cão poderia ser um recursos de Não Perturbe, que quando o usuário digitar uma extensão o plano de disc agem aramazena um avalor de FAMILIA/CHAVE dentro do AstDB que será c onsultado no momento de uma chamada para este ramal. Vamos conhec er um pouc o mais sobre esta apliucaç ão nas próximas linhas, fique tranquilo. Inserindo/Extraindo/Apagando entradas no AstDB As funç ões de inserç ão, extração e remoç ão do AstDB estão disponíveis tanto na linha de c omando do Asterisk(*CLI) ou através de aplic aç ões que podem ser usadas em seu plano de discagem. Para inserir dados no AstDB é nec essário utilziar a aplic aç ão Set, pois trata-se de dec laraç ão de um valor, e ele será aramazenado dentro do banc o de dados do Asterisk. Veja a sintaxe de inserç ão abaixo. exten ⇒ extensão,prioridade,Set(${DB(FAMILIA/CHAVE)=VALOR}) Para apagar uma entrada do banc o de dados do Asterisk, é nec essário utilizar a aplic aç ão Dbdel c omo mostrado na linha abaixo. exten ⇒ extensão,prioridade,DBdel(FAMILIA/CHAVE) Veja o exemplo real abaixo. É uma aplic ação de não perturbe que traz ao usuário a possibilidade de indisponibilizar o seu ramal quando nec essário disc ando o c ódigo *11 em seu telefone. O nÃo perturbe pode ser desabilitado digitando *13 no telefone. Em ambos os c asos o plano de disc agem irá utilizar a variável interna do Asterisk CALLERIDNUM c omo valor de chave da família NP. [app-naoperturbe] exten ⇒ *11,1,Answer exten ⇒ *11,2,Wait(1) exten ⇒ *11,3,Set(${DB(NP/${CALLERIDNUM})=YES}) exten ⇒ *11,4,Playbac k(nao-perturbe) exten ⇒ *11,5,Playbac k(ativado) exten ⇒ *11,6,Hangup() exten ⇒ *13,1,Answer exten ⇒ *13,2,Wait(1) exten ⇒ *13,3,DBdel(NP/${CALLERIDNUM}) exten ⇒ *13,4,Playback(nao-perturbe) exten ⇒ *13,5,Playbac k(desativado) exten ⇒ *13,6,Hangup() Recuperar, ou extrair, dados também é uma atividade trivial. Basta atribuir, também com a a aplic aç ão Set, uma variável c om o valor do par FAMILIA/CHAVE e utiliza-la no dialplan. Veja neste exemplo como utilizar uma entrada no AstDB.

www.asteriskbrasil.org/index.php?opti…

8/13

12/9/2010

AsteriskBrasil.org - A comunidade bras…

rec eber c hamadas, ou melhor, se ele está ou não c om o não perturbe habilitado. No exemplo ac ima, a primeira linha da mac ro c hecagemramal rec upera o par NP/RAMAL do AstDB e atribui o valor do par à variável NP. A aplic ação GotoIf é utilizada como fator de dec isão para enc aminhar a c hamada ao correio de voz ou então, c aso o não perturbe esta desabilitado, para a mac ro c hamaramal c om o número de ramal c omo argumento. 4.4.3 Goto, GotoIf, GotoIfTime 4.4.4 Aplic ação Mac ro 4.4.5 Aplic ação Voic eMail – O famoso Correio de Voz A aplic ação Voic email, c omo voc ê pode c oncluir, é utilizada para acionar o sistema de Correio de Voz do Asterisk. Com esta aplic ação é possível que voc ê defina uma condiç ão(oc upado ou indisponível) para que você envie a c hamada para o sistema de Correio de Voz. Por exemplo, imagine que voc ê está no telefone ou não está em sua mesa e uma c hamada c hega ao seu ramal. Este é o momemtno ideal para se utilizar a aplic aç ão Voic eMail no seu plano de disc agem. A sintaxe para utilização da aplic açc ão Voic eMail é esta: VoiceMail(opçõesramal@c ontexto) Na sintaxe ac ima o parametro opç ões esta c olado ao parâmetro ramal. É exatamente desta forma que devemos utilizar esta sintaxe. Para enviar para várias c aixas de c orreio ao mesmo tempo: VoiceMail(opçõesramal01@c ontexto01&ramal02@c ontexto02) Estas são as opç ões disponíveis para a aplicaç ão Voic eMail. Opção Desc riç ão s SEM esta opç ão uma mensagem irá ser tocada. A mensagem padrÃo do sistema é “Deixe sua mensagem a pós o sinal, quando terminar desligue ou pressione quadrado. Se voc ê usar esta opç ão esta mensagem NÃO será toc ada. u Se voc ê utilizar esta opç ão uma mensagem de INDISPONÍVEL será toc ada. A mensagem padrão, se o usuário não gravar a sua, é “A pessoa no ramal XXX não está disponível” e na sequência “Deixe sua mensagem após o sinal, quando terminar desligue ou pressione quadrado”. b Se voc ê utilizar esta opç ão uma mensagem de OCUPADO será toc ada. A mensagem padrão, se o usuário não gravar a sua, é “A pessoa no ramal XXX não está disponível” e na sequênc ia “Deixe sua mensagem após o sinal, quando terminar desligue ou pressione quadrado”. su Se voc ê utilizar esta opç ão uma mensagem de INDISPONÍVEL será toc ada. A mensagem padrão, se o usuário não gravar a sua, é “A pessoa no ramal XXX não está disponível”. A mensagem com instruç ões será desc artada. sb Se voc ê utilizar esta opç ão uma mensagem de OCUPADO será toc ada. A mensagem padrão, se o usuário não gravar a sua, é “A pessoa no ramal XXX não está disponível”. A mensagem c om instruç ões será desc artada. Veja o exemplo do plano de discagem abaixo: 4.4.5.1 Armazenamento de mensagens As mensagens do c orreio de voz ficam armazenadas no seguinte diretório: /var/spool/asterisk/voic email/contexto/ramal/INBOX Onde c ontexto é o nome do c ontexto onde se encontra as informaç ões do c orreio e ramal o prórpio ramal(usuário) em questão. 4.4.5.2 Configuração das caixas de c orreio de voz O sistema de c orreio de voz é c onfigurado e armazena as c aixas de c orreio no arquivo /etc/asterisk/voicemail.c onf. Veja a sintaxe do /etc /asterisk/voic email.conf abaixo: [general] parametro01 = valor01 parametro02 = valor02 ... [zonemessages] eastern=America/New_York|’vm-rec eived’ Q ‘digits/at’ IMp c entral=Americ a/Chic ago|’vm-rec eived’ Q ‘digits/at’ IMp central24=Americ a/Chic ago|’vm-rec eived’ q ‘digits/at’ H N ‘hours’ military=Zulu|’vm-rec eived’ q ‘digits/at’ H N ‘hours’ ‘phonetic/z_p’ COLOCAR O PADRÃO DO BRASIL [default] parametro01 = valor01 parametro02 = valor02 ... 9999 ⇒ 2006,Ronaldinho Gaúc ho,[email protected] om.br 1111 ⇒ 1010,Dida,[email protected] om.br,,attach=no|serveremail=smtp.brasil.com.br|maxmsg=10 Debaixo do contexto [general] inserimos os parâmetros que serão válidos para todas as c aixas de c orreio c riada no sistema. Parâmetros específic os ficam abaixo dos c ontexto das c aixas de c orreio, por exemplo [default]. Este é o formato para c riar uma c aixa de c orreio no Asterisk: número_ramal⇒senha_c orreio,nome_c ompleto_usuario,email,email_pager,opcao1|opcao2|opc ao3 Conheç a as opções disponíveis para as c aixas de c orreio do Asterisk: Parametro Argumentos Desc riç ão format wav49|gsm|wav Formatos para armazenamento dos arquivos de mensagens do correio de voz. Mais de um formato pode ser espec ificado utilizando o carac tere ‘|’ .[15] serveremail email Email remetente das notific ações do correio de voz enviadas aos usuários. attac h Yes|no Anexar as mensagens no email de notific ação. maxmsg nümero inteiro Número máximo de mensagens por caixa de correio. Valor default é 100. maxmessage tempo em segundos Tamanho máximo de uma mensagem em segundos. minmessage tempo em segundos Tamanho mínimo, em segundos, de uma mensagem para ser armazenada pelo sistema. Default é 0. maxgreet tempo em segundos Tamanho máximo, em segundos, das mensagens de rec epção(oc upado, indisponível e o nome do usuário). skipms tempo em milisegundos Tempo, em milisedgundos, para os saltos de rew e ff no playbac k de mensagens. maxsilenc e tempo em segundos Tempo, em segundos, de silênc io para que o sistemaa enc erre a gravaç ão de uma mensagem. 4.4.5.3 Notas importantes sobre a aplic aç ão VoiceMail() O arquivo /etc /asterisk/voic email.c onf não ac eita #inc lude pois o Asterisk ac essa esta arquivo para fazer alteraç ão de senhas. Não utiilize comentários(espec ialmente os que c ontenham o c arac tere “[“, pois a aplic aç ão Voic eMailMain, que faz a autentic aç ão do usuário, não é muito inteligente no parsing do arquivo /etc/asterisk/voicemail.c onf. As caixas de c orreio não podem c omeç ar c om as letras ‘s’, ‘u’, ‘b’ ou uma c ombinaç ão delas. Isso se deve as opções da aplic ação Voic eMail(). Apartir do momento em que uma c aixa de c orreio já está operando(c ontém mensagens). Não é possível alterar os formatos de áudio. Isso irá ocasionar problemas no playbac k das mensagens do c orreio de voz. 4.4.5.4 Aplicaç ões c omplementares ao Correio de Voz VoiceMailMain() Disponibiliza ac esso ao sistema de Correio de Voz do Asterisk. É c om esta aplic ação que posssibilitamos o ac esso as mensagens e informaç ões pessoais dos usuários de um servidor Asterisk. Ac essando esta aplic aç ão o usuário será servido c om o seguinte menu: Digite 1. Ler as mensagens do c orreio de voz Digite 2. Alterar de pasta
Digite Digite Digite Digite Digite Digite 0. 1. 2. 3. 4. #. Pasta de Pasta de Pasta de Pasta de Pasta de Cancela mensagens mensagens mensagens mensagens mensagens novas antigas trabalho familia amigos

Digite 3. Opções avanç adas
Press Press Press Press 1. 3. 5. *. Send reply Hear the message envelope Leave a message Return to the main menu

www.asteriskbrasil.org/index.php?opti…

9/13

12/9/2010
Press Press Press Press 2. 3. 4. *. Record Record Change Return your busy message your name your password to the main menu

AsteriskBrasil.org - A comunidade bras…

Press *. Help Press #. Exit HasNewVoic email() HasVoic email() MailBoxExists() We will use the GoToIf applic ation to determine the dial status of the call. For the purpose we need also the variable ${DIALSTATUS}. The first extension after the one with Dial applic ation, will c heck whether the c alled person is available. If the person is unavailable, then the exec ution will c ontinue with the extension with priority 7. This extension contains the Voic eMail applic ation. In its brackets we have set the following: uanatoliy@testmail. The first letter - u means that a message for an unavailable c ondition has to be played. The message by default is: The person at extension is unavailable”. The word anatoliy is for the mailbox which we have set in the voic email.c onf. The last part is @testmail. This shows the c ontext in voicemail.c onf, in which the mailbox anatoliy is configured. So, the c aller will hear a message and he/she will be allowed to record a message and to store it in the mailbox of anatoliy. The message will be stored in the direc tory /var/spool/asterisk/voic email/testmail/anatoliy/INBOX. In order to send the message in the mailbox, the c aller has to hang up the line or to press the pound key(#), when he/she finishes with the recording of the message. If the GoToIf c hec k show that the user is available, then the next applic ation with priority 4 will be exec uted. This one will c heck, whether the line is busy or not. If the line is busy, then the execution will c ontinue with the extension with priority 9. This extension c ontains again the Voic eMail applic ation. In its brackets we have set the following: banatoliy@testmail. The first letter - b means that a message for busy c ondition has to be played. The message by default is: The person at extension is on the phone. The word anatoliy is for the mailbox which we have set in the voic email.c onf. The last part is @testmail. This shows the c ontext in voic email.c onf, in whic h the mailbox anatoliy is c onfigured. The c aller will hear the message, that the c alled person is busy and he/she will be allowed to rec ord a message and to store it in the mailbox of anatoliy. The message will be stored in the direc tory /var/spool/asterisk/voic email/testmail/anatoliy/INBOX. In order to send the message in the mailbox, the c aller has to hang up the line or to press the pound key(#), when he/she finishes with the rec ording of the message. Now, if the user is available and the line is free and the called person does not answer within 5 sec onds, the next exec uted extension will be the one with priority 5. This one c ontains another c opy of the VoiceMail applic ation. As arguments in its brac kets we have set the following: anatoliy@testmail. There is no first letter whic h means that a message with instruc tions has to be played. The message by default is: Please leave your message after the tone. When done, hang up, or press the pound key. The word anatoliy is for the mailbox which we have set in the voic email.c onf. The last part is @testmail. This shows the c ontext in voic email.conf, in whic h the mailbox anatoliy is c onfigured. Again the user will be allowed to rec ord a message after the signal. The message will be stored in the directory /var/spool/asterisk/voic email/testmail/anatoliy/INBOX. In order to send the message in the mailbox, the c aller has to hang up the line or to press the pound key(#), when he/she finishes with the rec ording of the message. NOTE: Please, pay attention that between the option flags and the voic email number there is no separator. That is why the voicemails cannot start with “s”, “u”, “b” or any c ombination of these three letters. Maybe you have notic ed that between the extensions with priority 5, 7 and 9, we have extensions with the GoTo applic ation. It cause the jumping to the last extension with priority 10 whic h has the Hangup applic ation. Thanks to it the line will be hung up. This is nec essary, because otherwise the three Voic eMail applic ation will be exec uted subsequently. In this way the effec t from the GoToIf applic ations will be lost. Aplicaç ões c omplementares: 4.4.6 MeetMe 4.4.7 Queue A aplic ação Queue é utilizada para “enfileirar” c hamadas. Este tipo de aplic aç ão é geralmente(na verdade não c onheç o outra aplic ação para ela) utilizada em filas de atendimento de Call Centers Passivos[16] Conhec ida também c omo DAC(Distribuidor Automátic o de Chamadas) a aplicaç ão Queue distribui c hamadas entrantes, em ordem de c hegada, para o primeiro agente[17] disponível. O sistema atende imediatamente as c hamdas e, se nec essário, envia o c hamador para uma fila até que ele possa ser redirec ionado ao próximo agente disponível. Balanc eando as c hamdas entre os agentes irá assegurar que todos os c hamadores irão rec eber um bom atendimento. O Asterisk suporta múltiplas filas de atendimentos e elas podem ser c onfiguradas no arquivo /etc/asterisk/queues.conf e referenc iadas c omo argumento da aplicaç ão Queue no seu plano de disc agem. Os agentes são definidos no arquivo /etc /asterisk/agents.c onf. Sintaxe da aplic ação Queue() Esta é a sintaxe para utilizaç ão da aplicaç ão Queue: exten ⇒ extensão,prioridade,Queue(nome|opç ões| URL_opc ional|sobrepor_anuncio|timeout) nome: Fila c riada no arquivo /etc /asterisk/queues.c onf opç ões: ‘t’ — allow the called user transfer the c alling user ‘T’ — to allow the c alling user to transfer the c all.
'd' 'H' 'n' 'r' — — — — data-quality (modem) call (minimum delay). permite ao chamador desligar pressionando '*'. no retries on the timeout; will exit this application and go to the next step. Ringar ao invés de tocar música em espera

URL_opcional: Envia uma URL para dispositivos que suportam este rec urso. sobrepor_anunc io: Sobrepõe o anúnc io Configuraç ão de filas de atendimento O arquivo responsável pela c onfiguraç ão de filas de atendimento no Asterisk é o /etc/asterisk/queues.conf. Veja abaixo a sua sintaxe. [general] parametro-geral01 = valor01 parametro-geral02 = valor02 ... parametro-geral03 = valor03 [fila01] parametro01 = valor01 parametro02 = valor02 ... parametro03 = valor03 member ⇒ Zap/1 member ⇒ Zap/2 member ⇒ Agent/1001 member ⇒ Agent/1002 ;Cada membro(member) é listado em uma linha individual. [fila02] parametro01 = valor01 parametro02 = valor02 ... parametro03 = valor03 member ⇒ Agent/@1 member ⇒ Agent/1:1,1 ; Usar grupos de agentes, c omo no exemplo da fila02, irá desabilitar as estratégias de busc a de agentes(roudrobin, leastrecent, etc.) Parâmetros de configuração de filas de atendimento Conheç a os parâmetros disponíveis para filas de atendimento. Estes parâmetros podem ser espec ific ados para uma fila espec ífica ou para todoas as filas do sistema, para isto basta inserir o parâmetro desejado nop c ontexto [general] do seu arquivo de c onfiguraç ão.. Parâmetros valores Desc riç ão periodic -announc e arquivo_de_audio Mensagem periodic a enviada enquanto o c hamador aguarda atendimento periodicannounce-frequenc y número inteiro Tempo em segundo s de frequenc ia da mensagem periódica weight número inteiro Número inteiro que define o peso da Fila. Números maiores terão maior prioridade de atendimento pelos agentes. monitor-format gsm|wav|wav49 Para gravar as c hamdas que forem atendidas na fila. *Somente depois do atendimento* announc e-frequenc y núemero inteiro Frequenc ia em segundos de anúnc io ao chamadro sobre sua posiç ão na fila e/ou o tempo médio de atendimento. Use o valor ‘0’ para desabilitar esta funç ão. announc e-holdtime yes|no|onc e Devemos inc luir o tempo médio de atendimento no anúnc io de posiç ões na fila? *Se o tempo for menor que 1 min. não irá anunc iar* queue-youarenext queueyouarenext Arquivos de áudio para anúnc ios de posição na fila e/ou tempo de atendimento médio. Altere somente se nÃo quiser utilizar os valores padrões. queue-thereare queue-thereare queue-c allswaiting queue-

www.asteriskbrasil.org/index.php?opti…

10/13

12/9/2010

AsteriskBrasil.org - A comunidade bras…

toc ada segundos amntes de o agente atender a c hamda. Usado para diferenc iar para o agente em que fila ele está atendendo a c hamada. strategy ringall|roundrobin|leastrecent|fewestc alls|random|rrmemory Estratégia de distribuiç ão de c hamadas aos atendentes. Veja detalhes obre c ada tipo ainda neste c apítulo. Ringall é a default. servic elevel número inteiro Tempo em segundo do nível ac eitável de serviço. Para gerar estatístic as de nível de serviç o(SLA[18]). c ontext c ontexto Contexto do plano de disc agem que o c hamador tem ac esso enquanto aguarda atendimento. timeout número inteiro Tempo em segundos que consideramos a indisponibilidade de um agente. retry número inteiro Tempo em segundos para aguardar antes de tentar ac essar todos os agentes novamente. maxlen número inteiro Número máximo de pessoas que podem aguardar na mesma fila. announc e-round-sec onds número inteiro Arredondamento dos segundos no anúnc io do tempo. monitor-join yes|no Para unir os dois áudios(IN e OUT) quando se está gravando uma c onversaç ão joinempty yes|no|strict yes(c hamadores podem entrar em uma fila sem membros ou somente c om memebros indisponíveis) no (c hamadores não podem acessar filas sem membros) strict(c hamadores não podem ac essar filas sem membros ou c om membros indisponíveis) leavewhenempty yes|no|stric t Para eliminar c hamadores que já estão na fila. Mesmas opç ões de joinempty. eventwhencalled yes|no Setado para yes irá gerar alguns eventos de gerênc ia(AgentCalled, AgentDump, AgentConnec t, AgentComplete) eventmemberstatusoff yes|no Setado para no irá gerar o seguinte evento de gerênc ia(QueueMemberStatus) reportholdtime yes|no Se voc ê quiser reportar ao agente o tempo de espera do chamador antes de atende-lo. Uma fila é c onsiderada vazia quando não possuir membros ou se nenhum de seus membros não estiverem disponíveis(agentes não logados). Estratégias de ring de agentes em filas de atendimento Ringall: Estratégia padrão c aso nada seja especific ado. Irá chamar todos os agentes ao mesmo tempo. Uma chamada entra e todos os agentes são ac ionados, porém quem atender antes irá “ganhar” a c hamada. Roundrobin: A estratégia roundrobin nao pode ser c onfundida c om a distribuiç ão c ircular de chamadas, veja c omo este método trabalha. O roundrobin lembra o último agente para quem ele _inic iou_ o envio da última c hamada e inicia as tentativas subsequentes apartir do próximo agente. Se voc ê tiver três agentes, e a primeira c hamada seguir a ordem 1→2→3, a próxima c hamada irá seguir a ordem 2→3→1, a próxima 3→2→1 e assim por diante. É possível utilizar o método Roundrobin para realizar uma distribuiç ão c irc ular de c hamadas atribuindo penalidades aos agentes. O Asterisk irá sempre inic iar a busc a por agentes sem penalidades depois aos agentes c om penalidade 1 e assim por diante. Rrmemory: Este método lembra da último agente que ele tentou _c hamar_, independente por quem ele inic iou, enviando a próxima c hamada para o agente seguinte ao que atendeu a última c hamada, Se voc ê tiver três agente e a primeira c hamada seguir a rodem 1→2(e a c hamada é atendida), então a próxima c hamada irá seguir a ordem 3→1(e é atendida), a próxima irá seguir a ordem 2→3→1, e asssim por diante. Se a primeira c hamada, 1→2, estivesse em modo Roundrobin e ela fosse atendida, a segunda c hamada iria c omeç ar pelo agente 2 novamente. Fewestcalls: Irá inic iar a busc a pelos agentes que tem o menor número de chamadas atendidas. Random: Faz uma busca aleatória independente de uma regra espec ífic a. Leastrecent: Irá inic iar a busc a pelo agente que foi chamado menos recentemente pela fila em questão. Configuraç ão de agentes Assim em c omo a maioria dos arquivos de c onfiguraç ão do Asterisk, o /etc /asterisk/agents.c onf possui uma seç ão geral([general]) e uma específic a para agentes([agents]), como mostrado abaixo: [general] parametro-geral01 = valor01 parametro-geral02 = valor02 ... parametro-geral03 = valor03 [agents] parametro01 = valor01 parametro02 = valor02 ... group=1 ; agent ⇒ agentid,agentpassword,name agent ⇒ 1001,4321,Silvio Santos agent ⇒ 1002,4321,Fausto Silve group=2 agent ⇒ 1003,4321,Didi Moc ó agent ⇒ 1004,4321,João Cleber Parâmetros de configuração de agentes Estes são os parâmetros disponíveis para os agentes de uma fila de atendimento. Somente um parâmetro pode ser espec ificado no contexto [general]. Parâmetros valores Desc rição persistentagents yes|no Únic o parâmterro disponível no c ontexto [general]. Define se o login do agente fic ará ou não armazenado no AstDB. Isso tem impac to após um reload do Asterisk. autologoff número inteiro Tempo em segundos para deslogar um agente da fila. Valor default é 15. ac kall yes|no Se o agente logou usando a aplic ação AgentCallbac kLogin e esta opç ão estiver setada para yes, o Asterisk irá aguardar uma c onfirmaç ão de login(tecla #) antes de disponibilizar este agente na fila. wrapuptime número inteiro Tempo em milisegundos que o agente irá ter de desc anso antes de rec eber outra c hamada. O default é 5000 ms. music onhold nome da c lasse Define a nome da classe da música em espera para tocar aos agentes. O valor padrão é a classe default. updatecdr yes|no Define se irá alterar o c anal de origem no CDR para o número do agente. Default é no. Se estiver setado para yes ele irá adicionar o nome do agente no CDR e não o número do ramal em que ele se encontra. recordagentc alls yes|no Grava ou não as chamadas atendidas pelos agentes. rec ordformat wav|gsm|wav49 Formato do arquivo de áudio das gravaç ões de c hamadas dos agentes. Padrão é wav. c reatelink yes|no Adiciona no userfield do CDR um link para ac essar gravaç ão da c hamada. urlprefix http://server.ip/diretorio/ [http://server.ip/diretorio/] Adic iona um prefixo no link para o audio de uma chamada gravada. savec allsin /diretorio/de/gravacoes Diretorio para aramazenar as gravações de chamdas dos agentes. Padrão é /var/spool/asterisk/monitor c ustom_beep arquivo de audio Com esta opção voc ê pode espec ificar um beep diferente para os agentes c onectados Exemplo de arquivo /etc /asterisk/agents.c onf [general] persistentagents=yes [agents] autologoff=15 ackc all=no wrapuptime=5000 music onhold ⇒ default rec ordagentcalls=yes rec ordformat=gsm group=1 agent ⇒ 101,101,user1 agent ⇒ 102,102,user2 agent ⇒ 103,103,user3 group=2 agent ⇒ 8889,8889,operador 1 agent ⇒ 8888,8888,ivan group=3 agent ⇒ 8887,8887,operador 2 4.5 AGI 4.6 Operadores 4.6.1 Operadores Booleanos 4.6.2 Operadores Matemátic os 4.7 Exemplos c ompletos de dialplan 5 Gerenciando o Asterisk 5.1 Gerenciamento de ramais sip show peers zap show c hannels 5.2 Gerenc iamento de tronc os sip show users zap show c hannels show c hannels verbose 5.3 CDR Call detail record. 5.4 Troubleshooting 5.4.1 Logging /etc/asterisk/logger.conf /var/spool/asterisk/debug

www.asteriskbrasil.org/index.php?opti…

11/13

12/9/2010
MG2 aggressive Supression 5.4.3 Picotamento Banda de rede Latênc ia 5.4.4 Delay Jitter 5.4.5 Códigos SIP Retirado da RFC do SIP:

AsteriskBrasil.org - A comunidade bras…

Os códigos de resposta SIP são similares e extensíveis aos c ódigos de resposta HTTP/1.1. Nem todos os c ódigos.são apropriados, e somente aqueles que são apropriados são mostrados nesta seç ão deste material. Outros códigos HTTP/1.1 não devem ser usados. O SIP também define uma nova c lasse de c ódigos, 6xx. 1xx: Provisional — request rec eived, c ontinuing to proc ess the request; Provisional responses, also known as informational responses, indicate that the server c ontacted is performing some further action and does not yet have a definitive response. A server sends a 1xx response if it expec ts to take more than 200 ms to obtain a final response. Note that 1xx responses are not transmitted reliably. They never cause the c lient to send an ACK. Provisional (1xx) responses MAY c ontain message bodies, inc luding session desc riptions. 2xx: Succ ess — the ac tion was succ essfully rec eived, understood, and ac cepted; 3xx: Redirec tion — further ac tion needs to be taken in order to c omplete the request; 4xx: Client Error — the request c ontains bad syntax or c annot be fulfilled at this server; 5xx: Server Error — the server failed to fulfill an apparently valid request; 6xx: Global Failure — the request cannot be fulfilled at any server. SIP response c odes, class 1: Provisional messages These are sent within a SIP dialogue 100 Trying 180 Ringing 181 Call Is Being Forwarded 182 Queued 183 Session Progress SIP Response c odes: 2xx class The 2xx c lass of responses indic ates a suc c ess 200 OK 202 ac c epted: Used for referrals SIP response c odes, class 3xx The 3xx c lass of responses indic ates a redirec tion of the call 300 Multiple Choices 301 Moved Permanently 302 Moved Temporarily 305 Use Proxy 380 Alternative Service SIP responses, c lass 4: Request failures 400 Bad Request 401 Unauthorized: Used only by registrars. Proxys should use proxy authorization 407 402 Payment Required (Reserved for future use) 403 Forbidden 404 Not Found: User not found 405 Method Not Allowed 406 Not Ac c eptable 407 Proxy Authentic ation Required 408 Request Timeout: Couldn’t find the user in time 410 Gone: The user existed onc e, but is not available here any more. 413 Request Entity Too Large 414 Request-URI Too Long 415 Unsupported Media Type 416 Unsupported URI Sc heme 420 Bad Extension: Bad SIP Protoc ol Extension used, not understood by the server 421 Extension Required 423 Interval Too Brief 480 Temporarily Unavailable 481 Call/Transac tion Does Not Exist 482 Loop Detec ted 483 Too Many Hops 484 Address Inc omplete 485 Ambiguous 486 Busy Here 487 Request Terminated 488 Not Ac c eptable Here 491 Request Pending 493 Undec ipherable: Could not dec rypt S/MIME body part SIP responses, c lass 5: Server failures 500 Server Internal Error 501 Not Implemented: The SIP request method is not implemented here 502 Bad Gateway 503 Servic e Unavailable

www.asteriskbrasil.org/index.php?opti…

12/13

12/9/2010
600 Busy Everywhere 603 Decline 604 Does Not Exist Anywhere 606 Not Ac c eptable 5.5 Bac kup O que c opiar... 5.6 Tunning 5.7 Segurança

AsteriskBrasil.org - A comunidade bras…

5.8 Sistemas distribuídos e alta disponibilidade 6 Dic as e Truques I. Índic e c om todas as aplic aç ões disponíveis na série 1.4 do Asterisk II. Índic e c om todas as variáveis internas do Asterisk III. Siglas e Dic ionário [1] Agênc ia Nac ional de Telec omunic aç ões - http://www.anatel.gov.br [http://ww w .anatel.gov.br] [2] Internet Protoc ol – O protoc olo da Internet. [3] ARPANET – DEFINICAO [4] Uma lista c ompleta de CODECs utilizados pelos Asterisk , voc ê encontra no c apítulo 2 deste livro. [5] Lista de desenvolvedores do Asterisk htttp://lists.digium.c om.br/asterisk-devel [6] Linux Standard Base – http://www.lsb.org [http://w ww .lsb.org] [7] Asterisk Gateway Interfac e - Voc ê pode enc ontrar mais detalhes sobre o que é AGI no c apítulo deste livro. [8] Saiba mais sobre o logger.c onf no capítulo 6 deste livro. [9] Tipos de mídia podem ser enc ontrados neste link: http://www.iana.org/assignments/media-types/ [http://ww w.iana.org/assignments/media-types/] [10] Unicall – Mais informaç ões sobre este tipo de c anal voc ê enc ontra em http://www.softswitc h.org/unic all [http://ww w .soft-sw itch.org/unicall] [11] Public Switc hed Telephony Network [12] http://www.zapatatelephony.org [http://w w w.zapatatelephony.org] [13] Veja mais sobre transc oding no c apítulo 5 deste livro(Gerenc iando o Asterisk) [14] Lembre-se, o arquivo /etc /zaptel.c onf não faz parte do projeto Asterisk e sim do projeto Zapata Telephony – http://www.zapatatelephony.org [http://ww w .zapatatelephony.org] [15] Apartir do momento em que uma c aixa de c orreio já está operando(c ontém mensagens). Não é possível alterar os formatos de áudio. Isso irá oc asionar problemas no playbac k das mensagens do c orreio de voz. [16] Call Center Passivo é aquele que somente rec ebe c hamdas., não origina(Call Center Ativo) [17] Agentes também são conhec idos c omo PAs, ou Postos de Atendimento. [18] Servic e Level Agreement
apos tila_as teris k.txt (1 29 4 views ) · M odificado em: 2 9/0 4 /2 01 0 22 :4 8 por denis

www.asteriskbrasil.org/index.php?opti…

13/13

Sponsor Documents

Or use your account on DocShare.tips

Hide

Forgot your password?

Or register your new account on DocShare.tips

Hide

Lost your password? Please enter your email address. You will receive a link to create a new password.

Back to log-in

Close