Apostila Asterisk

Embed Size (px)

Citation preview

AsteriskBrasil.org - A comunidade brasileira do PBX Open Source

Pgina 1 de 22

pesquisar... Pesquisar

HOME

WIKI

LISTAS

NOT CIAS

GALERIA

CONTATO

PABX Siemens e Intelbras partir R$ 399,00(boleto e carto) preo bom e condio(41) 3605-0948www.phonelink.com.br

Download Google ChromeO navegador rpido da internet para quem adora tecnologia. Baixe!Google.com/Chrome

lbum De FotoConfira os Descontos de Hoje e Aproveite o Melhor da Sua Cidade!PeixeUrbano.com.br/Cadastre-se

No diga al, diga Asterisk! Apostila AsteriskBrasil.org CAPA: Vrios telefones fazendo um papel de parede asterisco vazado em branco ou o inverso. ndice de Captulos

1 Sou aliengena, fale sobre Telefonia....................................................................................... telefonia...................................................................................................... 4 1.2.A evoluo e as no tendncias........................................................................................ 6 1.1.1 Telefonia Analgica.............................................................................................................. 7 1.1.2 Telefonia Digital..................................................................................................................... 7 1.1.3 Telefonia IP............................................................................................................................. 7 1.1.4 Telefon IP.................................................................................................. 8 1.1.5 Telefonia Mvel...................................................................................................................... 8 2 Conhecendo Asterisk.............................................................................................................. 9 2.1 Quem? Quand Como?....................................................................................... 9 2.1.1 O que o Asterisk?............................................................................................................... 9 2.1.2 Entendend desenvolvimento do Asterisk................................................................... 9 2.1.3 Participe tambm!............................................................................................................... 10 2.2 Arquitetura Asterisk.................................................................................... 10 2.2.1 Diretrios e arquivos.......................................................................................................... 10 2.2.2 O servidor............................................................................................................................. Codecs e Protocolos..................................................................... 12 2.2.3.1 Telefonia IP....................................................................................................................... 12 2.2.3.2 Telefoni Digital............................................................................................................... 13 2.2.3.3 Telefonia Analgica......................................................................................................... 13 2.2.3.4 CODECs............................................................................................................................ (channels)......................................................................................................... 13 2.2.4.1 Canal SIP (chan_sip.so)................................................................................................ 13 2.2.4.2 Canal IAX (chan_iax2.so)............................................................................................... 17 2.2.4.3 Canal Local (chan_local.so)......................................................................................... 18 2.2.4.4 Canal ZAP (chan_zap.so )............................................................................................. 18 2.2.4.5 Canal Unicall (chan_unicall.so)................................................................................... 18 2.2.5 Equipamentos perifricos................................................................................................. 19 2.2.5.1 Placas digitais e analgicas......................................................................................... 19 2.2.5.2 Telefones.......................................................................................................................... ATAs................................................................................................................................... Softphones........................................................................................................................ Outros................................................................................................................................ adicional e Downloads............................................................................ 21 3 Configuraes bsicas do Asterisk....................................................................................... 21 3.1 Inserindo os padres de telef Brasileiro................................................................... 22 3.2 Adicionando a linguagem pt_BR ao

http://www.asteriskbrasil.org/index.php?option=com_openwiki&Itemid=109&id=apostil...

21/10/2011

AsteriskBrasil.org - A comunidade brasileira do PBX Open Source

Pgina 2 de 22

Asterisk................................................................... 22 3.3 Criando ramais....................................................................................................................... 23 3.4 Criando troncos...................................................................................................................... 23 3.5 Realtime................................................................................................................................... Dialplan......................................................................................................... 24 4.1 Contextos (context).................................................................................................................. 25 4.1.1 Contex [general]............................................................................................................... 25 4.1.2 Contexto [globals]............................................................................................................... 26 4.1.3 Parmetr include.............................................................................................................. 27 4.1.4 Parmetros contexto........................................................................ 28 4.2 Extenses (exten).................................................................................................................... 28 4.2.1 Extens especiais.......................................................................................................... 29 4.2.2 Padres de discagem ...................................................................................................... 29 4.3 Prioridades.............................................................................................................................. n+101................................................................................................................ 30 4.3.2 Prioridade next..................................................................................................................... 30 4.3.3 Prioridad same................................................................................................................. 30 4.3.4 Sinais num prioridades...................................................................................... 31 4.4 Aplicaes............................................................................................................................... Onde tudo comea............................................................................... 32 4.4.2 Aplicao Set....................................................................................................................... 33 4.4.2.1 Declara variveis................................................................................................. 33 4.4.2.2 Execuo de funes...................................................................................................... 34 4.4.2.3 AstDB................................................................................................................................. GotoIfTime..................................................................................................... 36 4.4.4 Aplicao Macro.................................................................................................................. 36 4.4.5 Aplicao famoso Correio de Voz.......................................................... 36 4.4.5.1 Armazenamento de mensagens.................................................................................. 37 4.4.5.2 Configurao das caixas d voz................................................................ 38 4.4.5.3 Notas importantes sobre a aplicao ().................................................... 39 4.4.5.4 Aplicaes complementares ao Correio de Voz....................................................... 39 4.4.6 MeetMe.................................................................................................................................. Queue.................................................................................................................................... AGI............................................................................................................................................. Operadores............................................................................................................................. Booleanos..................................................................................................... 49 4.6.2 Operadores Matemticos.................................................................................................. 49 4.7 Exemplos comple dialplan....................................................................................... 49 5 Gerenciando o Asterisk............................................................................................................ 49 5.1 Gerenciament ramais................................................................................................... 49 5.2 Gerenciamento de troncos................................................................................................... 50 5.3 CDR.......................................................................................................................................... Troubleshooting..................................................................................................................... Logging................................................................................................................................. Eco......................................................................................................................................... Picotamento......................................................................................................................... Delay...................................................................................................................................... SIP......................................................................................................................... 50 5.5 Backup...................................................................................................................................... Tunning.................................................................................................................................... Segurana............................................................................................................................... distribudos e alta disponibilidade................................................................... 53 6 Dicas e

http://www.asteriskbrasil.org/index.php?option=com_openwiki&Itemid=109&id=apostil...

21/10/2011

AsteriskBrasil.org - A comunidade brasileira do PBX Open Source

Pgina 3 de 22

Truques........................................................................................................................ 53 I.ndice c aplicaes disponveis na srie 1.2 do Asterisk............................. 53 II.ndice com todas as variveis inte Asterisk............................................................. 53 III.Siglas e Dicionrio.................................................................................................................... 53

1 Sou aliengena, fale sobre Telefonia. Entende-se por telefonia, toda e qualquer forma de transmitir voz hu a outro com a utilizao de instrumentos amplificadores. Ou segundo o Wikipedia: INSERIR DEFIFINICAO DO WIKIPEDIA

Impossvel imaginar a evoluo de toda a comunidade sem mencionar os devidos crditos ao poder, que n desenvolvemos de desejar comunicao a todo custo a toda hora e de vrias formas. Ainda somos e seremos escravos da transmisso e recepo de informao, fato. 1.1. Breve histria da telefonia X Alexander Graham Bell Elisha Gray

Nos idos de 1870, dois inventores, Elisha Gray e Alexander Graham Bell, ambos, indepedentemente projeta que poderia transmitir a voz eletronicamente, o famoso telefone. Ambos correram pra patentear Alexander Graham Bell ganhou a corrida por questes de algumas horas. Apartir deste momento os dois tra famosa sobre a inveno do telefone na qual Bell se saiu campeo.

Alexander Graham Bell nasceu em 1847 em Edinburgh, Esccia. Ele mudou-se para Ontario, e ento para o estabelecendo em Boston antes de iniciar sua carreira como inventor. Ao longo de sua vida, Bell dedicou pessoas surdas. Este interesse o levou a inventar o microfone e, em 1876, a sua maquina eltrica de voz(e machine) que hoje ns chamamos de telefone. As notcias de seu invento rapidamente se espalharam pelo Europa. Em 1878, Bell realizou a primeira chamada em New Haven, Connecticut. Em 1884, chamadas de lo feitas entre Boston e Nova York.

Bell imaginou grandes possibilidades de uso para o seu invento, porm ele nunca imaginou que sua mquin eltrica de voz pudesse tambm transmitir vdeo um dia. Esse dia chegou, e desde a sua morte em 1922 a telecomunicaes tem vivenciado uma incrvel revoluo. Hoje pessoas que no houvem podem comunicar telefones especiais. Fibras ticas esto melhorando a qualidade e velocidade na transmisso de dados. so capazes de deixa-lo informado e presente mesmo em locais remotos, enfim iremos abpradr um pouco s benefcios que a mquina falante de Bell alavancou a toda a comunidade mundial.

1.2. A evoluo e as novas tendncias A busca incansvel por redues de custo, qualidade, versatilidade, facilidade e demais adjetivos tornaram possvel a evoluo sistemtica dos meios de comunicao. A Telefo dos produtos deste crescimento. possvel estar em dois lugares ao mesmo tempo. Atualmente falar ao tel faz em todo momento a toda hora e em qualquer lugar. Esteja voc no trem, no nibus, no metr, no carro lugares menos mveis como a sua casa, apartamento, escritrio, fbrica, hotel ou motel, definitivamente es neste mundo de circuitos e mais circuitos. Habilitar uma credencial neste mundo to simples quanto tempos remotos foi um investimento com visvel participao na renda familiar, hoje mais um adereo da ativamente na vida de crianas. LINHA DO TEMPO: FOTOS DE VRIOS TELEFONES: DO MAIS ANTIGO PRO Cada pas possui o seu rgo que regulamenta os meios de comunicao, em alguns lugares existem rgo tema Telefonia. No Brasil este rgo conhecido por ANATEL[1]. 1.1.1 Telefonia Analgica

Mtodo original inventando por diversos inventores e que encontrou seu pice de desenvolvimento e utiliza massificao durante os anos 50. Utiliza-se como meio de comunicao principalente os cabos de cobre, os ainda hoje reinam nos quadros de distribuio de empresas de telefonia. 1.1.2 Telefonia Digital

Telefonia multiplexada, sinais digitais, processador de sinais digitais(DSP) entram em cena para transforma analgico, conhecido por voz, em um sinal digital. O sinal digital se distingue por identificadores momento que antecede o streaming de voz, a chamada fase de sinalizao. Estes identificadores individuais convvio de diversos outros sinais ao mesmo instante. Em suma isso o que chamamos de multiplexao. V acontecendo ao mesmo tempo e pelo mesmo meio fsico.

http://www.asteriskbrasil.org/index.php?option=com_openwiki&Itemid=109&id=apostil...

21/10/2011

AsteriskBrasil.org - A comunidade brasileira do PBX Open Source

Pgina 4 de 22

Na Telefonia Digital comumente conhecida utiliza-se o transporte de voz sem compactao, assim como ela digitalizada. Enviando 64Kb por segundo com 8khz e 8 bits(...detalhar khz e bit...). 1.1.3 Telefonia IP

Telefonia IP o conceito mais atual para utilizao de comunicao por voz.. Como toda e qualquer momentos de testes ferrenhos e provas de bala e fogo. Em determinado momento chegou-se a algo que se utilizvel. Com custos ainda proibitivos para a sua massificao, a Telefonia IP criou-se em meio a grandes transporte de udio. Backbones de grandes empresas de telefonia j cruzavam o Atlntico lanando cabos e mais cabos por ond enormes quantias de minutos de conversas, reunies e bate-papos, todas elas utilizando o protocolo IP de

O protocolo IP[2] chegou para trazer mais um conceito dentro dos meios de comunicao. Sua fcil implem riqueza em controles e documentao virou uma pgina importante na histria das telecomunicaes. Um d chamavam de ARPANET[3], uma rede de dessentralizao de informao criada como um artifcio de estrat exrcito americano. A INTERNET hoje o ponto de encontro de comunidades virtuais,

Os recursos de compactao de pacotes so extremamente necessrios para se transportar voz em uma re diversificada como a INTERNET. Hoje utiliza-se em quase todas as implementaes de Telefonia os algoritm de udio.

Os chamados CODECs so parte indispensvel em uma implementao de voz sobre IP. Os algoritmos de C DECodificao utilizam-se de funes matemticas para transformar um pacote de voz com 64Kb para um p exemplo, 8Kb. Cada algoritmo desse tem um nome/apelido. Alguns deles so G729a, law, alaw, GSM, iLBC 1.1.4 Telefonia IP x Voz sobre IP Telefonia IP e Voz Sobre IP, ou VoIP, so duas distintas classes na escala do transporte de voz.

Telefonia IP envolve todos os servios e meios de utilizao de voz empacotada. Correio de voz, gravao d transferncias, conferncias todas elas ocorrendo no mesmo mundo IP, o uso destes infinitos recursos car Telefonia IP.

Voz sobre IP ou VoIP ato de se transferir voz sobre um canal IP de comunicao em. Pode ser representa combustvel ou o meio de transporte da Telefonia IP. 1.1.5 Telefonia Mvel

Existem diversas formas de se comunicar de forma dinmica, mas nenhuma delas se compara ao poder da em certa poca era apenas um dos recursos disponveis em aeronaves e foguetes hoje econtra-se em todos na maioria deles pelo menos.

A Telefonia Mvel tem sua masssificao claramente denotada pela disseminao dos famosos telefones ce como TDMA, CDMA, GSM tomaram conta da mdia e ainda hojem permanecem fortes em um crescente seg telecomunicaes. A Telefonia Mvel tem se tornado uma parceira ideal para o crescimento da Telefonia IP. J existem encoporando tecnologias mveis, porm este ainda um meio menos popular de transporte de voz.

2 Conhecendo o Asterisk O Asterisk o canivete suio das telecomunicaes. Hoje ele faz muito mais que q plataforma de telefonia(vdeo e imagem definitivamente tambm). O limite sua criatividade, lembre Quem? Quando? Porque? Como? O Asterisk foi criado em 1999 por Mark Spencer, fundador da Linux Suppo empresa que inicialmente prestava servios de consultoria e suporte em platafromas GNU/Linux(para no fe Em um determinado momento Mark encontrou-se em frente a um projeto de telefonia: A necessidade de so problema em seus atendimentos de chamados telefnicos(Help Desk). Hoje aquele seu projeto prximas inovaes do mundo Open Source aps o surgimento do Linux. Batizado como Asterisk, um carac ambientes UNIX like, este software escrito originialmente em linguagem C(VERIFICAR SE SOMENTE C) territrio dos programas de cdigo aberto disponveis ao redor do globo. 2.1.1 O que o Asterisk?

O Asterisk um software de PBX, ou seja, um programa de computador que possui todos os recursos de um e faz a conexo de redes privadas de telefonia com a rede pblica de telefonia. Assim como em qualquer 2. desenvolvimento do Asterisk

http://www.asteriskbrasil.org/index.php?option=com_openwiki&Itemid=109&id=apostil...

21/10/2011

AsteriskBrasil.org - A comunidade brasileira do PBX Open Source

Pgina 5 de 22

O estrondoso sucesso do Asterisk teve seu incio com o lanamento da primeira verso estvel do sistema, Atualmente ele encontra-se na verso Asterisk 1.4. Seguindo os mesmos moldes de versionamento do possui um verso em desenvolvimento que tem o seu ltimo dgito identificador um nmero mpar, por exe em desenvolvimento a verso Asterisk 1.5. Em breve, quando ela estiver estabilizada e devidamente test tornar-se Asterisk 1.6 e ser divulgada comom ltima verso estvel do sistema. Cada srie(1.0, 1.2, 1.4, e prrpio mantenedor, ou seja, cada verso lanada tem um coordenador, que ir controlar o sistema aps o Cada nova verso lanada, automaticamente encerra o desenvolvimento de uma verso antiga. Por verso Asterisk 1.6, o Asterisk 1.4 ser descontinuado. Claro que correes de segurana e bugs ainda ser porm novas funcionalidades e a evoluo do sistema ser todo focado para a verso mais recente. O Aster SVN para versionamento de seu cdigo e a ferramenta Mantis para registros de bugs e requisio de novas 2.1.3 Participe tambm!

Para participar no desenvolvimento do Asterisk, voc pode contribuir de diversas formas. Documentando o manuais, howtos, documentao de cdigo entre outros. Projetos a para continente, pas para pais e at de Para ser um desenvolvedor voc precisa estar muito prximo do cdigo do sistema e ter uma boa noo de desejvel conhecimento dos protocolos e padres de telefonia. Como o Asterisk distribudo sob a linhas de cdigo e reportar ao lder do projeto(o mantenedor do cdigo da respectiva verso), ele ir determ ir ou no fazer parte do sistema. claro que antes de se aventurar importante e determinante que voc emails dos desenvolvedores[5]. 2.2 Arquitetura tecnolgica do Asterisk Basta entender um pouco sobre as Asterisk para comear a evoluir seus conhecimentos neste software. Este captulo ir trazer o bsico para in mais profunda neste sistema. INSERIR IMAGEM DESCRITIVA DO ASTERISK 2.2.1 Diretrios e arquivos

O Asterisk segue o modelo LSB[6] de disposio de diretrios e arquivos. Veja abaixo a espinha dorsal do s Arquivos de configurao. Voc ir conhec-los com mais detalhes no decorrer deste livro ou gerando os ar do sistema. Ao final da compilao do Asterisk, digite make samples, para gerar estes arquivos. Exemplo configurao do Asterisk: /etc/asterisk/sip.conf [101] ;contexto type=peers ;parmetro de configurao context=ramais ;parmetro de configurao secret=senha ;parmetro de configurao language=pt_BR configurao disallow=all ;parmetro de configurao allow=g729,alaw ;parmetro de configurao mailbox=101@correio ;parmetro de configurao ou /etc/asterisk/extensions.conf [ramais] ;contexto inclu ramais.conf ;incluir contedo de outro arquivo exten 101,1,Dial(SIP/101,10) ;extenso com prioridade 1 101,2,VoiceMail(u101@correio);extenso com proridade 2 Todos os arquivos seguem a notao acima com contudos(parmetros, includes e extenses). Os contedos variam de arquivo para arquivo e alguns conte comportamento expecial como veremos nos prximos captulos deste livro. /var/lib/asterisk/sounds Arquivo sistema. Mensagens e sons utilizados nas diversas aplicaes do Asterisk ficam armazendas neste diretrio. usando o Asterisk no Brasil, voc ir precisar configurar o sistema de acordo com a linguagem Portugus do cdigo de linguagem pt_BR onde for requisitado. Alguns subdiretrios possuem arquivos de udio especficos. /var/lib/asterisk/sounds/digits /var/lib/asterisk/sounds/letters /var/lib/asterisk/sounds/phonetic -bin Diretrio que contm as aplicaes AGI[7] utilizadas pelo Asterisk. So pequenos programas auxiliares Asterisk em momentos de tomada de decises no fluxo de uma chamada ou trazendo mais recursos e aplic plugin. /var/spool/asterisk Local para onde as chamadas so enviadas antes de chegar ao seu destino fina so enfileiradas e saem uma a uma aos seus destinos. aqui que tambm ficam as caixas postais dos rama sistema. /usr/lib/asterisk/modules O cdigo do Asterisk todo moduarizado, ou seja, voc pode unir pea a sistema de acordo com suas necessidades. Os arquivos neste diretrio tem aseguinte nomenclatura: tipo_n channel_zap.so) Alguns mdulos bastante comuns em um sistema Asterisk so: format_g729.so Suporte chan_sip.so Suporte ao protocolo SIP de comunicao IP app_voicemail.so Mdulo que controla o correio de app_meetme.so Mdulo que gerencia as conferncias /var/log/asterisk Arquivos de log so sistema. Neste di encontra os arquivos que contm os rastros de atividade do Asterisk. Voc pode possuir diferentes nvel de detelhamento ou tipo de mensagem. O arquivo que controla o seu contedo o /etc/asterisk/logge servidor

O Asterisk possui verses que podem ser ujtilizadas em FreeBSD, MacOSX, Linux dentre outros menos expr operacionais. A verso mais utilizada e melhor documentada e testada a verso para o sistema indicado para utilizao do Asterisk varia de acordo com a sua utilizao. Voc deve dimensionar o seu quantidade de ramais/troncos e/ou nas aplicaes a serem utilizadas em sua implementao. Exemplo de m

http://www.asteriskbrasil.org/index.php?option=com_openwiki&Itemid=109&id=apostil...

21/10/2011

AsteriskBrasil.org - A comunidade brasileira do PBX Open Source

Pgina 6 de 22

Exemplo de maquina para Empresa Media Exemplo de maquina para Empresa Grande 2.2.3 Sopa de letrinh Protocolos

Os protocolos de comunicao das mais variadas implementaes de comunicao bem como os aclgoritmo decodificao sero apresentados neste item. Estaremos abordando aqui somente aqueles suportados pelo Telefonia IP

- IP (Internet Protocol) O protocolo base da rede Internet e de redes privadas. - TCP (Transport Control Pro transporte de dados em redes IP com controle de entrega de pacotes. - UDP (...) Protocolo de transporte de sem controle de entrega de pacotes. - SIP (Session Initiation Protocol) Protocolo de transporte de pacotes d dados IP. O SIP o protocolo mais utilizado nas implementaes atuais de transporte de voz. Seu carter a implementao tornaram este protocolo um padro presente em todos(ou na grande maioria) os telefonia IP. - H323 (...) O H323 .... 2.2.3.2 Telefonia Digital - MFCR2 (...) Uma variante brasileira deste protocolo MFCR2DBR - PRI Padro de sinalizao E1 americanos. 2.2.3.3 Telefonia Analgica

- FXS (Foreign eXchange Station) Sinalizao enviada para telefones analgicos. - FXO (Foreign eXchange O enviada para troncos analgicos 2.2.3.4 CODECs - G729 - G723 - G726 - iLBC - Speex 2.2.4 Os Canais(channels)

Os canais so os responsveis pela comunicao entre as aplicaes, ramais e troncos do Asterisk. Todos o envolvem chamadas, so disponibilizados por meios de canais de comunicao, os channels do Asterisk. I CANAIS E O ASTERISK O Asterisk possui diversos tipos de canais. Os tipos de canais possveis so: 2.2.4.1 (chan_sip.so)

Este canal reponsvel pela comunicao SIP entre o Asterisk e ramais ou troncos que falem este configurado atravs do arquivo /etc/asterisk/sip.conf Os parmetros de configurao SIP para o Parmetros Valores Descrio disallow all|lista de codecs disallow=all Desabilita todos os codecs. allow Habilita todos(all) ou os codecs especificados e espaados por vrgulas por ordem de preferncia. Utilizar especificar alguns. allowexternalinvites yes|no Permite ou no o INVITE e REFER para domnios no locais. allowguest yes|no Permite ou no chamadas no conhecidas(guest). Default yes autocreatepeer yes|no S ir permitir que qualquer um se autentique ccomo peer(sem checagem de credenciais). Interessante em co Default no. autodomain yes|no Habilita ou no a abilidade do Asterisk inserir hosts locais ou Ips locais a li Default no. bindaddr nmero ip Endereo IP onde o Asterisk ir escutar as requisies SIP. Default 0.0.0 inteiro Porta UDP onde o Asterisk ir escutar as requisies SIP. Default 5060. callerid nome Callerid padr seja especifdicado. O default asterisk. canreinvite update|yes|no Permite que A e B trafeguem mdia de v utilziar o Asterisk. Default yes. checkmwi tempo em segundos Tempo em segundos do intervalo de checa correio. Default 10. compactheaders yes|no Se o Asterisk enviar ou no cabealhos compacados(aabrevi mensagens SIP. Default no. context nome O contexto default. Usado quando um endpoint no possui esta defaultexpirey tempo em segundos O tempo em segundos para registros SIP(entrante/saintes). Default 1 inband|info|rfc2833 Modo DTMF. Default rfc2833. domain nome Lista de domnios, separados por vrgula, ir ser responsvel. dumphistory yes|no Habilita o suporte de gerar um dump de conversas SIP no LOG_DE extermip nmero ip ou nome Endreo IP ou nome do host que ser colocado em mensagens SIP NAT. Se for usado o nome de host, ele ser verificado somente uma vez. Usar externhost se o nome estiver dinmico. externhost nome Nome do host que ser colocado em mensagens SIP se o Asterisk estiver atrs extermrefresh tempo em segundos Tempo em segundos que ser feito um refresh do DNS do nome externhost. Default 10. ignoreregexpire yes|no Indica quando usar a informao de Contact de um peer s estiver ociosa por ter alcanado seu tempo mximo de expirao.. language nome Idioma padro para as a e Background() localnet endereo ip/ mascara de rede Endereo de rede local e mascara. fromdomain nome campo From: do cabealho SIP quando o Asterisk um UA(User Agent). insecure very|yes|no|invite|port C SIP com peers. Default no(autentica todas as conexes). maxexpirey tempo em segundos Tempo mximo ser aguardado para registros SIP. Default 3600. musicclass nome Uma das classes de Msica em Espera sistema(musiconhold.conf) musiconhlod nome Mesmo que musicclass nat yes|no|never|route Default no. UA esteja atrs de NAT. notifymimetype mediatype/subtype Permite sobrepor o tipo de midia[9] no MWI NO correio de voz. notifyringing yes|no NOTIFY no momento de ringing. Default yes. outboundproxy nmero

http://www.asteriskbrasil.org/index.php?option=com_openwiki&Itemid=109&id=apostil...

21/10/2011

AsteriskBrasil.org - A comunidade brasileira do PBX Open Source

Pgina 7 de 22

para envio de chamadas saintes. No especificar o prefixo _sip._udp em caso de DNS SRV. outboundproxyp Porta UDP do proxy de chamdas saintes. pedantic yes|no Permite a checagem pedantic de callerid, cabealhos URI codificados. port nmero inteiro Porta SIP do UA. No a mesma coisa do que bindport. never|no|yes Se necessrio gerar ring inband SEMPRE. Default never/ promiscredir yes|no Permite o su 302. Ir redirecionar todos a extenso local presente no campo Contact ao invs da extenso de destino. qu em milisegundos Checa se o cliente(UA) est alcanavel. Se yes ir checar a cada 2000ms. Default no. re realm padro(asterisk). recordhistory yes|no Habilita o logging do histrico de transaes SIP. regcontext n padro para utilizar nas respostas SIP REGISTERs dos servidores SIP. register : client/peer id in sip.conf>/ Para realizar o registro SIP em outro server. registerattempts nmero tentativas de registro antes de desistir de realizar o registro. Default 0. registertimeout tempo em segund esperar para caracaterizar um timeout de registro. Default 0(sem limite). relaxdtmf yes|no Relaxar a dete rtautoclear yes|no|tempo em segundos Auto expirar contas criadas no realtime. Default 120. rtcachefrien cache de contas SIP na lista interna do Asterisk como feito usando os arquivos de configurao ao invs d no. rtpholdtimeout tempo em segundos Tempo, em segundos, de timeout de uma chamada em hold antes Default 0(ilimitado). rtpkeepalive tempo em segundos Tempo em segundos at que seja enmviado um RT de inatividaade de um canal de voz. rtptimeout tempo em segundos Tempo em segundos at caracterizar a inativa. Default 0(sem RTP timeout). rtupdate yes|no Envia updates de registry ao banco de dados do Ast usando realtime. sendrpid yes|no Se um Remote-Party_ID do cabealho SIP devar ser enviado. Default Modo debug no incio do mdulo SIP. srvlookup yes|no Habilitar consultas DNS SRV. Default no. tos parra sada de chamdas. Valores numricos pode ser usados como tos=184 trustrpid yes|no Se o cabealho SIP dever ser confivel. useclientcode yes|no useregphone yes|no Para usar user=phone ao Customizar o cabealho User-Agent do protocolo SIP. Alterar a identificao do Asterisk. Default asterisk. Para usar o suporte a vdeo. Default no. vmexten nome Extensso do dialplan para acessar o correio de v asterisk. Parmetros especficos para type=peer e type=user. Parmetros Valores Descrio type host disal allowexternalinvites Yes|no Permite ou no o INVITE e REFER para domnios no locais. Deafult yes. allow Permite ou no chamadas no conhecidas(guest). Default yes 2.2.4.2 Canal IAX (chan_iax2.so)

Este canal reponsvel pela comunicao SIP entre o Asterisk e ramais ou troncos que falem este protocolo configurado atravs do arquivo /etc/asterisk/sip.conf Os parmetros de configurao SIP so: Parmetros D host=0.0.0.0 Host permitido para acesso ao sistema. peer/user disallow=all peer/user allow=g729,ulaw pee Canal Local (chan_local.so)

Canais do tipo Local so utilizados para acessar recursos locais do Asterisk. Voc pode por exemplo cham utilizando a seguinte notao: Local/3333 ao invs de SIP/333. 2.2.4.4 Canal ZAP (chan_zap.so )

Os canais ZAP so utilizados para realizar a comunicao do Asterisk com o mundo da telefonia Digital e An dele que configuraremos os troncos E1(PRI), por exemplo, com uma operadora de telefonia. Ou atravs ramais analgicos conectados diretamente ao servidor Asterisk. Para a utilizao deste tipo de canal placas(geralmente com barramento PCI) conectadas ao servidor Asterisk. Vamos falar um pouco mais sobre mais adiante. O arquivo que configura este canal o /etc/asterisk/zapata.conf. Veja na tabela abaixo os pa neste arquivo: Parmetros Descrio language=pt_BR group=0 channels=1-4 2.2.4.5 Canal Unicall[10] (ch

O canal Unicall disponibilizado em um projeto a parte do Asterisk. necessrio aplicar um patch para disp de canal a um servidor Asterisk. O responsvel pelo desenvolvimento deste software Steve Underwood. Steve utiliza o apelido madrugada adentro nos canais IRC e nas listas de discusso do projeto Asterisk.

O Canal Unicall tem enorme importncia em territrio brasileiro, pois ele o responsvel pelo suporte ao pr sinalizao de E1 CAS MFCR2DBR.

O arquivo que configura este mdulo o /etc/asterisk/unicall.conf. Os parmetros utilizados neste arquivo muito com os parmteros utilizado no arquivo de configurao de canais ZAP. Veja na tabela abaixo ps par neste arquivo: Parmetros Descrio language=pt_BR group=0 channels=1-4 2.2.5 Equipamentos perifricos

http://www.asteriskbrasil.org/index.php?option=com_openwiki&Itemid=109&id=apostil...

21/10/2011

AsteriskBrasil.org - A comunidade brasileira do PBX Open Source

Pgina 8 de 22

O Asterisk, como qualquer outro ambiente de telefonia, possui apetrechos tecnolgicos para disponibilizar u completo de comunicao. Telefones, placas, gateways, enfim, necessrio alguns acessrios para que se do Asterisk. Neste captulo iremos conhecer alguns destes acessrios. 2.2.5.1 Placas digitais e analgicas

Para conectar o Asterisk s redes de telefonia convencionais(chamaremos de PSTN[11] estas redes no deco

Existem diversos fabricantes de placas analgicas e digitais que possuem suporte no Asterisk. As mais conh Digium, empresa de Mark Spencer, criador do Asterisk. Abaixo vamos listar alguns fabricantes e seus produ 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 Digivoice LISTAR TODAS AS PLACAS Khomp LISTAR TODAS AS PLACAS Pika LISTAR TODAS AS PLACAS

O projeto Zapata Telephony[12] disponibiliza sob a licena GPL um projeto para fabricao de alguma desta Asterisk at hardware utilizado pode ter especificao aberta.

A maioria das placas acima so basedas no projeto Zapata Telephony e suas configuraes esto disponvei arquivo /etc/zaptel.conf. 2.2.5.2 Telefones Impossvel imaginar(pelo menos por enquanto) um sistema de telefonia sem telefones. Pois bem, o extensa de telefones suportados. Vamos comentar sobre alguns deles. Polycom FOTO Cisco FOTO Snom FOTO Analgico SIEMENS (FXS) UM BEM ANTIGO... (FXS) 2.2.5.3 ATAs

Analog Telephony Adapter, este o significado de ATA. Um ATA utilizado para transformar um IP. Existem diversos ATAs disponveis no mercado, basicamente a sua diferena est na quantidade de Existem ATAs de uma porta analgica e de at vinte e quatro portas analgicas, o que significa que podemo vinte e quatro telefones conectados no mesmo equipamento, cada qual com seu nmero prprio. Um ATA um gateway de pequeno porte que faz a convero de um sinal analgico para um sinal IP. Alguns ATAs esto listados abaixo. IAXy (FOTO)

http://www.asteriskbrasil.org/index.php?option=com_openwiki&Itemid=109&id=apostil...

21/10/2011

AsteriskBrasil.org - A comunidade brasileira do PBX Open Source

Pgina 9 de 22

Handy Tone (FOTO) Linzsys PAP2 (FOTO) 2.2.5.4 Softphones

Softphones so telefones IP via software, ou seja, so telefones que podemos utilizar em um computador. E (para no dizer milhares) de opes de softwaphones disponveis. Alguns comerciair, outros livres. Para MacOSX, PDAs e handhelds, enfim, a oferta grande e voc saber escolher o que melhor se adapta ao seu 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 device designed to convert between balanced and signals, such as between coaxial cable and ladder line. Baluns can be considered as simple forms of transformers. 2.3 Documentao adicional e Downloads Canal Unicall http://www.soft-switch.org/unicall [http://www.soft-switch.org/unicall] Projeto Asterisk http://www.asterisk.org [http://www.asterisk.org] Projeto AsteriskBrasil.org http://www.asteriskbrasil.org [http://www.asteriskbrasil.org] Biblia Sagrada do Engenheiro VoIP http://www.voip-info.org [http://www.voip-info.org]

3 Configuraes bsicas do Asterisk Todas as configuraes do Asterisk se encontram nos arquivos *.conf d diretrio /etc/asterisk. No existe distino no local onde se configura um ramal ou um tronco ou mesmo um conferncia. Todos estes recursos esto presentes, muitas vezes, nos mesmos arquivos de configurao. O dentro do mesmo arquivo, so os contextos.

Antes de comear a Asteriskar necessrio fazer um preparo do seu sistema. Vamos tropicalizar o servidor ajustes.

3.1 Inserindo os padres de telefonia Brasileiro /etc/asterisk/.indications.conf [general] country = br [br] ringcadance = 1000,4000 dial = 425 busy = 425/250,0/250 ring = 425/1000,0/4000 congestion = 425/250,0/250,425/750,0/250 callwaiting = 425/50,0/1000 ; Dialrecall no utilizado no Brasil. Use o pad = 350+440 ; Record no utilizado no Brasil. Use tom de ocupado record = 425/250,0/250 ; Info no ut o padro ingls. info = 950/330,1400/330,1800/330 3.2 Adicionando a linguagem pt_BR ao Asterisk

O Asterisk possui um diretrio onde ficam armazenados todos os udios do sistema. A linguagem padro udios que acompanham o projeto esto todos gravados nesta lngua. Para adicionar a linguagem Portugu regravar os udios e adiciona-los nos diretrios 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 d possuir o mesmo nome porm podem ser gravados com outros formatos de udio. O formato padro dos ar GSM, porm para se ter maior qualidade nas locues interessante gravar o udio com uma qualidade ma Os udios devem posssuir amostragem de 8Khz e qualidade de 16 bits para que se possa trafegar

Observe que se um ramal, com suporte somente ao codec GSM, acessar o servidor com os udios gravados no GSM, o Asterisk ir realizar um processo de transcoding[13], o que ir trazer impactos de performance 3.3 Criando ramais Ramal SIP: sip.conf Exemplo: Ramal Analgico(ZAP): zapata.conf Exemlo: Ramal IAX: iax.conf

http://www.asteriskbrasil.org/index.php?option=com_openwiki&Itemid=109&id=apostil...

21/10/2011

AsteriskBrasil.org - A comunidade brasileira do PBX Open Source

Pgina 10 de 22

Exemplo: 3.4 Criando troncos Tronco SIP: sip.conf Tronco Digital(ZAP): zapata.conf

; Note the g2 in the TRUNK variable above. It specifies which group (defined ; in zapata.conf) to dial, i.e. g choose a channel to use in ; the specified group. The four possible options are: ; ; g: select the lowest channel ; (aka. ascending sequential hunt group). ; G: select the highest-numbered non-busy Zap channel sequential hunt group). ; r: use a round-robin search, starting at the next highest channel than last ; rotary hunt group). ; R: use a round-robin search, starting at the next lowest channel than last ; time (aka. hunt group). Tronco Digital(Unicall) Tronco Analgico: zapata.conf

3.5 Realtime O Realtime um recurso relativamente novo no Asterisk. Em suma ele permite que prprio plano de discagem do Asterisk em u m banco de dados relacional. Estas configuraes, neste modo automaticamente instanciadas no sistema, sem que haja a necessidade de se refazer uma leitura nos arquiv do Asterisk.

Este recurso indispensvel em ambiente de alto trfego de telefonia. Um simples reiniciar da plataforma d ocasionar interrupao de servios por alguns instantes, mas o sufcietnte para ser sensvel aos usurios.

O realtime ainda um recurso novo no Asterisk, portanto nem tudo pode estar presente neste modo de ope arquivos de configurao ainda so necessrios. Use realtime sempre que possvel.

4 Mergulhando no Dialplan O arquivo responsvel pelo Dialplan, ou plano de discagem, do Asterisk o /etc/asterisk/extensions.conf. Podemos chamar de a Pea Chave do Asterisk o arquivo extensions.conf. U discagem composto por contextos, extenses, prioridades e aplicaes. Alguns contextos so reservados sintaxe especial. Veja a sintaxe do arquivo /etc/asterisk/extensions.conf: [general] parametro01 = valor02 ... [globals] GLOBALVAR01 = valor01 GLOBALVAR02 = valor02 ... [contexto] exten extenso,prio (argumentos) Vamos analizar um pequeno trecho deste arquivo para entender sua morfologia e sintaxe. 101,1,Dial(SIP/101,10) exten 101,2,VoiceMail(u101@correio) exten 101,3,Hangup() exten exten 102,2,VoiceMail(u102@correio) exten 102,3,Hangup() [ramais] o contexto, 101 e 102 so as extenses o segundo parmetro(1.2.3) so as prioridades e Dial, so as aplicaes.

Neste captulo vamos entender um pouco mais sobre cada uma destas peas do plano de discagem do Aste

Usando #include para incluir arquivos Voc pode incluir outros arquivos dentro do dialplan, para isso dentro do extensions.conf. #include extensions_ramais.conf O contedo do arquivo /etc/asterisk/extensions tambm estar disponvel no dialplan. NO CONFUNDIR ESTE INCLUDE COM O INCLUDE DE CONTEXTOS, ADIANTE. Vale lenbrar que todos os arquivos do projeto Asterisk permitem a utilizao de #include[14]. Po entre dois 4.1 Contextos(context) [ramais] o contexto do trecho de dialplan exemplificado acima, ele o diferenciao deste segmento de cdigo para outros no mesmo arquivo. Este mtodo possibilita a diviso do que podem ser totalmente distintos entre si. Os nomes dos contextos no podem conter espaos, somente alfanumericos. 4.1.1 Contexto [general]

O contexto [general] utilizado para adicionar alguns parmetros gerais de configurao do dialplan, porta contexto general reservado pelo Asterisk. So estes os parmetros de configurao do contexto [general] Descrio static Yes|no If static is set to no, or omitted, then the pbx_config will rewrite ; this file when extensions are modified. Remember that all comments

; made in the file will be lost when that happens. writeprotect Yes|no if static=yes and writeprotect=no, you by ; CLI command save dialplan too ; autofallthrough Yes|no ; If autofallthrough is set, then if an extension runs out of

http://www.asteriskbrasil.org/index.php?option=com_openwiki&Itemid=109&id=apostil...

21/10/2011

AsteriskBrasil.org - A comunidade brasileira do PBX Open Source

Pgina 11 de 22

; things to do, it will terminate the call with BUSY, CONGESTION ; or HANGUP depending on Asterisks best guess (strongly recommended). ; ; 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). clearglobalvars Yes|no ; If clearglobalvars is set, be cleared ; and reparsed on an extensions reload, or Asterisk reload. ; ; If clearglobalvars is not set, then global variables will persist ; through reloads, and even if deleted from the extensions.conf or ; one of its included files, will remain set to the previous value. ; priorityjumping Yes|no ; If priorityjumping is set to yes, then applications 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 applications can also be requested to do this ; by passing a j option in their arguments. 4.1.2 Contexto [globals]

O contexto [globals], tambm reservado pelo Asterisk. Ele usado para definir variveis globais ao plano Disponveis a todo o sistema e no somente a um canal especfico. Veja neste exemplo como definir varive CONSOLE=Console/dsp TRUNK01=Zap/g0 TIPORAMAL222=SIP Para utilizar estas variveis no plano de dis uma das seguintes sintaxes: ${VARIAVEL} Modo mais simples, que retorna o valor da variavel ${ENV(VARI o valor de uma varivel de ambiente(sistema operacional) ${texto${VARIAVEL}} Acrescentando um prefixo varivel 4.1.3 Parmetro include

possvel incluir um contexto dentro de outro utilizando o parmetro include da seguinte forma: [ramais] in exten 101,1,Dial(SIP/101,10) exten 101,2,VoiceMail(u101@correio) exten 101,3,Hangup() exten (SIP/102,10) exten 102,2,VoiceMail(u102@correio) exten 102,3,Hangup() Neste caso quem estiver co acesso ao contexto [ramais] tambm ter acesso ao contexto [ramaisIP]. Isto possvel graas ao paramet contexto [ramais]. Os includes podem assumir uma condio de tempo para serem ativados. Por exemplo, include do exemplo acima da seguinte forma: [ramais] include ramaisIP|9:00-17:00|mon-fri|*|* (SIP/101,10) exten 101,2,VoiceMail(u101@correio) exten 101,3,Hangup() exten 102,1,Dial(SIP/102 102,2,VoiceMail(u102@correio) exten 102,3,Hangup()

Neste caso o contexto [ramaisIP] s estaria disponvel para o contexto ramais, de segunda a sexta das nov tarde. 4.1.4 Parmetros especficos de um contexto Alguns parmetros diferentes de exten podem ser usados dentro de contextos. switch IAX2/user:password@bigserver/local Variantes do swicth tambm podem ser teis.

Voc pode acessar um plano de discagem remoto, de outro servidor Asterisk, utilizando o parmetro swicth

lswicth Loopback/12${EXTEN}@outroontexto O lswitch possui a mesma funo do parmetros switch, deseja passar um valor que contenha uma varivel, ele no faz a subistituio da mesma, ou seja, a string literal.

eswitch Loopback/12${EXTEN}@outrocontexto O eswitch realiza a mesma funo do lswitch substituio de variveis antes de encaminhar o dialplan ao realtime. 4.2 Extenses(exten) Uma extenso por letras, nmeros ou uma combinao de ambos. exten Define uma linha de programao do dialplan. responsveis pela inteligncia do Asterisk. Por elas configuramos as tarefas contidas nos planos de discagem ordem de execuo. exten 101,1,Dial(SIP/101,10) exten 101,2,VoiceMail(u101@correio) exten

http://www.asteriskbrasil.org/index.php?option=com_openwiki&Itemid=109&id=apostil...

21/10/2011

AsteriskBrasil.org - A comunidade brasileira do PBX Open Source

Pgina 12 de 22

dialplan nos diria, se falassse portugus, a seguinte frase: Quando algum ou alguma coisa digitar(enviar e ao Asterisk, ele ir executar a alpicao Dial com o argumento SIP/101,10. Aps concluda esta primeira a aplicao VoiceMail com os parmteros u101@correio. Por ltimo execute a aplicao Hangup sem parmet portugus brasileiro, mais claro ainda: Chame o ramal 101, se ele no atender envie esta chamada e desligue a chamda em seguida. Chamamos de extenso a seguinte poro deste exmplo: exten as chamadas Prioridades e na sequncia as Aplicaes. 4.2.1 Extenses especiais Algumas extenses expeciais presentes no Asterisk so: exten t Representa timeout exten s chamda for enviada a um contexto sem uma extenso definida. S de start. exten h Extenso de hangup out, utilizado pela aplicao VoiceMail exten talk exten hint exten fax exten T exten discagem

possvel utilizar caracteres coringas como valor de extenses. Se uma extenso iniciada com o caractere no interpretado literalmente pelo Asterisk e sim como um padro de discagem. Os padres de discagem definem coringas para representar dgitos ou um grupo de dgitos sem ter a -los explicitamente como uma extenso do plan o de discagem. Veja a seguinte linha de um dialplan:

exten _014ZZXXXXXXX,2,Macro(chama-tronco,2,${EXTEN}) Neste caso qualquer nmero que inicie com de 12 dgitos, sendo o quarto e quinto dgito um nmero entre 1 e 9 e os demais nmeros sendo qualquer d seguir por essa linha do diaplan enviando para a macro chama-ramal o valor da varivel ${EXTEN}. Veja, na tabela abaixo, o significado de todos os padres de discagem disponveis:

Padro Descrio X Qualquer dgito entre 0 e 9 Z Qualquer dgito entre 1 e 9 N Qualquer dgito entre 2 e 9 [ dgito entre colchetes (neste exemplo, 1,2,3,5,6,7,8,9 . O ponto um coringa, siginifica qualquer significa qualquer coisa comeando com 9011 menos o prrpio 9011) ! wildcard, causes the matching proce soon as it can unambiguously determine that no other matches are possible 4.3 Prioridades As prioridades s parmetro das extenses. com ela que definimos a rodem de aes dentro de um plano de discagem. As ser especificadas de forma crescente e no precisam necessariamente ser contnuas, por exmplo: exten (SIP/101,10) exten 101,2,VoiceMail(u101@correio) exten 101,3,Hangup() As prioridades 1, 2 e 3 pode seguinte forma: exten 101,1,Dial(SIP/101,10) exten 101,15,VoiceMail(u101@correio) exten so as novas prioridades. Isso pode ajudar muito em casos onde se est desenvolvendo um dialplan e se adicionar linhas entre as extenses j criadas. Lembre-se que as prioridades sempre devem comear com VERIFICAR A VERACIDADE 4.3.1 Prioridade n+101

Uma prioridade especfica merece ateno. A prioridade n + 101. Veja o exemplo abaixo. exten 101,2,VoiceMail(u101@correio) exten 101,102,VoiceMail(b101@correio) exten 101,3,Hangup() Nest 102, ou 1 + 101 diz que caso a prioridade nmero 1 encontre sinal de ocupado o Asterisk deve enviar a cha prioridade 102, caso contrrio continuar executando a prioridade seguinte a nmero 2. 4.3.2 Prioridade ne A prioridade next ou simplesmente n siginifica a prioridade anterior mais um.

exten 101,1,Dial(SIP/101,10) exten 101,n,VoiceMail(u101@correio) exten 101,1+101,VoiceMail(b10 101,n,Hangup() Moleza hein? 4.3.3 Prioridade same A prioridade s+1 tem o mesmo valor que a prioridade n.

A prioridade same ou simplesmente s, significa que esta prioridade tem o mesmo valor da prioridade anteri

exten 101,1,Dial(SIP/101,10) exten 101,s+1,VoiceMail(u101@correio) exten 101,102,VoiceMail(b10 101,s+1,Hangup() 4.3.4 Sinais numricos e prioridades As prioridades podem ser seguidas de um sinal + (ou outro sinal numrico)e um valor a ser somado. Este em conjunto com as prioridades next e same.

exten 101,1,Dial(SIP/101,10) exten 101,2,VoiceMail(u101@correio) exten 101,1+101,VoiceMail(b10 101,3,Hangup() 4.3.5 Apelidos para prioridades

http://www.asteriskbrasil.org/index.php?option=com_openwiki&Itemid=109&id=apostil...

21/10/2011

AsteriskBrasil.org - A comunidade brasileira do PBX Open Source

Pgina 13 de 22

As prioridades podem possuir apelidos ou alias para que possam ser referenciadas com a aplicao do plano de discagem..

Este apelidos devem ser especificados entre parentesis logo aps o valor da prioridade, como no exemplo a

exten 101,1(dial),Dial(SIP/101,10) exten 101,2,VoiceMail(u101@correio) exten 101,dial+101,Voice exten 101,3,Hangup() Outro exemplo:

exten 101,1(,Dial(SIP/101,10) exten 101,2,VoiceMail(u101@correio) exten 101,102,VoiceMail(b101 101,n,Goto(${EXTEN},hangup) exten 101,hangup,Hangup() 4.4 Aplicaes As aplicaes formam o trazem aplicativos pr empacotados ao plano de discagem. As aplicaes so o terceiro parmetro de uma aplicao pode receber parmetros e sua notao a seguinte: Aplicao(parmetro1,parmetro2,parmte parmetros so separados por vrgula , ou pipe|. Para verificar todas as aplicaes disponveis em seu s execute o seguinte comando na *CLI: *cli> show applications Vamos falar um pouco mais sobre algumas d Dial Onde tudo comea...

A aplicao Dial pode ser encaraqda como a principal de todas elas. ela que nos permite realizar chamada que as realiza. O Dial em termos Astersticos, conecta um canal(channel) a outro canal(channel). Um exmp aplicao Dial pode ser visto abaixo: exten 101,10,Dial(SIP/101,10) No caso acima a aplicao Dial possu primeiro especifica o canal e informaes necessrias para a sua utilizao, o segundo parmetro designa a segundos que a aplicao Dial ir tentar estabelacer o canal. Exiiste a possibilidade de um terceiro parmet Por exemplo, a linha de exten acima poderia estar escrita da seguinte forma: exten 101,10,Dial(SIP/1 representada por uma letra do alfabeto e cada uma tem sua funo. No exemplo acima utilizamos as flags t significado destas e de outras flags disponveis para o comando Dial. Flag Descrio T Permite a transfernc chamada t Permite a transferncia pelo recebedor da chamada W Permite a gravao sob demanda do orgin Permite a gravao sob demanda do orginador da chamada f forces callerid to be set as the extension of th making/redirecting the outgoing call. For example, some PSTNs dont allow callerids from other extensions are assigned to you. d This flag trumps the H flag and intercepts any dtmf while waiting for the call to be a that value on the spot. This allows you to dial a 1-digit exit extension while waiting for the call to be answer RetryDial o Restore the Asterisk v1.0 CallerId behaviour (send the original callers ID) in Asterisk v1.2 (defa extensions number) r Gerar ringtone antes mesmo de comear a chamar o ramal. Usar com cuidado. m[cla msica em espera a pessoa que est chamando um ramal. Utilizar m(classe da msica em espera). Utilizar opo r. M(x[^argumento]) Executes the macro (x) upon connect of the call (i.e. when the called party an recebedor desligar uma chamada pressionando *. H Permite o originador desligar uma chamada CDR (Call Detail Record) for this call. This is like using the NoCDR command. P[(x)] Usa o PrivacyManager, valor do banco de dados.(x opcional) g When the called party hangs up, exit to execute more commands context G(contexto^ramal^prioridade) If the call is answered, transfer both parties to the specified context calling party is transferred to priority x, and the called party to priority x+1. This allows the dialplan to disti calling and called legs of the call (new in v1.2). A(arquivo) Toca um anncio(arquivo.gsm|.wav|.*) para o r chamada. D([chamado][:chamador]) After the called party answers, send digits as a DTMF stream, then co originating channel. (You can also use w to produce .5 second pauses.) L(x[:y][:z]) n IMPORTANTE! as flags da aplicao Dial(), pois eles no iro funcionar. - Se voc utilizar algumas destas flags(t, T, h, H, w aplicao Dial() o Asterisk sempre estar no mediapath, ou seja, o parmetro canreinvite=yes no Set

A aplicao Set tornou-se muito mais expressiva na verso Asterisk 1.2. Diversas aplicaes foram inutiliza -se sua anloga no formato de funes da aplicao Set. Em verses anteriores do Asterisk, a aplicao Set para nomear variveis(globais e de canal). Vamos conhecer um pouco sobre as opes que esta aplicao construo de um plano de discagem. Estas opes so trs, Declarao de Variveis, Execuo de funes AstDB(Banco de dados interno do Asterisk) 4.4.2.1 Declarao de variveis

Utilizando a aplicao Set, podemos declarar variveis no sistema Asterisk. A declarao de vriveis nas ve Asterisk(srie 1.0) eram realizadas pela aplicao SetVar. Atualmente ela foi descontinuada em favor da ap declarar uma varivel de canal(vlida somente no momento da chamada ou enquanto o canal estiver sendo exemplo abaixo como referncia: exten 101,1,Set(TEMPORING=30) exten 101,2,Dial(SIP/101,${TEMP 101,3,VoiceMail(u101@correio) exten 101,103,VoiceMail(b101@correio) exten 101,4,Hangup() Ap

http://www.asteriskbrasil.org/index.php?option=com_openwiki&Itemid=109&id=apostil...

21/10/2011

AsteriskBrasil.org - A comunidade brasileira do PBX Open Source

Pgina 14 de 22

varivel voc pode fazer uso dela inserindo o nome da varivel entre um cifro e uma chave aberta e outra abaixo: ${TEMPORING} O Asterisk ir substituir ${TEMPORING} por 30 que neste exmplo significa que o te Dial ir utilizaar para chamar o ramal 101 ser de 30 segundos. Para declarar uma varivel global, ou seja, extenses do seu diaplan, utilize a aplicao SetGlobalVar. 4.4.2.2 Execuo de funes

Como dito no incio deste tpico, tem se migrado uma srie de pequenas aplicaes para o formato de fun a aplicao Set tem outras habilidades que no seja somente a declarao de variveis ela pode realizar fun executadas por aplicaes. As funes possuem uma sintaxe muito semelhante a utilizada na declarao de funes recebem um argumento a mais antes do valor declarado. Veja o exemplo abaixo: exten No caso acima estamos usando a funo TIMEOUT com o argumento digit para declarar o tempo mxim dgitos....... A funo TIMEOUT foi concebida apartir de suas anlogas aplicaes DigitTimeout, AbsoluteTim ResponseTimeout. Como na declarao de variveis o uso de ${} tambm permitido caso queira utilizar o funo em algum outro lugar do seu plano de discagem. Veja o exemplo abaixo: Algumas funes disponve Argumentos Descrio TIMEOUT Digits|absolute|response CALLERID All|Name|num|rdnis LANGUAGE CUT D MD5 MD5 GROUP_COUNT DB_EXISTS FAMILA/CHAVE Checa se existe o PAR/CHAVE no AstDB SIP_HEADER todas as funes disponveis executando show functions na linha de comando Asterisk. *cli> show functions

O AstDB o banco de dados interno do Asterisk. Este banco de dados no um banco de dados relacional c Oracle, PostgreSQL. O AstDB um banco 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 chave com o mesmo nome.

Resursos poderosos podem ser utilizados com o AstDB. Voc pode, por exemplo, desenvolver aplicaes(vo AGI para realizar este desenvolvimento) que inserem dados sobre a disponibilidade de uma ramal. claro q Asterisk guarda esta informao dentro do AstDB, porm voc pode manipular esta informao e forar um prtico desta aplocaco poderia ser um recursos de No Perturbe, que quando o usurio digitar uma exten discagem aramazena um avalor de FAMILIA/CHAVE dentro do AstDB que ser consultado no momento de u este ramal. Vamos conhecer um pouco mais sobre esta apliucao nas prximas linhas, fique tranquilo. Inserindo/Extraindo/Apagando entradas no AstDB

As funes de insero, extrao e remoo do AstDB esto disponveis tanto na linha de comando do Aster de aplicaes que podem ser usadas em seu plano de discagem.

Para inserir dados no AstDB necessrio utilziar a aplicao Set, pois trata-se de declarao de um valor, e aramazenado dentro do banco de dados do Asterisk. Veja a sintaxe de insero abaixo.

exten extenso,prioridade,Set(${DB(FAMILIA/CHAVE)=VALOR}) Para apagar uma entrada do banco de d necessrio utilizar a aplicao Dbdel como mostrado na linha abaixo.

exten extenso,prioridade,DBdel(FAMILIA/CHAVE) Veja o exemplo real abaixo. uma aplicao de no p usurio a possibilidade de indisponibilizar o seu ramal quando necessrio discando o cdigo *11 em seu tele perturbe pode ser desabilitado digitando *13 no telefone. Em ambos os casos o plano de discagem ir utiliz do Asterisk CALLERIDNUM como valor de chave da famlia NP.

[app-naoperturbe] exten *11,1,Answer exten *11,2,Wait(1) exten *11,3,Set(${DB(NP/${CALLERID *11,4,Playback(nao-perturbe) exten *11,5,Playback(ativado) exten *11,6,Hangup() exten *13,2,Wait(1) exten *13,3,DBdel(NP/${CALLERIDNUM}) exten *13,4,Playback(nao-perturbe) (desativado) exten *13,6,Hangup()

Recuperar, ou extrair, dados tambm uma atividade trivial. Basta atribuir, tambm com a a aplicao Set valor do par FAMILIA/CHAVE e utiliza-la no dialplan. Veja neste exemplo como utilizar uma entrada no AstD

[macro-checagemramal] exten s,1,Set(NP=${DB(NP/${EXTEN})}) exten s,2,GotoIf($[${NP}=YES]?:4 s,3,VoiceMail(u${MACRO_EXTEN}@default) exten s,4,Macro(chamaramal,${MACRO_EXTEN})

http://www.asteriskbrasil.org/index.php?option=com_openwiki&Itemid=109&id=apostil...

21/10/2011

AsteriskBrasil.org - A comunidade brasileira do PBX Open Source

Pgina 15 de 22

Esta Macro poderia ser utilizada momentos antes de chamar o ramal de destino. O plano de discagem realiz no banco de dados do Asterisk para verificar se o ramal est ou no disponvel para receber chamadas, ou no com o no perturbe habilitado. No exemplo acima, a primeira linha da macro checagemramal recupera o par NP/RAMAL do AstDB e atribui varivel NP. A aplicao GotoIf utilizada como fator de deciso para encaminhar a chamada ao correio de no perturbe esta desabilitado, para a macro chamaramal com o nmero de ramal como argumento. 4.4.3 Goto, GotoIf, GotoIfTime 4.4.4 Aplicao Macro 4.4.5 Aplicao VoiceMail O famoso Correio de Voz

A aplicao Voicemail, como voc pode concluir, utilizada para acionar o sistema de Correio de Voz do Ast aplicao possvel que voc defina uma condio(ocupado ou indisponvel) para que voc envie a chamad Correio de Voz.

Por exemplo, imagine que voc est no telefone ou no est em sua mesa e uma chamada chega ao seu ra momemtno ideal para se utilizar a aplicao VoiceMail no seu plano de discagem. A sintaxe para utilizao da aplicaco VoiceMail esta: VoiceMail(opesramal@contexto) Na sintaxe acima o parametro opes esta colado ao parmetro ramal. forma que devemos utilizar esta sintaxe. Para enviar para vrias caixas de correio ao mesmo tempo:

VoiceMail(opesramal01@contexto01&ramal02@contexto02) Estas so as opes disponveis para a aplica

Opo Descrio s SEM esta opo uma mensagem ir ser tocada. A mensagem padro do sistema ps o sinal, quando terminar desligue ou pressione quadrado. Se voc usar esta opo esta mensagem NO voc utilizar esta opo uma mensagem de INDISPONVEL ser tocada. A mensagem padro, se o A pessoa no ramal XXX no est disponvel e na sequncia Deixe sua mensagem aps o sinal, quando pressione quadrado. b Se voc utilizar esta opo uma mensagem de OCUPADO ser tocada. A mensagem usurio no gravar a sua, A pessoa no ramal XXX no est disponvel e na sequncia Deixe sua mensa quando terminar desligue ou pressione quadrado. su Se voc utilizar esta opo uma mensagem de INDIS tocada. A mensagem padro, se o usurio no gravar a sua, A pessoa no ramal XXX no est instrues ser descartada. sb Se voc utilizar esta opo uma mensagem de OCUPADO ser tocada. A men usurio no gravar a sua, A pessoa no ramal XXX no est disponvel. A mensagem com instrues ser exemplo do plano de discagem abaixo: 4.4.5.1 Armazenamento de mensagens

As mensagens do correio de voz ficam armazenadas no seguinte diretrio: /var/spool/asterisk/voicemail/co Onde contexto o nome do contexto onde se encontra as informaes do correio e ramal o prrpio ramal(u 4.4.5.2 Configurao das caixas de correio de voz

O sistema de correio de voz configurado e armazena as caixas de correio no arquivo /etc/asterisk/voicem sintaxe do /etc/asterisk/voicemail.conf abaixo: [general] parametro01 = valor01 parametro02 = valor02 ... eastern=America/New_York|vm-received Q digits/at IMp central=America/Chicago|vm-received central24=America/Chicago|vm-received q digits/at H N hours military=Zulu|vm-received q phonetic/z_p COLOCAR O PADRO DO BRASIL [default] parametro01 = valor01 parametro02 = valor02 ... 2006,Ronaldinho Gacho,[email protected] 1111 1010,Dida,[email protected],,attach=no|serveremail=smtp.brasil.com.br|maxmsg=10 Debaixo do contex inserimos os parmetros que sero vlidos para todas as caixas de correio criada no sistema. Parmetros e abaixo dos contexto das caixas de correio, por exemplo [default]. Este o formato para criar uma nmero_ramalsenha_correio,nome_completo_usuario,email,email_pager,opcao1|opcao2|opcao3 disponveis para as caixas de correio do Asterisk: Parametro Argumentos Descrio format wav49|gsm|wav armazenamento dos arquivos de mensagens do correio de voz. Mais de um formato pode ser especificado u | .[15] serveremail email Email remetente das notificaes do correio de voz enviadas aos usurios. attach mensagens no email de notificao. maxmsg nmero inteiro Nmero mximo de mensagens por

http://www.asteriskbrasil.org/index.php?option=com_openwiki&Itemid=109&id=apostil...

21/10/2011

AsteriskBrasil.org - A comunidade brasileira do PBX Open Source

Pgina 16 de 22

100. maxmessage tempo em segundos Tamanho mximo de uma mensagem em segundos. minmessage Tamanho mnimo, em segundos, de uma mensagem para ser armazenada pelo sistema. Default 0. maxgr segundos Tamanho mximo, em segundos, das mensagens de recepo(ocupado, indisponvel e o nome do tempo em milisegundos Tempo, em milisedgundos, para os saltos de rew e ff no playback de mensagens. m segundos Tempo, em segundos, de silncio para que o sistemaa encerre a gravao de uma mensagem. importantes sobre a aplicao VoiceMail()

O arquivo /etc/asterisk/voicemail.conf no aceita #include pois o Asterisk acessa esta arquivo para fazer alt

No utiilize comentrios(especialmente os que contenham o caractere [, pois a aplicao VoiceMailMain, q autenticao do usurio, no muito inteligente no parsing do arquivo /etc/asterisk/voicemail.conf.

As caixas de correio no podem comear com as letras s, u, b ou uma combinao delas. Isso se deve a aplicao VoiceMail().

Apartir do momento em que uma caixa de correio j est operando(contm mensagens). No possvel alt udio. Isso ir ocasionar problemas no playback das mensagens do correio de voz. 4.4.5.4 Aplicaes complementares ao Correio de Voz VoiceMailMain()

Disponibiliza acesso ao sistema de Correio de Voz do Asterisk. com esta aplicao que posssibilitamos o a e informaes pessoais dos usurios de um servidor Asterisk. Acessando esta aplicao o usurio ser servido com o seguinte menu: Digite 1. Ler as mensagens do correio de voz Digite 2. Alterar de pastaDigite 0. Pasta de mensagens novas Digite 1. Pasta de mensagens antigas Digite 2. Pasta de mensagens trabalho Digite 3. Pasta de mensagens familia Digite 4. Pasta de mensagens amigos Digite #. Cancela

Digite 3. Opes avanadasPress 1. Send reply Press 3. Hear the message envelope Press 5. Leave a message Press *. Return to the main menu

Press 4. Play previous message Press 5. Repeat current message Press 6. Play next message Press 7. Delet Press 8. Forward message to another mailbox Press 9. Save message in a folder Press 0. Mailbox optionsPress 1. Record your unavailable message Press 2. Record your busy message Press 3. Record your name Press 4. Change your password Press *. Return to the main menu

Press *. Help Press #. Exit HasNewVoicemail() HasVoicemail() MailBoxExists()

We will use the GoToIf application to determine the dial status of the call. For the purpose we need also the ${DIALSTATUS}. The first extension after the one with Dial application, will check whether the called perso person is unavailable, then the execution will continue with the extension with priority 7. This extension con

http://www.asteriskbrasil.org/index.php?option=com_openwiki&Itemid=109&id=apostil...

21/10/2011

AsteriskBrasil.org - A comunidade brasileira do PBX Open Source

Pgina 17 de 22

application. In its brackets we have set the following: uanatoliy@testmail. The first letter - u means that a m unavailable condition has to be played. The message by default is: The person at extension is unavailable for the mailbox which we have set in the voicemail.conf. The last part is @testmail. This shows the context which the mailbox anatoliy is configured. So, the caller will hear a message and he/she will be allowed to re to store it in the mailbox of anatoliy. The message will be stored in the directory /var/spool/asterisk/voicemail/testmail/anatoliy/INBOX. In order to send the message in the mailb hang up the line or to press the pound key(#), when he/she finishes with the recording of the message. If t show that the user is available, then the next application with priority 4 will be executed. This one will check busy or not. If the line is busy, then the execution will continue with the extension with priority 9. This exte the VoiceMail application. In its brackets we have set the following: banatoliy@testmail. The first letter message for busy condition has to be played. The message by default is: The person at extension is on the anatoliy is for the mailbox which we have set in the voicemail.conf. The last part is @testmail. This shows th voicemail.conf, in which the mailbox anatoliy is configured. The caller will hear the message, that the called he/she will be allowed to record a message and to store it in the mailbox of anatoliy. The message directory /var/spool/asterisk/voicemail/testmail/anatoliy/INBOX. In order to send the message in the mailb hang up the line or to press the pound key(#), when he/she finishes with the recording of the message. No available and the line is free and the called person does not answer within 5 seconds, the next executed ext one with priority 5. This one contains another copy of the VoiceMail application. As arguments in following: anatoliy@testmail. There is no first letter which means that a message with instructions has to message by default is: Please leave your message after the tone. When done, hang up, or press the pound anatoliy is for the mailbox which we have set in the voicemail.conf. The last part is @testmail. This shows th voicemail.conf, in which the mailbox anatoliy is configured. Again the user will be allowed to record a messa The message will be stored in the directory /var/spool/asterisk/voicemail/testmail/anatoliy/INBOX. In order message in the mailbox, the caller has to hang up the line or to press the pound key(#), when he/she finish recording of the message. NOTE: Please, pay attention that between the option flags and the voicemail num separator. That is why the voicemails cannot start with s, u, b or any combination of these three letter noticed that between the extensions with priority 5, 7 and 9, we have extensions with the GoTo application. jumping to the last extension with priority 10 which has the Hangup application. Thanks to it the line will be necessary, because otherwise the three VoiceMail application will be executed subsequently. In this way the GoToIf applications will be lost. Aplicaes complementares: 4.4.6 MeetMe 4.4.7 Queue

A aplicao Queue utilizada para enfileirar chamadas. Este tipo de aplicao geralmente(na verdade n aplicao para ela) utilizada em filas de atendimento de Call Centers Passivos[16]

Conhecida tambm como DAC(Distribuidor Automtico de Chamadas) a aplicao Queue distribui chamadas ordem de chegada, para o primeiro agente[17] disponvel. O sistema atende imediatamente as chamdas e, o chamador para uma fila at que ele possa ser redirecionado ao prximo agente disponvel. Balanceando a agentes ir assegurar que todos os chamadores iro receber um bom atendimento.

O Asterisk suporta mltiplas filas de atendimentos e elas podem ser configuradas no arquivo /etc/asterisk/q referenciadas como argumento da aplicao Queue no seu plano de discagem. Os agentes so definidos arquivo /etc/asterisk/agents.conf. Sintaxe da aplicao Queue() Esta a sintaxe para utilizao da aplicao Queue:

exten extenso,prioridade,Queue(nome|opes|URL_opcional|sobrepor_anuncio|timeout) nome: Fila cria arquivo /etc/asterisk/queues.conf opes: t allow the called user transfer the calling user T transfer the call.'d' data-quality (modem) call (minimum delay). 'H' permite ao chamador desligar pressionando '*'.

http://www.asteriskbrasil.org/index.php?option=com_openwiki&Itemid=109&id=apostil...

21/10/2011

AsteriskBrasil.org - A comunidade brasileira do PBX Open Source

Pgina 18 de 22

'n' no retries on the timeout; will exit this application and go to the next step. 'r' Ringar ao invs de tocar msica em espera

URL_opcional: Envia uma URL para dispositivos que suportam este recurso. sobrepor_anuncio: Sobrepe o Configurao de filas de atendimento O arquivo responsvel pela configurao de filas de atendimento no Asterisk o /etc/asterisk/queues.conf. sintaxe.

[general] parametro-geral01 = valor01 parametro-geral02 = valor02 ... parametro-geral03 = valor03 [fila0 valor01 parametro02 = valor02 ... parametro03 = valor03 member Zap/1 member Zap/2 member Agent/1002 ;Cada membro(member) listado em uma linha individual. [fila02] parametro01 = valor01 p valor02 ... parametro03 = valor03 member Agent/@1 member Agent/1:1,1 ; Usar grupos de da fila02, ir desabilitar as estratgias de busca de agentes(roudrobin, leastrecent, etc.) Parmetros de atendimento Conhea os parmetros disponveis para filas de atendimento. Estes parmetros podem ser uma fila especfica ou para todoas as filas do sistema, para isto basta inserir o parmetro desejado nop con seu arquivo de configurao.. Parmetros valores Descrio periodic-announce arquivo_de_audio Mensagem enquanto o chamador aguarda atendimento periodic-announce-frequency nmero inteiro Tempo em segund mensagem peridica weight nmero inteiro Nmero inteiro que define o peso da Fila. Nmeros maiores ter de atendimento pelos agentes. monitor-format gsm|wav|wav49 Para gravar as chamdas que forem atendid depois do atendimento* announce-frequency nemero inteiro Frequencia em segundos de anncio ao cham posio na fila e/ou o tempo mdio de atendimento. Use o valor 0 para desabilitar esta funo. announce yes|no|once Devemos incluir o tempo mdio de atendimento no anncio de posies na fila? *Se o tempo f no ir anunciar* queue-youarenext queue-youarenext Arquivos de udio para anncios de posio na fila atendimento mdio. Altere somente se no quiser utilizar os valores padres. queue-thereare queue callswaiting queue-callswaiting queue-holdtime queue-holdtime queue-minutes queue-minutes queue thankyou wrapuptime nmero inteiro Tempo, em segundos, de descanso de um agente aps ele parmetro s tem efeito para agentes que no esto configurados no arquivo agents.conf. memberdelay n timeoutrestart nmero inteiro ???? musiconhold default Classe de msica em espera para tocar enquanto o atendimento. announce arquivo de udio Mensagem a ser tocada segundos amntes de o agente atender a c diferenciar para o agente em que fila ele est atendendo a chamada. strategy ringall|roundrobin|leastrecent|fewestcalls|random|rrmemory Estratgia de distribuio de chamadas aos at detalhes obre cada tipo ainda neste captulo. Ringall a default. servicelevel nmero inteiro Tempo em seg aceitvel de servio. Para gerar estatsticas de nvel de servio(SLA[18]). context contexto Contexto do plan o chamador tem acesso enquanto aguarda atendimento. timeout nmero inteiro Tempo em segundos que c indisponibilidade de um agente. retry nmero inteiro Tempo em segundos para aguardar antes de tentar agentes novamente. maxlen nmero inteiro Nmero mximo de pessoas que podem aguardar na mesma fil seconds nmero inteiro Arredondamento dos segundos no anncio do tempo. monitor-join yes|no Para unir OUT) quando se est gravando uma conversao joinempty yes|no|strict yes(chamadores podem entrar em membros ou somente com memebros indisponveis) no (chamadores no podem acessar filas sem membros)

strict(chamadores no podem acessar filas sem membros ou com membros indisponveis) leavewhenempty eliminar chamadores que j esto na fila. Mesmas opes de joinempty. eventwhencalled yes|no Setado pa alguns eventos de gerncia(AgentCalled, AgentDump, AgentConnect, AgentComplete) eventmemberstatuso para no ir gerar o seguinte evento de gerncia(QueueMemberStatus) reportholdtime yes|no Se voc quise o tempo de espera do chamador antes de atende-lo. Uma fila considerada vazia quando no possuir mem de seus membros no estiverem disponveis(agentes no logados). Estratgias de ring de agentes em filas de atendimento Ringall: Estratgia padro caso nada seja especificado.

Ir chamar todos os agentes ao mesmo tempo. Uma chamada entra e todos os agentes so acionados, por antes ir ganhar a chamada.

http://www.asteriskbrasil.org/index.php?option=com_openwiki&Itemid=109&id=apostil...

21/10/2011

AsteriskBrasil.org - A comunidade brasileira do PBX Open Source

Pgina 19 de 22

Roundrobin: A estratgia roundrobin nao pode ser confundida com a distribuio circular de chamadas, veja como O roundrobin lembra o ltimo agente para quem ele _iniciou_ o envio da ltima chamada e inicia as apartir do prximo agente. Se voc tiver trs agentes, e a primeira chamada seguir a ordem 12 seguir a ordem 231, a prxima 321 e assim por diante.

possvel utilizar o mtodo Roundrobin para realizar uma distribuio circular de chamadas atribuindo pena O Asterisk ir sempre iniciar a busca por agentes sem penalidades depois aos agentes com penalidade 1 e a Rrmemory:

Este mtodo lembra da ltimo agente que ele tentou _chamar_, independente por quem ele iniciou, envian chamada para o agente seguinte ao que atendeu a ltima chamada, Se voc tiver trs agente e a primeira rodem 12(e a chamada atendida), ento a prxima chamada ir seguir a ordem 31(e atendida), a p ordem 231, e asssim por diante. Se a primeira chamada, 12, estivesse em modo Roundrobin e ela fosse atendida, a segunda chamada agente 2 novamente. Fewestcalls: Ir iniciar a busca pelos agentes que tem o menor nmero de chamadas atendidas. Random: Faz uma busca aleatria independente de uma regra especfica. Leastrecent: Ir iniciar a busca pelo agente que foi chamado menos recentemente pela fila em questo. Configurao de agentes

Assim em como a maioria dos arquivos de configurao do Asterisk, o /etc/asterisk/agents.conf possui uma ([general]) e uma especfica para agentes([agents]), como mostrado abaixo:

[general] parametro-geral01 = valor01 parametro-geral02 = valor02 ... parametro-geral03 = valor03 [agen valor01 parametro02 = valor02 ... group=1 ; agent agentid,agentpassword,name agent 1001,4321,Si 1002,4321,Fausto Silve group=2 agent 1003,4321,Didi Moc agent 1004,4321,Joo Cleber Parmetro agentes

Estes so os parmetros disponveis para os agentes de uma fila de atendimento. Somente um parmetro p no contexto [general].

Parmetros valores Descrio persistentagents yes|no nico parmterro disponvel no contexto [general]. D agente ficar ou no armazenado no AstDB. Isso tem impacto aps um reload do Asterisk. autologoff segundos para deslogar um agente da fila. Valor default 15. ackall yes|no Se o agente logou usando a AgentCallbackLogin e esta opo estiver setada para yes, o Asterisk ir aguardar uma confirmao de login disponibilizar este agente na fila. wrapuptime nmero inteiro Tempo em milisegundos que o agente ir ter d receber outra chamada. O default 5000 ms. musiconhold nome da classe Define a nome da classe da ms tocar aos agentes. O valor padro a classe default. updatecdr yes|no Define se ir alterar o canal de orige nmero do agente. Default no. Se estiver setado para yes ele ir adicionar o nome do agente no ramal em que ele se encontra. recordagentcalls yes|no Grava ou no as chamadas atendidas pelos agentes wav|gsm|wav49 Formato do arquivo de udio das gravaes de chamadas dos agentes. Padro wav. crea Adiciona no userfield do CDR um link para acessar gravao da chamada. urlprefix http://server.ip/diretorio [http://server.ip/diretorio/] Adiciona um prefixo no link para o audio de uma chamada gravada. savecallsin /diretorio/de/gravacoes Diretorio para aramazenar as gravaes de chamdas dos agentes. Padr /var/spool/asterisk/monitor custom_beep arquivo de audio Com esta opo voc pode especificar um agentes conectados Exemplo de arquivo /etc/asterisk/agents.conf [general] persistentagents=yes [agents] autologoff=15 ackcall=no wrapuptime=5000 musiconhold recordagentcalls=yes recordformat=gsm group=1 agent 101,101,user1 agent 102,102,user2 agent

http://www.asteriskbrasil.org/index.php?option=com_openwiki&Itemid=109&id=apostil...

21/10/2011

AsteriskBrasil.org - A comunidade brasileira do PBX Open Source

Pgina 20 de 22

group=2 agent 8889,8889,operador 1 agent 8888,8888,ivan group=3 agent 8887,8887,operador 2 Operadores 4.6.1 Operadores Booleanos 4.6.2 Operadores Matemticos 4.7 Exemplos completos de dialplan 5 Gerenciando o Asterisk 5.1 Gerenciamento de ramais sip show peers zap show channels 5.2 Gerenciamento de troncos sip show users zap show channels show channels verbose 5.3 CDR Call detail record. 5.4 Troubleshooting 5.4.1 Logging /etc/asterisk/logger.conf /var/spool/asterisk/debug /var/spool/asterisk/full /var/spool/asterisk/messages 5.4.2 Eco Canceladores de echo zaptel MG2 aggressive Supression 5.4.3 Picotamento Banda de rede Latncia 5.4.4 Delay Jitter 5.4.5 Cdigos SIP Retirado da RFC do SIP: Os cdigos de resposta SIP so similares e extensveis aos cdigos de resposta HTTP/1.1. Nem todos apropriados, e somente aqueles que so apropriados so mostrados nesta seo deste material. Outros cdigos HTTP/1.1 no devem ser usados. O SIP tambm define uma nova classe de cdigos, 6xx. 1xx: Provisional request received, continuing to process the request;

Provisional responses, also known as informational responses, indicate that the server contacted is action and does not yet have a definitive response. A server sends a 1xx response if it expects to take more obtain a final response. Note that 1xx responses are not transmitted reliably. They never cause the client to Provisional (1xx) responses MAY contain message bodies, including session descriptions. 2xx: Success the action was successfully received, understood, and accepted; 3xx: Redirection further action needs to be taken in order to complete the request; 4xx: Client Error the request contains bad syntax or cannot 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 codes, class 1: Provisional messages These are sent within a SIP dialogue 100 Trying

http://www.asteriskbrasil.org/index.php?option=com_openwiki&Itemid=109&id=apostil...

21/10/2011

AsteriskBrasil.org - A comunidade brasileira do PBX Open Source

Pgina 21 de 22

180 Ringing 181 Call Is Being Forwarded 182 Queued 183 Session Progress SIP Response codes: 2xx class The 2xx class of responses indicates a success 200 OK 202 accepted: Used for referrals SIP response codes, class 3xx The 3xx class of responses indicates a redirection of the call 300 Multiple Choices 301 Moved Permanently 302 Moved Temporarily 305 Use Proxy 380 Alternative Service SIP responses, class 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 Acceptable 407 Proxy Authentication Required 408 Request Timeout: Couldnt find the user in time 410 Gone: The user existed once, but is not available here any more. 413 Request Entity Too Large 414 Request-URI Too Long 415 Unsupported Media Type 416 Unsupported URI Scheme 420 Bad Extension: Bad SIP Protocol Extension used, not understood by the server 421 Extension Required 423 Interval Too Brief 480 Temporarily Unavailable 481 Call/Transaction Does Not Exist 482 Loop Detected 483 Too Many Hops 484 Address Incomplete 485 Ambiguous 486 Busy Here 487 Request Terminated

http://www.asteriskbrasil.org/index.php?option=com_openwiki&Itemid=109&id=apostil...

21/10/2011

AsteriskBrasil.org - A comunidade brasileira do PBX Open Source

Pgina 22 de 22

488 Not Acceptable Here 491 Request Pending 493 Undecipherable: Could not decrypt S/MIME body part SIP responses, class 5: Server failures 500 Server Internal Error 501 Not Implemented: The SIP request method is not implemented here 502 Bad Gateway 503 Service Unavailable 504 Server Time-out 505 Version Not Supported: The server does not support this version of the SIP protocol 513 Message Too Large SIP response codes, class 6: Global failures 600 Busy Everywhere 603 Decline 604 Does Not Exist Anywhere 606 Not Acceptable 5.5 Backup O que copiar... 5.6 Tunning 5.7 Segurana

5.8 Sistemas distribudos e alta disponibilidade 6 Dicas e Truques I. ndice com todas as aplicaes disponv Asterisk II. ndice com todas as variveis internas do Asterisk III. Siglas e Dicionrio

[1] Agncia Nacional de Telecomunicaes - http://www.anatel.gov.br [http://www.anatel.gov.br] [2] Interne protocolo da Internet. [3] ARPANET DEFINICAO [4] Uma lista completa de CODECs utilizados pelos Asteri no captulo 2 deste livro. [5] Lista de desenvolvedores do Asterisk - htttp://lists.digium.com.br/asterisk Standard Base http://www.lsb.org [http://www.lsb.org] [7] Asterisk Gateway Interface - Voc pode encontr sobre o que AGI no captulo deste livro. [8] Saiba mais sobre o logger.conf no captulo 6 deste livro. [9] T ser encontrados neste link: http://www.iana.org/assignments/media-types/ [http://www.iana.org/assignments Unicall Mais informaes sobre este tipo de canal voc encontra em http://www.soft-switch.org/unicall switch.org/unicall] [11] Public Switched Telephony Network [12] http://www.zapatatelephony.org [13] Veja mais sobre transcoding no captulo 5 deste livro(Gerenciando o Asterisk) [14] Lembreno faz parte do projeto Asterisk e sim do projeto Zapata Telephony http://www.zapatatelephony.org [http://www.zapatatelephony.org] [15] Apartir do momento em que uma caixa de correio j est operando(con No possvel alterar os formatos de udio. Isso ir ocasionar problemas no playback das mensagens do co Call Center Passivo aquele que somente recebe chamdas., no origina(Call Center Ativo) [17] Agentes tam conhecidos como PAs, ou Postos de Atendimento. [18] Service Level Agreement

apostila_asterisk.txt (6544 views) Modificado em

Copyright AsteriskBrasil.org 2007

http://www.asteriskbrasil.org/index.php?option=com_openwiki&Itemid=109&id=apostil...

21/10/2011