Trein Asterisk v3 5
Trein Asterisk v3 5
Ateno
Com o intuito de oferecer sempre os melhores servios pedimos alguns minutinhos de sua ateno:
Celular: mantenha-o no modo silencioso/vibrador. Dvidas: sobre os tpicos que estiverem sendo apresentados sero discutidas durante o curso, dvidas sobre projetos e implantaes podero ser discutidas no intervalos ou por e-mail. Desejamos uma tima aula.
Introduo ao Asterisk
Asterisk um Software Livre (cdigo aberto), que implementa as funcionalidades de um PABX. Criado por Mark Spencer a mais de 10 anos. Jim Dixon, criador do projeto Zapata.
Aplicaes
Aplicaes
Aplicaes
PABX convencional e PABX-IP Asterisk. Ligaes de sada para nmeros locais e operadora PSTN:
Aplicaes
PABX convencional e PABX-IP Asterisk. Ligaes de sada para nmeros ddd e operadora VoIP:
Aplicaes
PABX convencional e PABX-IP Asterisk. Ligaes entre ramais do PABX convencional e ramais do PABX Asterisk:
Aplicaes
PABX convencional e PABX-IP Asterisk. Ligaes entre ramais do PABX Asterisk e ramais do PABX convencional:
Aplicaes
AsteriskIPBX - Arquitetura
Podemos definir a arquitetura bsica do Asterisk como: Protocolos: SIP, IAX, H323, DGV Canais de Comunicao: SIP/1000, DGV/g1 Codecs: g711a, g729a, GSM Aplicaes: Dial, PlayBack, MeetMe, HangUp
Protocolos VoIP
Protocolos mais utilizados: SIP e IAX2 SIP Padro IETF; Portas TCP/IP e UDP 5060; Mdia RTP (10000 20000); IAX2 Utilizado para interligar centrais Asterisk; Porta TCP-UDP 4569
Canais de Comunicao
Codec
CoDec (enCoder/Decoder), codificao e decodificao de sinais. Codificao de Sinais, transformar um sinal analgico em digital e vice-versa.
1101001010100100100101001010
Codec
Compresso de Sinais, reduzir o tamanho de um sinal digital (pacote), com intuito de otimizar o consumo de banda.
Codec G711
G711a Padro utilizado no Brasil pelas operadoras PSTN. pcm-a - G711a alaw 64kbps pcm-u - G711u ulaw 64kbps Codec de baixa compresso e baixa latncia.
Codec GSM
GSM O mesmo padro utilizado pelos telefones celulares. GSM 13,2kbps. Codec com compresso e consequentemente com latncia.
Codec G729a
G729a Codec proprietrio DIGIUM. G729a 8kbps. Codec com compresso e consequentemente com latncia.
PassThrough de udio
Quando o codec de udio entre os clientes so iguais , entre os Call Legs (pernas), o Asterisk faz o passthrough do udio.
Transcodificao de Codecs
Caso os codecs entre as pernas de uma chamada sejam diferentes o Asterisk far a transcodificao, ou seja a converso de formatos. Este processo gera latncia.
Caso uma das pernas use o codec G729, o Asterisk deve possuir licenas para que seja possvel a transcodificao. Codec com custo. Aps a instalao do codec podemos checar com o comando: CLI> g729 show licenses
Obs: Se um terminal esta em G729 e a musiconhold em mp3 ocorre transcodificao.
Prioridade de Codecs
Escolha da CPU
No existe mgica para a escolha. Segundo a Digium caso sejam utilizadas simultneas 120 transcodificaes G711 para G729 ser necessrio um Xeon 3.0 Dual Core. 300 chamadas simultneas em passthrough utilizando um Semprom 2.6 1Gb RAM com consumo de 90% de CPU. Gravao e Transcodificao.
Instalar o AsteriskIPBX
Verses de Asterisk:
Instalar o AsteriskIPBX
Diretrios:
/usr/lib/asterisk/modules/ /etc/asterisk/ /var/lib/asterisk/licences/ /var/lib/asterisk/moh/ /var/lib/asterisk/sounds/ /var/log/asterisk/ (.so) (configurao) (licenas como o g729a) (musica em espera) (arquivos de sons) (arquivos de log)
Instalar o AsteriskIPBX
Para o que servem os pacotes instalados: DAHDI Drivers para placas Digium (A partir de 2008 deixou-se de utilizar o Zaptel); LibPri Pacotes para a sinalizao ISDN; Asterisk Software de PABX; Asterisk-Addons pacotes que no seguem o GPL, como, MP3, H.323, conectividade MySQL;
Info sobre Asterisk 1.8 https://wiki.asterisk.org/wiki/display/AST/Asterisk+1.8+Documentation
Instalar o AsteriskIPBX
Instalar o AsteriskIPBX
asterisk cvvv (Carrega o asterisk como cliente e habilita verbose em 3); asterisk r asterisk g (Mostra console do asterisk); (Usado para debug com gdb, cria core dump) (Iniciar asterisk como servio)
/etc/init.d/asterisk start
Instalar o AsteriskIPBX
Comandos: core core core core core show version show applications show application Dial set verbose show channels
Instalar o AsteriskIPBX
Precisamos aprender a interpretar as mensagens de console, para isso devemos utilizar no mnimo um verbose em nvel 3. CLI> core set verbose 3
Obs: Podemos ajustar o verbose automaticamente ao iniciar o asterisk, para isso descomente o parmetro de verbose no arquivo asterisk.conf.
Instalar o AsteriskIPBX
Instalar o AsteriskIPBX
Reiniciar: core restart <regra> Parar: core stop <regra> Regra: now (imediatamente) gracefully (no permite novas chamadas) when convenient (somente quando no houver mais chamadas)
4 ou 8 canais FXO; DSP com tratamento de codecs G711 e GSM; Cancelamento de Eco por DSP;
4 canais FXS; 2 canais FXO e 2 canais FXS; 1 canal FXO e 3 canais FXS; DSP com tratamento de codecs G711 e GSM; Cancelamento de Eco por DSP;
1 canal E1 (R2-MFC ou ISDN-Pri) DSP com tratamento de codecs G711 e GSM; Cancelamento de Eco por DSP; R2-MFC nativo pelo DSP; ISDN utiliza LibPri (Asterisk);
Debug: 1 Testar cabos coaxiais, pode ser feito loop (TX-RX) no modem da PSTN; 2 Testar cabo UTP, pode ser utilizado testador de cabos UTP; 3 Testar placa DigiVoice com loop (TXRX) no conector RJ-45;
Em um cabo normal temos uma pinagem entre os conectores de 1:1, so utilizados os terminais 1 e 2 para TX e 4 e 5 para RX. Pode ser utilizado um cabo de rede CAT568.
Em um cabo crossover temos uma pinagem com inverso entre os terminais 1 e 2 para TX e 4 e 5 para RX. Este cabo comumente utilizado para conectar sistemas que possuam conexo E1 em RJ-45 com mesma pinagem entre TX e RX.
O vlib_diag um aplicativo destinado a testar as funcionalidades das placas DigiVoice. Com este aplicativo podemos originar e receber ligaes, gravar e reproduzir udio, entre outros testes.
Para execut-lo encerre os servios do asterisk com core stop now no CLI> e de qualquer diretrio do linux execute o comando vlib_diag
O console do Asterisk permite que utilizemos comandos para analisar o funcionamento das placas DigiVoice. Ex: CLI> dgv show alarms
A configurao dos parmetros de funcionamento das placas encontram-se no arquivo digivoice.conf, localizado no diretrio /etc/asterisk/ e dispostos em forma de sees. Neste arquivo configuramos os parmetros das placas instaladas, E1, FXO, FXS e GSM, podemos configurar o E1 como R2 ou ISDN, os ganhos tx e rx, eco, entre outros. Todos os parmetros de configurao encontram-se documentados no arquivo digivoice.conf.help,que est no diretrio ../dgvchannel-1.0.5/
Seo - [general]
Nesta seo podemos habilitar/desabilitar os codecs utilizados. [general] allow_slinear=0 ;codec linear allow_ulaw=1 ; codec g711u allow_alaw=1 ; codec g711a allow_gsm=0 ; codec GSM consolelanguage=br - utilizar os idiomas br ou en para as mensagens de help e alarmes no console do asterisk.
Seo - [allportsconfig]
- configuramos as opes de sinalizao e callprogress [allportsconfig] default_callprogress=cp_default.cfg detectiontype = 1 ; (1-DTMF, 2-MFP) dialtype = 1 ; (0-Pulso, 1-DTMF) afterdialpause=1000 ; Tempo em milesegundos para pausa apos a discagem. ringbacktone1 = tone1 ringbacktone2 = tone1 ringbacktimes = 1000,4000,1000,4000 busytone1 = tone1 busytone2 = tone1 busytimes = 250,250,250,250 subchannelringtone1=tone1 subchannelringtone2=tone1 subchannelringtimes=100,100,100,5000
Seo - [groups]
- configuramos os canais que sero utilizados por cada grupo, podemos desta forma configurar e utilizar um grupo de canais alm dos canais independentes. [groups] group=1 ports=>1-30 group=2 ports=>31-60 group=3 ports=>61-64 - pode-se alterar os grupos como desejar de forma independente das placas, ex: group = 3 ports => 61 group = 4 ports => 62-64
; -> Exemplo de configuracao para placa FXO 4 canais/portas. signalling=fxo context=from-pstn language=pt_BR accountcode= musiconhold= tx_gain=-6 rx_gain=0 echocan=4 echotraining=1200 callprogress=cp_default.cfg silence_threshold=-36 relaxdtmf=1
gen_dtmf=1 gen_ringback=1 gen_busy=1 dtmf_to_asterisk=2 cid_type=1 (1-DTMF, 2-FSK) faxdetection=1 drop_tx_samples_factor=33 wait_dialtone=1 dialtone_timeout=3000 ports=>61-64
; -> Exemplo de configuracao para placa FXS 4 canais/portas. signalling=fxs context=from-internal language=pt_BR accountcode= musiconhold= tx_gain=-6 rx_gain=-6 echocan=3 echotraining=64 callprogress=cp_default.cfg silence_threshold=-24 relaxdtmf=1 gen_dtmf=0 gen_ringback=1
gen_busy=1 dtmf_to_asterisk=1 faxdetection=1 drop_tx_samples_factor=33 port_id= dialtone_timeout=10000 flash_min_time=80 flash_max_time=650 ring_type=2 mailbox= immediate=no second_call_digits= ports=>65-68
; -> Exemplo de configuracao para placa GSM 4 canais/portas. signalling=gsm context=from-pstn language=pt_BR accountcode= musiconhold= tx_gain=-6 rx_gain=-6 echocan=4 echotraining=1200 callprogress=cp_default.cfg silence_threshold=-36 relaxdtmf=1 gen_dtmf=0
Seo - [e1_config]
CB3000 TDMoE um banco de canais E1/TDMoE para at 64 canais FXO/FXS. Quando utilizado com conexo E1-R2/MFC disponibiliza at 30 canais FXO/FXS. Quando utilizado com conexo TDMoE disponibiliza por equipamento at 64 canais FXO/FXS, com expanso para at 192 canais (03 CB3000 TDMoE cascateados).
E1 Portas 1-30
USB -Configurao
A configurao do CB3000 realizada atravs da porta USB utilizando um software terminal como por exemplo o minicom ou hyperteminal. Criamos um arquivo de texto contendo as configuraes e a descarregamos para o CB3000.
OBS: Esta sendo desenvolvido um software de configurao para o CB3000 TDMoE.
;(Habilita a interface E1 0=off, 1=on) ;(Sincronismo 1=recebe, 3=gera) ;(0=off, 1=on) ;(nvel de sinal MFC) ;(Distribuio das portas, associa a porta 1 do E1 para a porta 31)
[port_config] signalling= tdmoe_fxo access= free ports => 1-32 ;(Sinalizao FXO com TDMoE) ;(Determina direo das portas)
signalling= fxo_direct access= free tx_gain= 0 rx_gain= 0 echocan= 0 echotaps= 16 echotrainning = 900 silence_threshold= -30 ports => 101-132
signalling= fxs_direct ;(Determina canais FXS) access= free tx_gain= 0 rx_gain= 0 echocan= 0 echotaps = 16 echotrainning = 900 silence_threshold= -30 ports => 133-164 [end_conf] ;(Encerra o arquivo de configurao)
A instalao do CB3000 TDMoE utiliza canais do tipo DAHDI do Asterisk. As configuraes devem ser feitas nos arquivos: system.conf (/etc/dahdi) chan_dahdi.conf (/etc/asterisk)
Exemplo do arquivo SYSTEM.CONF (etc/dahdi): loadzone=br ;(Manter padro br) defaultzone=br ;(Manter padro br) #TDMoE CB3300_A: ;(Comentrio) dynamic=eth,eth0/aa:bb:cc:dd:ee:ff,64,1 ;(Tipo de interface para a comunicao, Identificao do dispositivo (eth0, eth1 ... eth9) / MAC Address do CB3000 destino, Quantidade de canais para a comunicao TDMoE, Sincronismo, 0- Recebe ou 1- Gera) fxoks=33-64 ;(Interface FXS do CB3000 de 33 a 64 canais) fxsks=1-32 ;(Interface FXO do CB3000 de 1 a 32 canais) channels=1-64 ;(Canais totais pertencentes ao dispositivo eth0)
Exemplo do arquivo CHAN_DAHDI.CONF (etc/asterisk): [general] [channels] context= default rxgain=0.0 txgain=0.0 busydetect=yes busycount=6 usecallerid=yes group= 1 signalling= fxs_ks channel=> 1-32
Encontram-se no diretrio /etc/asterisk/ Principais arquivos: sip.conf iax.conf extensions.conf features.conf digivoice.conf logger.conf (Configurao de peers SIP) (Configurao de peers IAX) (Planos de discagem) (Facilidades, como transferncia) (Configurao de placas DigiVoice) (Habilitar e Desabilitar Logs)
Todos arquivos de configurao seguem a mesma sintaxe: [seo] parmetro1 = valor parmetro2 = valor parmetro3 = valor . . parmetroN = valor
Existem sees com nomes e funes especficas: Seo general define configuraes padres para as demais sees. Seo globals seo onde sero criadas variveis globais. No plano de discagem uma seo chamada de contexto, porm nos arquivos sip.conf e iax.conf recebem o nome de peer.
SIP Configuramos os canais SIP no arquivo /etc/asterisk/sip.conf [general] ; parmetros comuns todas as sees udpbindaddr=0.0.0.0:5060 ; end ip e porta que recebe conexes disallow = all ; desabilita codecs allow = alaw ; habilita codec g711a allow = gsm ; habilita codec GSM language = pt_BR ; idioma das mensagens reproduzidas
Uso de Templates na criao de canais SIP. Definio de um template: [template](!) host = dynamic type = friend disallow = all allow = alaw context = interno
Associando o template ao canal de comunicao: [peer1](template) secret = senha callerid = nome <nmero>
Parmetro type, o que peer, user e friend ?????? user Faz chamadas por meio do Asterisk. (O telefone recebe chamadas) peer Recebe chamadas por meio do Asterisk. (O telefone faz chamadas) friend Faz e recebe chamadas por meio do asterisk. (O telefone recebe e faz chamadas)
Aps o trmino da criao dos peers no arquivo sip.conf necessrio recarregar na memria estas alteraes, para isso use o comando:
CLI> sip reload
Detalhes do arquivo iax.conf, para a seo [peer]. [peer] . . requirecalltoken=no ; Utilizado para aumentar a segurana de conexo em terminais IAX, como alguns peers IAX mais antigos no tem tratamento para Call Token utilizamos este parmetro como no. CLI> iax2 reload (recarrega alteraes)
Tentativa de realizar uma chamada entre o peer 2000 para o peer 2001, sem existir um plano de discagem.
== Using SIP RTP CoS mark 5 [Sep 3 15:15:31] NOTICE[3316]: chan_sip.c:20139 handle_request_invite: Call from '2000' to extension '2001' rejected because extension not found.
Podemos verificar as configuraes dos peers SIP e IAX2 com os comandos: sip show peer <canal> Ex: CLI> sip show peer 2000 Mostra detalhes do peer SIP; iax2 show peer <canal> Mostra detalhes do peer IAX;
Plano de Discagem
Plano de Discagem responsvel por todas as aes que sero executadas pelo Asterisk, como permitir que ramais interajam entre si, que seja possvel executar uma chamada externa, entre outras funcionalidades. As configuraes das regras de discagem so feitas no arquivo extensions.conf
Plano de Discagem
Plano de Discagem
Mscaras
X=09 Z=19 N=29 . = 0 9 (inclusivo) ! = 0 9 (exclusivo) [24-79] = so vlidos apenas os dgitos 2,4,5,6,7,9
[externo] exten => _2XXX,1,Dial(SIP/${EXTEN}) exten => _2XXX,n,HangUp() exten => _NXXXXXXX,1,Dial(DGV/g1/${EXTEN}) exten => _NXXXXXXX,n,HangUp()
Plano de Discagem
[externo] exten => _2XXX,1,Dial(SIP/${EXTEN}) exten => _2XXX,n,HangUp() exten => _NXXXXXXX,1,Dial(DGV/g1/${EXTEN}) exten => _NXXXXXXX,n,HangUp() exten => _0NXXXXXXX,1,Dial(DGV/g1/${EXTEN:1}) exten => _0NXXXXXXX,n,HangUp()
Plano de Discagem
Utilizao de canais utilizando grupos em troncos. exten => _0NXXXXXXX,1,Dial(DGV/g1/${EXTEN:1}) g G r R (Ocupa canais do menor para o maior) (Ocupa canais do maior para o menor) (Ocupao cclica, menor para maior) (Ocupao cclica, maior para menor)
A prioridade de busca difere da ordem em que foi escrita no extensions.conf exten => _NXX.,1,Dial(DGV/g1/${EXTEN}) exten => _2XXX,1,Dial(SIP/${EXTEN}) exten => 2100,1,PlayBack(im-sorry) Este plano visto pelo Asterisk na ordem:
A prioridade de busca difere da ordem em que foi escrita no extensions.conf exten => _NXX.,1,Dial(DGV/g1/${EXTEN}) exten => _2XXX,1,Dial(SIP/${EXTEN}) exten => 2100,1,PlayBack(im-sorry) Este plano visto pelo Asterisk na ordem: 2100 _2XXX _NXX.
Dial(SIP/9001,30,tTrxXkKA(aviso)L(1000000:200000:10000)) A(aviso) reproduz mensagem para o destino; L(x:y:z) limita chamada a x ms, avisa em y ms e repete aviso a cada z ms; r ring falso; S(x) desliga chamada aps x segundos; t transferncia do lado do destino; T transferncia do lado da origem; x grava chamada do lado do destino (automixmonitor); X grava chamada do lado origem (automixmonitor); k one step parking (destino); K one step parking (origem);
Plano de Discagem
Detalhes do arquivo extensions.conf [general] -parmetros comuns todas as sees; [globals] contm variveis criadas pelo usurio; [contextos] conjunto de regras criados pelo usurio;
Plano de Discagem
Podemos executar desvios quando convenientes. Goto(prioridade) exten exten exten exten => => => => 2010,1,Answer() 2010,2,PlayBack(beep) 2010,3,Wait(1) 2010,4,Goto(2)
Goto(extenso,prioridade) exten => 2011,1,Answer() exten => 2011,2,PlayBack(beep) exten => 2011,3,Goto(2012,1) exten => 2012,1,Wait(1) exten => 2012,2,PlayBack(beep) exten => 2012,3,Goto(2011,2)
Goto(contexto,extenso,prioridade) exten => 2050,1,Goto(aviso,s,1) [aviso] exten => s,1,Answer() exten => s,2,PlayBack(mensagem) exten => s,3,HangUp()
Goto(label) Goto(extenso,label) Goto(contexto,extenso,label) exten => 2051,1,Answer() exten => 2051,n(volta),BackGround(msg-ura) exten => 2051,n,HangUp() exten => 1,1,PlayBack(msg-1) exten => 1,n,Goto(2051,volta)
Extenses especiais: i - invalido t - timeout h hangup fax Fax s - start Para que as extenses especiais funcionem, deve ser inserido na seo [general] do arquivo extensions.conf, o parmetro: autofallthrough = no
Podemos utilizar mensagens pr-gravadas como a do Laboratrio 4, ou gravar novas mensagens utilizando um ramal do PABX. [interno] exten => exten => exten => exten =>
Globais Criadas na seo [globals], no incio do arquivo extensions.conf. [globals] PSTN=021 SUPORTE=2000
exten => _0ZZN.,1,Dial(DGV/g1/${PSTN}${EXTEN:1})
Manipulando o contedo de variveis ${varivel:posio_inicial:comprimento} [globals] EXEMPLO=ABCDE12345 ${EXEMPLO:1} = ${EXEMPLO:-4} = ${EXEMPLO:0:1} = ${EXEMPLO:2:3} = ${EXEMPLO:-4:2} =
Manipulando o contedo de variveis O resultado do retorno : [globals] EXEMPLO=ABCDE12345 ${EXEMPLO:1} = BCDE12345 ${EXEMPLO:-4} = 2345 ${EXEMPLO:0:1} = A ${EXEMPLO:2:3} = CDE ${EXEMPLO:-4:2} = 23
Expresses: Aritmticas: $[1+1] - retorna a soma; $[${CONTADOR}+1] retorna a soma do contedo da varivel CONTADOR mais 1; Comparao: $[${CONTADOR}<21] retorna V ou F
GotoIf(expresso?label:label1) salta para o label se a expresso retornar verdadeiro e o label1 se for falso;
GotoIf($[${CONTADOR}<21]?retorna:termina)
ExecIf($[${CALLERID(num)}=1199658916]?HangUp)
SayNumber Reproduz nmero. SayDigits Reproduz dgitos. SayAlpha Reproduz caracteres. SayPhonetic Reproduz alfabeto fontico internacional.
[macro-disca] exten => s,1,Dial(${ARG1}/${ARG2},${ARG3}) exten => s,n,Goto(call-${DIALSTATUS}) exten => s,n(call-NOANSWER),PlayBack(naoat) exten => s,n,HangUp() exten => s,n(call-BUSY),PlayBack(ocupado) exten => s,n,HangUp() [interno] exten => _2XXX,1,Macro(disca,SIP,${EXTEN},20)
Outra maneira de criar a mesma macro. [macro-disca] exten => s,1,Dial(${ARG1}/${ARG2},${ARG3}) exten => s,n,Goto(call-${DIALSTATUS},1) exten => call-NOANSWER,1,PlayBack(naoat) exten => call-NOANSWER,n,HangUp() exten => call-BUSY,1,PlayBack(ocupado) exten => call-BUSY,n,HangUp()
Alguns retornos para a varivel DIALSTATUS. CHANUNAVAIL CONGESTION BUSY NOANSWER ANSWER CANCEL HANGUP
Voice Mail
Voice Mail, ou Correio de Voz, consiste no servio de secretria eletrnicade um PABX. O ramal que ir receber a facilidade de VoiceMail deve possuir o parmetro mailbox, este parmetro colocado na seo de canal do ramal. [peer] . mailbox = ramal@default
Voice Mail
As configuraes das facilidades de uma caixa postal so feitas no arquivo voicemail.conf. Este arquivo dividido em 3 sees. [general] define as facilidades do servio. [zonemessages] formato de data, hora e fuso horrio. [classe da caixa postal] define a classe do voice mail, normalmente utiliza-se a classe default.
Voice Mail
Voice Mail
Voice Mail
Voice Mail
Diretrio das mensagens (classes): /var/spool/asterisk/voicemail/default Envio das mensagens por e-mail: Utiliza MTA (Message Transfer Agent)
Voice Mail
Voice Mail
Para consultar as caixas postais podemos utilizar a aplicao VoiceMailMain(). exten => *60,1,VoiceMailMain() Caso seja digitado o ramal especfico este ser consultado, seno ser feita a consulta do correio de voz do ramal originador da chamada.
Voice Mail
SIP
SIP (Session Initiated Protocol) Padro IETF; Similar aos protocolos HTML e SMTP; Usa portas TCP/IP e UDP 5060 (sinalizao); Usa portas UDP para mdia RTP (10000 a 20000);
SIP
Servidores SIP
Tipos de Servidor: Proxy Roteador de pedidos at o destino; Redirect permite que o usurio se locomova geograficamente e permanea sendo localizado; Registrar mantm um cadastro dos usurios para localizao;
Servidores SIP
NAT (Network Address Translator) O SIP armazena os endereos de origem e destino dos endpoints dentro do campo de dados dos pacotes TCP/IP; NAT trata os endereos armazenados na camada de rede (Network Layer) dos pacotes; Resolver utilizando firewalls e SBC (Session Border Controlers) que tratam SIP;
Servidores SIP
NAT e Asterisk Cliente (ramal) atrs de NAT (Asterisk): nat = yes qualify = yes O Asterisk usa o endereo do pacote TCP/IP e no do SIP.
Servidores SIP
Servidores SIP
NAT e Asterisk Servidor Asterisk atrs de NAT: [general] localnet = endereo-de-rede/subnetmask externip = ip-pblico-do-servidor O roteador deve ter a opo port forwarding, para que os pacotes TCP/IP tenham o mesmo valor de porta antes e depois de passar pelo NAT.
Servidores SIP
Provedor SIP
Chamamos de Provedor SIP quem disponibiliza os servios de conexo para estabelecer chamadas telefonicas. Para conectar-se a um Provedor SIP devemos obter do mesmo suas caractersticas.
Provedor SIP
Uma das principais configuraes que devem ser feitas o modo de registro no provedor, uma vez que o mesmo deve autenticar o usurio para poder localiz-lo e permitir chamadas. sip.conf [general]
register => user:secret@host-provedor:5060/identidade
Provedor SIP
OBS: os parmetros invite,port para insecure, permitem que o provedor conecte-se ao peer sem a necessidade de se registrar.
Para receber uma chamada por meio do provedor VoIP podemos identificar a chamada entrante pelo identificador do register. register => user:secret@host:5060/1141238756 Sempre que uma chamada for encaminhada pelo provedor e o identificador constar em uma regra a chamada ser atendida: [from-voip] exten => 1141238756,1,Dial(SIP/2000) exten => 1141238756,n,HangUp()
Provedor SIP
Trunk IAX2
Protocolo aberto; Utiliza a porta TCP/IP e UDP 4569 para sinalizao e mdia de udio RTP; Oferece economia de Banda no modo Trunk IAX2;
Trunk IAX2
Trunk IAX2
Filial-101 [para-102] username= de-101 secret = 9999 host = 192.168.10.102 qualify = yes type = peer disallow = all allow = gsm trunk = yes [de-102] context = from-iax secret = 4321 qualify = yes type = user disallow = all allow = gsm trunk = yes requirecalltoken = no Filial-102 [para-101] username= de-102 secret = 4321 host = 192.168.10.101 qualify = yes type = peer disallow = all allow = gsm trunk = yes [de-101] context = from-iax secret = 9999 qualify = yes type = user disallow = all allow = gsm trunk = yes requirecalltoken = no
Transferncia de Ligaes
Trunk IAX2
; Filial-101 [SP-RJ] username= SP-RJ secret = 1234 host = 192.168.10.102 qualify = yes type = friend disallow = all allow = gsm trunk = yes context = from-iax requirecalltoken = no
; Filial-102 [SP-RJ] username= SP-RJ secret = 1234 host = 192.168.10.101 qualify = yes type = friend disallow = all allow = gsm trunk = yes context = from-iax requirecalltoken = no
Transferncia de Ligaes
Para que possamos transferir chamadas devemos habilitar estas facilidades no arquivo features.conf. Modos de Transferncia: Assistida Deve permanecer na chamada at que o destino atenda. Cega Entrega a chamada ao destino mesmo se estiver indisponvel. Obs: devem ser adicionados os parmetros t (destino) e T (origem) na aplicao Dial(), para permitir ao canal transferir uma chamada
Transferncia de Ligaes
Podemos selecionar esperas telefnicas diferentes por canal. necessrio que o asterisk-addons esteja instalado para que seja possvel utilizar moh em mp3.
Os arquivos de som utilizados na moh por padro esto em: /var/lib/asterisk/moh/ Mas podem ser definidos os caminhos durante a configurao, utilizando o parmetro directory.
A configurao da musica em espera feita no arquivo musiconhold.conf. [default] mode = files ou custom directory = caminho dos arquivos de udio sort = random ou alpha
Podemos indicar qual msica em espera ser utilizada incluindo o parmetro mohinterpret na seo do peer, ou caso deseje alterar para todos os peers podemos utilizar a seo [general]. [peer] . mohinterpret=default Obs: recarregue o modulo musiconhold.so CLI> module reload res_musiconhold.so
Podemos ajustar a msica de espera que ser utilizada no momento em que a chamada estabelecida:
exten => 2000,1, Set(CHANNEL(musicclass)=<classe>) Ex: exten => 2000,1, Set(CHANNEL(musicclass)=forro) exten => 2000,n,Dial(SIP/2000,60,tT) exten => 2020,1, Set(CHANNEL(musicclass)=metal) exten => 2020,n,Dial(SIP/2020,60,tT)
possvel converter arquivos utilizando o console do Asterisk utilizando: file convert <origem> <destino> ex:
file convert /sounds/som.gsm /sounds/som.alaw
Captura de Chamadas
Captura de chamadas significa transferir a chamada que esta tocando em um ramal para o seu e assim atend-la. Tipos: Grupo Direta
Captura por Grupos: Definir a quais grupos de chamada os ramais pertencem e tambm quais so os seus grupos de captura. estas definies so feitas nos peers. callgroup pickupgroup Para habilitar a captura por grupos basta habilitar a facilidade no arquivo features.conf, utiliza por padro o cdigo *8
possvel capturar tambm um ramal digitando o cdigo de captura e seu nmero, a esta facilidade chamamos de captura direta. Utilizamos a aplicao Pickup().
exten => _*302XXX,1,PickUp(${EXTEN:3}@interno) exten => _*302XXX,n,HangUp()
Captura de Chamadas
Estacionamento de Chamadas
Caso um atendente no esteja disponvel esteja necessrio que o cliente o aguarde podemos estacionar uma chamada, ou seja colocar o cliente na espera at que o atendente esteja disponvel. Este recurso deve ser ativado no arquivo features.conf
Estacionamento de Chamadas
Detalhes do arquivo features.conf [general] parkext => 700 (cdigo para estacionar) parkpos => 701-706 (faixa de estacionamentos) context => parkedcalls parkingtime => 45 (tempo de permanncia no estacionamento) parkedcalltransfers => caller (permite transferir aps retomar do estacionamento)
Estacionamento de Chamadas
Monitoramento de chamadas utilizado para acompanhar um atendimento. Utilizando a aplicao: exten => *40,1,ChanSpy() Ser monitorado o peer com a chamada ativa a mais tempo.
Monitoramento de chamadas de um canal especfico. Utilizando a aplicao: ChanSpy(<chanprefix>,<opo>) Como opo podemos usar: q = quiet d = 4 (spy), 5 (whisper), 6 (barge)
Conferncia
Sala de Conferncia; Nmero de participantes depende do hardware; Ingresso direto na sala; Gerenciamento pela console do Asterisk
Conferncia
Configuramos as salas no arquivo meetme.conf. [general] audiobuffers = 32 [rooms] conf = 1 conf = 2,1234 conf = 3,1234,9876
0bs: conf = <room><,secret><,admin-secret>
Conferncia
Para acessar as salas necessrio criar uma extenso no arquivo extensions.conf. [interno] exten => _10X,1,MeetMe(${EXTEN:2},iI) exten => _10X,n,HangUp() onde: i = anncio de entrada I = anncio de sada
Conferncia
Bilhetagem
Bilhetagem o armazenamento das chamadas telefnicas. Os arquivos gerados podem ser utilizados para gerar contas de telefone. Diretrio do arquivo de bilhetes, Master.csv: /var/log/asterisk/cdr-csv/
Bilhetagem - Custom
possvel customizar os bilhetes gerados. Esta customizao deve ser feita no arquivo cdr_custom.conf.
Titulo
www.digivoice.com.br
Fim.