Você está na página 1de 275

Mdias de suporte colaborao digital

Introduo Voz sobre IP e Asterisk

Mdias de Suporte Colaborao Digital

Introduo Voz sobre IP e Asterisk

Mdias de Suporte Colaborao Digital

Introduo Voz sobre IP e Asterisk

Copyright 2010, Escola Superior de Redes RNP

Autor Jacir L. Bordim Reviso tcnica Alex Galhano Robertson Antnio Tadeu Azevedo Gomes Colaboradores Bruno Correa Srgio Francisco Superviso tcnica Renato Duarte Coordenao acadmica Derlina P M. Miranda . Editor Pedro Sangirardi Design Tecnodesign Coordenao geral Luiz Coelho Verso 1.1.0 Todos os direitos reservados, no Brasil, por Escola Superior de Redes RNP http://esr.rnp.br

Este material didtico foi elaborado com fins educacionais. Solicitamos que qualquer erro encontrado ou dvida com relao ao material ou seu uso seja enviado para a equipe de elaborao de contedo da Escola Superior de Redes, no e-mail info@esr.rnp.br. A Rede Nacional de Ensino e Pesquisa e os autores no assumem qualquer responsabilidade por eventuais danos ou perdas, a pessoas ou bens, originados do uso deste material. As marcas registradas mencionadas neste material pertencem aos respectivos titulares.

Escola Superior de Redes


A Escola Superior de Redes (ESR) a unidade de servio da Rede Nacional de Ensino e Pesquisa (RNP) voltada formao de competncias em Tecnologias da Informao e Comunicao (TIC). Sua misso a disseminao do conhecimento, com o oferecimento de cursos prticos intensivos com carga horria de at 40 horas de durao, voltados ao mercado de trabalho. Os cursos da ESR so baseados em atividades prticas que desenvolvem no aluno a capacidade de anlise e construo de hipteses, para a superao dos problemas e desafios encontrados no dia a dia do profissional de TI. A aprendizagem torna-se mais efetiva se contextualizada realidade profissional. Cada aluno tem sua prpria estao de trabalho nos laboratrios conectados internet por meio da rede de alta velocidade da RNP . Apoiados por material didtico exclusivo, elaborado por especialistas, os cursos so distribudos por cinco reas temticas: Administrao e Projeto de Redes; Administrao de Sistemas; Segurana; Mdias de Suporte Colaborao Digital e Governana de TI. Fazendo parte deste time, voc est absorvendo a experincia acumulada de quem trouxe a internet para o Brasil e continua inovando em pesquisa e desenvolvimento na rea de redes.

iii

MID1

Administrao de Videoconferncia
40h

ADS1

u esto QUI A

Introduo ao Linux
MID2
40h

ADR4

Introduo Voz sobre IP e Asterisk


40h

Interconexo de Redes de Computadores


40h

SEG1

ADS2

Introduo Segurana de Redes


40h

Administrao de Sistemas Linux


40h

ADR1

ADS3

Arquitetura e Protocolos de Rede TCP-IP


40h

ADR6

Adm. Sistemas Linux: Redes e Segurana


40h

Tecnologias de Redes Sem Fio


40h

SEG2

Segurana de Redes e Sistemas


40h

ADS5 ADS4

Adm. Sistemas Linux: Servios para Internet


40h

Virtualizao de Servidores
40h

ADR3

Roteamento Avanado
40h

SEG6

Segurana em Redes Sem Fio


40h

ADR7 ADR5

IPv6 Bsico
40h

Gerncia de Redes de Computadores


40h

Grade curricular da Escola Superior de Redes


esr.rnp.br

GTI10

Planejamento e Projeto de Infraestrutura para Datacenter


GTI6
40h

i Bs

co
GTI2

Gerenciamento de Projetos de TI Fundamentos de Governana de TI


16h 24h

GTI1 GTI8

Gesto da Segurana segurana da Informao informao


NBR 27001 eNBR27002 27001, NBR 27002

Planejamento e Gesto Estratgica de TI


24h

GTI3

Inte

di rme

rio
GTI4

Gerenciamento de Servios de TI
24h

40h

GTI9 SEG4 SEG3

Governana de TI
24h

Gesto de Riscos de TI
NBR 27005

Anlise Forense
40h

Tratamento de Incidentes de Segurana


40h

40h

n Ava
GTI5

ado

GTI7

ITIL

Information Technology Infrastructure Library

COBIT
Control Objectives for Information and Related Technology

16h

Engenharia Reversa de Cdigo Malicioso


40h

SEG8

16h

reas temticas Mdias de suporte colaborao digital Administrao de sistemas

Legenda
Todos os cursos da ESR requerem ingls para leitura e noes de informtica e Internet. Conhecimento prvio recomendado Curso

Administrao e projeto de redes Segurana Governana de TI


v

Mdias de Suporte Colaborao Digital


A interao atravs da internet uma realidade entre as pessoas e organizaes. Aplicaes como videoconferncia, webconferncia e VoIP suprem as necessidades colaborativas de organizaes e usurios domsticos, produzindo economia de tempo e recursos. A capacitao na configurao, administrao e operao das mdias de suporte a reunies, distribuio de udio e vdeo, troca de arquivos e compartilhamento de informaes entre equipes e pessoas de importncia vital nesse contexto. A Escola Superior de Redes oferece cursos preparatrios para o domnio destas ferramentas essenciais no ambiente de qualquer organizao.

A quem se destina?
\\Profissionais

que desejam aprender a utilizar e administrar recursos de colaborao digital, para os mais diversos fins.

Convenes utilizadas
\\Texto

puro Usado no texto, opes de menu e auxiliares de teclado (Alt e Ctrl). Quando em ttulos e pargrafos de texto, indica estrangeirismos, comandos e suas opes, nomes de arquivos e referncias a outras sees ou bibliografias. Quando em largura constante, denota os parmetros que sero indicados pelo usurio.

\\Itlico

\\Texto

em azul Indica URLs acessveis na internet ou no ambiente do laboratrio. Podem ser endereos de pginas, locais de rede ou endereos eletrnicos. em laranja Sempre que constar nos pargrafos de texto indica uma entrada de glossrio, cuja definio deve ser vista na lateral do texto, prxima ao termo. Indica comandos e suas opes, variveis e atributos, contedo de arquivos e resultado da sada de comandos. Quando utilizados para indicar comandos que sero digitados pelo usurio so grifados em negrito e possuem o prefixo do ambiente em uso (no Linux normalmente # ou $, enquanto no Windows C:\). A separao entre o que o usurio digita e o retorno do computador indicada pelo caractere , em aluso tecla Enter. Quando houver parmetros opcionais em exemplos, estes podem entrar entre colchetes [ ].

\\Texto

\\Largura constante

vi

\\

Pargrafo de texto com fundo laranja e cone. Representa notas e informaes complementares como dicas, sugestes de leitura adicional ou mesmo uma observao. de texto com fundo laranja fonte em branco

\\Pargrafo

Utilizado para destacar os enunciados das atividades ao longo do captulo.

Comentrios e perguntas
Para enviar comentrios e perguntas sobre esta publicao: Escola Superior de Redes RNP Endereo: Av. Lauro Mller 116 sala 1103 Botafogo Rio de Janeiro RJ 22290-906 E-mail: info@esr.rnp.br

vii

viii

Sumrio

Captulo 1 Histrico e conceitos bsicos . . . . . . . . . . . . . . . . . . . 1 Captulo 2 Protocolo SIP . . . . . . . . . . . . . . . . . . . . . . . . 49 Captulo 3 Recomendao H.323 . . . . . . . . . . . . . . . . . . . . . 93 Captulo 4 Asterisk . . . . . . . . . . . . . . . . . . . . . . . . . . 125 Captulo 5 Arquitetura do Asterisk . . . . . . . . . . . . . . . . . . . . 151

Captulo 6 Plano de discagem . . . . . . . . . . . . . . . . . . . . . . 175 Captulo 7 Servios complementares. . . . . . . . . . . . . . . . . . . . 193 Captulo 8 Distribuio de chamadas . . . . . . . . . . . . . . . . . . . 205 Captulo 9 Unidade de Resposta Audvel (URA) . . . . . . . . . . . . . . . . 213 Captulo 10 Qualidade de Servio em VoIP . . . . . . . . . . . . . . . . . . 223 Bibliografia . . . . . . . . . . . . . . . . . . . . . . . . . 257

ix

1
Histrico e conceitos bsicos

Sumrio
Conceitos bsicos de rede . . . . . Arquitetura TCP/IP . . . . . . . . Camadas da arquitetura TCP/IP . . . Endereamento IP . . . . . . . . Classes de endereamento . . . . . Endereos especiais . . . . . . . Roteamento . . . . . . . . . . Comunicao VoIP . . . . . . . . Evoluo do VoIP . . . . . . . . VoIP ToIP . . . . . . . . . . Vantagens e desvantagens do VoIP . . Benefcios do VoIP . . . . . . . . Existem trs formas de comunicao via Padronizao . . . . . . . . . . Princpios de codificao de udio . . Codificao da mdia de voz. . . . . Codec . . . . . . . . . . . . Codificao de forma de onda . . . . Codificao paramtrica . . . . . . Codificao hbrida . . . . . . . . Padres de codificao de voz . . . . G.711 . . . . . . . . . . . . G.729 . . . . . . . . . . . . G.723.1 . . . . . . . . . . . iLBC . . . . . . . . . . . . . Arquitetura VoIP . . . . . . . . . Projetos VoIP no Brasil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VoIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 .3 .4 .7 .8 .9 10 12 12 13 13 14 17 20 21 24 25 25 26 26 27 28 28 29 29 30 31

Introduo Voz sobre IP e Asterisk

Roteiro de Atividades . . . . . . . . . . . . . . . . . . . . . 33 Atividade Atividade Atividade Atividade Atividade Atividade Atividade Atividade Atividade 1 2 3 4 5 6 7 8 9 Instalando o cliente X-Lite . . . . . . Configurando o X-Lite . . . . . . . . Configurando o Telefone IP . . . . . . Configurando o ATA . . . . . . . . . Efetuando chamadas com ATA, Telefone IP Verificando codecs de udio . . . . . . Conhecendo o Wireshark . . . . . . . Efetuando capturas com Wireshark . . . Capturando pacotes na rede . . . . . . . . . . . . . . . . . . e X-Lite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 34 36 37 39 39 43 44 46

\\Conceitos

bsicos de rede: TCP/IP; dos pacotes; IP; da arquitetura TCP/IP;

\\Arquitetura \\Camadas

\\Transporte

\\Endereamento \\Classes

de endereamento; especiais;

\\Endereos

\\Roteamento; \\Protocolo

de transporte.

A evoluo das tecnologias de comunicao e a reduo dos custos constituem os principais fatores para a ampla adoo das redes de computadores nas organizaes. Tais redes so projetadas, essencialmente, para compartilhar recursos de hardware e software e viabilizar a troca de informaes entre usurios. No entanto, as atuais tecnologias de redes restringem o nmero de dispositivos conectados, e so geralmente incompatveis entre si. Dispositivos conectados a uma rede local que adota a tecnologia Ethernet, por exemplo, no interagem diretamente com outros que utilizam outras tecnologias. Isso dificulta a comunicao de grandes grupos de usurios e impede que usurios de redes distintas se comuniquem entre si. Para viabilizar essa comunicao, a nica alternativa adotar mecanismos que permitam a interoperabilidade, interconectando e compatibilizando as mltiplas redes heterogneas. A interconexo destas vrias redes denominada inter-rede.

Arquitetura TCP/IP
\\Conjunto

pioneiro de protocolos; universal.

\\Arquitetura

A arquitetura TCP/IP composta de um conjunto de protocolos e foi pioneira na concepo de conectar qualquer mquina Unix (ou que utilize TCP/IP) a qualquer outra, atravs de subredes interconectadas por gateways (roteadores). O TCP/IP de aplicao universal, com especificaes que seguem um padro e so de conhecimento pblico (Request for Comments RFC). Em um ambiente TCP/IP estaes comunicam-se com servidores ou outras , estaes. Isso possvel porque cada n que usa o protocolo TCP/IP tem um nico endereo de rede lgico, de 32 bits.

Captulo 1 Histrico e conceitos bsicos 3

Conceitos bsicos de rede

Introduo Voz sobre IP e Asterisk

O Transmission Control Protocol (TCP) o protocolo de transporte responsvel pela entrega confivel dos dados no destino. Na RFC 793 que o define, ele chamado de Host to Host Protocol, porque um protocolo residente somente nos hosts e no nos gateways.

TCP Host to Host


Internet

IP

Figura 1.1

Os dados so enviados de n a n, cada um deles decidindo qual o prximo (next hop). O responsvel pelo roteamento na rede o Internet Protocol (IP).

Camadas da arquitetura TCP/IP


\\Aplicao; \\Transporte; \\Rede; \\Enlace

de dados.

Segundo as RFCs, a arquitetura TCP/IP possui 4 camadas: 1. Aplicao nesta camada esto os protocolos das aplicaes suportadas por esta arquitetura. Por exemplo, o protocolo HTTP da aplicao www, e o protocolo SMTP da aplicao e-mail. 2. Transporte nesta camada existem dois protocolos: TCP (orientado conexo) e UDP (sem conexo). A aplicao usar o que for mais adequado. 3. Rede nesta camada temos o IP que um protocolo de rede sem conexo , (servio datagrama) e os protocolos Internet Control Message Protocol (ICMP), que envia mensagens de erro, e Internet Group Management Protocol (IGMP) para endereamento multicast. 4. Enlace de dados nesta camada temos as subredes suportadas pelo IP . Tipicamente so redes locais (LAN) ou enlaces seriais (WAN).

Telnet & Rlogin

FTP TCP

HTTP

SMTP

DNS

TFTP

SNMP

NFS & RPC

Aplicao Transporte Rede Enlace de dados

UDP IP
Hardware Interface

ICMP ARP

IGMP RARP

Figura 1.2

A arquitetura TCP/IP conforme j vimos, constituda de 4 camadas de protocolos. , Cada camada trata seus dados e monta a sua Unidade de Dados do Protocolo (Protocol Data Unit PDU). A camada de aplicao monta a sua PDU com os dados da aplicao e o respectivo protocolo (SMTP FTP entre outros) e passa para o TCP entregar ao host do outro , , lado. Visto dessa forma, o TCP comumente denominado Host to Host Protocol, uma vez que ele se encarrega da comunicao fim a fim entre os hosts que esto trocando informaes. O TCP monta a sua PDU (segmento TCP) e passa para o protocolo IP que fica com , a tarefa de entregar o segmento TCP atravs de uma rede IP Para isso, o protocolo . IP coloca o seu cabealho (header), criando assim a sua PDU, chamada de datagrama IP ou simplesmente de pacote IP . Nesse momento, o protocolo IP precisa se comunicar com a subrede, seja ela qual for, para enviar o pacote IP devidamente encapsulado dentro do quadro da camada de enlace de dados. Evidentemente a subrede no entende o endereamento IP e tem seu prprio endereamento. Assim, o protocolo IP precisa usar o endereamento da subrede para enviar o pacote IP Existe ento a necessidade de uma interface entre o . protocolo IP e a subrede.

Transporte dos pacotes


Algoritmos de comutao so relativamente simples e basicamente os mesmos para a maioria dos protocolos de roteamento. Tipicamente, um host determina que precisa enviar um pacote para outro host. Para isso ele tem que saber, de alguma forma, o endereo do roteador que far a ao (se no souber, no h como enviar o pacote). O host envia o pacote para o roteador, colocando o endereo fsico do roteador (normalmente esto na mesma rede local, portanto o endereo fsico ser o MAC address) e o endereo do protocolo de rede do host de destino. O roteador ento examina o pacote e tenta encaminh-lo para o host de destino, baseado no seu endereo de rede. Se o roteador tiver na sua tabela de rotas a rota adequada, ele

Captulo 1 Histrico e conceitos bsicos 5

Introduo Voz sobre IP e Asterisk

encaminhar para o prximo n, mudando o endereo fsico para o endereo do prximo n e mantendo o endereo de rede do host de destino. Se no tiver a rota na tabela, o roteador simplesmente descartar o pacote. O processo se repetir at chegar no roteador que est na mesma rede do host de destino, que entregar o pacote enviando-o para o endereo fsico do host de destino. Assim, medida que o pacote atravessa a rede, seu endereo fsico vai mudando; porm, o endereo do protocolo de rede permanece igual (host de destino).
Origem Pacote
Para: Destino (Endereo rede) Router1 (Endereo fsico)

Pacote Roteador1
Para: Destino (Endereo rede) Router2 (Endereo fsico)

Roteador2

Roteador3

Para: Destino (Endereo rede) Router3 (Endereo fsico)

Pacote
Para: Destino (Endereo rede) Destino (Endereo fsico)

Pacote Destino

Figura 1.3

\\Endereos \\Host

IP so baseados nos conceitos de rede e host;

qualquer equipamento com capacidade de transmitir e receber pacotes IP em uma rede; so interconectados por uma ou mais redes;

\\Hosts \\O

endereo IP composto por: da rede; do host na rede.

\\Identificao \\Identificao \\Tamanho

de 32 bits (4 octetos) representados por 4 nmeros decimais separados por um ponto; 200.201.152.93 (notao decimal pontuada).

\\Exemplo:

Um endereo IP composto de um identificador de rede acrescido de um identificador da estao nesta rede. Esta identificao independe da rede fsica subjacente. Assim, para efeito de encaminhamento local (dentro da mesma rede), o endereo IP utilizado na estao emissora para a obteno do endereo fsico da estao de destino. Esse processo denominado mapeamento. No caso do envio de uma mensagem para uma estao situada em outra rede, a estao de origem obtm o endereo fsico do gateway para a rede de destino. Vale ressaltar que a rede de destino no necessariamente est conectada rede local. Neste caso, a mensagem transportada por vrias redes intermedirias, de gateway a gateway, preservando o endereo IP de destino, que utilizado na obteno dos endereos intermedirios dos gateways presentes na rota. Assim, o encaminhamento IP uma sequncia de ciclos repetidos: anlise do endereo IP , obteno do endereo fsico da estao (se a rede de destino foi atingida) ou do gateway de sada (se a estao pertence a uma rede remota) e envio do datagrama para o endereo fsico obtido. Endereo IP com seus 32 bits, torna-se demasiado grande para a notao decimal. , Por isso utilizada a notao decimal pontuada. Os 32 bits so divididos em quatro grupos de 8 bits cada. Por exemplo, dado o endereo IP: 00000011.00000111.00001111.00000001, sua representao seria: 3.7.15.1.

Captulo 1 Histrico e conceitos bsicos 7

Endereamento IP

Introduo Voz sobre IP e Asterisk

Classes de endereamento
\\Os \\N \\H

primeiros bits do primeiro octeto definem a classe do endereo;

= nmero da rede (network) dado pelo NIC; = nmero da estao (host) dado pelo administrador da rede.
32 Bits 8 Bits 8 Bits 8 Bits 8 Bits

Rede

Host Classe A Classe B Classe C

131 N N N

108 H N N

122 H H N

204 H H H
Figura 1.4

O endereo IP tem tamanho de 32 bits e possui duas partes:


\\Nmero \\Nmero

de rede; de host.

O formato do endereo conhecido como notao decimal pontuada, que separada por pontos. Exemplo de endereo: 131.108.122.204. Cada bit no octeto tem um peso conforme sua posio, como (128, ..., 4, 2, 1). O valor mnimo para um octeto 0; ele tem todos os bits 0. O valor mximo para um octeto 255; ele tem todos os bits 1. Portanto, todos os endereos IP no intervalo de 0.0.0.0 a 255.255.255.255 so endereos vlidos. A alocao dos endereos gerenciada por uma autoridade central. Nmeros de rede so administrados pelo Internet Network Information Center (InterNIC). O NIC tambm o principal arquivo de RFCs (padres dos protocolos da arquitetura TCP/ IP). No Brasil, a delegao de endereos IP feita pela Fundao de Amparo Pesquisa de So Paulo (FAPESP), rgo credenciado pelo InterNIC. Para facilidade de administrao, os endereos IP so divididos em classes:
\\Classe

A utiliza somente o primeiro octeto para identificar a rede. Os outros 3 octetos identificam o host e so usados livremente pelo administrador da rede. A classe A atende s necessidades de redes de grande abrangncia, constitudas de poucas redes e com elevado nmero de estaes, estando disponveis 8 bits (o bit mais significativo vale 0) para identificao das redes, e 24 bits para a identificao das estaes.

\\Classe

C utiliza somente os trs primeiros octetos para identificar a rede. O octeto restante identifica o host e pode ser usado pelo administrador da rede. Atende tipicamente faixa das redes locais. Como estas so bastante numerosas, so reservados 24 bits para a identificao das redes (os trs bits mais significativos valem 1, 1 e 0), e apenas 8 bits para a identificao das estaes.

O(s) bit(s) mais significativo(s) do primeiro octeto determina(m) a classe do endereo e tambm quantos bits representam a poro correspondente rede.

Endereos classe A
\\Faixa

dos nmeros das redes: 1.0.0.0 at 126.0.0.0; de endereos de hosts: 16.777.214.

\\Quantidade

Endereos classe B
\\Faixa

dos nmeros das redes: 128.1.0.0 at 191.254.0.0; de endereos de hosts: 65.534.

\\Quantidade

Endereos classe C
\\Faixa

dos nmeros das redes: 192.0.1.0 at 223.255.254.0; de endereos de hosts: 254.

\\Quantidade

Classes A, B e C so as classes mais comuns de endereo IP mas endereos de , classes D e E esto tambm definidos. Endereos de classe D comeam em 224.0.0.0 e so usados para multicast, enquanto endereos de classe E comeam em 240.0.0.0 e so reservados para propsitos experimentais.

Endereos especiais
\\RFC

1918 Endereos privados: 10.255.255.254 172.31.255.254 192.168.255.254 (10/8 prefix) (172.16/12 prefix) (192.168/16 prefix)

\\10.0.0.1 \\172.16.0.1 \\192.168.0.1 \\Somente

endereos IP pblicos globais tm acesso internet;

\\Empresas

que usam endereos IP privados tero que usar servidor proxy para traduzir endereos privados para pblicos.

A RFC 1918 (Address Allocation for Private Internets) define as faixas de endereos que somente podem ser usados em redes privadas, os ditos endereos privados. Esses endereos no podem ser roteados na internet. Os endereos que podem ser

Captulo 1 Histrico e conceitos bsicos 9

\\Classe

B utiliza somente os dois primeiros octetos para identificar a rede. Os outros 2 octetos identificam o host e so para uso do administrador da rede. A classe B representa redes intermedirias, com 16 bits para a identificao das redes (os bits mais significativos valem 1 e 0), e 16 para as estaes.

Introduo Voz sobre IP e Asterisk

roteados so os demais endereos das classes A, B e C, denominados endereos globais ou endereos pblicos, que no podem ser repetidos dentro da internet. A utilizao dos endereos pblicos controlada pelo InterNIC. Os endereos privados, como so usados no mbito de uma organizao, no precisam ser nicos na internet, podendo ser repetidos de uma organizao para outra. Assim, cada organizao tem liberdade para usar como quiser as faixas acima definidas, sem a necessidade de obter permisso do InterNIC para isso. Por outro lado, esses endereos no podero ser usados para acesso internet, sendo necessrio fazer uma traduo desses endereos privados para pblicos atravs de um servidor chamado Proxy Server, que faz a funo Network Address Translation (NAT). A utilizao de endereos IP pblicos no mbito de uma organizao desencorajada por causa da escassez de endereos IP e principalmente de segurana (vulnervel a ataques de hackers). De maneira geral, podemos classificar os hosts que usam endereos IP dentro de uma organizao nas seguintes categorias: 1. Hosts que no precisam acessar a internet; 2. Hosts que precisam acessar um limitado conjunto de servios da internet (e-mail, FTP www), que podem ser ajudados por gateways de aplicao; , 3. Hosts que precisam de acesso irrestrito internet, normalmente servidores disponibilizados para a internet. Os hosts das categorias 1 e 2 podem usar endereos privados, mas no os da categoria 3. Nos endereos privados relacionados acima, o prefixo indica o nmero de bits reservados para identificar a rede, do total de 32 bits. O primeiro bloco uma classe A (10.0.0.0), o segundo bloco representa 16 classes B contguas (todas as 16 classes tm os 12 bits de rede iguais) e o terceiro bloco representa 256 classes C contguas (todas tm os 16 bits de rede iguais). Os bits que restam para hosts em cada bloco so denominados respectivamente de bloco de 24 bits, bloco de 20 bits e bloco de 16 bits.

Roteamento
\\Roteamento

a transferncia de informao da origem at o destino atravs de

uma rede. Roteamento a transferncia de informao da fonte at o destino atravs de uma rede. Ao longo do caminho, tipicamente teremos pelo menos um n intermedirio. De acordo com esta definio, a funo do roteador parece ser a mesma que a de uma ponte (switch/bridge). A principal diferena entre ambos que a ponte opera

10

Origem

Destino

Figura 1.5

Protocolos de transporte
\\Dois

protocolos de comunicao fim-a-fim so definidos: User Datagram Protocol; Transmission Control Protocol.

\\UDP \\TCP

Ambos so responsveis pela utilizao de mltiplas aplicaes de redes entre duas mquinas. A aplicao determina o protocolo que vai ser utilizado.

TCP (Transmission Control Protocol)


O Protocolo de Controle de Transmisso possui mecanismos de controle de fluxo. Confivel, mantm a ordem de transmisso dos dados. O TCP um protocolo orientado a conexes, que permite a entrega sem erros de um fluxo de bytes originrio de uma determinada mquina em qualquer computador da inter-rede. Esse protocolo fragmenta o fluxo de bytes de entrada em mensagens discretas, e passa cada uma delas para a camada inter-redes. O TCP tambm cuida do controle de fluxo, impedindo que um transmissor rpido sobrecarregue um receptor lento com um volume de mensagens maior do que ele pode manipular.

UDP (User Datagram Protocol)


O Protocolo de Datagrama do Usurio no possui mecanismos de controle de fluxo e no mantm a ordem de transmisso dos dados. um protocolo sem conexo e noconfivel, destinado a aplicaes que no querem controle de fluxo nem de manuteno da sequncia de mensagens enviadas, e desejam fornecer seus prprios recursos para isso. Ele tambm amplamente utilizado em consultas e aplicaes diretas do tipo cliente/servidor com solicitao/resposta, nas quais a entrega imediata mais importante do que a entrega precisa, como a transmisso de dados de voz ou de vdeo.

Captulo 1 Histrico e conceitos bsicos 11

na camada 2 (enlace de dados) do modelo OSI, enquanto que os roteadores operam na camada 3 (rede). Assim, eles operam de maneiras diferentes, embora ambos executem operaes de comutao.

Introduo Voz sobre IP e Asterisk

Comunicao VoIP
\\O

VoIP pode utilizar os protocolos de transporte UDP e TCP; ideal hoje:

\\Ambiente \\VoIP

+ UDP + RTP/RTCP + QoS.

A comunicao entre dispositivos VoIP pode ser realizada utilizando qualquer um dos protocolos de transporte (TCP ou UDP). Em aplicaes de tempo real comumente utilizado o UDP . Como o UDP no numerado, no tem controle de sequncia, como a aplicao vai reconstituir a informao de voz no destino? Neste caso necessrio um protocolo auxiliar que numere os pacotes para que os mesmos possam ser reconstitudos corretamente no destino. Esta nova ferramenta o Protocolo de Tempo Real (RTP), que ser visto adiante.

Evoluo do VoIP
\\1995: \\Em \\1998: \\Surgem

Israel, a empresa VocalTec lana o primeiro software comercial de VoIP .

os primeiros sistemas que integram VoIP e telefones convencionais, disseminando a tecnologia; os primeiros padres relacionados a VoIP .

\\Aparecem \\Criados

por: Engineering Task Force (IETF); Internacional de Telecomunicaes (ITU).

\\Internet \\Unio \\Hoje: \\VoIP

difundido no mercado, de diversas formas: PC-PC, PC-telefonia, telefonia-telefonia.

Nos anos 90, a voz era digitalizada e comprimida para ento ser transmitida pela rede. A qualidade era ruim e s era possvel a transmisso entre dois computadores. Como a partir desse perodo houve um grande desenvolvimento de redes de dados, com nfase no protocolo TCP/IP e no aparecimento dos gateways, ento muitas empresas passaram a desenvolver aplicativos para permitir o transporte de voz atravs das redes de dados, tendo em vista o pouco consumo de banda para voz.

12

As redes de nova gerao que esto substituindo as redes de circuitos permitem o transporte de aplicaes de tempo real, entre elas a voz, com qualidade similar ao celular. O protocolo de sinalizao mais eficaz o SIP desenvolvido pelo IETF. ,

VoIP ToIP
\\VoIP \\VoIP: \\Refere-se

(Voz sobre IP) versus ToIP (Telefonia sobre IP);

s tcnicas de empacotamento e transmisso de amostras de voz sobre redes IP e a mecanismos de sinalizao para estabelecer as chamadas. IP:

\\Telefonia

\\Refere-se

aplicao das tecnologias VoIP na transmisso e na sinalizao, com o oferecimento de um servio similar ao servio convencional de telefonia.

ToIP (Telefonia sobre IP)


o servio de telefonia funcionando sobre uma rede IP portanto, utilizando , procedimentos e protocolos de VoIP Isto significa que, alm das caractersticas de . uma rede preparada para VoIP em ToIP tambm so oferecidos os servios , suplementares comuns em redes de telefonia, como chamada em espera, voicemail, re-chamada, segunda linha, entre outros servios.

Voice Over Internet Protocol (VoIP)


a tecnologia que permite o estabelecimento de chamadas e transporte da voz utilizando a rede IP Alm disso, diz-se que uma rede est preparada para oferecer o servio de VoIP . quando ela possui o tratamento adequado para tal, desde permitir este tipo de trfego atravs de seus firewalls at utilizar prticas de QoS para garantir a qualidade das ligaes.

Vantagens e desvantagens do VoIP


Vantagens:
\\Custos

reduzidos nas comunicaes; ao seu investimento; de utilizar a infraestrutura existente; simplificada;

\\Proteo

\\Possibilidade \\Infraestrutura

\\Portabilidade; \\Funcionalidades

acrescidas.

Captulo 1 Histrico e conceitos bsicos 13

Em 1996 surge o primeiro protocolo de sinalizao para estabelecimento de chamadas de voz atravs de redes de pacotes, que foi o H.323 desenvolvido pelo ITU, uma evoluo do protocolo ISDN da telefonia.

Introduo Voz sobre IP e Asterisk

Desvantagens:
\\Alto

custo inicial (para redes totalmente IP); de nova aparelhagem; da aparelhagem j existente;

\\Aquisio

\\Modernizao \\Escassez

de mo de obra especializada; da rede / problemas relacionados a QoS.

\\Limitao

Benefcios do VoIP
\\Custos \\Alto

reduzidos nas comunicaes;

retorno sobre o investimento (ROI); simplificada;

\\Infraestrutura \\Portabilidade;

\\Funcionalidades \\Mo

acrescidas;

de obra especializada; da rede / QoS;

\\Limitaes

\\Segurana*; \\Integrao

com a PSTN*.

* Itens no abordados neste curso

Custos reduzidos nas comunicaes


O servio telefnico VoIP quando bem planejado, tende a ser mais econmico que , os servios telefnicos tradicionais, liberando o usurio de utilizar as operadoras telefnicas tradicionais.

Alto retorno sobre o investimento (ROI)


Os PBX IP so baseados em softwares, permitindo atualizao com novos protocolos e funcionalidades. H a possibilidade de utilizar a infraestrutura existente na empresa tanto de rede quanto de telefonia, utilizando os telefones, aparelhos de fax, o cabeamento e at a central em uso podem ser aproveitados para o servio VOIP .

Infraestrutura simplificada
Todos os servios de comunicao (telefone, fax e internet) esto centralizados numa nica infraestrutura. A voz correr na infraestrutura de dados, ou seja, na rede IP .

14

No importa onde voc esteja. Desde que haja uma rede IP conectada internet, voc sempre poder efetuar ligaes atravs do seu ramal utilizando o softfone instalado no seu computador, tambm possvel utilizar telefones IP pequenos, leves e fceis de transportar.

Funcionalidades acrescidas
Por ser praticamente baseada em software, VoIP possibilita a implementao de funcionalidades que seriam difceis ou impossveis em redes tradicionais de telefone:
\\Permite \\Um

a integrao telefnica de instalaes separadas fisicamente.;

telefone IP no est limitado em termos de numerao referente localizao geogrfica nem a nenhum prefixo, o que permite total mobilidade; receber uma chamada, esta imediatamente redirecionada para o telefone VoIP onde quer que ele esteja ligado na rede. Qualquer localidade onde exista , internet pode receber e fazer chamadas de seu telefone VoIP como se voc , estivesse no escritrio; de call center que utilizam telefones VoIP podem trabalhar de qualquer local que tenha uma boa conexo com a internet.

\\Ao

\\Agentes

Mo de obra especializada
Ainda existe alguma dificuldade para encontrar no mercado um profissional que entenda tanto de telefonia quanto de redes IP e que tambm conhea os protocolos , de VoIP Geralmente, os profissionais de telefonia demonstram resistncia na . absoro do conhecimento de redes IP De outro lado, os profissionais de redes . tambm demonstram certa despreocupao com assuntos relacionados s redes tradicionais de telefonia. No fcil encontrar uma pessoa que se interesse por ambos os mundos. Em relao mo de obra qualificada, as novas geraes cada vez mais esto conectadas com o conhecimento de computadores e redes, facilitando o aprendizado da telefonia IP o que diferente da telefonia convencional, que nunca teve seu , conhecimento divulgado e massificado.

Limitaes da rede / QoS


Esta uma caracterstica que pode ser encontrada em implementaes que no tiveram o devido cuidado com a preparao da infraestrutura de rede. Para uma rede de dados suportar o transporte de voz necessrio possuir qualidade para tal. As desvantagens esto sendo reduzidas. A tradicional interface E-1 de 32 canais, com uma taxa de transmisso de 2 Mbits/seg, que nos anos 90 custava cerca de dois mil dlares, hoje custa em torno de 700 dlares. J uma interface Ethernet de 10 Gbits/ seg custa entre mil e dois mil dlares. Em um E-1 possvel transportar 30 canais de voz, enquanto que em uma interface 10 Gbits/seg so milhares de chamadas.

Captulo 1 Histrico e conceitos bsicos 15

Portabilidade

Introduo Voz sobre IP e Asterisk

A limitao da rede est rapidamente sendo ultrapassada, tendo em vista que aumenta a necessidade de fazer um upgrade nas redes ou at substituir os modelos mais antigos. As novas solues so aderentes aos servios de VoIP e Telefonia IP e j possuem QoS nativo.

Segurana
Hoje em dia, uma das questes mais discutidas na comunidade VoIP Alguns . ataques especficos no contexto da tecnologia VoIP:
\\Call

Hijack sequestro de chamada, que ocorre quando o intruso consegue desviar uma chamada e se fazer passar por um dos participantes dela; Flood negao de servio, que consiste no envio de uma grande quantidade de mensagens SIP forjadas para um componente da rede VoIP; DoS forma de negao de servio em que o intruso simula uma mensagem de sinalizao SIP do tipo cancel ou bye, evitando que chamadas sejam iniciadas ou causando a interrupo das ligaes em andamento; de registros forma de spoofing na qual um usurio se registra como outro, permitindo o recebimento ou realizao de chamadas de outros usurios.

\\SIP

\\SIP-Cancel/Bye

\\Manipulao

Integrao com a PSTN


Uma das possibilidades de integrar o VoIP a PSTN (Public Switched Telephony Network) atravs da utilizao do Asterisk. As redes VoIP podem se comunicar de maneiras distintas, utilizando os se-guintes protocolos:
\\ SIP

(Session Initiation Protocol);

\\ H.323; \\ IAX

(Inter-Asterisk eXchange).

Pode-se utilizar o Asterisk como um gateway, para que redes VoIP com comunicao distinta possam se entender.

16

\\VoIP

via softphone:

\\Utilizando

um software adequado, um computador pode ser utilizado facilmente para a comunicao via VoIP . via ATA: em usar um Adaptador de Telefone Analgico (ATA);

\\VoIP

\\Consiste

\\Exemplo:

pluga-se um telefone comum ao ATA e este ao computador, permitindo assim o uso do sistema VoIP . via telefones IP:

\\VoIP

\\Possuem \\Tambm

a mesma aparncia de um telefone comum, mas utilizam conectores RJ-45 Ethernet; precisam de energia para funcionar.

VoIP via Softphone


Forma de comunicao VoIP que utiliza softphone, isto , software que emula o funcionamento de telefones convencionais para uma comunicao direta computador-computador. Skype, MSN, Paltalk e ICQ so exemplos de softwares que utilizam VoIP e permitem a comunicao por voz sobre a internet.

VoIP via ATA


O ATA (Analog Telephone Adapter) permite a conexo de aparelhos do tipo analgico, decdico ou MF. necessrio programar o ATA para conect-lo rede. Todos os ATAs necessitam de uma fonte de alimentao, que pode ser local ou atravs de PoE (Power over Ethernet). Hoje existem no mercado ATAs para 2, 4, 8, 16, 24 e 30 aparelhos telefnicos.

VoIP via Telefone IP


Similar ao ATA, o telefone IP deve ser configurado previamente para ser conectado na rede. Os telefones IP tambm precisam de energia para funcionar. Podem ter alimentao local ou por PoE. No uma soluo trivial, como nos telefones analgicos ou digitais, para os quais bastava a conexo na tomada telefnica do tipo RJ-11. Algumas solues de aprovisionamento j permitem que os telefones equipados com estes recursos sejam capazes de receber da rede toda a sua configurao, bastando lig-lo na rede; para isso, a informao de cada telefone deve estar previamente armazenada em algum servidor da rede.

Captulo 1 Histrico e conceitos bsicos 17

Existem trs formas de comunicao via VoIP

Introduo Voz sobre IP e Asterisk

Telefonia tradicional X telefonia IP


\\Telefonia

tradicional: rede hierrquica;

\\PSTN:

\\Baseada \\Os \\O \\O

em grandes centrais telefnicas ligadas entre si de forma hierrquica; terminais no possuem inteligncia; endereamento depende da regio de abrangncia da rede; codec utilizado nas redes digitais era o G.711; so muito controlados, com cerca de 40 ms.

\\Atrasos \\Telefonia \\Rede \\Os \\O

IP: no hierrquica (sob a ptica do servio de voz);

terminais so diferentes dos usados na telefonia fixa;

telefone IP pode ser um software executando em um computador ou hardware dedicado. de voz precisam passar por filas;

\\Pacotes \\Jitter

e perdas de pacotes comprometem a qualidade da ligao; de QoS so desejveis.

\\Mecanismos

A rede de telefonia organizada hierarquicamente, onde o endereamento dos telefones (o nmero) depende da regio geogrfica. Na telefonia tradicional, o canal de voz estabelecido simultaneamente com a etapa de sinalizao. Os terminais telefnicos possuam pouca inteligncia; RDSI, os mais avanados, eram muito caros e de baixa aceitao. Esta tecnologia utiliza o codec G.711 como padro para udio, o que para telefonia convencional excelente, pois possui desempenho de 64 Kbps na taxa de transmisso. Fisicamente para o canal de voz utilizado um par de fios metlicos, entre dois pontos extremos. Neste meio fsico o atraso da voz raramente ultrapassa 30m/seg; os atrasos superiores a este valor comeam a apresentar eco. A rede ToIP no hierrquica. Alm disso, o nmero de telefone no est associado a uma localizao geogrfica. Os terminais IP para voz so inteligentes e o usurio pode ser localizado em qualquer tempo e em qualquer lugar, com custos cada vez mais baixos. Os terminais podem ser implementados em hardware ou em software, fazendo com que o seu computador funcione como um telefone. Em VoIP s os atrasos fixos, inseridos na origem e destino, so da ordem , aproximada de 90m/seg. Existem os roteadores de meio de caminho com suas filas e congestionamentos, que aumentam muito o atraso total entre origem e destino. Alm disso, a variao de atraso (jitter) implica a utilizao de buffers que inserem mais atrasos nos pacotes. Para que a qualidade das ligaes seja mantida preciso tomar providncias relativas a QoS.

18

Voz analgica sobre par tranado

roteador PBX voz pacotizada

assinante Telefone IP Rede comutada (Multiplexao TDM)

Internet

Internet

PBX assinante Voz analgica sobre par tranado Telefone IP voz pacotizada roteador

Figura 1.6 Na telefonia TDM, cada canal ou circuito fica alocado para uma chamada, com uma velocidade mxima de 64 Kbits/seg. Caso ocorra uma ociosidade do canal durante a chamada, ele no poder ser compartilhado com outra chamada. Na telefonia VoIP , no existem os conceito de canal e circuito de transporte de pacote. Sua velocidade no est limitada a 64 Kibts/seg, onde a velocidade permitida pela tecnologia pode chegar a 10 Gbits/seg se for uma rede Ethernet. Na telefonia tradicional, a voz tem uma via expressa, sem congestionamentos. Em VoIP a voz vai disputar espao com todas as outras aplicaes que trafegam na , rede, como outros pacotes de voz, de dados, de gerncia de rede etc. Se no houver um tratamento adequado para os pacotes de voz, eles podero ser perdidos ou chegar com atrasos ou fora de ordem. Para resolver estes problemas, as redes de pacotes devem oferecer tratamento especial para os pacotes de voz. As ferramentas que permitem esse tratamento so os protocolos de qualidade de servio (QoS), protocolos RTP e RTCP entre outros, sem os quais uma rede de pacotes , incompatvel para o transporte de voz. Imagine uma reunio: para que haja uma comunicao efetiva entre os participantes, necessrio que os participantes se faam entender, dominando um mesmo idioma e vocabulrio. Sem o estabelecimento de uma linguagem comum, no haver entendimento entre os participantes da conversa. Imaginemos agora a mesma situao, s que com computadores distribudos em rede, em vez de pessoas. Nesse caso, alm da infraestrutura de redes, necessria uma linguagem padronizada para que haja uma comunicao efetiva entre os computadores. Para garantir que os computadores falem a mesma lngua, existem diversos padres e protocolos que regem essa comunicao, que so objetos de estudo de

Captulo 1 Histrico e conceitos bsicos 19

Introduo Voz sobre IP e Asterisk

diversas organizaes que trabalham em sua manuteno e desenvolvimento. Dentre estas organizaes, as mais notveis em relao a padres de videoconferncia so: ITU-T, IETF e MPEG.

Padronizao
\\Organizaes

que estabelecem normas e protocolos: Standardization Sector do International Telecommunications

\\Telecomunication

Union ITU-T;
\\Internet \\Os

Engineering Task Force IETF.

padres ITU-T de videoconferncia exigem dos fabricantes a implementao de um conjunto mnimo de padres de compresso de udio e vdeo; padres opcionais que tambm podem ser utilizados nos sistemas de videoconferncia; disso, cada fabricante pode adicionar padres proprietrios s suas solues: mnimo + padres opcionais + padres proprietrios.

\\H

\\Alm

\\Conjunto

A International Telecommunication Union (ITU) atua no desenvolvimento de padres reconhecidos internacionalmente, no intuito de viabilizar a interao entre computadores e outros equipamentos de telecomunicaes. Esse rgo internacional, responsvel por estabelecer recomendaes para telecomunicaes, divide-se em grupos de estudo onde cada grupo incumbido de investigar um conjunto de questes, cujos resultados definem as recomendaes estabelecidas pela ITU-T. Um desses grupos, responsvel pela famlia ITU H.3xx, responsvel por estabelecer recomendaes para colaborao de dados e videoconferncia, ou seja, pela formalizao de padres para comunicao multimdia sobre redes IP . A Internet Engineering Task Force (IETF) uma comunidade internacional aberta, constituda de administradores, operadores e pesquisadores concentrados em padronizar a evoluo da arquitetura da internet e a operao da rede. A IETF est aberta a qualquer indivduo interessado. O trabalho tcnico da IETF tambm realizado em grupos de estudo, organizados por tpicos de interesse em diversas reas, como distribuio, transporte e segurana. Outra preocupao de padronizao diz respeito s estratgias de compresso e transmisso de dados multimdia. Hoje em dia, existem cada vez mais aplicaes que envolvem udio, vdeo e dados disposio de um pblico distribudo e crescente. A exploso da internet na dcada de 1990 levou milhares de usurios a utilizarem esses servios com intuito profissional, comercial ou domstico. Assim, a internet agrega um volume de dados multimdia cada vez maior, o que eleva a demanda de banda e a necessidade de estratgias eficientes para transmisso desses dados. Nesse sentido, uma organizao aborda mecanismos para codificao e transmisso de udio e vdeo.
20

Os padres de videoconferncia especificam um conjunto mnimo de padres ITU-T de compresso de udio e vdeo, que devem ser implementados para que um sistema seja homologado conforme este padro. E alm deste conjunto mnimo, existem os padres opcionais, que normalmente so padres mais complexos, como o H.264 para vdeo. Muitos sistemas ainda incluem mtodos proprietrios de codificao de vdeo e udio. Por serem mtodos proprietrios, muitas vezes apenas o prprio fabricante sabe como o mtodo funciona. Outros sistemas dificilmente tero suporte a esses mtodos, o que impossibilita a interoperao entre os sistemas. Apesar disso, mtodos proprietrios podem ser utilizados como um diferencial quando um fabricante desenvolve um mtodo novo ou otimiza um mtodo de codificao. Nesse caso, para utilizar tal padro o cliente dever possuir equipamentos do mesmo fabricante, em todas as pontas.

Princpios de codificao de udio


\\PCM

(Pulse Code Modulation); converter udio analgico em digital? minimizar o erro de quantizao (duas formas)? taxa de amostragem deve ser utilizada, supondo que:

\\Como

\\Como \\Que

\\Frequncia \\Frequncia \\Qual

da voz humana: 20 Hz 6.000 Hz (banda de 4 kHz fornece inteligibilidade perfeita). do ouvido humano: 20 Hz 20.000 Hz; o nmero de nveis e amostras no PCM comercial?

O primeiro passo para a codificao de udio consiste na captura dos sinais sonoros (ondas sonoras) e transformao destes em sinais digitais. Como feita a converso de sinais analgicos para sinais digitais? Uma tcnica bastante utilizada em telefonia a tcnica PCM (Pulse Code Modulation). O PCM analisa o sinal analgico em instantes uniformes de tempo, obtm a magnitude do sinal nestes instantes e representa esta magnitude de forma numrica (de forma binria).

Captulo 1 Histrico e conceitos bsicos 21

Padres de videoconferncia

Introduo Voz sobre IP e Asterisk

A imagem abaixo mostra um exemplo de um sinal de udio analgico que ser convertido para digital:

Figura 1.7

O eixo y do grfico mostra a magnitude do sinal e o eixo x do grfico denota o tempo. A linha azul representa a onda sonora, enquanto as linhas verticais ao longo do grfico marcam os momentos em que sero obtidas amostras da onda sonora, ou seja, os momentos onde a magnitude da onda ser representada por um nmero binrio. O prximo grfico mostra o resultado da aplicao do PCM sobre a primeira parte da onda:

111 110 101 100 011 010 001 000

Figura 1.8
011 100 011 011 101 110 111

O eixo y mostra uma escala com um nmero para cada linha horizontal. Este nmero est representado em binrio (com 3 bits para facilitar o entendimento) e corresponde ao smbolo que ser utilizado pelo PCM para representar cada uma das oito linhas horizontais. A cada instante de tempo (linhas verticais) o PCM verifica a magnitude da onda e encontra a linha horizontal que mais se aproxima deste valor. Ele usa ento o smbolo associado a esta linha para representar a magnitude da onda nesse instante. Esse processo vai se repetindo em instantes de tempo uniformes, gerando os smbolos que representam a onda. Esses smbolos esto exibidos no grfico ao longo do eixo x (000, 011, 100 etc.). A linha vermelha mostra o formato que a onda passa a ser representada aps ser convertida para o formato digital pelo PCM.

22

A definio da taxa de amostragem normalmente baseada na frequncia da voz humana e na sensitividade do ouvido humano. A voz humana pode variar entre 20 Hz e 6000 Hz, aproximadamente, entretanto, limitando em 4 kHz a conversa fica totalmente inteligvel, pois frequncias altas so mais raras. Portanto, muitos sistemas que trabalham com voz humana tomam como base a frequncia 4 kHz, que, aplicando o teorema de Nyquist, indica o uso de uma taxa de amostragem de 8 kHz, ou 8.000 amostras por segundo. J o ouvido humano capaz de perceber sons entre 20 Hz e 20 kHz, aproximadamente, ou seja, sons com frequncias acima de 20 kHz no podem ser ouvidos. Este conhecimento costuma ser utilizado na digitalizao de sons mais complexos que a voz, onde se deseja a capacidade de representao de todo o espectro de frequncias que pode ser ouvido pelo homem. Em CDs de udio, por exemplo, utilizada a taxa de amostragem de 44.1 kHz, pouco mais que o dobro da frequncia mxima ouvida pelo homem. Outro parmetro que influencia diretamente na qualidade do sinal digital o nmero de bits utilizado em cada amostra. No exemplo anterior foram utilizados 3 bits por motivos didticos. Com um nmero maior de bits possvel representar mais fielmente o sinal analgico (mais linhas horizontais no grfico), reduzindo a diferena entre os sinais, o que chamado de erro de quantizao. Em CDs de udio, so utilizados 16 bits para cada amostra. Em telefonia se trabalha com 8 bits por amostra.

\\Companso \\Voz

do sinal;

pode variar 10.000 vezes, pois o ser humano pode falar baixinho ou gritando e o outro lado deve ouvir perfeitamente. Como lidar com isso?

Outra tcnica aplicada durante a digitalizao de sinais sonoros a companso do sinal, representada na figura a seguir. Este processo necessrio, pois a amplitude dos sinais sonoros pode variar muito. A voz humana pode variar 10.000 vezes, pois o ser humano pode falar muito baixo ou gritando, e em ambos os casos deve ser totalmente entendido no destino. Isso cria um problema para a digitalizao, pois seriam necessrios muitos bits para representar cada amostra (o ideal seriam 13 bits por amostra, mas comercialmente so usados 8).

Captulo 1 Histrico e conceitos bsicos 23

Cada valor obtido pelo PCM ao longo do tempo chamado de uma amostra do sinal, e por isso este processo chamado de amostragem da onda sonora. A definio do nmero de amostras obtidas um parmetro muito importante do processo, que influencia diretamente na qualidade do sinal digital. Quanto maior o nmero de amostras, maior ser a proximidade do sinal digital com o sinal analgico, mas tambm maior ser a quantidade de dados necessrios para representar este sinal. H um teorema, o teorema de Nyquist, que indica que a taxa de amostragem do sinal deve ser o dobro ou mais do que a frequncia do sinal. Este teorema muito usado como base para definio da taxa de amostragem que ser utilizada.

Introduo Voz sobre IP e Asterisk

No processo de companso, os sinais mais fracos so elevados e os mais fortes so reduzidos, e assim todos podem ser representados por um nmero fixo de bits, pois o sinal analgico da voz homogeneizado. Dessa forma, se a pessoa fala baixo, sua voz amplificada antes da digitalizao, e se fala alto, no amplificada. Assim, todos os sinais podem ser representados com os 8 bits, economizando na taxa de transmisso via rede. As duas formas mais utilizadas de companso so chamadas de lei A (mais usada na Europa) e lei (mais usada nos Estados Unidos e Japo).

Vs

Companso segundo lei A ou (analgico) Usar 13 bits e comprimir segundo lei A ou (digital)

Ve

Figura 1.9

Mais informaes:
\\Tutorial

de VoIP disponvel em: www.teleco.com.br/tutoriais/tutorialtelip/pagina_1.asp de diversos codificadores de vdeo: en.wikipedia.org/wiki/Comparison_of_audio_codecs

\\Resumo/Comparao

Codificao da mdia de voz


\\Tcnicas: \\Codificao

de forma de onda;

\\Paramtrica; \\Hbrida. \\Comparao

entre tcnicas de codificao; de forma de onda:

\\Codificadores \\Melhor \\Vocoders: \\Menor

qualidade, menor atraso, maior taxa de bits.

taxa de bits, pior qualidade, grande atraso e jitter. hbridos:

\\ Codificadores \\Boa

taxa de bits, boa qualidade, atraso e jitter razoveis.

24

\\Codec

uma abreviao de codificador-decodificador;

\\Codecs

especificam como os sinais analgicos da voz devem ser codificados em dados digitais; permitem compresso dos dados;

\\Codecs \\Grande

parte dos padres usa tcnicas baseadas na codificao da forma de onda (PCM Pulse Code Modulation).

O codec comprime os dados, eliminando informaes redundantes e previsveis, tanto em udio como em vdeo. Os dados passam por uma converso analgicadigital, compreendendo a amostragem do sinal. Gera-se, ento, um formato digital, denominado Pulse Code Modulation (PCM), usado em vdeo e udio conferncia e em meios de comunicao digital. O codec realiza 8 mil amostras por segundo (125sec/amostra), devido ao teorema de Nyquist, que diz que essa medida suficiente para capturar toda a informao em um canal telefnico com largura de banda de 4 KHz. Em uma amostragem menor, a informao transmitida seria perdida; j em uma amostragem maior, nenhuma informao adicional seria acrescentada. Esta tcnica, tambm conhecida como Pulse Code Modulation (PCM), o corao do sistema moderno de telefonia. Como consequncia, todos os intervalos de tempo dentro do sistema telefnico so mltiplos de 125 sec. O processo de codificao envolve uma transformao conhecida como converso analgico-digital ou converso A/D. Durante o processo de reproduo, deve ser adotada uma transformao no sentido inverso, conhecida como converso digital analgica, ou simplesmente D/A. O processo A/D consiste em capturar amostras da informao original em pequenos intervalos de tempo, criando uma representao para cada uma das amostras, com base em um cdigo de representao bem conhecido. Na converso D/A, com base no mesmo cdigo de representao, cada amostra restaurada em seu formato original e reproduzida.

Codificao de forma de onda


\\Na \\No \\O

origem: converso A/D -> Analgico-Digital; destino: converso D/A -> Digital-Analgico;

esquema mais utilizado o Adaptive Differential Pulse Code Modulation (ADPCM); em predio linear.

\\Baseada

A codificao de forma de onda de sinais de voz baseada principalmente na predio linear, e o esquema mais utilizado o Adaptive Differential Pulse Code
25

Captulo 1 Histrico e conceitos bsicos

Codec

Introduo Voz sobre IP e Asterisk

Modulation (ADPCM). Os codificadores de forma de onda so os que propiciam voz de melhor qualidade, mas so os que despendem a maior taxa de bits, em geral com taxas superiores a 30 kbps.

Codificao paramtrica
\\Tambm \\ A

denominados vocoders (voice coders):

classe de vocoders mais utilizada a dos vocoders LPC (Linear Predictive Coding); no decodificador, um modelo de produo da voz, onde os parmetros so estimados e transmitidos pelo codificador em intervalos de tempo entre 10 e 30 ms.

\\Utilizam,

A natureza do sinal (voz) essencial para obter mxima compresso, embora com sensvel perda de qualidade. Os codificadores paramtricos, tambm denominados vocoders (voice coders), utilizam no decodificador um modelo de produo de voz, cujos parmetros so estimados e transmitidos pelo codificador a intervalos curtos de tempo (10 a 30 ms). A classe de codificadores paramtricos mais utilizada a dos vocoders LPC (Linear Predictive Coding). Os vocoders conseguem codificar os sinais de voz a taxas de no mximo cerca de 2 kbps, mas com qualidade entre ruim e regular.

Codificao hbrida
\\Combinam \\ A

caractersticas dos codificadores de forma de onda e dos vocoders;

maioria dos codificadores hbridos utiliza o modelo de codificao Code Excited Linear Predictive (CELP).

Usa conceitos das duas outras formas de codificao (codificao paramtrica e codificao em forma de onda), procurando um balano entre qualidade e taxa de compresso. Os codificadores hbridos so esquemas que combinam caractersticas dos codificadores de forma de onda e dos vocoders. Atualmente, a maioria dos codificadores hbridos utiliza o modelo de codificao Code Excited Linear Predictive (CELP), com taxas de bits entre 4 e 16 kbps, proporcionando qualidade muito melhor do que a dos vocoders. Alguns deles propiciam qualidade muito prxima da obtida com os codificadores de forma de onda. Com base nos tipos de codificao citados, conclumos que os codificadores de forma de onda so os que proporcionam voz com melhor qualidade, mas despendem maior taxa de bits. Em geral, taxas superiores a 30 kbps. Como vimos, um fator a ser considerado o delay inserido pelo codificador, onde de maneira geral quanto menor for a taxa do codec, maior ser seu delay.
26

Em redes com grande disponibilidade de banda, um codec indicado o G.711, que possui taxa de transmisso a 64 Kbits/seg, mas com delay prximo de zero, boa qualidade e livre de licena.

Padres de codificao de voz


\\Principais

padres:

\\G.711; \\G.729; \\G.723.1; \\iLBC.

A tabela abaixo mostra um resumo da faixa de frequncia, taxas de transmisso e latncia utilizada nos principais padres de codificao de udio. Padro G.711 G.722 G.722.1 G.722.2 G.723.1 G.726 G.728 G.729 ILBC Faixa de frequncia 300 Hz 3.4 kHz 50 Hz 7 kHz 14 kHz 50 Hz 7 kHz 8 kHz 8 kGz 300 Hz 3.4 kHz 8 kHz 300 Hz 3.4 kHz Taxa de transmisso 64 kbit/s 48, 56 ou 64 kbit/s 24-32 kbit/s 6.6 23.85 kbit/s 5.3 ou 6.3 kbit/s 16 40 kbits/s 16 kbit/s 8 kbits/s 13,33 ou 15,20 kbit/s Latncia <1 <2 100 60 <2 25 35 30 20 Razovel a boa Boa a razovel Boa Boa Boa Tabela 1.1 Boa Qualidade Excelente

O padro G.711 um dos melhores oferecidos pelo mercado, com delay prximo de zero, embora sua taxa de transmisso de bits seja muito alta (64 Kbits/seg), consumindo muita banda em comparao com os demais codecs. Seu grande diferencial que est livre de licena, sendo um fator a considerar para projetos com disponibilidade de banda. Outro fator a considerar que este codec no comprime, sendo utilizado em transmisso de fax.

Captulo 1 Histrico e conceitos bsicos 27

Em uma rede de pacote, onde os pacotes de voz podem sofrer grandes delays, a escolha do codec em funo do atraso do mesmo pode ser um diferencial do projeto em enlaces onde o delay crtico, como em uma conexo via satlite.

Introduo Voz sobre IP e Asterisk

O padro G.729 possui taxa de 8 Kbits/seg e muito utilizado no mercado. um codec ITU com a necessidade de compra de licena. Existem as verses G729a, menos complexa que a G729, e a verso G729b, com capacidade de inserir rudo de conforto nas ligaes que utilizam VAD (deteco de atividade de voz). O padro G 723.1 possui taxas menores que o G.729, um codec ITU e tambm necessita de pagamento de licena. Possui taxas de 6,3 ou 5,3 Kbits/seg e seu atraso da ordem de 37,5 mseg. O codec iLBC tem fonte aberta, sem exigncia de pagamento de licena, sendo uma boa opo de soluo de fonte aberta. Sua taxa da ordem de 13,3 Kbits/seg.

G.711
\\Codificador \\ Representa \\Comprime

padro ITU-T de larga aplicao; os sinais de voz usando o formato PCM;

amostras PCM com 13 ou 14 bits em 8 bits usando escala logartmica, gerando 64 kbps.

A funo bsica do algoritmo codificar a voz utilizando 8 bits por amostra; a banda de entrada de voz amostrada a 8 kHz, mantendo a largura de banda de 300 a 3400 Hz. Com isso, cada canal de voz precisa de 64 kbps. Dois algoritmos foram definidos no padro ITU-T G.711: U (ulaw) e A (alaw); o primeiro utilizado na Amrica do Norte e no Japo, o segundo, na Europa e no resto do mundo. O princpio do codificador G.711 que se deve utilizar a quantizao com escala logartmica para obter uma relao sinal/rudo independente da intensidade. Isso foi possvel duplicando o passo de quantizao a cada vez que a intensidade do sinal era duplicada; deste modo obteve-se uma constante.

G.729
\\Padro

ITU-T para codificao de sinais de voz a uma taxa de 8 kbps, com quadros de 2 ou 8 bytes a cada 10 ms; o algoritmo Conjugate Structure Algebraic Code Excited Linear Prediction (CS-ACELP), baseado no modelo de codificao Code Excited Linear Prediction (CELP); originalmente para uso na telefonia fixa com comutao de circuito.

\\Utiliza

\\Desenvolvido

O codificador G.729 codifica sinais de voz a uma taxa de 8 kbps usando o modelo CS-ACELP (Conjugate Structure Algebraic Code Excited Linear Prediction), que baseado no modelo de codificao CELP Ele projetado para operar com o sinal de .

28

O codificador G.729 trabalha com quadros de 10 ms (ou 80 amostras), que so divididos em dois subquadros de 5 ms (ou 40 amostras). Cada quadro de 10 ms do sinal de voz analisado para extrair os parmetros do modelo CELP: os coeficientes preditores do filtro de sntese, os ndices dos dicionrios fixo e adaptativo e seus respectivos ganhos. Esses ltimos so os parmetros da excitao, determinados para cada subquadro de 5 ms. Esses parmetros so codificados e transmitidos. No decodificador, esses parmetros so recuperados para construir a excitao e obter os parmetros do filtro de sntese. O sinal de voz reconstrudo passando a excitao pelo filtro de sntese de ordem 10. Depois de reconstrudo, o sinal de voz passado por um ps-filtro para melhorar a qualidade do sinal de sada.

G.723.1
\\Padro

ITU-T para taxas de bits muito baixas (5,3 ou 6,3 kbps), desenvolvido para uso em telefonia por redes de pacotes; taxas de 5,3 kbps, usa o algoritmo ACELP (Algebraic Code Excited Linear Prediction); taxas de 6,3 kbps, usa o algoritmo MP-MLQ (Multipulse Maximum Likelihood Quantization).

\\Para

\\Para

O codificador G.723.1 tem duas taxas de bits associadas a ele, de 5,3 e 6,3 kbps. Ele codifica sinais de voz quadro a quadro usando codificao preditiva linear baseada em anlise por sntese (CPLbAS). A codificao em taxa alta (6,3 kbps) usa um modelo MP-MLQ (Multipulse Maximum Likelihood Quantization) para gerar o sinal de excitao, enquanto a codificao em taxa baixa (5,3 kbps) usa um modelo ACELP (Algebraic Code Excited Linear Prediction). O tamanho dos quadros de 30 ms (ou 240 amostras). O codificador G.723.1 projetado para operar com o sinal de voz de entrada j convertido para o formato PCM uniforme, 16 bits/amostra e taxa de amostragem de 8 kHz.

iLBC
\\Internet

Low Bit Rate Codec (iLBC) se encontra em carter experimental, a ser padronizado pela IETF; para propiciar comunicao robusta em VoIP com tolerncia a , perdas e recuperao de erros;

\\Desenvolvido

Captulo 1 Histrico e conceitos bsicos 29

voz de entrada j convertido para o formato PCM uniforme, com 16 bits/amostra e taxa de amostragem de 8 kHz.

Introduo Voz sobre IP e Asterisk

\\Baseado \\Opera

em predio linear; no usa o modelo CELP .

a taxas de 13,33 kbps (399 bits em quadros de 30 ms) ou 15,20 kbps (303 bits em quadros de 20 ms).

O codificador iLBC utiliza o algoritmo de predio linear e suporta dois comprimentos bsicos, quadros de 20 ms a 15.2 kbps e de 30 ms a 13.33 kbps. Quando o codificador trabalha com quadros de comprimento de 20 ms, produz 304 bits de sada por quadro, e para um comprimento de 30 ms por quadro, produz 400 bits de sada, os quais devem ser empacotados para serem transmitidos. Os dois modos para quadros de diferentes tamanhos operam de maneira similar. A descrio do algoritmo resulta em um sistema de codificao de voz com resposta controlada diante da perda de pacotes, similar especificada no PCM com perda de pacotes no padro ITU-T G.711, que opera a uma taxa fixa de 64 kbps. Algumas das aplicaes para este codificador esto nas formas de comunicao em tempo real, como telefonia, videoconferncia, udio e envio de mensagens.

Arquitetura VoIP
Zona 1
TM GC MCU GK GK MCU GC

Zona 2
TM

Tel IP

Tel IP

Rede IP

GW

GW

Viso geral dos diversos elementos que podem interagir dentro da arquitetura VoIP:
\\Gatekeeper

...
PABX

...

STFC

PABX

...

...
Figura 1.10

(GK) permite o controle centralizado do sistema;

30

\\Unidades

de Controle Multiponto (MCU) permitem o estabelecimento de conferncias entre trs ou mais pontos finais; (GW) necessrio quando se deseja estabelecer comunicao entre terminais em diferentes tipos de redes.

\\Gateway

Projetos VoIP no Brasil


\\Projeto

VoIP4All:

\\voip4all.rnp.br; \\fone@RNP . \\Aproximadamente

100 instituies conectadas:

\\www.rnp.br/voip.

Voip4All
Este projeto criou meios para que instituies federais, universidades, centros de educao tecnolgica e unidades de pesquisa possam implantar uma infraestrutura de suporte a VoIP .

Fone@RNP
Servio VoIP da RNP que evoluiu do projeto VoIP4All. Oferece comunicao por voz utilizando a rede Ip para pessoas em diversas instituies brasileiras de ensino e pesquisa, usando:
\\Servidores; \\Solues

de cdigo aberto;

\\ Computadores; \\ Telefones \\ Aparelhos

IP; telefnicos em seus departamentos.

Captulo 1 Histrico e conceitos bsicos 31

\\Private

Branch eXchange (PBX) centro de distribuio telefnica pertencente a uma empresa que no inclui como sua atividade o fornecimento de servios telefnicos ao pblico em geral;

Introduo Voz sobre IP e Asterisk

A ilustrao abaixo referente estrutura bsica de uma instituio participante do fone@RNP .


Terminal H.323 Ambiente H.323 Postgre SQL GnuGK Gatekeeper H.323 + VQCDR Server para coleta de CDR VQOpenPhone Suporte ao envio de CDR com informao de qualidade

Asterisk Gateway SIP/H.323 Gateway VOIP/PSTN

PSTN
lid a de

Arm a de i zenam n e de c forma nto onta bilid es ade

Cliente SIP Ambiente SIP


A e ut nt ic a

co

a nt

bi

Autenticao e contabilidade

e o a tic ten Au bil nta co de ida

Consulta Apache para disponibilizao de estatsticas + Nagios para gerncia do servio

Consulta FreeRadius LDAP Diretrio para identificao e autenticao e usurios

Usurio que estabelece sua conexo atrs de um firewall

SER Proxy SIP VPN Server Cliente SIP Firewall

Figura 1.11 Softwares utilizados no service fone@RNP:


\\ GnuGK; \\ OpenSER; \\ Asterisk

(gateway SIP/H323, gateway VoIP/PSTN);

\\ FreeRADIUS; \\ PostgreSQL; \\ Apache; \\ Nagios; \\ LDAP; \\ Clientes

SIP/H.323.

32

1
Roteiro de Atividades
Tpicos e conceitos
\\Instalao \\Anlise

e configurao dos clientes VoIP X-Lite, Telefone IP e ATA;

do trfego da rede com ferramenta de captura de trfego.

Competncias tcnicas desenvolvidas


\\Aprendizado \\Identificao

sobre as funcionalidades dos clientes X-Lite, Telefone IP e ATA; do trfego da rede TCP/IP .

Tempo previsto para as atividades


\\1

hora a 1h30 minutos (trabalho em grupo).

Preparando o ambiente
Antes do incio das atividades, o instrutor ir iniciar a mquina virtual que contm o software Asterisk e efetuar dois passos importantes para estabelecer usurio e senha de acesso para a mquina virtual:
\\Usurio \\Senha

= root;

= voip.

Passo 1: Confirmar o endereo IP da mquina virtual com o comando:


# ifconfig

Passo 2: Editar o arquivo sip.conf que est localizado no diretrio /etc/asterisk/, em [general].

33

Introduo Voz sobre IP e Asterisk

A linha bindaddr=0.0.0.0 dever ser alterada para:


bindaddr=ip_da_mquina_ virtual

Inicie o Asterisk com o comando:


# asterisk vvvv &

Atividade 1 Instalando o cliente X-Lite


Passo 1: no ambiente Windows, execute o aplicativo localizado no desktop e instale o cliente X-Lite. O aplicativo tambm poder ser encontrado no site do fabricante: www.counterpath.com/x-lite.html

Figura 1.12 No h necessidade de reiniciar o sistema.

Atividade 2 Configurando o X-Lite


Passo 1: execute o X-Lite. Para entrar no modo de configurao, aponte o mouse sobre o telefone e clique com o boto da direita. Feito isso, agora selecione a opo SIP Account Settings..., como indicado na prxima imagem.

34

Figura 1.13 Passo 2: configure a sua conta de acordo com o plano de ramais. Substitua o XX pelo nmero da sua estao. A senha para autenticao no servidor voip, devendo ser inserida no campo Password.

Figura 1.14

Captulo 1 Histrico e conceitos bsicos 35

Caso seja a primeira vez que voc esteja configurando, este passo no necessrio.

Introduo Voz sobre IP e Asterisk

Se a configurao da conta foi efetuada corretamente, a mensagem Ready ser exibida na tela do X-Lite, conforme ilustra a figura seguinte.

Figura 1.15

Atividade 3 Configurando o Telefone IP


Passo 1: acesse no seu browser o endereo http://<IP DO TELEFONE>. Em seguida so solicitados usurio e senha para autenticao, conforme abaixo:

Figura 1.16 O nome do usurio Polycom e a senha 456. Aps o sucesso na autenticao a seguinte pgina ser apresentada:

Figura 1.17

36

Figura 1.18 A Linha 1 ser utilizada configurando apenas alguns dos campos existentes nas sesses Identification e Server 1. Na sesso Identification os campos Display Name, Address, Auth User ID, Auth Password e Label so configurados. Somente os campos Address e Port so configurados na sesso Server 1. Substitua o XX pelo nmero da sua estao. Passo 3: para finalizar , clique no boto Submit e aguarde o telefone ser reiniciado. Em seguida, o telefone est pronto para ser utilizado.

Atividade 4 Configurando o ATA


Passo 1: precisamos do IP do adaptador. Para descobrir o IP recebido pelo adaptador, ligue-o a um telefone convencional e digite **** (quatro asteriscos), e em seguida digite 110#. Uma mensagem com o nmero do IP ser anunciada. Passo 2: acesse no seu browser o endereo http://<IP ANUNCIADO PELA MENSAGEM>

Captulo 1 Histrico e conceitos bsicos 37

Passo 2: clique no link Lines. Nesta pgina devemos configurar as contas SIP que sero utilizadas pelo telefone. Nesta atividade iremos configurar apenas a Linha 1. A pgina abaixo apresenta as sesses Line 1 e Serve 1:

Introduo Voz sobre IP e Asterisk

Passo 3: no canto superior direito da pgina abaixo clique em Admin Login:

Figura 1.19 Passo 4: na pgina seguinte clique em Line 1:

Figura 1.20 Passo 5: na pgina mostrada na prxima figura configure apenas os parmetros abaixo:
\\Proxy:

IP fornecido pelo instrutor; Name: entre com seu nome completo;

\\Display \\User

ID: 30XX; voip;

\\Password: \\Register

Expires: 3600.

Lembre-se de substituir o XX pelo nmero da sua estao. A figura abaixo apresenta como deve ficar a configurao do seu adaptador: Figura 1.21

38

Atividade 5 Efetuando chamadas com ATA, Telefone IP e X-Lite


Passo 1: efetue chamadas entre os trs clientes. Lembrando que o X-Lite deve estar configurado com o ramal 10XX, o Telefone IP com o ramal 20XX e o ATA com o ramal 30XX. Este passo dever ser realizado em dupla, onde os integrantes da dupla efetuaro chamadas entre si.

Atividade 6 Verificando codecs de udio


Esta atividade tem como finalidade a observao da importncia dos codecs nos clientes. X-Lite: Passo 1: clique com o boto direito no cliente e acesse a opo Options; na guia lateral selecione a opo Advanced, desative e ative os codecs de udio e efetue chamadas com codecs desabilitados, anotando as suas observaes. Telefone IP: Passo 1: acesse no seu browser o endereo http://<IP DO TELEFONE>. Em seguida, na pgina apresentada abaixo clique no link General:

Figura 1.22

Captulo 1 Histrico e conceitos bsicos 39

Passo 6: clique no boto Save Settings.

Introduo Voz sobre IP e Asterisk

Na pgina abaixo, clique em Audio Processing:

Figura 1.23

40

Figura 1.24

ATA Passo 1: acesse no seu browser o endereo http://<IP DO ATA>. Em seguida, na pgina apresentada abaixo clique no link Line 1:

Figura 1.25

Captulo 1 Histrico e conceitos bsicos 41

Em seguida troque a ordem dos codecs de udio apresentados na pgina abaixo, clique em Submit, espere o telefone reiniciar e efetue chamadas com todos os codecs, anotando as suas observaes.

Introduo Voz sobre IP e Asterisk

Passo 2: na parte de baixo da pgina troque os codecs, efetue chamadas com todos os codecs e anote as suas observaes.

Figura 1.26

42

Passo 1: inicialize o software Wireshark instalado no desktop. Observe as opes destacadas na imagem abaixo.

Figura 1.27 Passo 2: escolha a interface de rede com a qual iniciaremos a captura; para isso, selecione o boto List the available capture interfaces. A interface com a qual trabalharemos dever apresentar uma contagem crescente de pacotes, conforme destacado na imagem a seguir. Passo 3: conhecendo as opes de configurao da interface de rede.

Figura 1.28

Captulo 1 Histrico e conceitos bsicos 43

Atividade 7 Conhecendo o Wireshark

Introduo Voz sobre IP e Asterisk

Figura 1.29

Figura 1.30

Atividade 8 Efetuando capturas com Wireshark


Inicie a captura de pacotes com a interface em modo promscuo, e logo depois inicie sem ativar o modo promscuo. Descreva suas observaes.

44

Figura 1.31

Figura 1.32 Complete a tabela abaixo conforme os dados obtidos na captura: Pacote TCP No campo Ethernet II informe: MAC e IG bit No campo Internet Protocol Version Header length Total length Source Tabela 1.2 Do pacote TCP: Transmission Control Protocol Source Port Destination Port Flags Version Header length Total length Destination Src Dst Pacote UDP Src Dst

Do pacote UDP: User Datagram Protocol Source Port Data Destination Port TCP Length UDP

Tabela 1.3

Captulo 1 Histrico e conceitos bsicos 45

Com a interface em modo promscuo, inicie a captura de pacotes e observe o campo Protocol. Aps exibir os protocolos TCP e UDP pare a captura e observe os detalhes , na tela de rvore de protocolos. Navegue e veja as caractersticas do protocolo TCP e do protocolo UDP .

Introduo Voz sobre IP e Asterisk

Com os dados obtidos, podemos observar algumas diferenas entre os pacotes TCP e UDP Liste-as e comente. .

Atividade 9 Capturando pacotes na rede


Para exemplificar a interao dos protocolos e o processo de encapsulamento, vamos analisar um quadro capturado numa rede local Ethernet, durante uma sesso de um host com um servidor web que usa o protocolo HTTP de aplicao e o protocolo TCP de transporte. Neste caso, ambos esto na mesma rede local. O programa utilizado para isso o analisador de rede Wireshark. Wireshark pode ser obtido em www.wireshark.org. A figura a seguir mostra a tela principal do Wireshark. Na parte superior esto os menus suspensos e logo abaixo a barra de ferramentas. Para abrir o arquivo de captura chamado Atividade1.cap utilizamos o cone da barra de ferramentas que representa uma pasta (sexto da esquerda para a direita). Para esta anlise selecionamos o pacote no 258, que foi enviado do servidor web para o host do usurio.

Figura 1.33 Quadro capturado em rede local Ethernet

46

\\Camada \\Camada \\Camada \\Camada

fsica; de enlace de dados; de rede; de transporte.

Cada camada, quando selecionada, faz com que os bytes correspondentes fiquem destacados na janela inferior. Usando o Wireshark: 1. Determine o tamanho do cabealho do protocolo IP:

2. Determine o tamanho do cabealho do protocolo TCP e o tamanho dos dados da aplicao:

3. Finalmente, faa uma verificao do tamanho total do quadro, somando todos os campos:

Captulo 1 Histrico e conceitos bsicos 47

Na janela inferior temos o contedo total do pacote, representado na forma hexadecimal. Na janela imediatamente acima esto representadas as diversas camadas de protocolos (de baixo para cima), a saber:

Introduo Voz sobre IP e Asterisk

48

2
Protocolo SIP

Sumrio
Protocolo de iniciao de sesso SIP . . . Objetivos bsicos do protocolo SIP . . . . Extenses ao protocolo SIP . . . . . . . Caractersticas do protocolo SIP . . . . . Elementos de uma rede SIP . . . . . . . Servidor Proxy . . . . . . . . . . . Servidor Stateful . . . . . . . . . . Servidor Stateless . . . . . . . . . . Utilizao do servidor proxy . . . . . . Servidor de redirecionamento (Redirect Server) Servidor de registro (Register Server). . . . SIP URI . . . . . . . . . . . . . . Mensagens SIP . . . . . . . . . . . Exemplo de SIP Request . . . . . . . . Mensagem de resposta (SIP Response) . . . Exemplo de SIP Response . . . . . . . Protocolo SDP . . . . . . . . . . . Sesses SDP . . . . . . . . . . . . Exemplo de Sesso SDP . . . . . . . . Modos de comunicao SIP . . . . . . . Comunicao peer-to-peer . . . . . . . Comunicao via proxy . . . . . . . . Transaes e dilogos SIP . . . . . . . Cenrios SIP . . . . . . . . . . . . SIP Registration . . . . . . . . . . . Session Invitation . . . . . . . . . . Session Termination . . . . . . . . . Instant Messages (IM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 51 52 53 54 56 57 57 58 58 59 60 61 64 64 67 71 72 75 75 76 77 78 79 80 81 82 83

49

Introduo Voz sobre IP e Asterisk

Roteiro de Atividades . . . . . . . . . . . . . . . . . . . . . 85 Atividade 1 Instalando o OpenSER . . . . . . . . . . . . . . . . 85 Atividade 2 Captura e identificao da troca de mensagens entre os clientes SIP e o OpenSER . . . . . . . . . . . . . . . . . . . 87 Atividade 3 Captura e identificao da troca de mensagens entre os clientes SIP . . . . . . . . . . . . . . . . . . . . . . . . 89 Atividade 4 Decodificando os pacotes capturados para escutar a conversa entre os clientes . . . . . . . . . . . . . . . . . . . . . . . . . 90

50

\\Session

Initiation Protocol SIP;

\\Protocolo

de sinalizao que estabelece sesses de comunicao interativa entre usurios. Entre outros recursos, cada sesso pode incluir:
\\Vdeo; \\Voz; \\Bate-papo.

O protocolo de iniciao de sesso (Session Initiation Protocol SIP) foi desenvolvido pela Internet Engineering Task Force (IETF) na dcada de 90. Sua primeira verso, lanada em 1996, foi chamada inicialmente de Session Invitation Protocol, onde sua funo era basicamente estabelecer a sesso. Outras funcionalidades, como controles para conferncias, foram introduzidas na verso 2.0, lanada em 1997. Em fevereiro de 1999, o SIP foi proposto como um padro e publicado na RFC 2543. Sua ltima verso (SIPv2) foi publicada na RFC 3261 em 2002, substituindo a verso anterior. O SIP utilizado para estabelecer, manter e encerrar conferncias multimdia em uma arquitetura cliente/servidor o originador o usurio cliente e o destino o usurio servidor. Existem as verses SIP-T IETF, SIP-I ITU e SIP-I ANSI, similares ao SIP mas com diferenas sutis, utilizadas para tunelar mensagens ISUP ou outras , sinalizaes telefnicas atravs de redes IP . Em uma sesso SIP um servidor e um cliente tero total controle sobre a sesso, , podendo ser de transmisso de voz, vdeo ou bate-papo.

Objetivos bsicos do protocolo SIP


\\Contemplar

a criao e o gerenciamento de sesses para troca de fluxos multimdia entre aplicaes. a comunicao possvel com outros protocolos, como: Time Protocol / Real Time Control Protocol (RTP/RTCP); Description Protocol (SDP); Time Streaming Protocol (RTSP); Gateway Control Protocol (MGCP).

\\Tornar

\\Real

\\Session \\Real

\\Media

Padronizado pelo IETF na RFC 1889, o Real Time Transport Protocol (RTP) foi projetado para permitir que os receptores compensem o jitter e a perda de pacotes introduzidos pelas redes IP Sua ltima verso o Secure RTP publicada na RFC . , 3711. Inclui as seguintes informaes:
\\Tipo

de dado transportado;

Captulo 2 Protocolo SIP 51

Protocolo de iniciao de sesso SIP

Introduo Voz sobre IP e Asterisk

\\Timestamps; \\Nmero

de sequncia, entre outras informaes.

O protocolo de controle de transporte em tempo real (Real Time Control Protocol RTCP) foi projetado para trabalhar em conjunto com o RTP Em uma sesso RTP os . , participantes enviam periodicamente pacotes RTCP para receberem informaes sobre a qualidade da entrega dos dados, sobre os membros, jitter e perda de pacotes. O protocolo de descrio de sesso (Session Description Protocol SDP), definido pela IETF na RFC 2317, utilizado em conjunto com o protocolo SIP para definir as sesses, tipo de mdia, codecs, portas de mdia e criptografia. O Real Time Streaming Protocol (RTSP), ou protocolo de fluxo contnuo em tempo real, utilizado para transmisso de udio e vdeo, ou seja, streams sincronizados de mdias contnuas em tempo real pela internet. Foi definido peIa IETF na RFC 2326. O Media Gateway Control Protocol (MGCP) assume modelo de inteligncia centralizada, facilita a tarifao e barateia os terminais e gateways. Utiliza os protocolos RTP/ RTCP para o transporte de mdia, funcionando como sinalizao por canal comum n 7 ISUP e outras sinalizaes. a juno do Internet Protocol Device Control (IPDC), protocolo para controle de dispositivos de mdia, com o Simple Gateway Control Protocol (SGCP). Foi definido pela IETF nas RFCs 2705 e 3435.

Extenses ao protocolo SIP


\\SIP

for Instant Messaging and Presence Leveraging Extensions (SIMPLE); Initiation Proposal Investigation (SIPPING); Multimedia Session Control (MMUSIC);

\\Session

\\Multiparty \\IP

Telephony (IPTEL); Interworking (PINT).

\\PSTN-Internet

\\SIMPLE

grupo que foca seu trabalho nas aplicaes relacionadas ao protocolo SIP conhecidas como instant messages e presence; , grupo responsvel por documentar o uso do SIP relacionado s aplicaes de telefonia e multimdia e por desenvolver requerimentos para futuras atualizaes; grupo responsvel por desenvolver protocolos que suportem teleconferncia e comunicaes multimdia; grupo com servios focados nos problemas que dizem respeito resoluo de nomes (URI) e ao roteamento para os protocolos de voz sobre IP;

\\SIPPING

\\MMUSIC

\\IPTEL

52

Caractersticas do protocolo SIP


\\Simples; \\Independente \\Baseado

do protocolo de transporte;

em texto; ponto-a-ponto:

\\Sinalizao \\Toda

lgica est armazenada nos clientes, exceto mensagens de roteamento. ao Session Description Protocol (SDP): para transportar descries dos parmetros de cada sesso.

\\Associado \\Usado \\Trabalha \\O

com IPv4 e IPv6;

que o SIP no e no faz: um protocolo de transferncia de dados; pequenas mensagens, mas no grande quantidade de dados; fornece suporte para QoS; tem a finalidade de substituir todas as caractersticas da telefonia; um protocolo de reserva de recurso;

\\No

\\Transporta \\No \\No \\No \\No \\No

um protocolo para controle de dispositivos ou procedimento para chamadas remotas (Remote Procedure Calls RPC); substituir o protocolo da PSTN; juntamente com a PSTN atravs de gateways, mas esta no sua funo principal.

\\Trabalha

O Protocolo de Iniciao de Sesso um protocolo de aplicao que utiliza o modelo requisio-resposta, similar ao HTTP para iniciar sesses de comunicao , interativa entre usurios. Sua rpida adoo talvez esteja relacionada principalmente s caractersticas listadas abaixo:
\\Simplicidade;

possui apenas seis mtodos; em relao ao protocolo de transporte;

\\Independncia \\Baseado \\Assim

em texto;

como o HTTP o SIP leva os controles da aplicao para o terminal, , eliminando a necessidade de uma central de comutao.

Captulo 2 Protocolo SIP 53

\\PINT

grupo designado para estudar a arquitetura e os protocolos necessrios para suportar servios para os quais um usurio localizado na internet faz a requisio de uma ligao telefnica, atravs de um terminal PSTN.

O SIP no um protocolo milagroso desenvolvido para solucionar todos os problemas da comunicao. No tem o objetivo de substituir todas as caractersticas e servios providos pela rede comutada de telefonia com servios idnticos. No um protocolo de transferncia como o HTTP que foi desenvolvido para transportar , uma quantidade grande de dados. O SIP transporta uma pequena quantidade de dados requerida para configurar comunicaes iterativas (pequenas mensagens de texto). Tambm no age como um dispositivo de reserva de recursos, por no prover QoS, apenas interagindo com protocolos desenvolvidos para suportar QoS. No um protocolo que substituir a PSTN, sendo bem diferente dos modelos de chamadas telefnicas e dos protocolos de sinalizao de telecomunicao. O SIP pode interagir com a PSTN por meio de gateways, mas esta no sua funo principal.

Introduo Voz sobre IP e Asterisk

Elementos de uma rede SIP


\\Rede

SIP simples:

\\Apenas

para comunicao entre dois user agents, enviando mensagens SIP diretamente. SIP tpica: mais de dois tipos de elementos SIP: agents; Servers:

\\Rede

\\Contm \\User

\\Proxy

\\Stateful; \\Stateless. \\Redirect

server;

\\Registrar. \\User

Agents (UA): que usam SIP para se encontrar e negociar caractersticas da sesso; dos UA temos: Agent Client (UAC); Agent Server (UAS).

\\Terminais \\Dentro

\\User \\User \\User

Agent Client (UAC): do UA que envia as requisies e recebe as respostas.

\\Parte \\User

Agent Server (UAS): do UA que recebe as requisies e envia as respostas.

\\Parte \\UAC

e UAS so entidades lgicas.

54

O User Agent (UA) uma entidade lgica da arquitetura SIP Pode atuar como um . User Agent Client (UAC) ou como um User Agent Server (UAS), ou seja, cada User Agent contm um UAC e um UAS.
\\UAC

(User Agent Client) o Usurio Agente Cliente executa a funo de cliente da aplicao e responsvel por iniciar uma chamada SIP; (User Agent Server) o Usurio Agente Servidor a parte com funo de servidor e permanece ouvindo a rede, aguardando requisies.

\\UAS

Os terminais que usam SIP para se encontrar e negociar caractersticas da sesso so user agents, que podem ser telefones celulares, gateways, PDAs. Proxy servers so usados para traduzir nomes e nmeros de identificao dos UA para o endereo IP em que eles esto instalados. Tambm so chamados de SIP Proxy. Podem ser de dois tipos:
\\Proxies

Stateless no mantm o estado das chamadas. Eles simplesmente reencaminham as mensagens para o destino ou para outro proxy. So mais simples e mais rpidos. Stateful mantm o estado das chamadas. Podem se encarregar de tarefas como bilhetagem e contabilizao.

\\Proxies

Registar server a entidade lgica responsvel por manter os registros dos usurios. Ela extrai informao sobre sua localizao atual, armazena-a em um banco de dados e mapeia nomes e nmeros em endereos IP . Redirect server um tipo de servidor da arquitetura SIP que, ao receber uma mensagem, envia de volta uma resposta com um redirecionador, o endereo de outro servidor proxy para quem o UAC deve reenviar a requisio original. Um user agent chamador atua como UAC quando envia uma mensagem de requisio INVITE e recebe resposta das requisies feitas. Um user agent chamado se comporta como um UAS quando este recebe a requisio INVITE e retorna uma resposta. Esta situao muda quando a pessoa chamada decide enviar um BYE e terminar a sesso. Neste caso, o user agent chamado (que envia BYE) se comporta como um UAC e o user agent chamador atua como um UAS.

Captulo 2 Protocolo SIP 55

Arquitetura do SIP

Introduo Voz sobre IP e Asterisk

Callee A UAC Caller UAC Stateful Forking Proxy


Invite

UAS

Invite
UAS

UAC Callee B

UAS

UAC

Invite
UAS

Bye

UAC

Figura 2.1 UAS e UAC

UAS e UAC

Esta figura mostra trs dispositivos SIP e um stateful forking proxy. Cada user agent contm um UAC e um UAS. A parte do proxy que recebe a requisio INVITE do chamador atua como um UAS. Quando repassa a requisio, cria dois UACs, cada um responsvel por um dispositivo chamado.

Servidor Proxy
\\Entidade \\Tem

intermediria que atua como servidor e cliente;

o propsito de fazer requisies em nome de outros clientes; dois tipos de servidores proxy:

\\Existem

\\Stateful; \\Stateless.

Servidores stateful so indicados para o controle de terminao, pois possuem capacidade para controlar todas as transaes, mantm o estado das chamadas e so capazes de produzir informaes que possibilitam a bilhetagem (cobrana) das ligaes. Servidores stateless so similares s centrais tandem da velha telefonia. Armazenam poucas informaes e so indicados para implementao de centrais trnsito, a fim de evitar congestionamentos.

56

\\Entidade \\Mais

lgica que mantm o estado de todas as transaes de clientes e servidores: complexo do que o servidor stateless; limitada; com forking;
\\Performance \\Trabalha \\Pode

aplicar mtodos mais sofisticados para buscar usurios.

Um servidor stateful mantm o estado das chamadas, do estabelecimento (INVITE) at sua finalizao (BYE), podendo implementar formas mais complexas para encontrar um usurio. Por exemplo, pode tentar encontrar um cliente em seu telefone do escritrio e, se no atender, pode redirecionar a chamada para seu celular.

Servidor Stateless
\\Entidade

lgica que no mantm o estado das transaes feitas pelo cliente ou pelo servidor; todas as requisies e respostas recebidas;

\\Repassa \\No

se importa com o que acontece com as transaes, apenas as repassa; rpido do que o servidor stateful, entre outras funes podendo servir de: de mensagens;

\\Mais

\\Tradutor

\\Roteador.

Um servidor stateless no mantm o estado das chamadas, repassando as requisies recebidas. No se importa com o que acontece com as transaes, apenas as repassa. mais rpido do que o servidor stateful e pode servir como:
\\Tradutor

de mensagens;

\\Roteador; \\Balanceador

de carga.

Captulo 2 Protocolo SIP 57

Servidor Stateful

Introduo Voz sobre IP e Asterisk

Utilizao do servidor proxy


\\Comunicao

entre duas empresas com servidor Proxy.


DNS Server

2. SIP SRV for b.com Company A Joe 1. Invite proxy.a.com

3. proxy.b.com Company B proxy.b.com 4. Invite

5. In
5.6.7.8
6. Bye

vite

Bob

1.2.3.4

Figura 2.2

Este cenrio supe a existncia de duas companhias, A e B, com dois servidores proxy diferentes, um para cada. O funcionrio Joe da companhia A deseja se comunicar com o funcioniro Bob da companhia B. O usurio Joe utiliza o endereo sip:bob@b.com para fazer uma ligao para o usurio Bob. O user agent de Joe no sabe a localizao de Bob, mas est configurado para enviar todo o trfego para o servidor SIP proxy.a.com de sua companhia. O servidor proxy descobre que o usurio sip:bob@b.com est em uma companhia diferente, ento ir procurar servidor SIP proxy da companhia B e enviar o convite para l. Os servidores proxy da companhia B podem estar pr-configurados no proxy.a.com, ou o proxy utilizar os registros DNS SRV para encontrar os servidores proxy de B. O convite chega at proxy.b.com, que sabe que Bob tem condies de atender a chamada em seu telefone. Ento o proxy envia o convite para o endereo do telefone IP de Bob, 1.2.3.4.

Servidor de redirecionamento (Redirect Server)


\\Servidor

que recebe uma requisio e retorna uma resposta contendo uma lista da localizao atual do cliente; respostas do tipo 3xx para as requisies feitas.

\\Gera

58

Pode ser utilizado para a implementao de servios de voz, como o correio eletrnico, ou para a configurao de rotas alternativas.
Redirect Server

nv ite

2. 3 ov 02 ed Te

Figura 2.3

User Agent A

po ra rily

1. I

3. Invite User Agent B

Neste cenrio, o redirect server recebe a requisio e consulta o destinatrio no banco de dados criado pelo servidor de registro (registrar). Depois disso, uma lista da localizao atual do usurio criada e enviada ao originador da requisio em uma resposta SIP 3xx da classe de resposta de redirecionamento. O originador da requisio extrai a lista de endereos e envia outra requisio direto para eles.

Servidor de registro (Register Server)


\\Entidade \\Recebe \\Extrai

especial SIP;

os registros dos usurios;

a informao de sua localizao atual: IP;

\\Endereo \\Porta;

\\Username. \\Armazena \\Caso

informaes em um banco de dados;

o registro ocorra com sucesso, uma mensagem do tipo 200 OK ser retornada.

O servidor de registro um dos elementos da arquitetura SIP onde se recebe os , registros dos usurios. Ele extrai a informao de sua localizao atual (endereo IP , porta e username) e a armazena em um banco de dados. Armazena informaes
59

Captulo 2 Protocolo SIP

Um servidor de redirecionamento (redirect server) mapeia um endereo em zero ou mais novos endereos associados a um cliente, que no nada mais do que um user agent gerador de respostas 3xx para as requisies que recebe, direcionado o cliente ao contato com um conjunto de URIs alternativos.

Introduo Voz sobre IP e Asterisk

sobre os locais onde uma parte pode ser encontrada, trabalhando em conjunto com o servidor de redirecionamento e o servidor proxy. O propsito do banco de dados mapear clientes em uma mesma zona, permitindo que sejam encontrados no momento de uma requisio.
Record in Location Database User sip:jan@iptel.org is reachable at sip:jan@1.2.3.4:5060

CDRs
UA
2. Store

Registrar Register Store Location 200 OK

Location Database

sip:jan@iptel.org 1. Register

3. 200 OK 1.2.3.4:5060

Registrar

Figura 2.4

Este cenrio demonstra um exemplo de um servidor de registro (registrar), no qual uma mensagem REGISTER contendo o endereo de registro sip:jan@iptel.org e o endereo de contato sip:jan@1.2.3.4:5060, em que 1.2.3.4 o endereo IP do telefone enviado ao servidor de registro, que extrai a informao e a armazena em um banco de dados local. Se tudo correr bem, o servidor de registro envia uma mensagem de resposta 200 OK ao telefone e o processo de registro termina corretamente.

SIP URI
\\As

entidades SIP so identificadas utilizando SIP URI (Uniform Resource Identifier); SIP: username@domain nome do usurio; domnio utilizado pelo usurio.

\\Sintaxe

\\Username: \\Domain: \\Exemplo: \\SIP:

joao@rnp.br

Entidades SIP so identificadas com SIP URI (Uniform Resource Identifier), tendo a sintaxe sip:username@domain. O SIP URI consiste de uma parte com o nome do usurio e uma parte com o nome do domnio, delimitados por @ (at / arroba). Os SIP URI so similares aos endereos de e-mail, de modo que possvel utilizar seu endereo de e-mail como um SIP URI, facilitando a memorizao.

60

\\A

comunicao SIP determina a troca de vrias mensagens: mensagem pode ser: do cliente para o servidor; do servidor para o cliente.

\\Uma

\\Requisio \\Resposta \\As \\H \\SIP

mensagens podem ser transportadas via UDP ou TCP; dois tipos de mensagens SIP: Requests:

\\Uma

mensagem SIP enviada do cliente ao servidor com o propsito de invocar uma operao em particular. Responses:

\\SIP

\\Quando

um User Agent ou um servidor proxy recebe uma requisio e envia uma resposta. de requisio (SIP Request):

\\Mensagem \\Linha

de requisio como linha de incio:

\\Mtodo; \\Endereo: \\Formato

definido como uma Universal Resource Identifier (URI). da verso SIP:

\\Identificao \\SIP/2.0. \\So

especificados seis mtodos para a verso corrente do SIP: mtodos foram definidos por extenses do SIP .

\\Outros

Mensagens SIP possuem a seguinte estrutura:


\\Mensagem \\Cabealho \\CRLF

genrica: = linha de incio; da mensagem;

(Carrige Return Line Feed); da mensagem];

\\[corpo \\Linha

de incio = linha de requisio / linha de status.

SIP Requests so mensagens enviadas por um Usurio Agente Cliente (UAC) solicitando uma sesso a um Usurio Agente Servidor (UAS). SIP Responses so respostas solicitao do UAC, podendo ser enviados por servidor proxy ou pelo UAS final.

Captulo 2 Protocolo SIP 61

Mensagens SIP

Introduo Voz sobre IP e Asterisk

Nas sinalizaes telefnicas CAS e CCS era possvel identificar a causa da desconexo ou da perda da chamada atravs de um cdigo. As chamadas desconectadas por Release (REL) no DSS-1, na telefonia (ISUP) ou no Q. SIG possuam um cdigo numrico indicativo da causa, como por exemplo a causa 16, que significava uma desconexo normal de uma chamada que teve atendimento e bilhetagem. As causas de desconexo esto definidas na recomendao Q.850 do ITU, e discutidas entre as operadoras fixas e mveis no Frum Nacional de Completamento de Chamadas (FNCC). O H.323 tambm permite relacionar a causa de liberao do canal de sinalizao atravs da mensagem RealeseComplete (RLC). possvel realizar uma comparao das SIP Responses com as causas no H.323, na ISUP e em outras sinalizaes. Este acompanhamento importante para profissionais que administram redes corporativas conectadas com redes pblicas, sejam de ISUP sejam de nova gerao , (SIP-T, SIP-I, MGCP ou H.248/Megaco). Por exemplo, uma resposta SIP 486, corresponde a uma causa na ISUP/H323/DSS-1 17, com destino ocupado. Para mais informaes, consulte a RFC 3398 da IETF e a recomendao Q.850 do ITU. O formato de uma requisio SIP caracterizado pela utilizao de uma linha de requisio como uma linha de incio. Cada linha de requisio formada por um mtodo (tipo de operao de requisio), um endereo e pela identificao da verso SIP utilizada. So especificados seis mtodos para a verso corrente do SIP Porm, . outros mtodos foram definidos por extenses do SIP Com relao ao endereo, o . formato definido como uma URI SIP uma SIPS ou uma URI genrica. , Mtodos de requisies no SIP/2.0 Mtodo INVITE ACK BYE CANCEL REGISTER OPTIONS Funcionalidade Usado para convidar um UA a estabelecer uma sesso. Confirma convite do INVITE. Termina a sesso multimdia. Cancela a sesso, mas no por inteiro. Registra a informao do contato. Faz consulta ao servidor para saber suas capacidades. Tabela 2.1

Noes sobre o funcionamento de SIP com outras sinalizaes:


\\INVITE

corresponde mensagem Setup no DSS-1/Q.sig/H.323 e mensagem IAM (mensagem de endereamento inicial) na ISUP; pode corresponder s mensagens Alerting ou Connect no DSS-1/Q. sig/H.323 ou ACM, Call progress ou ANM (atendimento) na ISUP; corresponde mensagem Release (REL) no DSS-1/Q.sig, Releasecomplete (RLC) no H.323 e REL na ISUP;

\\ACK

\\BYE

62

\\REGISTER

semelhante ao procedimento RAS no H.323, e manual nas sinalizaes telefnicas; no existe correspondente exato nas sinalizaes telefnicas.

\\OPTIONS

Mtodos de requisies estendidos Mtodo INFO MESSAGE NOTIFY PRACK PUBLISH REFER SUBSCRIBE UPDATE RFC 2976 3428 3265 3262 3903 3515 3265 3311 Funcionalidade Carrega informaes de controle geradas durante a sesso. Permite a transferncia de mensagens instantneas. Permite a notificao de eventos especficos. Confirma a recepo de uma mensagem de resposta informativa. Publica o estado de um evento. Solicita que um receptor faa contato com um terceiro participante. Permite que se subscreva para um estado particular em um recurso. Permite a atualizao dos parmetros de uma sesso.

Tabela 2.2

A definio dos mtodos nas RFCs no impede que muitos pontos continuem vagos, permitindo que fornecedores implementem solues proprietrias ou at verses diferentes, ainda que a RFC seja atendida. uma diferena importante entre as RFCs da IETF e as recomendaes do ITU, que so extremamente detalhadas, deixando poucas opes para solues proprietrias distintas, no caso de atendimento da recomendao. Portanto, necessrio cautela na interconexo de redes com fornecedores diferentes. Uma boa sugesto um teste prvio avaliando a utilizao de todos os mtodos disponveis e a compatibilidade entre eles. O mercado tem apresentado diversos casos de perda de funcionalidades com impacto nos custos, quando so utilizados fornecedores diferentes sem um estudo prvio de interfuncionamento e testes das facilidades e mtodos.

Captulo 2 Protocolo SIP 63

\\CANCEL

corresponde mensagem notify no DSS-1/Q.sig/H.323;

Introduo Voz sobre IP e Asterisk

Exemplo de SIP Request


INVITE sip:7170@rnp.br SIP/2.0 Via: SIP/2.0/UDP 195.37.77.100:5060;rport Max-Forwards: 10 From: "jiri" <sip:renatoduarte@rnp.rnp>;tag=76ff7a07-c091-4192-84a0d56e91fe104f To: sip:luiz@rnp.br Call-ID: d10815e0-bf17-4afa-8412-d9130a793d96@213.20.128.35 CSeq: 2 INVITE Contact: sip:213.20.128.35:9315 User-Agent: Windows RTC/1.0 Proxy-Authorization: Digest username="renatoduarte", realm="rnp.br", algorithm="MD5", uri="sip:renatoduarte@rnp.br", nonce="3cef753900000001771328f5ae1b8b7f0d742da1feb5753c", response=53fe98db10e1074b03b3e06438bda70f Content-Type: application/sdp Content-Length: 451

Continua com linhas SDP ...

A primeira linha indica que a mensagem INVITE usada para estabelecer uma sesso. A URI da primeira linha SIP 7170@rnp.br SIP/2.0 chamada de Request URI e contm a URI da pessoa chamada. Um SIP request pode conter um ou mais cabealhos Via, que so usados para guardar o endereo dos servidores por onde passa a requisio. Eles so utilizados para o roteamento de SIP Responses (respostas SIP). Esta mensagem INVITE contm apenas um cabealho Via criado pelo user agent que enviou a requisio. Sobre o campo Via podemos dizer que o user agent est executando no endereo 195.37.77.100, na porta 5060. Nos campos do cabealho To e From identifica-se quem ir receber o convite e de quem est sendo recebida a mensagem para determinada sesso. Tambm possui um campo Tag que serve como um identificador de dilogo.

Mensagem de resposta (SIP Response)


\\Caracterizada

pela utilizao de uma linha de status como linha de incio, da verso SIP;

formada por:
\\Identificao \\Cdigo \\Cdigo \\Frase \\Muito

de status numrico; de resultado com trs dgitos;

textual.

similares s requisies, exceto pela primeira linha.

64

\\Existem \\1xx \\2xx \\3xx \\4xx \\5xx \\6xx

seis classes do tipo SIP Responses:

Resposta informativa; Respostas de sucesso; Respostas de redirecionamento; Respostas de falha de requisio; Respostas de falha em servidor; Respostas de falha global.

A mensagem SIP Response composta de Verso do SIP (SIP Version), Cdigo de estado (Status code) e Motivo (Reason phrase):
\\Verso \\Status

do SIP 2.0 (atual); code informacional, Sucesso, Erro no Cliente ou Falha Global;

\\Reason

phrase frase resumida explicando o significado do cdigo de estado, podendo ser uma informao ou uma resposta final.

Exemplos:
\\SIP

2.0 486 busy here ou destino ocupado; neste caso uma resposta final, j que o destino no est disponvel; 2.0 180 ringing ou chamando; neste caso no uma resposta final, apenas um aviso para a origem de que a chamada est em processo de recebimento pelo destino.

\\SIP

Conforme foi visto, quando existe interfuncionamento com outras sinalizaes, necessrio estar atento correspondncia entre as mensagens de resposta SIP e as mensagens com causa nas outras sinalizaes. No primeiro exemplo, a mensagem SIP 2.0 486 usurio ocupado corresponde mensagem RLC (17) no H.323, e REL (17) na ISUP e no DSSI. J no segundo exemplo, a mensagem SIP 2.0 180 chamado corresponde mensagem alerting no H.323 e no DSS-1, e mensagem ACM (mensagem de endereo completo) na ISUP . 1xx Respostas provisrias, que dizem ao receptor que a requisio feita foi recebida, mas o resultado ainda est em processo. 2xx Respostas finais de sucesso, que o originador da requisio sempre receber. Tambm terminam transaes.

Captulo 2 Protocolo SIP 65

Introduo Voz sobre IP e Asterisk

3xx Respostas usadas para redirecionamento do chamador. Fornecem informaes sobre a nova direo do usurio ou sobre um servio alternativo que o chamador precisa usar para satisfazer a ligao. 4xx Resposta de falha de requisio, utilizada para indicar que houve erro da parte de quem enviou a requisio, erro na sintaxe ou devido ao mau preenchimento pelo servidor. 5xx Resposta de falha no servidor, utilizada para indicar erro da parte do servidor. 6xx Resposta de falha global, indicando que a resposta no pode ser completada em nenhum servidor. Exemplo:
Informational
100 180 181 182 183 Trying Ringing Call forwarded Queued Session Progress

Success
200 OK 300 301 302 380

Redirection
Multiple Choices Moved Perm. Moved Temp. Alternative Serv.

Request Failure
400 401 403 404 405 415 420 486 Bad Request Unauthorized Forbidden Not Found Bad Method Unsupp. Content Bad Extencions Busy Here 600 603 604 606 Busy Everwhe Decline Doesnt Exist Not Acceptable

500 501 503 504

Server Error Not Implemented Unavailable Timeout

Server Failure

Global Failure

Figura 2.5

\\1xx \\2xx \\3xx \\4xx

informativo, pedido recebido, sesso em progresso; sucesso, ao recebida, entendida e aceita com sucesso; Rrdirecionamento, ao adicional deve ser tomada para completar a sesso;

erro de cliente, sintaxe invlida ou por algum motivo a sesso no pode prosseguir (os motivos so listados); erro de servidor (os motivos so listados); falha global (os motivos so listados);

\\5xx \\6xx

No caso de interfuncionamento via gateway com redes telefnicas (ISUP) necessrio estar atento RFC 3398. As mensagens de respostas SIP so parcialmente baseadas no HTTP .

66

\\SIP/2.0

200 OK Via: SIP/2.0/UDP 192.168.1.30:5060;received=66.87.48.68 From: sip:sip2@iptel.org To: sip:sip2@iptel.org;tagi=794fe65c16edfdf45da4fc39a5d2867c.b713 Call-ID: 2443936363@192.168.1.30 CSeqi: 63629 REGISTER Contact: Msip:sip2@66.87.48.68:5060;transport=udp>;q=0.00;expi res=120 Server: Sip EXpress router (0.8.11pre21xrc (i386/linux)) Content-Length: 0 Warning: 392 195.37.77.101:5060 Noisy feedback tells: pid=5110 req_src_ip=66.87.48.68 req_src_port=5060 in_uri=sip:iptel.org out_uri=sip:iptel.org via_cnt==1 da mensagem: estruturada de campos de cabealho (header fields) aps a linha aos campos do cabealho das mensagens HTTP;

\\Cabealho

\\Sequncia

de incio;
\\Semelhantes \\Podem

ser includos em mensagens de:

\\Requisio; \\Resposta. \\Dependendo

da mensagem, os campos podem ser:

\\Obrigatrios; \\Opcionais; \\No \\Cada

aplicveis.

campo representado por uma linha:

\\Nome

do campo seguido de : e zero ou mais valores do campo separados por vrgula.

\\Alguns

campos permitem que o valor seja seguido de pares de parmetros separados por ;
\\Formados \\Nome \\ = \\Valor

por: do parmetro

do parmetro

\\Exemplo: \\Contact:

<sip:renato.duarte@rnp.br>;expires=3600

Este exemplo de SIP Response mostra que as respostas so bem similares s requisies, exceto na primeira linha, que contm a verso do protocolo (SIP/2.0), o cdigo da resposta e a frase textual. Os cdigos tm a inteno de serem
67

Captulo 2 Protocolo SIP

Exemplo de SIP Response

Introduo Voz sobre IP e Asterisk

processados pelas mquinas, no sendo muito amigveis aos humanos, mas facilitando para que as mquinas faam o parse deles. J a frase textual legvel aos humanos, descrevendo o resultado do processo.
\\As

mensagens SIP so codificadas usando a sintaxe HTTP v1 (RFC 2068);

\\Todas

as solicitaes de um usurio que deseja estabelecer uma sesso (por exemplo uma chamada telefnica) so chamadas de Requisio. Uma Requisio deve obrigatoriamente ter uma resposta, como a mensagem 486 (destino ocupado). Neste caso uma resposta final, j que o destino est ocupado.

Alguns campos podem estar nas mensagens de requisio e de respostas. Neste caso, so partes do cabealho nico. Caso o tempo definido por expires no seja suficiente, um proxy pode rejeitar a mensagem, informando o seu tempo, e o UAC enviar uma nova mensagem com a nova temporizao. Caso isso no ocorra, a mensagem ficaria presa no proxy aguardando tratamento, e a sesso seria encerrada por estouro de temporizao (session expires). Exemplo: se uma mensagem chegar a um proxy com expires=50 e o tempo de espera de 3600, o proxy poder enviar uma resposta solicitando a alterao do campo expires=50 para expires=3600. Neste caso o UAC enviar um novo INVITE com o parmetro alterado. Alguns campos do cabealho Via To From Call-ID CSeq ou Command Sequence Obs.: Descrio completa dos campos que compem o cabealho na RFC 3261, sesso 20.
\\Via

Contact Max-Forwards Content-Type Content-Length

Tabela 2.3

indica o endereo para o qual a requisio deve seguir e o endereo que as respostas devem tomar no momento da volta no roteamento das mensagens; especifica o destinatrio que deve receber a requisio; indica quem ir fazer a requisio; informa o identificador nico especfico para uma sesso;

\\To

\\From

\\Call-ID

\\Command

Sequence (Cseq) ordena transaes dentro de um dilogo, para prover uma identificao nica das transaes e diferenciar entre novas requisies e retransmisses de requisies;

68

\\Max-Forwards

serve para limitar o nmero de proxies ou gateways que podem enviar requisies para um prximo servidor; contm a descrio do corpo da mensagem, indicando o tipo de mdia do corpo da mensagem enviada ao destinatrio; indica o tamanho do corpo da mensagem. Campos para requisies Authorization Hide In-Reply-To Max-Forwards Priority ProxyAuthorization Proxy-Require Route Subject Response-Key Campos para respostas Authorization-Info Error-Info Min-Expires Proxy-Authenticate Retry-After Server Unsupported Warning WWWAuthenticate Campos para entidades

\\Content-Type

\\Content-Length

Campos gerais

Accept AcceptEncding AcceptLanguage Alert-Info Call-ID Call-Info Contact Cseq Date Encryption From MIME-Version Organization Record-Route Reply-To Require Supported Tabela 2.4 Categoria dos campos Timestamp To

Allow Content-Disposition Content-Encoding Content-Language Content-Length Content-Type Expires

Captulo 2 Protocolo SIP 69

\\Contact

prov uma URI em que o significado depende do tipo de requisio ou de resposta em que est. Pode conter o nickname de um usurio, uma URI com parmetros e parmetros do cabealho;

Introduo Voz sobre IP e Asterisk

Campos gerais

Campos para requisies

Campos para respostas

Campos para entidades

User-Agent Via
\\Campos

gerais possuem as informaes bsicas para tratamento das requisies e respostas; para requisies especficos para requisies, possibilitando prover informaes adicionais para o servidor a respeito da prpria requisio ou do cliente; para respostas especficos para mensagens de resposta, oferecendo mais informaes sobre o status indicado nessas mensagens; para entidades indicam o tipo e o formato das informaes presentes no corpo da mensagem, possibilitando que a aplicao apropriada para tratar a informao seja executada.

\\Campos

\\Campos

\\Campos

Exemplo de fluxo de mensagens:


Atlanta.com proxy Alice softfone Invite F1 100 Trying F3 Invite F2 100 Trying F5 180 Ringing F7 180 Ringing F8 200 OK F10 200 OK F11 ACK F12 Sesso de mdia Bye F13 200 OK F14 Invite F4 180 Ringing F6 200 OK F9 Biloxi.com proxy Bob SIP Phone

Figura 2.6

Neste exemplo, o proxy server recebe uma requisio INVITE e envia uma resposta 100 (trying) para o softphone da Alice. A resposta 100 (trying) indica que a requisio INVITE foi recebida e que o proxy est trabalhando por ela para rotear a mensagem INVITE para seu destino. Respostas no SIP usam cdigo com 3 dgitos seguidos de uma frase descritiva. Esta resposta contm os mesmos campos To, From, Call-ID, CSeq e Via, que permitem que o softphone da Alice correlacione a resposta com a mensagem INVITE enviada. O servidor proxy atlanta.com localiza o proxy no servidor biloxi.com, possivelmente executando um tipo de procura no
70

servidor de DNS para encontrar o servidor SIP que serve ao domnio biloxi.com. Como resultado, este obtm o endereo IP do servidor proxy biloxi.com e envia a requisio INVITE para l. Antes de enviar a requisio, o servidor proxy atlanta. com inclui um campo Via adicional, que contm seu prprio endereo. O servidor proxy biloxy.com recebe a requisio INVITE e responde com 100 (trying) ao servidor proxy atlanta.com, indicando que recebeu a requisio INVITE e a est processando. O servidor proxy consulta o banco de dados, geralmente chamado de location service, que contm o endereo IP atual do Bob. O servidor proxy biloxi. com adiciona outro campo Via no cabealho com o seu endereo para a requisio INVITE, e a envia ao telefone SIP do Bob. O telefone SIP do Bob recebe a requisio INVITE e alerta ao Bob que existe uma chamada de Alice, indicando essa ao com uma mensagem de resposta 180 (ringing), que roteada pelos dois proxies na direo reversa. Cada proxy utiliza o campo Via do cabealho para saber para onde enviar a resposta, depois disso eliminado-as do topo da mensagem. Quando o softphone da Alice recebe a resposta 180 (ringing), a informao passada para Alice, talvez utilizando tom de udio ringback ou mostrando uma mensagem na tela do softphone dela. Quando Bob atende ligao, o seu telefone SIP envia uma mensagem 200 (OK) para indicar que a ligao foi atendida. A mensagem 200 (OK) contm o corpo da mensagem juntamente com a descrio de mdia SDP (Session Description Protocol) do tipo de sesso que Bob est esperando estabelecer com Alice. Se Bob no atendesse chamada, uma mensagem de erro seria retornada em vez da mensagem 200 (OK), e a sesso de mdia no existiria.

Protocolo SDP
\\Session

Description Protocol (SDP): pela RFC 2327; para descrever sesses;

\\Definido \\Utilizado

\\Especifica

apenas o formato para a descrio das informaes trocadas entre entidades SIP . a ser utilizada; para a transmisso da mdia: de controle para transmisso.

\\Mdia

\\Informaes \\Padro

do codec;

\\Protocolo \\Para

a mdia, o SDP inclui as seguintes informaes: de mdia (vdeo, udio); de transporte (RTP / UDP / IP H.320); , da mdia (H.261 vdeo, MPEG vdeo).

\\Tipo

\\Protocolo \\Formato

Captulo 2 Protocolo SIP 71

Introduo Voz sobre IP e Asterisk

\\As

mensagens SDP podem ser transportadas mediante diferentes protocolos:

\\SIP; \\SAP; \\RTSP; \\Correio

eletrnico com aplicaes MIME ou protocolos como HTTP .

Session Description Protocol (SDP) ou Protocolo de Descrio de Sesso um formato para a descrio dos parmetros de inicializao de mdia streaming (contedo visto ou ouvido durante um envio de dados). Foi publicado pela IETF como RFC 2327 e substitudo pela RFC 4566. Durante o processo de estabelecimento de uma sesso, necessrio negociar a mdia a ser utilizada (voz, vdeo ou dados) e as respectivas informaes para a transmisso da mesma, como o padro do codec e o protocolo de controle para transmisso. Enquanto o SIP especifica o processo para o anncio da descrio das informaes de uma sesso, o SDP especifica apenas o formato para descrio das informaes. No campo mdia, o SDP usa um cdigo para listar os codecs que podero ser utilizados na sesso. Os cdigos correspondentes aos codecs para os diversos tipos de mdia so detalhados na RFC 3551. m=udio 3456 RTP/AVP 0, 3, 4 e 5 (0=PCM G711, 3=GSM, 4=G.723 e 5=DVI4) Neste caso a mdia udio, utiliza a porta UDP 3456, perfil udio e vdeo e aceita os codecs 0, 3, 4 e 5. Para identificar os codecs necessrio consultar a RFC 3551. As mensagens SDP podem ser utilizadas para conexes ponto a ponto ou pontomultiponto (multicast). O SDP no utilizado apenas pelo SIP Tambm pode ser . utilizado pelo protocolo de anncio de sesso (Session Announcement Protocol SAP), pelo protocolo de fluxo de tempo real (Real Time Streaming Protocol RTSP) para aplicaes baseadas em streaming, pelo correio eletrnico com aplicaes MIME (Multipurpose Internet Mail Extensions), descritas nas RFCs 2045 e 2046, e ainda pelo protocolo HTTP entre outros. ,

Sesses SDP
\\A

descrio das informaes de uma sesso SDP inteiramente representada de forma textual:
\\Facilita \\Permite

a portabilidade; uma variedade de formas de transporte;

\\Possibilita

que ferramentas baseadas em texto possam gerar e processar as descries das sesses:
\\Codificao

UTF-8;

72

\\Nomes

dos campos e atributos restritos ao subconjunto US-ASCII do UTF-8; textuais e valores dos atributos podem utilizar todo o conjunto de caracteres do UTF-8.

\\Campos

\\Uma

mensagem SDP composta por uma srie de linhas denominadas campos: nomes so abreviados por uma s letra; do campo = valor do campo. formatao das linhas de texto est descrita da seguinte forma:

\\Os \\A

\\Tipo \\A

descrio de uma sesso consiste de: do nvel de sesso:


\\Detalha

\\Descrio

informaes que devem ser aplicadas sesso como um todo e a todos os fluxos de mdia. ou mais descries do nvel de mdia: informaes que devem ser aplicadas a um fluxo de mdia especfico.

\\Zero

\\Detalha

A RFC 2327 possui o procedimento detalhado para sesses multimdia. A codificao UTF-8 (8-bit Unicode Transformation Format) uma codificao unicode de comprimento varivel, usa 4 bytes por caractere e necessita de apenas um byte para representar os 128 caracteres ASCII. A RFC 3629 (formato ISO 10646) informa que os tipos de campos e o detalhamento da sesso so detalhados nas RFCs 2327 e 4566, e a parte de mdia na RFC 3551. Tipo do campo v o s i u e p c b Valor do campo Verso do protocolo Originador ou criador da sesso e identificador da sesso Nome da sesso Informao sobre a sesso URI da descrio Endereo de e-mail Nmero do telefone Informao sobre a conexo Informao sobre largura de banda Presena obrigatria Sim Sim Sim No No No No No No Sim No No

Uma ou mais descries de horrio Tabela 2.5 Descrio da sesso z k Ajustes do time zone Chave de encriptao

Captulo 2 Protocolo SIP 73

Introduo Voz sobre IP e Asterisk

Tipo do campo a

Valor do campo Zero ou mais linhas de atributo da sesso

Presena obrigatria No No

Zero ou mais descries de mdia

O SDP um protocolo que permite fcil leitura. Portanto, em uma misso crtica necessria a criptografia e a autenticao de suas informaes. O processo de proteo para o protocolo SDP definido no cabealho SIP no campo Encryption. O , SDP utiliza caracteres ASCII e pode utilizar textos livres como informativos. A chave de criptografia utilizada neste protocolo para os canais de mdia definida na RFC 2327. O processo de criptografia e autenticao poder ser UAC-UAS ou Proxy-UAS. Tipo do campo t r Tipo do campo m i c b k a Valor do campo Horrio em que a sesso est ativa Zero ou mais horrios repetidos Valor do campo Nome da mdia e endereo de transporte Ttulo da mdia Informao sobre a conexo Informao sobre a largura de banda Chave de encriptao Zero ou mais linhas de atributo da mdia Presena obrigatria Sim No Presena obrigatria Sim No No No No No Tabela 2.7 Descrio da mdia Tabela 2.6 Descrio do horrio

Um servidor SIP que receber um campo SDP criptografado deve enviar suas respostas obrigatoriamente criptografadas. Para maior detalhamento dos valores do campo de mdia RTP e codecs, consulte a RFC 3551.

74

v=0 o=renatoduarte 2890842807 2890842807 IN IP4 serv.esr.rnp.br s=Resultado Anual u=http://www.esr.rnp.br/resultados c=IN IP4 serv.esr.rnp.br t=2873397496 0 m=audio 30530 RTP / AVP 0 97 101 a=rtpmap:0 PMCU/8000 a=rtpmap97 G726-32/8000 a=rtpmap101 G726/8000 a=ptime:20

\\V \\o \\s \\u \\c \\t

verso; originador, ID sesso, verso, tipo de rede, tipo de endereo, endereo; nome da sesso; URI de descrio; informao sobre a conexo;

tempo que a sesso est ativa (tempo de incio e tempo de parada, em segundos);

\\m

nome da mdia, endereo de transporte (porta), padro (RTP/udio e vdeo), tipos de codecs aceitos (RFC 3551); outros atributos sobre mdia, tais como modulao, portas UDP e codec.

\\a

Modos de comunicao SIP


\\Existem

dois modos de comunicao: direto: que um agente SIP envie requisies para outro agente.

\\Modo

\\Peer-to-peer; \\Permite \\Modo

indireto: servidor proxy;

\\Via

\\Normalmente

requer a presena de outros servidores de apoio que integram a infraestrutura de um sistema de telefonia baseado em SIP .

\\Modo

direto quando um cliente SIP j conhece o endereo do telefone SIP de interesse. Assim, possvel chamar diretamente para um nmero IP;

Captulo 2 Protocolo SIP 75

Exemplo de Sesso SDP

Introduo Voz sobre IP e Asterisk

\\Modo

indireto quando necessrio um servidor que conhea o endereo IP do usurio de interesse. Assim, as ligaes precisam de um servidor proxy para alcanarem seus destinos.

Comunicao peer-to-peer
(Protocolo SDP) Agente A 1. Invite 2. 180 Ringing 3. 200 OK 4. ACK 5. Voz ( RTP ) 6. Bye 7. 200 OK Comunicao peer-to-peer Agente B

Figura 2.7

1. Invite mensagem de requisio com todos os dados da origem para a conexo; 2. 180 ringing mensagem informativa de que o destino est recebendo chamada; 3. 200 OK mensagem final de que o destino atendeu, com o campo SDP definindo as mdias; 4. ACK resposta a uma mensagem final, que s existe para a mensagem 200 OK, confirmando as mdias; 5. Mudana de mdia pode ser realizada por re-invites, ou seja, novos invites na sesso; 6. Voz (RTP) troca de streams de udio utilizando os protocolos RTP/RTCP; 7. BYE requisio de desconexo pelo destino. Na telefonia tradicional PCM/TDM, a desconexo pelo destino temporiza no ponto de bilhetagem por 90 segundos. Aqui no existe nenhuma temporizao, pois a desconexo imediata; 8. 200 OK mensagem final, em resposta a uma requisio de desconexo.

76

INVITE sip: claudio@ rnp.br SIP/2.0 Via:SIP/2.0/UDP proxy. pop-rj.rnp.br; branch=4 Via:SIP/2.0/UDP proxy. pop-rj.rnp.br; branch=2 Via:SIP/2.0/UDP proxy. unb.br From:Daniel <sip:daniel@unb.br> To:Claudio <sip:claudio@rnp.br> Call-ID:12345@proxy. unb.br Cseq:2 INVITE Subject: Projeto fone@ RNP Contact: <sip:daniel@ proxy.unb.br> Record-Route: <sip:claudio@proxy. pop-rj.rnp. br;maddr=10.0.0.1>, <sip:claudio@proxy. pop-df.rnp.br; maddr=10.0.0.1> ...

SIP/2.0 100 Trying Via:SIP/2.0/UDP proxy. pop-rj.rnp.br; branch=4 Via:SIP/2.0/UDP proxy. pop-rj.rnp.br; branch=2 Via:SIP/2.0/UDP proxy. unb.br From:Daniel <sip:daniel@unb.br> To:Claudio <sip:claudio@rnp.br> Call-ID:12345@proxy. unb.br Cseq:2 INVITE Subject: Projeto fone@ RNP Contact: <sip:daniel@ proxy.unb.br> Record-Route: <sip:claudio@proxy. pop-rj.rnp.br; maddr=10.0.0.1>, <sip:claudio@proxy. pop-df.rnp.br; maddr=10.0.0.1> ...

ACK sip:claudio@rnp.br SIP/2.0 Via: SIP/2.0/UDP Proxy.unb.br From: Daniel sip:daniel@unb.br Call-ID: 12345@proxy. unb.br Cseq: 2 INVITE Subjet: Projeto fone@RNP Contact: sip:daniel@ proxy.unb.br Route: <sip:claudio@ proxy.pop-df.rnp.br; maddr=10.0.0.1>, <sip:claudio@proxy. pop-rj.rnp.br> ...

Requisio INVITE recebida pelo agente servidor


\\INVITE \\Via

Contedo da resposta 100 Trying enviada pelo agente servidor

Contedo da requisio ACK enviada pelo agente cliente

SIP destino, verso 2.0.;

campo que marca o trajeto da mensagem e para onde a resposta ser enviada. O objetivo indicar o caminha de volta. Facilita o controle da chamada, evita loops e auxilia a bilhetagem; campo utilizado para identificar a transao, inserido pela rede;

\\Branch=4

\\Record-Route

cabealho utilizado pelos proxies, que precisa estar no caminho da sinalizao durante todo o tempo da chamada, para fins de bilhetagem, por exemplo; utilizado para comunicao multicast;

\\Maddr \\SIP

2.0 Trying mensagem informativa e provisria em resposta ao INVITE. Equivalente chamada em progresso; parmetros so similares ao INVITE;

\\Outros

Note que o campo Route da mensagem ACK construdo com base no campo Record-Route da mensagem TRYING. Veja os detalhes na RFC 3261.

Captulo 2 Protocolo SIP 77

Comunicao via proxy

Introduo Voz sobre IP e Asterisk

Transaes e dilogos SIP


\\SIP

Transactions: de mensagens trocada entre os elementos de uma rede SIP; zero ou mais respostas provisrias e uma ou mais respostas finais; de: requisio; respostas para a requisio feita.

\\Sequncia \\Inclui

\\Consiste \\Uma

\\Vrias \\Entidades \\SIP

com noo de transaes so chamadas de stateful;

Dialogs: de transaes; uma relao SIP P2P (peer-to-peer) entre dois user agents;

\\Sequncia

\\Representa \\Facilita \\So

o sequenciamento e o roteamento das mensagens entre os terminais SIP; identificados por Call-ID, From tag, To tag; esses campos com o mesmo valor quando pertencem ao mesmo

\\Possuem

dilogo.

Uma transao consiste de uma requisio e todas as suas respostas. As requisies so ditas como transaes do cliente ou client transactions e as respostas so transaes do servidor ou server transactions. Um dilogo representa uma relao SIP peer-to-peer entre dois user agents. Tem certo tempo de durao e um conceito muito importante para os user agents. Os dilogos facilitam o prprio sequnciamento e roteamento das mensagens entre os terminais SIP So identificados pelos campos Call-ID, From e To. Mensagens que . pertencem ao mesmo dilogo precisam ter esses campos iguais. O campo CSeq usado para ordenar mensagens dentro de um dilogo, contendo nmero que precisa ser incrementado para cada mensagem enviada dentro de um dilogo. De outro modo, o terminal iria manipular as requisies e retransmisses fora de ordem. O nmero CSeq identifica a transao (requisio e respostas) dentro do dilogo. Isso significa que apenas uma transao em cada direo pode estar ativa dentro de um dilogo.

78

Primeira transao

Invite 100 Trying 200 OK ACK

Bye 200 OK
Segunda transao

Figura 2.8

Cliente

Servidor

1. INVITE contm as informaes de origem e destino (no H.323 so as informaes contidas na mensagem setup) e o campo SDP com as informaes de mdia (no H.323 so as informaes H.245); 2. 100 Trying chamada em progresso (na ISUP seria a mensagem Call Progress); 3. 200 OK mensagem final de atendimento; 4. ACK confirmao da mensagem e das mdias a serem utilizadas; 5. BYE requisio de desconexo; 6. 200 OK requisio aceita. Note que neste exemplo no foi enviada a mensagem RINGING.

Cenrios SIP
\\Alguns

cenrios SIP: Invitation; Termination; Messages.

\\Registration; \\Session \\Session \\Instant

\\Registration

processo em que um User Agent (UA) se registra via rede em um proxy de registro;

Captulo 2 Protocolo SIP 79

Exemplo:

Introduo Voz sobre IP e Asterisk

\\Session

Invitation usurio Agente Cliente (UAC) solicita o estabelecimento de uma sesso a um Usurio Agente Servidor (UAS); Termination trmino da sesso por iniciativa do UAS ou UAC, por temporizao, destino no acessvel, congestionamento na rede etc.; Messages durante uma sesso, UAC e UAS podem enviar mensagens sem encerrar a sesso.

\\Session

\\Instant

SIP Registration
\\Tem \\Se

a finalidade de registrar um user agent;

no houver registro, usurios com inteno de se comunicar no podero se comunicar; registro compreende: REGISTER enviada pelo user agent;

\\Um

\\Mensagem \\Mensagem \\Mensagem

200 OK enviada pelo servidor de registro, se o registro for bem-sucedido; 407 em caso contrrio.

O registro de um cliente SIP feito em um servidor de registro. Sua funo saber como encontrar os usurios caso haja uma ligao para eles. O registro e autenticao no SIP j pode ser feito com texto plano, mas devido a questes de segurana este mtodo no mais utilizado. Recomenda-se a utilizao de um desafio utilizando um nmero aleatrio enviado pelo servidor de registro. O cliente SIP faz algumas contas com o realm (domnio a que ele pertence), com o nmero aleatrio e com uma senha simtrica, portanto de conhecimento do cliente e do servidor. Estes dados servem de parmetros para um clculo tambm conhecido por ambos. O resultado deste clculo enviado ao servidor, que autentica (ou no) o usurio. Desta forma, a senha no trafega pela rede, aumentando significativamente a segurana na comunicao e mantendo o sigilo da senha. Este mtodo baseado no esquema de desafio implementado pelo HTTP e est , descrito na RFC 2617 (foi estendido pela RFC 3310).

80

Agente A

Servidor de proxy

Servidor de registro

REGISTER sip:registrar.bsb.com.br SIP/2.0 Via: SIP/2.0/UDP cxo.bsb.com.br From: < sip:claudio@bsb.com.br> To: < sip:claudio@bsb.com.br> Call-ID: 12345@cxo.bsb.com.br Cseq : 1 REGISTER Contact: < sip:claudio@cxo.bsb.com.br> Expire: 3600 Content-Length: 0

1. Register 2. 100 Trying 3. Register 4. 200 OK 5. 200 OK

Figura 2.9 1. O cliente solicita o registro;

2. Servidor proxy repassa a solicitao de registo para o servidor de registro; 3. Servidor de registro verifica os dados e autentica ou nega a autenticao; 4. Neste exemplo, o registro foi aceito e confirmado pela mensagem 200 OK.

Session Invitation
\\Consiste \\O

em uma requisio INVITE, geralmente enviada ao proxy;

proxy imediatamente envia uma resposta com a mensagem 100 Trying; acabar com as retransmisses;

\\Finalidade: \\Todas

as respostas geradas pelo UA chamado so devolvidas ao UA chamador.

O convite (Invitation) talvez seja a mensagem mais comum no SIP e deve ser , respondido imediatamente com um 100 Trying para indicar ao chamador que o convite foi recebido e est sendo tratado.
Chamador Servidor proxy 1. Invite 2. 100 Trying 3. Invite 4. 100 Trying 5. 180 Ringing 6. 180 Ringing 7. 200 OK 8. 200 OK 9. ACK RTP Streams Chamado

Figura 2.10
81

Captulo 2 Protocolo SIP

Exemplo:

Introduo Voz sobre IP e Asterisk

1. Como o chamador geralmente no tem a informao do endereo de destino, solicita ao servidor proxy o encaminhamento da requisio INVITE para o chamado; 2. O servidor proxy envia mensagem informativa de chamada em progresso, indicando que est tratando a chamada; 3. O servidor localiza o endereo do destino e envia o INVITE. O servidor poderia ter vrios endereos do destino, caso em que seriam enviados diversos INVITES, um para cada destino; 4. O usurio chamado envia ao servidor a informao de que est processando a chamada (100 Trying); 5. Na sequncia, informa para o proxy que o telefone est chamando e aguardando atendimento; 6. O servidor proxy repassa ao chamador a informao de que o destino est recebendo (Ring). Neste momento, o telefone do chamador comea a tocar; 7. O atendimento acontece e a mensagem 200 OK enviada ao proxy; 8. O proxy envia para o chamador a resposta 200 OK, para que retire o tom de controle e abra os canais de udio RTP/RTCP; 9. Uma ltima confirmao enviada do chamador para o chamado atravs da mensagem ACK; 10. dado o incio ao transporte da mdia, voz ou vdeo.

Session Termination
\\Tem

a finalidade de terminar uma sesso; dois tipos de trmino de sesso:

\\Possui

\\Direta; \\Envia

uma requisio BYE para o outro UA envolvido, e este responde com uma mensagem 200 OK. proxy.

\\Via

Assim como o INVITE, a terminao da chamada pode ser realizada de forma direta ou indireta, ou seja, a mensagem utilizada para desconexo da chamada (BYE) pode ser enviada diretamente para o usurio na outra ponta da chamada ou atravs do proxy. Em ambientes em que necessrio ter controle total das chamadas, por exemplo para fins de bilhetagem (cobrana das chamadas), imprescindvel que o BYE seja enviado para o proxy, para que este possa registrar o final das chamadas.

82

UA1 1. BYE Forma direta

SIP proxy

UA2

2. 200 OK

1. Bye 2. Bye

Figura 2.11

Forma indireta 4. 200 OK

3. 200 OK

A figura ilustra duas situaes de como pode ocorrer o trmino de uma sesso. A primeira mostra a forma direta, na qual os dois users agents negociam o trmino da sesso diretamente. A segunda mostra a forma indireta, onde um SIP proxy est no meio da comunicao entre os dois clientes, roteando as mensagens.

Instant Messages (IM)


\\Instant

Messages so enviadas utilizando requisies do tipo MESSAGE; deste tipo no estabelecem dilogos;

\\Mensagens \\O

texto da IM transportado no corpo (body) da requisio SIP .

UA1

SIP proxy 1. Message 3. 200 OK 4. 200 OK 6. Message 5. Message 2. Message

UA2

Figura 2.12

7. 200 OK 8. 200 OK

Segundo a figura, UA1 envia mensagem para o proxy, pois no possui o endereo de UA2 ou por programao da rede, para que o proxy tenha o controle da chamada.
\\O

envio das mensagens instantneas est definido na RFC 3428.

Captulo 2 Protocolo SIP 83

Exemplo:

Introduo Voz sobre IP e Asterisk

84

2
Roteiro de Atividades
Tpicos e conceitos
\\Instalao \\Anlise

do servidor OpenSER.

do trfego de pacotes SIP na rede utilizando uma ferramenta de captura de trfego.

Competncias tcnicas desenvolvidas


\\Capacidade

de identificar e analisar o trfego de pacotes SIP na rede.

Tempo previsto para as atividades


\\1

hora a 1h30 minutos (trabalho em grupo).

Preparando o ambiente
Descompacte a mquina virtual Debian para o desktop e troque o nome do diretrio para OpenSER.

Atividade 1 Instalando o OpenSER


Nesta atividade efetuaremos a instalao do OpenSER em uma mquina virtual Debian. O OpenSER um sistema que implementa as funes SIP proxy, registrar e redirect server. Passo 1: inicie a mquina virtual com sistema operacional Debian no diretrio OpenSER.

85

Introduo Voz sobre IP e Asterisk

Se for apresentada a tela abaixo, selecione a opo I copied it.

Figura 2.13 Passo 2: efetue login com o usurio root e senha rnpesr e em seguida verifique se a mquina virtual obteve a configurao correta da rede, efetuando o comando ifconfig. Qual foi o IP obtido na rede?

Passo 3: execute o comando apt-get update; no ocorrendo erro instale o pacote openser com o comando apt-get install openser. Aguarde o fim da instalao. Passo 4: a configurao do OpenSER feita no arquivo openser.cfg, localizado no diretrio /etc/openser. O arquivo organizado em 3 sesses: configuraes globais, configuraes dos mdulos e lgica de roteamento. Neste curso simplesmente usaremos a configurao default do OpenSER. Passo 5: para iniciar e parar o servio do OpenSER, experimente:
# openserctl start # openserctl stop

Para monitorar o funcionamento do OpenSER, experimente:


# openserctl monitor

86

Passo 1: inicie o cliente X-Lite e o configure de modo a se registrar no servidor OpenSER instalado anteriormente. Observe se a mensagem Ready ser exibida no display do cliente.
Display Name: 10XX User name: 10XX Password: voip Authorization user name: 10XX Domain: <IP_do_servidor_OpenSER> Domain Proxy: <IP_do_servidor_OpenSER>

Passo 2: configure o Telefone IP de modo a se registrar no servidor OpenSER. Passo 3: configure o ATA de modo a se registrar no servidor OpenSER.
Proxy: <IP do servidor OpenSER> Display Name: Entre com o seu nome completo User ID: 30XX Password: voip Register Expires: 3600

Passo 4: volte para a mquina virtual e certifique-se de que os clientes foram registrados visualizando a lista de peers no OpenSER, utilizando o comando:
# openserctl ul show

Passo 5: encerre o X-Lite. Inicie o Wireshark com modo promscuo desabilitado e insira um filtro para o protocolo SIP Reinicie o X-Lite novamente, usando a nova . configurao, e observe a autenticao do cliente com o servidor. No trmino da autenticao, pare e salve a captura de pacotes como registrando.pcap. Passo 6: no Wireshark, abra o arquivo salvo registrando.pcap. Com base nas informaes capturadas, responda ao questionrio abaixo: 1. Sobre qual protocolo de transporte o protocolo SIP trafega na rede?

2. Quais as portas de comunicao entre cliente SIP e gatekeeper?

Captulo 2 Protocolo SIP 87

Atividade 2 Captura e identificao da troca de mensagens entre os clientes SIP e o OpenSER

Introduo Voz sobre IP e Asterisk

3. Detalhe o Status-Line do protocolo SIP e informe a sua verso.

4. Em Status-Code, informe a sequncia obtida durante a autenticao.

5. Durante o processo de autenticao entre cliente e servidor, qual o comportamento observado?

Passo 7: crie uma tabela de estatstica utilizando o Wireshark, clique em Statistics>SIP e em seguida em Create Stat, e preencha o quadro abaixo de acordo com o resultado obtido na captura.

Figura 2.14

88

Esta atividade dever ser realizada em dupla. Passo 1: inicie o Wireshark com modo promscuo desabilitado, insira um filtro para o protocolo SIP e em seguida inicie os clientes X-Lite, Telefone IP e ATA. Efetue uma chamada entre os clientes, mantenha um dilogo entre eles, finalize a captura e salve como ligando.pcap. Passo 2: no Wireshark abra o arquivo ligando.pcap, acesse o menu Statistics e em seguida selecione a opo Flow Graph. Com as informaes exibidas, responda ao questionrio a seguir: 1. Quais os endereos de origem e destino durante a ligao?

2. Por que a primeira requisio INVITE foi negada?

3. Qual a sequncia de pacotes durante o encerramento de uma ligao?

Captulo 2 Protocolo SIP 89

Atividade 3 Captura e identificao da troca de mensagens entre os clientes SIP

Introduo Voz sobre IP e Asterisk

Atividade 4 Decodificando os pacotes capturados para escutar a conversa entre os clientes


Inicie o Wireshark, abra o arquivo ligando.pcap, acesse o menu Statistics e em seguida selecione VoIP Calls. Selecione a captura e execute o Player, conforme ilustra a figura a seguir. Em seguida ser exibida uma tela onde dever ser executado o Decode. A partir deste instante escutaremos a conversa realizada entre os clientes.

Figura 2.15 Na tela a seguir voc poder selecionar o canal que escutar ou ambos os canais.

Figura 2.16 1. Quais as opes de codecs anunciadas?

90

2. Existem mensagens provisrias antes de 200 OK?

3. Qual o codec de udio utilizado durante a ligao?

4. Qual a porta utilizada para o transporte de udio?

Captulo 2 Protocolo SIP 91

92

3
Recomendao H.323

Sumrio
Introduo recomendao H.323 . . . . . . . . . . . Componentes da arquitetura H.323 . . . . . . . . . . . Pilha de protocolos H.323 . . . . . . . . . . . . . . Fluxos de controle e sinalizao . . . . . . . . . . . . Recomendao H.225.0 . . . . . . . . . . . . . . . Mensagens RAS . . . . . . . . . . . . . . . . . . Controle de mdia . . . . . . . . . . . . . . . . . Modos de operao . . . . . . . . . . . . . . . . Estabelecimento de chamadas . . . . . . . . . . . . Chamada direta entre pontos finais . . . . . . . . . . . Chamada entre pontos finais registrados no mesmo gatekeeper . Chamada entre pontos finais em que somente um registrado em Chamada entre pontos finais registrados em gatekeepers distintos Estabelecimento de canal de controle H.245 . . . . . . . . Uso dos servios da chamada . . . . . . . . . . . . . Recomendaes H.235 . . . . . . . . . . . . . . . Recomendao H.460 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . gatekeeper . . . . . . . . . . . . . . . . . . . . . 94 . 96 . 98 . 99 . 99 . 101 . 103 . 105 . 106 . 107 . 108 . 110 . 113 . 115 . 116 . 117 . 118

Roteiro de Atividades . . . . . . . . . . . . . . . . . . . . . 119 Atividade 1 Instalando o GnuGK . . . . . . . . . . . . . . . . . 119 Atividade 2 Analisando a captura feita pelo Wireshark . . . . . . . . 124

93

Introduo Voz sobre IP e Asterisk

Introduo recomendao H.323


\\H.323

uma srie de recomendaes produzidas pelo ITU-T para sistemas de conferncia audiovisual; recomendaes so projetadas para: interoperabilidade entre elas; que usurios de sistemas de conferncias possam se comunicar e usar diferentes tecnologias de rede. recomendaes: para conferncias sobre RDSI-FL; para conferncias sobre RDSI-FE; para conferncias sobre LANs que proveem garantias de QoS; para conferncias sobre RTPC. ponto-a-ponto e multiponto: H.323 podem ser estabelecidas entre dois ou mais usurios.
\\Permitir

\\As

\\Possibilitar

\\Outras

\\H.310, \\H.320, \\H.322, \\H.324, \\Prov

suporte a:

\\Conferncias

\\Chamadas

\\Heterogeneidade: \\Um

equipamento em um sistema H.323 deve dar suporte obrigatrio comunicao de udio. e gerncia: H.323 podem ser bloqueadas com base no nmero de chamadas j estabelecidas, limitaes na banda ou restries de tempo.

\\Contabilidade \\Chamadas

\\Prov

suporte a: autenticao de usurios e para a privacidade e no-repdio de dados trocados entre eles. suplementares; a elaborao e o desenvolvimento de servios adicionais.

\\Segurana: \\Suporte \\Servios \\Permite

O protocolo H.323 teve seu desenvolvimento iniciado pelo ITU na dcada de 90 e ao longo do perodo foram desenvolvidas diversas verses.
\\V.1 \\V.2

provisria, possua muitas deficincias e no foi implementada;

melhoramento da V.1, introduzia as facilidades Fast Connect, Tunelamento e Overlap; permitia escolha de lngua, servios suplementares at 450.7;

\\V.3 \\V.4

introduo de servios suplementares 450.8 a 450.11, possibilidade de gatekeeper alternativo, tunelamento Q.SIG e ISUP URL, capacidade de , chamadas pr-pagas, DTMF via RTP; tunelamento DSS-1, Srie 460.x (portabilidade, status do enlace etc.);

\\V.5

94

A ltima verso do protocolo H.323 (V.6), de junho de 2006, administra:


\\Registro

de usurios; de destinos em endereos URI, IPv4, IPv6 ou telefnicos via gateway;

\\Localizao \\Largura

de banda e escolha de codecs; de chamadas, conexo e desconexo; multimdia centralizadas e descentralizadas;

\\Controle

\\Conferncias \\Banco

de dados de endereamento;

\\Estatsticas; \\Bilhetagem,

entre outros registros.

Segurana na comunicao do protocolo H.323


O protocolo H.323 permite comunicao segura entre seus dispositivos, aplicando criptografia e autenticaes das mensagens de sinalizao e criptografia das mensagens de voz (RTP) e de controle (RTCP). O protocolo Transport Layer Security (TLS) aplica segurana, atravs de criptografia, na camada de transporte em redes IP sendo o sucessor do protocolo Secure Sockets , Layer (SSL). O protocolo TLS permite:
\\Negociao \\Chaves

de algoritmos;

de autenticao; de mensagens.

\\Autenticao

Grande parte das aplicaes de segurana so proprietrias, dificultando o interfuncionamento com redes de fornecedores diferentes, sendo um ponto impactante nos projetos que necessitam de segurana pela sua criticidade.

Servios suplementares e adicionais


Os servios suplementares definidos nas recomendaes so limitados. Para suprir as necessidades do mercado, algumas empresas desenvolvem servios adicionais na maioria das vezes proprietrios, sendo outro fator impactante a considerar no caso de redes com diversos fornecedores. Principais servios suplementares:
\\450.2 \\450.3

(Call Transfer) transferncia de chamadas; (Call Diversion) desvio de chamada;

Captulo 3 Recomendao H.323 95

\\V.6

as verses anteriores s permitiam codec ITU que necessitavam de licena. A nova verso permitiu codecs de fonte aberta, tais como iLBC e GSM.

Introduo Voz sobre IP e Asterisk

\\450.4 \\450.5 \\450.6 \\450.7 \\450.8 \\450.9

(Call Hold) reteno de chamada; (Call Park e Call Pickup) reteno e retomada; (Call Waiting) chamada em espera; (Message Call Waiting) mensagem de chamada em espera; (Call Completion) procedimentos no caso de ocupado;

(Display) tambm conhecido por bina, permite exibir no telefone de destino o nmero do chamador; (Call Intrusion) intruso na chamada.

\\450.10

Componentes da arquitetura H.323


\\Terminais: \\Podem

ser um telefone IP ou uma aplicao executada em um computador com recursos multimdia.

\\Gateways: \\So

necessrios no momento em que dois terminais desejam estabelecer comunicao entre diferentes tipos de rede. (GK): utilizado para controlar acesso s redes de comunicao.

\\Gatekeeper

\\Normalmente \\Multipoint \\Realiza

Control Unit (MCU):

as funes de controle e autorizao de novos participantes para conferncias.

Intranet/Intranet

ISDN H.320

H.323 Terminal H.323 Gatekeeper H.323 MCU H.323 Gateway H.323 Terminal Internet/Intranet SIP
ATM H.310. H.321 PSTN H.324

Figura 3.1

O gatekeeper (GK) responsvel por:


\\Resoluo

de nomes; do destino, j que possui o banco de endereos dos seus usurios;

\\Identificao

96

\\Mobilidade

pessoal.

O gateway (GW) um tradutor multimdia que interconecta os elementos H.323 a outros ambientes de redes e protocolos. Um fator importante a considerar que as facilidades comuns ficam no GK ou no GW, como correio de voz e msica de espera. No caso de chamadas diretas de um terminal H.323 com outro terminal H.323 via barramento, as facilidades anteriores so perdidas, j que ficam armazenadas no GK. Grande parte dos terminais so proprietrios, o que significa que o terminal de um fabricante A no funciona na rede do fabricante B. So raros os fabricantes que aceitam terminais de fonte aberta. importante lembrar que os gateways com a rede telefnica tm que criar certas condies que o H.323 no possui, como o gerador de tom de controle (RBT), que no H.323 gerado na origem, enquanto na rede telefnica gerado no destino. As chamadas com sobrediscagem originadas em aparelhos decdicos so barradas nos codecs. Exemplo: um usurio disca para um nmero de call center e recebe um menu de orientao com as alternativas. Ao sobrediscar a alternativa escolhida (aparelho decdico) a sobrediscagem perdida, porque o destino no consegue interpretar corretamente a informao, alterada pela interferncia dos codecs. Os gateways com a rede telefnica possuem, no lado de telefonia, interface E-1, conforme a prtica TB 220-250-707, sinalizaes CAS E&M, R2 ou Canal Comum DSS-1 com a rede pblica de telefonia e Q.Sig com redes corporativas de PABX. No lado com a rede IP geralmente a interface Ethernet e a sinalizao H.323 , (poderia ser IAX, SIP). A gerncia da rede decide se programar o GK para ter todo o controle das mensagens de sinalizao ou se no ir habilitar essa opo. Exemplo: um GK pode necessitar apenas da funo RAS, sendo que as mensagens Q.931 poderiam ser trocadas diretamente com os pontos finais.
Zona Uma zona uma regio H.323 formada pelo conjunto de terminais, gateways e MCUs controlados por um nico gatekeeper. Uma zona pode abranger redes distintas.

Todos os usurios de uma zona devem ser registrados no GK que a controla. No caso de necessidade de controle da chamada, o GK pode solicitar, durante o processo RAS, que todas as mensagens Q.931 e H.245 utilizadas para o estabelecimento da chamada sejam feitas atravs dele. Tal processo realizado com o GK enviando para o telefone ou gateway de origem o seu prprio endereo e porta, com destino. A mensagem recebida encaminhada pelo GK para o destino, que pode ser outro GK ou o telefone de destino, a depender da negociao durante o processo RAS (Registro, Admisso e Status). O controle de admisso de chamadas feito atravs do protocolo H.225 RAS. A gerncia da banda feita atravs das mensagens H.225, Q.931 e H.245 UDP . Uma MCU ou Unidade de Controle Multiponto o dispositivo da arquitetura H.323 responsvel pelas conferncias. Ela coordena os fluxos de udio, vdeo e dados, de forma que todos os participantes recebam os mesmos fluxos de forma coerente.

Captulo 3 Recomendao H.323 97

\\Realizao

de controle de chamadas;

Introduo Voz sobre IP e Asterisk

A MCU formada por dois elementos bsicos:


\\O

Controlador Multiponto (MC), parte obrigatria da MCU, responsvel pela negociao do protocolo H.245 para determinao das caractersticas de udio e vdeo dos terminais. Se houver algum participante utilizando transmisso multicast, o MC tambm fica responsvel por este controle; Processador Multiponto (MP), parte opcional da MCU, trata os fluxos de udio, vdeo e dados de uma conferncia. Os fluxos de mdia no passam pelo MC. Descrio Transporte de dados (texto, imagem, fax, sinais de modem)

\\O

Padres T.38 T.120 V.150.1 RTP RTCP (IETF) H.245 H.225.0 H.246 H.248 H.235 H.450.x H.460.x H.501 H.510 H.530

Transporte de udio e vdeo Protocolos de controle e sinalizao Interoperabilidade com redes telefnicas comutadas por circuitos Segurana em sistemas baseados no protocolo de controle H.245 Servios suplementares Extenses aos servios de sinalizao do protocolo H.255.0 Gerncia e segurana de usurios, terminais e servios em ambientes mveis Tabela 3.1

A recomendao H.323 formada por um conjunto de outros padres e recomendaes. Ela indica uma srie de ponteiros para vrios outros documentos. Os padres listados na tabela especificam os principais servios, protocolos e procedimentos adotados em sistemas H.323.

Pilha de protocolos H.323


\\Dados

textuais: (ITU T.120); para intercmbio de dados (textos e imagens estticas);

\\T.120

\\Padro

\\Depende

de um conjunto de outros padres e recomendaes: T.122, T.124, T.125, T.126 e T.127. e vdeo: RTP e RTCP .

\\udio

\\Protocolos

98

O protocolo RTP utiliza UDP para transportar a mdia, em uma porta negociada durante o estabelecimento da chamada. O RTCP utiliza uma porta acima do RTP . Tais protocolos so utilizados tambm pelo SIP para transporte de mdia.

Fluxos de controle e sinalizao


\\Existem

trs padres de protocolos utilizados para controle e sinalizao: RAS;

\\H.225.0; \\H.225.0 \\H.245. \\O

protocolo H.225.0 utilizado para o estabelecimento de chamada entre dois dispositivos H.323. protocolo H.225.0 RAS utilizado com um gatekeeper para controle de admisso e resoluo de endereos. protocolo H.245, por sua vez, utilizado para controlar a comunicao entre os dispositivos. padro H.225.0 RAS utiliza a porta TCP 1718 para conexes multicast e a porta TCP 1719 para conexes unicast. padro H.225 Q.931 utiliza a porta TCP 1920. padro H.245 utiliza portas TCP dinmicas.

\\O

\\O

\\O

\\O \\O

Recomendao H.225.0
\\Sinalizao \\H.323 \\O

de chamadas:

utiliza o protocolo H.225.0 para a sinalizao das chamadas;

protocolo H.225.0 utiliza um subconjunto das mensagens definidas nas recomendaes:


\\Q.931; \\Q.932.

\\Mensagens

de sinalizao H.225.0: de chamadas:

\\Estabelecimento \\Setup;

\\CallProceeding; \\Alerting; \\Progress;

Captulo 3 Recomendao H.323 99

Descrito na RFC 3550, o protocolo RTP utilizado para transporte de udio e vdeo. O protocolo RTCP parte do RTP utilizado para o seu controle, e descrito na , , mesma RFC.

Introduo Voz sobre IP e Asterisk

\\Connect. \\Encerramento

de chamadas:

\\ReleaseComplete. \\Outros: \\Status/StatusEnquiry; \\Facility.

O protocolo Q.931 utilizado para estabelecer o canal de sinalizao. A seguir suas principais mensagens:
\\Setup

(M) mensagem enviada com a finalidade de estabelecer uma conexo, podendo ser enviada diretamente do terminal de origem para o terminal ou gatekeeper de destino, ou via gatekeeper; proceding (O) mensagem enviada pelo destino informando que todos os dados relativos chamada foram recebidos e nenhuma informao adicional ser aceita; (O) mensagem enviada pela origem com informaes complementares, por exemplo, para envio de dgitos por OverLap aps a mensagem Setup; (M) mensagem enviada do destino para a origem, indicando que o terminal de destino est iniciando o toque de campainha e que o terminal de origem deve iniciar o envio do tom de controle da chamada; (M) mensagem enviada pelo destino informando que a chamada foi aceita pelo usurio chamado; Complete (M) mensagem enviada pela origem ou pelo destino informando que a chamada foi desconectada e que o canal est livre; (M) mensagem enviada em ambas as direes para relatar condies de erro;

\\Call

\\Information

\\Alerting

\\Connect

\\Release

\\Status \\Notify

(O) mensagem enviada em ambos os sentidos com informaes sobre uma chamada, tal como usurio suspenso; (O) mensagem enviada para a origem para indicar inter-funcionamento;

\\Progress \\Facility

(M) utilizada para servios suplementares, tal como redirecionamento de uma chamada.

Tipos de mensagens:
\\M \\O

(mandatrio); (Opcional); restantes (F) no so utilizadas no H.323.

\\Mensagens

O protocolo Q.932 prov mensagens para suporte aos servios suplementares:


\\Facility \\Hold

mensagem utilizada para requisitar uma facilidade de servio suplementar;

(Ack/Rej) facilidade de reteno;

100

\\Register \\Notify

(Ack/Rej) registro de um evento;

(Ack/Rej) notificao de evento.

Mensagens RAS
\\Registro, \\As

Admisso e Status;

funes de RAS (Registration Admission Status) incluem: de gatekeepers; de pontos finais; de pontos finais; de banda e notificao de estado.

\\Descoberta \\Registro

\\Localizao \\Gerncia \\Mensagens

H.225.0 RAS: (GatekeeperReQuest); (GatekeeperConFirm); (GatekeeperReJect). (RegistrationReQuest); (RegistrationConfirm); (RegistrationReJect); (UnRegistrationReQuest); (UnRegistrationConfirm); (UnRegistrationReJect). H.225.0 RAS: (LocationReQuest); (LocationConFirm); (LocationReJect). de admisso: (AdmissionReQuest); (AdmissionConfirm); (AdmissionReject). de banda: (BandwidthReQuest); (BandwidthConfirm); (BandwidthReject).

\\Descoberta: \\GRQ \\GCF \\GRJ

\\Registro: \\RRQ \\RCF \\RRJ \\URQ \\UCF \\URJ \\Mensagens

\\Localizao: \\LRQ \\LCF \\LRJ

\\Controle \\ARQ \\ACF \\ARJ

\\Alterao \\BRQ \\BCF \\BRJ

101

Captulo 3 Recomendao H.323

\\Retrieve

(Ack/Rej) facilidade de recuperao;

Introduo Voz sobre IP e Asterisk

\\Mensagens \\Informao \\IRQ \\IRR

H.225.0 RAS; de estado: (InfoReQuest);

(InfoReQuestResponse); (InfoReQuestAck); (InfoReQuestNak). (DisengageReQuest); (DisengageConfirm); (DisengageReject).

\\IACK \\INAK

\\Desengajamento: \\DRQ \\DCF \\DRJ

As mensagens RAS podem ser trocadas entre os terminais e o GW, entre GW e GK ou entre terminais e GK, dependendo da configurao da rede.
\\GK

Discovery (Descobrindo GK) processo utilizado pelo terminal ou GW para descobrir o seu GK: o terminal envia mensagem GRQ (GatekeeperRequest), onde um ou mais GKs podem responder com as mensagens GCF ou GRJ. O GK procurado responde com GCF e os demais respondem com GRJ; para as demais mensagens o procedimento semelhante. Registration (Registrando no GK) executado aps o terminal identificar o seu GK; o terminal envia mensagem RRQ (RegistrationRequest) para o GK, e a mensagem RRQ deve possuir o endereo e o pseudnimo a ser registrado. Caso no seja especificado, o GK adicionar um na mensagem RCF. O GK pode a qualquer momento cancelar a RRQ. Request (Localizando GK) executado quando um GK deseja descobrir o GK que controla o terminal de destino, e envia a mensagem LRQ para os GKs mais prximos, com o campo TTL=1 e com informaes de quem se deseja conectar. Caso o destino no esteja nas zonas verificadas, recebendo LRJ dos GKs consultados, o GK iniciar uma busca em nuvem crescente, aumentando progressivamente o campo TTL, at que receba a mensagem LCF com o endereo do GK procurado do prprio terminal de destino. Admission (Admisso de uma chamada) deve ser executado para cada chamada que for realizar. Um terminal solicita permisso ao GK para encaminhar uma chamada atravs da mensagem ARQ (AdmissionRequest), informando o tipo de comunicao, endereo, banda e tipo de codec. O GK responder com a mensagem ACF, definindo banda, endereo de destino e obrigatoriamente determinando se a chamada feita diretamente (entre os gateways ou terminais) ou se ser via GK. A alterao de banda realizada de maneira similar: uma alterao de banda poder ser solicitada por qualquer uma das partes, atravs da mensagem BRQ (BandwidthRequest). O terminal remoto s realizar a mudana de banda aps enviar uma mensagem BRQ ao seu GK de controle e receber uma BCF. Por exemplo, um terminal poder solicitar largura de banda adicional para abrir canal de vdeo atravs da mensagem BRQ.

\\GW

\\Location

\\Call

102

Controle de mdia
\\Sistemas

H.323 usam mensagens de controle de mdia definidas na recomendao H.245; recomendao H.245 define as seguintes funes: de capacidades; e encerramento de canais lgicos; de mestre e escravo;

\\A

\\Troca

\\Estabelecimento \\Determinao \\Notificaes. \\Mensagens

de controle H.245: mestre e escravo:

\\Determinao

\\MasterSlaveDetermination; \\MasterSlaveDeterminationAck; \\MasterSlaveDeterminationReject; \\MasterSlaveDeterminationRelease. \\Troca

de capacidades:

\\TerminalCapabilitySet; \\TerminalCapabilitySetAck; \\TerminalCapabilitySetReject; \\TerminalCapabilitySetRelease. \\Comando: \\EndSessionCommand. \\Sinalizao

de canais lgicos:

\\OpenLogicalChannel; \\OpenLogicalChannelAck; \\OpenLogicalChannelReject; \\OpenLogicalChannelConfirm; \\CloseLogicalChannelAck; \\RequestChannelClose; \\RequestChannelCloseAck;

103

Captulo 3 Recomendao H.323

Mensagens de status com informaes de estado so trocadas periodicamente entre os terminais e o GW, e entre GW e GK. A qualquer momento ou periodicamente, um GK poder solicitar informao de estado de um terminal (atravs da mensagem IRQ), recebendo como resposta a mensagem IRR (InformationRequestResponse) dos terminais ou GW sobre o estado da chamada. Qualquer um dos terminais ou GK podem cancelar uma conexo atravs da mensagem DRQ (DesengageRequest), e o destino responder com uma mensagem DCF.

Introduo Voz sobre IP e Asterisk

\\RequestChannelCloseReject; \\RequestChannelCloseRelease.

Em relao s capacidades dos pontos finais, h demanda por um procedimento que permita determinar configuraes compatveis entre eles antes que fluxos de udio, vdeo e dados textuais sejam criados. Sistemas H.323 usam mensagens definidas na recomendao H.245 para proceder com o controle de mdias. Em relao troca de capacidades, os pontos finais informam uns aos outros suas capacidades de transmisso e recepo em termos de: codecs, tipos de mdia aceitos e taxa de bits tolerveis. As mensagens H.245 controlam a abertura e o fechamento dos canais lgicos de uma chamada, determinam as figuras do mestre e do escravo e estabelecem mensagens em caso de conflitos entre pontos finais. Definem uma srie de outras mensagens que permitem a notificao entre pontos finais. Por exemplo:
\\Problemas

de comunicao; de retardo.

\\Determinao

Fast Start
Considerando o tempo de ida e volta de cada mensagem gasto durante o processo de admisso (ARQ/ACF), descrito basicamente nas mensagens abaixo: 1. Utilizando o protocolo de transporte UDP na troca de mensagens setup e Connect no tempo de ida mais o de volta; 2. Utilizando o protocolo de transporte TCP na abertura de canais lgicos H.245 no tempo de ida mais o de volta; 3. Utilizando o protocolo de transporte TCP durante o tempo de ida e de volta para procedimento Mestre-Escravo em conferncias. Logo, a soma desses tempos um valor muito elevado, prejudicando o estabelecimento das chamadas H.323. Para reduzir o tempo do processo de estabelecimento de uma chamada e habilitar os canais de mdia imediatamente aps o envio da mensagem Setup, a mensagem H.245 fast start inserida na mensagem Setup enviada. Caso o destino aceite, retornar nas prximas mensagens Q.931 o elemento fast start em 1 (verdadeiro); caso contrrio, o parmetro ser mantido em 0 (falso) e ser retornado o procedimento normal. Este mtodo denominado de Fast Connect.

Tunelamento
O processo chamado tunelamento (tunneling) similar ao anterior. O tunelamento das mensagens H.245 ocorre nos elementos US-US (H.245 tunneling) das mensagens Q.931, Call Proceding, Alerting ou Connect. Na mensagem Setup, o parmetro tunneling configurado em 1 (verdade), para que a origem solicite a facilidade de tunelamento H.245; o restante similar ao processo Fast Connect.
104

As mensagens H.245 tambm so transportadas por meio de um servio fim-a-fim confivel (TCP) na rede comutada por pacotes. Mensagens de controle H.245:
\\MasterSlaveDetermination

mensagem para definir quem ser mestre ou escravo ou ainda para acordar facilidades comuns. Isto significa que este procedimento aparece em chamadas comuns em que a mensagem s serve para acordar facilidades comuns ou conferncias para definio de mestre e escravo; informaes sobre terminais e canais de mdia, porta, banda, codecs, criptografia, entre outras; encerramento da conexo e liberao dos terminais;

\\TerminalCapabilitySet

\\EndSessionCommand \\Sinalizao

dos canais lgicos; abertura do canal, porta UDP tipo de mdia; ,

\\LogicalChannelOpen \\LogicalChannelClose

encerramento do canal de mdia, sem encerrar a conexo realizada atravs do comando ESC.

Modos de operao
\\A

comunicao entre pontos finais H.323 dividida em 5 fases: da chamada do canal H.245 da conexo entre os canais lgicos dos servios da chamada da chamada

\\Incio

\\Controle

\\Estabelecimento \\Utilizao

\\Encerramento

A comunicao entre dispositivos H.323 consiste em estabelecer uma chamada e encerr-la. Para estabelecer a chamada, mensagens Q.931 so enviadas atravs da porta 1920 TCP (utilizando os mtodos fast start ou tunneling; caso um dos terminais no aceite um dos procedimentos, ser executado o procedimento normal). Um canal de controle H.245 estabelecido atravs de uma porta TCP dinmica. Em seguida conexes entre canais lgicos so estabelecidas atravs da porta de voz UDP dinmica e os tipos de codecs so informados. Para o transporte da voz utilizado o protocolo RTP/UDP .

105

Captulo 3 Recomendao H.323

Se necessrio, negociaes de banda ou codec, entre outras, podero ser realizadas atravs da mensagem Q.931 Facility, utilizando o campo US-US.

Introduo Voz sobre IP e Asterisk

Encerramento da chamada
As mensagens a seguir encerram a chamada:
\\Encerramento \\Comando

do canal lgico H.245 mensagem CLC;

de fim de sesso H.245 comando ESC; de liberao do canal de sinalizao Q.931 mensagem RLC; do GK RAS mensagem DRQ.

\\Mensagem \\Atualizao

Estabelecimento de chamadas
\\Chamada

entre pontos finais em que somente um registrado em gatekeeper

Terminal 1
Setup

GK
Cellproceeding ARQ ACF/ARJ Alerting Connect

Terminal 2

Sinalizao direta com o ponto final chamado registrado


Mensagens de sinalizao H.225.0 Mensagens de RAS

Figura 3.2 1. Setup mensagem direta entre os dois terminais finais (definidos anteriormente pelo GK no procedimento RAS). A mensagem contm nmero de destino e de origem (nmeros telefnicos) podendo levar no campo US-US informaes sobre URIs e H.245, mtodo fast start, tunelling ou procedimento normal; 2. Call Proceeding aviso do destino de que todas as informaes foram recebidas com sucesso e a chamada est em progresso; 3. ARQ (Admission Request) mensagem de registro da chamada pelo terminal de destino no GK. Solicitao para completar a chamada; 4. ACF/ARJ (Admission Confirm/Reject) mensagem do GK ao terminal, autorizando ou no o prosseguimento da chamada; 5. Alerting mensagem informando que o destino est sendo chamado, equivalente ao ringing, no SIP; 6. Connect mensagem que informa que o destino atendeu a chamada, podendo conter as informaes H.245 no campo US-US. Quaisquer mensagens anteriores tambm poderiam conter informaes H.245 no campo US-US, procedimentos fast start ou tunelling;

106

Chamada direta entre pontos finais


Terminal 1
Setup Callproceeding Alerting Connect

Terminal 2

Sinalizao entre pontos finais no registrados em gatekeepers

Figura 3.3

Mensagens de sinalizao H.225.0

1. Mensagem Setup com os nmeros de origem e destino. O terminal 1 j possua o endereo do destino; 2. Call Proceeding informao de que todos os dados foram recebidos para prosseguimento da chamada; 3. Alerting informao de que o destino est livre e sendo chamado. Ao receber o alerting, a origem deve enviar tom de controle para o handset; 4. Connect informao de que o destino atendeu e poder ser iniciada a negociao dos canais lgicos de mdia. Connect ou qualquer mensagem para a origem ir conter o endereo no qual o terminal 2 receber as mensagens de abertura de canal de mdia (campo US-US).

107

Captulo 3 Recomendao H.323

7. Informaes dos campos Fast Start ou Tunneling: porta UDP para mdia, tipo de mdia, tipos de codecs que podem ser aceitos, criptografia aceita etc.

Introduo Voz sobre IP e Asterisk

Chamada entre pontos finais registrados no mesmo gatekeeper


\\Sinalizao

direta

Terminal 1
ARQ ACF/ARJ Setup

GK

Terminal 2

Cellproceeding ARQ ACF/ARJ Alerting Connect

Mensagens de sinalizao H.225.0

Mensagens de RAS

Figura 3.4

1. ARQ terminal 1 realiza procedimentos de RAS, com o endereo do destino do seu GK. Solicitao para realizar a chamada; 2. ACF/ARJ caso o GK permita o prosseguimento da chamada, informar o endereo do destino naquele momento ao terminal 1. Caso o GK queira controlar toda a chamada, o endereo informado ser o seu. Caso o controle seja feito diretamente entre os terminais, o endereo informado ser o do terminal 2. Neste caso, o GK no participa do estabelecimento da chamada, mas apenas autoriza ou nega a chamada; 3. Setup mensagem inicial com os dados do terminal 2 e do terminal 1 e outras informaes sobre a chamada. Por exemplo: se a identidade do terminal 1 ou no restrita; 4. Restante das mensagens similar aos exemplos anteriores.

108

\\Sinalizao

roteada pelo gatekeeper

Terminal 1
ARQ ACF/ARJ Setup Cellproceeding

GK

Terminal 2

Setup Cellproceeding ARQ ACF/ARJ Alerting Connect

Alerting Connect

Figura 3.5

Mensagens de sinalizao H.225.0

Mensagens de RAS

Neste caso, todas as chamadas Q.931 obrigatoriamente realizam trnsito no GK. O procedimento foi definido pelo GK durante o processo RAS e solicitado na mensagem ACF, em que o endereo de destino o do prprio GK. Este procedimento realizado quando for necessrio ao GK ter todo o controle da chamada, para facilitar o billing ou quando o terminal 2 pertencer a outra zona, controlada por outro GK.

109

Captulo 3 Recomendao H.323

Introduo Voz sobre IP e Asterisk

Chamada entre pontos finais em que somente um registrado em gatekeeper


\\Sinalizao

direta com ponto final chamador registrado

Terminal 1
ARQ ACF/ARJ Setup

GK

Terminal 2

Cellproceeding Alerting Connect

Mensagens de sinalizao H.225.0

Mensagens de RAS

Figura 3.6 1. Terminal 1 realiza procedimentos RAS; 2. GK informa na mensagem ACF o endereo de destino do terminal 2; 3. Terminal 1 troca mensagens Q.931 diretamente com o terminal 2; 4. Neste caso, o terminal 2 no realiza procedimento de RAS. O terminal 2 no registrado no GK, porque foi assim programado pelo gerente da rede ou porque pode pertencer a outra zona, sendo controlado por outro GK.

110

Terminal 1
ARQ ACF/ARJ Setup Cellproceeding Alerting Connect

GK

Terminal 2

Setup Cellproceeding Alerting Connect

Mensagens de sinalizao H.225.0

Mensagens de RAS

Figura 3.7 1. A diferena do caso anterior que aqui o GK tem o controle de toda a chamada; 2. Durante o processo de RAS, o GK informou na mensagem ACF que o endereo de destino o seu; 3. A partir da informao recebida, todas as mensagens Q.931 enviadas pelo terminal 1 sero para o GK; 4. Ao receber as mensagens Q.931, o terminal 2 responder para o endereo de origem, que o do prprio GK; 5. O restante da chamada semelhante aos casos anteriores.

111

Captulo 3 Recomendao H.323

\\Sinalizao

roteada pelo gatekeeper com ponto final chamador registrado

Introduo Voz sobre IP e Asterisk

\\Sinalizao

roteada pelo gatekeeper com ponto final chamado registrado

Terminal 1
Setup

GK
Cellproceeding ARQ ARJ Facility Release Complete Setup Cellproceeding Setup Cellproceeding ARQ Alerting Cellproceeding ACF/ARJ Alerting
Connect

Terminal 2

Mensagens de sinalizao H.225.0

Mensagens de RAS

Figura 3.8

1. Mensagem Setup diretamente do terminal 1 para o terminal 2, com procedimento definido durante o processo de RAS; 2. Callproceeding informa que todos os dados da chamada foram recebidos; 3. ARQ e ARJ o GK negou o prosseguimento da chamada e exigiu que o estabelecimento da mesma ocorresse atravs dele, e no diretamente com o usurio; 4. Facility mensagem enviada ao terminal 1, solicitando a exigncia do GK; 5. Releasecomplete terminal 1 desconecta a chamada; 6. Terminal 1 envia novo Setup, desta vez para o GK, aps atender a solicitao contida na mensagem Facility. O GK repassa a informao para o terminal 2; 7. Terminal 2 envia mensagem Call Proceeding informando que recebeu todas as informaes necessrias para o prosseguimento da chamada; 8. Terminal 2 realiza os procedimentos de RAS no GK que libera a chamada; 9. Terminal 2 envia a mensagem alerting para o GK que a repassa ao terminal 1, para que o mesmo envie tom de controle para o usurio do seu terminal e simultaneamente envie ring para o seu terminal; 10. Terminal 2 atende a chamada e envia a mensagem Connect informando o evento e dando prosseguimento negociao dos canais de mdia.

112

\\Sinalizao

entre pontos finais registrados em gatekeepers distintos.

Terminal 1
ARQ ACF/ARJ

GK

GK

Terminal 2

Setup Callproceeding ARQ Facility ReleaseComplete ARJ

ARQ DRQ DCF ACF/ARJ Setup Callproceeding Setup Callproceeding ARQ ACF/ARJ Alerting Connect Alerting Connect

Figura 3.9

Mensagens de sinalizao H.225.0

Mensagens de RAS

1. Mensagem RAS ao GK solicitando permisso para usar a rede. Neste caso o destino est em outro GK; 2. Mensagem Setup enviada diretamente para o terminal 2. Como no existe nenhuma troca de sinalizao entre os GKs, fica pressuposto que j ocorreu outra chamada para o terminal 2, e o GK de destino passou o endereo do terminal 2 para o GK que controla o terminal 1, ficando fora do controle das mensagens de sinalizao. Como o GK que controla o terminal 1 j possui a informao do terminal 2, esta enviada ao terminal na mensagem ACF.; 3. Terminal 2 realiza procedimentos de RAS e recebe uma rejeio, com uma solicitao para encaminhar a chamada; 4. A mensagem Facility encaminhada ao terminal 1 com a solicitao do GK 2; 5. Terminal 1 encerra a conexo com a mensagem RLC;

113

Captulo 3 Recomendao H.323

Chamada entre pontos finais registrados em gatekeepers distintos

Introduo Voz sobre IP e Asterisk

6. Terminal 1 envia a mensagem DRQ (Disengage Request) ao seu GK, e a seguir envia nova mensagem ACF (Admission Confirm) com as solicitaes contidas na mensagem Facility, recebendo mensagem ACF para prosseguimento da chamada. Possivelmente a solicitao da mensagem Facility foi atendida pelo GK na mensagem ACF, j que a capacidade do terminal limitada; 7. Terminal 1 envia mensagem Setup com o endereo do GK que controla o terminal 2 (esta foi a solicitao contida na mensagem Facility); 8. Terminal 2 envia mensagem Call Proceeding e realiza procedimentos de RAS; 9. Terminal 2 envia mensagem Alerting para a origem, solicitando tom de controle para o terminal 1, e envia ring para o seu terminal; 10. Terminal 2 verifica o atendimento e envia a mensagem Connect para o terminal 1, para iniciar os procedimentos H.245.

\\Sinalizao

entre pontos finais com consulta entre gatekeepers

Terminal 1
ARQ ACF Setup Callproceeding

GK
ARQ LCF Setup Callproceeding

GK

Terminal 2

Setup Callproceeding ARQ ACF Alerting

Alerting Connect

Alerting Connect

Connect

Mensagens de sinalizao H.225.0

Mensagens de RAS

Figura 3.10 1. Terminal 1 envia mensagem ARQ ao seu GK, com os dados do terminal 2; 2. GK 1 verifica que o terminal 2 no pertence sua zona e envia uma mensagem LRQ (Location Request) em nuvem crescente, buscando o GK que controla o terminal 2; 3. O GK que controla o terminal 2 responde com mensagem LCF (Location Confirm), informando o seu endereo para receber as mensagens de sinalizao; os demais GK consultados respondem negativamente;

114

5. Terminal 1 envia mensagem Setup para o seu GK, que a repassa para o GK que controla o terminal 2, que por sua vez envia a mensagem ao terminal 2; 6. Terminal 2 realiza os procedimentos RAS e recebe autorizao para prosseguimento da chamada; 7. Terminal 2 envia mensagem Alerting ao terminal 1 atravs dos dois GKs, e mensagem ring para o terminal 1; 8. Terminal 2, ao receber o atendimento, envia mensagem Connect para o terminal 1 atravs dos dois GKs e inicia os procedimentos H.245.

Estabelecimento de canal de controle H.245


Terminal A Terminal B

Sinalizao H.225.0
TerminalCapabilitySet(A)) TerminalCapabilitySetAck(A) TerminalCapabilitySet(B) TerminalCapabilitySetAck(B) MasterSlaveDetermination MasterSlaveDeterminationAck(slave) MasterSlaveDeterminationAck(master) (ponto final A o mestre da chamada) OpenLogicalChannel (canal de voz A =>B) OpenLogicalChannelAck OpenLogicalChannel (canal de voz B =>A) OpenLogicalChannelAck

Figura 3.11

Chamada em uso

Uma vez que os terminais conseguiram completar com sucesso o procedimento de estabelecimento de conexo de acordo com os exemplos anteriores, hora de estabelecer o canal de controle, seguindo indicaes do padro H.245. 1. Mensagem TerminalCapabilitySet(A), informando ao terminal B sobre as suas capacidades; 2. Terminal B confirma o recebimento das informaes;

115

Captulo 3 Recomendao H.323

4. O GK envia ao terminal 1 mensagem ACF, informando o seu endereo para recebimento das mensagens de sinalizao. Neste caso, as mensagens de sinalizao faro trnsito nos dois GKs;

Introduo Voz sobre IP e Asterisk

3. Terminal B informa atravs da mensagem TerminalCapabilySet(B) de suas prprias capacidades; 4. Terminal A confirma o recebimento das informaes; 5. Terminal A envia mensagem MasterSlaveDetermination para definio MestreEscravo; 6. Terminal B responde aceitando a condio de Escravo; 7. Terminal A responde confirmando sua condio de Mestre; 8. Terminal A envia mensagem de abertura de canal de mdia (OpenLogicalChannel) informando codec e porta, entre outras informaes; 9. Terminal B confirma o recebimento da mensagem com OpenLogicalChannelAck, podendo, se for o caso, solicitar negociao de codec ou porta, entre outros. Estabeleceu-se neste momento o 1 canal de mdia no sentido A para B; 10. Terminal B envia sua mensagem de abertura de canal de mdia OpenLogicalChannel com informaes sobre codec, porta e codificao; 11. Terminal A confirma o recebimento, concordando com os parmetros. Estabeleceu-se neste momento o 2 canal de mdia, no sentido de B para A; 12. Abertura dos canais de mdia e transporte RTP/RTCP .

Uso dos servios da chamada


\\H.450

define um arcabouo para o desenvolvimento de servios suplementares, cujo controle distribudo entre os pontos finais participantes da chamada.

H.450.1 H.450.2 H.450.3 H.450.4 H.450.5 H.450.6 H.450.7 H.450.8 H.450.9 H.450.10 H.450.11

Arcabouo geral Transferncia Redirecionamento Reteno Atendimento Chamada em espera Indicao de mensagem Identificao de chamador Notificao de encerramento Oferta de chamada Intruso de chamada Tabela 3.2

116

Para preencher essa lacuna, os diversos fornecedores desenvolvem as suas prprias solues para desenvolver uma quantidade maior de servios, alm dos que esto definidos na H.450. Em funo disto, preciso estar atento s implementaes dessas facilidades no caso da utilizao de mais de um fornecedor na mesma rede corporativa, pois o interfuncionamento entre equipamentos de fabricantes diferentes muitas vezes prejudicado. Alm disso, ainda existem os casos de algumas empresas que foram a utilizao de seus equipamentos, como estratgia de mercado. Assim como os telefones digitais s funcionam com PABX de mesmo fabricante, algumas empresas fabricam telefones IP que funcionam apenas com seus PABX (que normalmente incorporam as funes de gatekeeper e gateway). Ou seja, nem mesmo uma simples ligao realizada quando mais de um fabricante utilizado.

Recomendaes H.235
\\Definidas

com o propsito de prover um arcabouo para servios de segurana em sistemas que usam protocolos de controle: servios envolvem trs aspectos principais: de pontos finais dos fluxos de informao dos fluxos

\\Os

\\Autenticao \\Privacidade \\Integridade

As recomendaes H.235.0 e H.235.1 do ITU definem os perfis bsicos de segurana, prevendo a possibilidade de autenticao e integridade ou s autenticao utilizando criptografia e uso de chaves. necessrio dar ateno especial a este item, porque muitas solues de segurana so desenvolvimentos proprietrios que podem sofrer os mesmo problemas relatados anteriormente.

\\Sistemas

H.323 com suporte para a recomendao H.235 possuem as seguintes caractersticas:


\\Sinalizao \\Fases

H.225.0 segura

de autenticao de capacidades criptogrficas

\\Trocas \\Uso

de chaves criptogrficas nos canais de mdia

117

Captulo 3 Recomendao H.323

O H.323 possui um nmero limitado de servios suplementares, conforme a recomendao H.450, se comparado com o Q.Sig, sinalizao utilizada em redes corporativas de telefonia.

Introduo Voz sobre IP e Asterisk

As recomendaes H.235.0 e H.235.1 do ITU definem os perfis bsicos de segurana, para as mensagens RAS, H.225, Q.931, Q.932 e H.245, ou seja, nos canais de controle das chamadas. O uso de criptografia nos canais de mdia (voz e vdeo) definido no protocolo RTP , cuja ltima recomendao a RFC 3550. O uso de criptografia aumenta o consumo de banda em pelo menos 10%.

Recomendao H.460
\\Define

um arcabouo que permite a negociao de vrias facilidades entre pontos finais, por meio de mensagens de sinalizao:
\\H.225.0; \\Mensagens

RAS.

H.460 um padro ITU que define uma extenso opcional do H.323. Entre outras funes, utilizado para resolver problemas com NAT e firewalls. Sua estrutura completa est descrita em uma srie de documentos:
\\H.460.1 \\H.460.2 \\H.460.3 \\H.460.4 \\H.460.7 \\H.460.8 \\H.460.9

arcabouo geral; portabilidade de nmero; informao de capacidade; prioridade de chamada; recursos de numerao; consulta a rotas alternativas; monitorao de QoS; retardo de chamada; indicao de controle de coliso de chamada; liberao de chamada pelo ponto final chamado.

\\H.460.11 \\H.460.12 \\H.460.13

118

3
Roteiro de Atividades
Tpicos e conceitos
\\A

atividade prtica tem como objetivo instalar o servidor GnuGK e analisar o protocolo H.323.

Competncias tcnicas desenvolvidas


\\Ao

final desta prtica o aluno ter capacidade de analisar a troca de mensagens cliente-servidor utilizando o protocolo H.323.

Tempo previsto para as atividades


\\1

hora a 1h30 minutos (trabalho em grupo).

Requisitos
\\Esta

prtica envolve atividades individuais e em grupo.

Preparando o ambiente
Descompacte a mquina virtual Debian para o desktop e troque o nome do diretrio para GnuGK.

Atividade 1 Instalando o GnuGK


Nesta atividade efetuaremos a instalao do GnuGK em uma mquina virtual Debian. Passo 1: inicie a mquina virtual com sistema operacional Debian no diretrio GnuGK.

119

Introduo Voz sobre IP e Asterisk

Se for apresentada a tela abaixo selecione a opo I copied it.

Passo 2: efetue login com o usurio root e senha rnpesr e em seguida verifique se a mquina virtual obteve a configurao correta da rede, efetuando o comando ifconfig. Qual foi o IP obtido na rede? Figura 3.12 Passo 3: execute o comando # apt-get update; no ocorrendo erro, instale o pacote gnugk com o comando # apt-get install gnugk. Aguarde o fim da instalao. Passo 4: a configurao do GnuGK feita no arquivo gnugk.ini, localizado no diretrio /etc. O arquivo organizado por sesses, sendo cada uma responsvel pela configurao de algumas funcionalidades. Crie o arquivo gnugk.ini com o comando vim /etc/gnugk.ini. Inclua as linhas abaixo:
[Gatekeeper::Main] ### usado para testar a presena do arquivo de configurao; Fourtytwo=42 ### usado para definir o nome do gatekeeper; Name=PCXXGK ### Nesta seo ainda podemos realizar outras configuraes; [RoutedMode] ### Especifica se o gatekeeper est operando em modo routed ou no; GKRouted=1 ### Habilitar ou no o encaminhamento do canal de controle H.245 ### pelo gatekeeper; H245Routed=1 ### Define se aceita ou no chamadas de usurios no autenticados; AcceptUnregistered=1

120

AcceptNeighBordsCalls=1 ### Especifica uma faixa de portas TCP dos canais de sinalizao Q.931; Q931PortRange=30000-39999 [GKStatus::Auth] ### Atravs da porta de status possvel desligar o gatekeeper, ### a opo forbin bloqueia esta ao; shutdown=forbin ### Nesta opo so definidas as regras de acesso; rule=allow

Reinicie o gatekeeper com o comando:


# /etc/init.d/gnugk restart

Passo 5: o GnuGK utiliza a porta TCP/7000 como console de monitorao da operao do gatekeeper. D um telnet na porta 7000 a partir do Windows para verificar se o servio est respondendo. Se conectado com sucesso, execute o comando rv e deixe a sesso telnet aberta. Passo 6: inicie o Wireshark, desative o modo promscuo e inicie a captura. Passo 7: configure o cliente OpenPhone, no menu Options/General.

Figura 3.13

\\No

campo Username, insira seu nome;

121

Captulo 3 Recomendao H.323

### Permite que o gatekeeper aceite chamadas dos seus vizinhos;

Introduo Voz sobre IP e Asterisk

\\Para

que voc fique sabendo se tem algum te ligando, clique em Browser e escolha o arquivo ringback.wav que veio dentro do arquivo OpenPhone.rar. Caso contrrio, o OpenPhone no emitir nenhum som; se a opo marcada DTMF as H.245 String. No marque nenhuma das seguintes opes: Auto-Answer, Disable Fast-Start, Disable H.245Tunneling e Disable H.245 in Setup. Abaixo de Call Intrusion Protection Level, verifique se a opo Full est marcada.

\\Verifique

Figura 3.14 Clique em OK.


\\No

menu Options/Gatekeeper;

Figura 3.15

122

\\Deixe

o campo H.235 Password em branco.

Figura 3.16 Clique em OK. Seu registro est feito. Observe que na janela do OpenPhone est escrito que voc est registrado no gatekeeper.

Figura 3.17 Caso a mensagem mostrada acima no aparea, confira os valores de configurao e tente novamente. Passo 8: Em dupla, usurios devero se registrar em um gatekeeper e efetuar chamadas entre a dupla, finalizando a chamada e salvando a captura feita pelo Wireshark como sip.pcap.

123

Captulo 3 Recomendao H.323

\\Marque

as opes Use Gatekeeper e Require Gatekeeper. Verifique se a opo Static Host est marcada. Digite o IP do gatekeeper nesse campo.;

Introduo Voz sobre IP e Asterisk

Atividade 2 Analisando a captura feita pelo Wireshark


1. Em que modo o gatekeeper est operando?

2. Identifique os endereos IP protocolos de transporte e portas utilizadas para a , sinalizao RTP e RTCP? Descreva suas observaes.

3. Visualize o grfico gerado pelo Wireshark e descreva o que ele exibe.

124

4
Asterisk

Sumrio
Apresentao do Asterisk . . . . . . Projeto Zapata . . . . . . . . . Asterisk . . . . . . . . . . . . Asterisk e Linux . . . . . . . . . Asterisk e a GNU General Public License Asterisk versus PABX . . . . . . . O que o Asterisk no e no faz . . . Hardware e interfaces para Asterisk . . Zaptel Pseudo TDM interfaces . . . . Non-Zaptel hardware interfaces . . . Packet voice protocol . . . . . . . Protocolos usados pelo Asterisk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 . 126 . 128 . 129 . 131 . 131 . 134 . 136 . 136 . 137 . 138 . 140

Roteiro de Atividades . . . . . . . . . . . . . . . . . . . . . 147 Atividade 1 Instalando o Asterisk . . . . . . . . . . . . . . . . 147 Atividade 2 Configurando e testando os clientes X-Lite, Telefone IP e ATA . . 149

125

Introduo Voz sobre IP e Asterisk

Apresentao do Asterisk
\\Digium: \\Criada

em 1999 e localizada em Huntsville, Alabama (EUA); e desenvolvedora primria do Asterisk; patrocinadora do Asterisk; em: de cdigo-fonte; de telefonia a baixo custo.

\\Criadora \\Principal

\\Investimento

\\Desenvolvimento \\Hardware

A Digium, localizada em Huntsville, Alabama, a criadora e desenvolvedora primria do Asterisk, o primeiro PABX de cdigo aberto da indstria. Usado em conjunto com as placas de telefonia PCI, ele oferece uma abordagem estratgica com excelente relao custo/benefcio para o transporte de voz e dados sobre arquiteturas TDM, comutadas e redes Ethernet. A Digium hoje a principal patrocinadora do Asterisk e uma das lderes na indstria do PABX em cdigo aberto, sendo Mark Spencer o criador e principal mantenedor do Asterisk. Na verdade, o Asterisk funciona como uma poderosa vitrine das placas de telefonia fabricadas pela Digium, que tambm investe em verses comerciais do Asterisk, servios de consultoria e suporte profissional.

TDM A arquitetura TDM pode ser entendida como as redes digitais tradicionais de telefonia, que utilizam o TDM (Time Division Multiplexing) para transportar vrias ligaes em um mesmo enlace.

Projeto Zapata
\\Projeto

de hardware aberto (OpenSource); hardware para telefonia com interfaces E1 / T1;

\\Desenvolve \\As

placas so produzidas por diversas empresas:


\\Digium; \\Sangoma; \\Varion.

\\Exemplos:

O projeto Zapata foi conduzido por Jim Dixon, o responsvel pelo desenvolvimento de hardware da Digium. O hardware tambm aberto e pode ser produzido por qualquer empresa. Hoje, as placas com E1/T1 (circuitos de telefonia digital) so produzidas por empresas como Digium, Sangoma e Varion, entre outras. Jim Dixon um engenheiro consultor de telefonia inspirado pelos incrveis avanos alcanados pela indstria de computadores em relao velocidade de CPU. A crena de Dixon era que sistemas de telefonia muito mais econmicos podiam ser criados se houvesse um carto em que fossem implantados nada mais do que os componentes eletrnicos bsicos necessrios para fazer interface com um circuito de
126

telefonia. Em vez de ter componentes caros no carto, o Sistema Digital de Processamento (DSP) seria manipulado na CPU por software. Mesmo que isso impusesse uma tremenda carga CPU, Dixon estava certo de que o baixo custo das CPUs em relao ao seu desempenho fazia delas muito mais atraentes que DSPs caros e, o que era mais importante, a sua relao custo/desempenho deveria continuar a melhorar medida que as CPUs aumentassem seu poder de processamento. Depois de alguns anos, ele observou que, alm de ningum ter criado esses cartes, nada indicava que isso seria feito. Nesse momento, ele percebeu que, se queria uma revoluo, ele mesmo deveria inici-la. E assim nasceu o projeto Zapata.

Pequeno resumo da histria do projeto Zapata, por Jim Dixon


H 20 ou 25 anos atrs, a AT&T comeou a oferecer uma API permitindo aos usurios customizar a funcionalidade de seu sistema de correio de voz e auto-atendimento, chamada Audix. Audix rodava em plataforma Unix e custava, como tudo em telefonia at o momento, milhares de dlares por porta, com funcionalidade bastante limitada. Em uma tentativa de tornar as coisas possveis e atrativas (especialmente para quem no tinha um PABX AT&T), alguns fabricantes lanaram uma placa que podia ser colocada em um computador que rodava DOS e respondia a uma nica linha telefnica (FXO apenas). As placas no tinham uma qualidade to boa quanto as atuais, e muitas terminaram como secretrias eletrnicas igualmente ruins. Novas placas de telefonia foram lanadas com preos elevados e as companhias gastavam milhares de dlares por porta. Afinal de contas, mesmo com as margens altas de muitos fabricantes, as placas de telefonia possuam muita capacidade de processamento na forma de DSPs, processadores de sinais digitais. Ainda hoje, se voc observar um gateway de voz sobre IP vai observar que boa parte do custo , ainda est relacionada aos DSPs. No entanto, o poder de processamento dos microcomputadores continuou crescendo. Para comprovar o conceito inicial, comprei uma placa Mintel 89000C ISDN Express Development Card e escrevi um driver para o FreeBSD. A placa ocupou pouco processamento de um Pentium III 600 Mhz, provando que se no fosse a limitao do I/O (a placa gerenciava de forma ineficiente o I/O, exigindo muitos wait-states) ela poderia atender de 50 a 75 canais. Como resultado do sucesso, sa e comprei o necessrio para criar um novo desenho de carto ISA que usasse o I/O de forma eficiente. Consegui dois T1s (48 canais) de dados transferidos sobre o barramento e o computador gerenciou isto sem problemas. Ento eu tinha as placas e as ofereci para venda (umas 50 foram vendidas), disponibilizando o desenho completo (incluindo arquivos de plotagem da placa) na web. Como o conceito era revolucionrio e faria ondas na indstria, decidi colocar um nome inspirado no revolucionrio mexicano (Emiliano Zapata) e decidi chamar a placa de tormenta. Assim comeou a telefonia Zapata. Escrevi um driver completo e coloquei na rede. A resposta que obtive foi quase sempre a mesma: timo, e voc tem para Linux?.

127

Captulo 4 Asterisk

Introduo Voz sobre IP e Asterisk

Pessoalmente, nunca havia visto o Linux rodar antes, mas fui correndo ao Frys (uma loja enorme de produtos eletrnicos, famosa nos EUA) e comprei uma cpia do Linux Red Hat 6.0. Dei uma olhada nos drivers e usei o Vdeo Spigot como base para traduzir o driver de BSD para Linux. De qualquer forma, minha experincia com Linux no era grande e comecei a ter problemas para desenvolver o mdulo do kernel na forma de mdulos carregveis. Ainda assim, liberei-o na web sabendo que algum guru em Linux iria rir dele e talvez me ajudasse a reform-lo em linuqus apropriado. Em 48 horas, recebi um e-mail de um cara do Alabama (Mark Spencer), que se ofereceu para fazer exatamente isto. Ele disse que tinha algo que seria perfeito para a coisa toda (o Asterisk). Nesse momento, o Asterisk era um conceito funcional, desprovido de um funcionamento prtico e til. O casamento do sistema de telefonia Zapata e o desenho da biblioteca de hardware/driver e interface permitiram que ele crescesse para ser um PABX real que poderia falar com telefones reais e linhas. Mark era brilhante em VoIP e em redes na parte interna do sistema, com grande interesse por telefonia, mas sua experincia com o funcionamento de sistemas de telefonia era limitada, particularmente na rea de interfaces de hardware. Desde o incio eu estava e sempre estive l para ajud-lo nessas reas, fornecendo informaes e implementando cdigos nos drivers e no switch (PABX). Ns, e mais recentemente outros, fazemos um bom time trabalhando no objetivo comum de levar o melhor da tecnologia de telecomunicaes ao pblico por um custo realista. A partir do carto ISA, desenhei o Tormenta 2 PCI Quad T1/E1, que Mark vende como Digium T400P e E400P e que agora a Varion est vendendo como V400P , (ambos T1 e E1). Todos os arquivos do projeto (incluindo fotos e arquivos de plotagem) esto disponveis em zaptelephony.org (www.zaptelephony.org) para uso pblico. Como qualquer um pode ver, com o trabalho dedicado de Mark (assim como o meu e o de outras pessoas) nos drivers da Saptel e no software do Asterisk, as tecnologias crescem e melhoram a cada dia.

Asterisk
\\

um PABX (Private Automatic Branch eXchange) implementado em software; conectividade em tempo real entre redes PSTN e redes VoIP; PABX de cdigo aberto do mercado: pela a Digium Inc.

\\Permite \\Primeiro

\\Criado

O Asterisk um software (um programa de computador) que implementa funes de PABX. Foi desenvolvido de acordo com a filosofia do cdigo livre e disponibilizado livremente sob os termos da GPL (General Public License). Foi criado pela Digium Inc. e tem uma base de usurios em contnuo crescimento. A Digium investe no desenvolvimento do cdigo-fonte do Asterisk, em servio de consultoria e suporte
128

O Asterisk roda em distribuies Linux e outras plataformas Unix. No necessrio adquirir as placas da Digium ou de outro fabricante para que o Asterisk funcione. Mas se essas placas forem utilizadas, possvel criar um gateway interligando a Rede Pblica de Telefonia Comutada (PSTN Public Switched Telephony Network) a uma rede de telefonia IP Tambm ser possvel construir novas aplicaes de voz . para o sistema de telefonia tradicional.
\\Escrito

totalmente na linguagem C; para plataforma Linux;

\\Desenvolvido \\Kernel

2.4 ou superior; para Solaris, FreeBSD e OpenBSD; de alterao de cdigo de acordo com o cliente.

\\Portado

\\Possibilidade

Asterisk e Linux
\\Por

que utilizar o Linux? so solues Open Source (Asterisk e Linux); para acesso a PSTN; toda a implementao do Asterisk voltada para a plataforma Linux; duplo:
\\GPL; \\LGPL.

\\Ambos

\\Hardware

\\Licenciamento

O Asterisk foi escrito originalmente utilizando a linguagem de programao C, amplamente conhecida na comunidade de desenvolvedores. Isso garante que praticamente qualquer pessoa no mundo com alguma experincia em programao possa contribuir aprimorando seu cdigo-fonte. Foi desenvolvido sobre o sistema operacional Linux e, por isso mesmo, este o sistema operacional de suporte nativo do Asterisk. Tambm funciona em OpenBSD, FreeBSD e MAC OS X. Portar o Asterisk para outros sistemas baseados no Unix deve ser uma tarefa relativamente fcil para pessoas com tempo e habilidade com estes sistemas. GNU General Public License (Licena Pblica Geral), GNU GPL ou simplesmente GPL, a designao da licena para software livre idealizada por Richard Stallman no final da dcada de 90, no mbito do projeto GNU da Free Software Foundation.

129

Captulo 4 Asterisk

especializado e, principalmente, em hardware de telefonia de baixo custo, tambm aberto, que funciona com o Asterisk.

Introduo Voz sobre IP e Asterisk

A GPL a licena com maior utilizao por parte de projetos de software livre, em grande parte devido sua adoo para o Linux. Em termos gerais, a GPL se baseia em 4 liberdades:
\\De \\De

executar o programa para qualquer propsito (liberdade n0);

estudar o funcionamento do programa e adapt-lo para suas necessidades (liberdade n1). O acesso ao cdigo-fonte um pr-requisito para esta liberdade; redistribuir cpias de modo a ajudar o prximo (liberdade n2);

\\De \\De

aperfeioar o programa e liberar os aperfeioamentos de modo que toda a comunidade seja beneficiada por eles (liberdade n 3). O acesso ao cdigo-fonte um pr-requisito para esta liberdade.

A licena GPL foi originalmente publicada em janeiro de 1989. No entanto, pouco tempo depois, ficou claro que o texto da licena continha vrios problemas. Assim, em junho de 1991 foi publicada a GPL verso 2, sendo ao mesmo tempo introduzida uma nova licena LGPL. Em 2005, Stallman anunciou que estava preparando uma nova verso da licena em conjunto com Eben Moglen. Essa nova verso foi chamada de GPLv3 e o primeiro esboo dela foi publicado em 16 de janeiro de 2006. A GNU Lesser General Public License (antes conhecida como GNU Library General Public License) uma licena de software livre aprovada pela FSF e escrita com o intuito de ser um meio-termo entre a GPL e as licenas mais permissivas, como a BSD e a MIT. Foi escrita em 1991 (e atualizada em 1999) por Richard Stallman e Eben Moglen. A principal diferena entre a GPL e a LGPL que a ltima permite ser ligada com programas que no sejam GPL ou LGPL (software livre ou proprietrio). Outra diferena que trabalhos derivados (que no sejam GPL) devem ser bibliotecas de software. A LGPL coloca restries de copyleft no prprio programa, mas no aplica essas restries a outro software que apenas se liga com o programa. H, contudo, outras restries nesse software. Essencialmente, deve ser possvel ao software ser ligado a uma verso mais nova do programa sob LGPL. O mtodo mais usado para fazer isso por meio de um mecanismo de biblioteca compartilhada para ligao. Alternativamente, a ligao esttica permitida se o cdigo-fonte ou os arquivos do objeto a ser ligado forem disponibilizados. A LGPL primariamente utilizada em bibliotecas de software, embora tambm seja usada por aplicaes como OpenOffice.org e Mozilla. Uma caracterstica da LGPL que se pode converter qualquer pedao de software em LGPL em outro sob GPL (seo 3 da licena). Essa caracterstica til para a criao de uma verso de cdigo que empresas de software no podem usar em produtos de softwares proprietrios. Tambm necessrio assegurar que a LGPL seja compatvel com a GPL, de modo que programas cobertos pela GPL possam usar bibliotecas sob LGPL.

130

\\Existem

algumas formas para se contribuir com a evoluo do Asterisk: de cdigo; de bugs;

\\Desenvolvimento \\Conserto \\Relato \\Novas

de melhorias; aplicaes; IRC e mailing list.

\\Documentao; \\Canal

O Asterisk distribudo mediante os termos da licena GPL (GNU General Public License). Esta licena permite a distribuio do Asterisk em forma de cdigo ou em forma binria, com ou sem modificaes. Sendo voc um desenvolvedor, possvel contribuir com o cdigo-fonte do Asterisk, consertando eventuais bugs, relatando melhorias, novas aplicaes e drivers para os canais. Geralmente essas contribuies so disponibilizadas no CVS (Concurrent Version System), para que outros desenvolvedores possam testar e aprimorar os novos cdigos. Caso no seja um desenvolvedor, pode-se contribuir com a evoluo do Asterisk de uma maneira muito importante, escrevendo toda a sua experincia em configurao de ambientes e aplicaes de voz utilizando o Asterisk. A documentao sobre o Asterisk pode facilitar o aprendizado de pessoas interessadas. Tambm possvel contribuir com o projeto atravs da participao de discusses e depois repassar o conhecimento obtido a outros usurios em um canal IRC (Internet Relay Chat): irc.freenode.net, ou em uma lista de e-mail (http://lists.digium.com).

Asterisk versus PABX


\\As

solues de telefonia encontradas no mercado normalmente tm custo elevado; h dificuldade para a adoo de novas funcionalidades:

\\Tradicionalmente \\Novas

funcionalidades significam novos custos; de instalao;

\\Dificuldades \\Em

geral implica a compra de novo hardware. do Asterisk em relao a PABXs: um leque superior de funcionalidades: servios so adicionados ao cdigo-fonte. funcionalidades no implicam a compra de novos equipamentos; de seu sistema de telefonia;

\\Vantagens \\Custo

mais atrativo;

\\Possui

\\Novos \\Novas

\\Controle

131

Captulo 4 Asterisk

Asterisk e a GNU General Public License

Introduo Voz sobre IP e Asterisk

\\Ambiente \\Plano

de desenvolvimento fcil e rpido;

de discagem flexvel e poderoso; aberto.

\\Cdigo \\Funes \\Voice

bsicas: mail (mensagem de voz por e-mail); em espera (mp3); (estacionamento de chamadas); de conferncia; ID; de chamadas.

\\Msica \\Salas

\\Parking \\Caller

\\Siga-me; \\Transferncia

A definio do Asterisk na pgina oficial do programa diz que ele um software livre e de cdigo aberto, que transforma um computador comum em um rico servidor de comunicaes de voz. O Asterisk uma plataforma de desenvolvimento de aplicaes de voz. Assim, possvel criar quase qualquer tipo de servio envolvendo aplicaes de voz sem os altos custos das licenas cobradas pelos fabricantes tradicionais de PABX e desenvolvedores de solues de telefonia. O modelo de negcios adotado h muitos anos pela indstria da telefonia torna sua implementao proibitiva em muitos casos, principalmente para pequenas empresas. Para cada novo servio, era preciso realizar upgrade no sistema com a aquisio de novo hardware, com a necessidade de comprar mais uma licena. Mesmo quando o PABX j estava preparado para o crescimento, no sendo necessrio adquirir novo hardware, para cada novo canal de voz era preciso comprar uma nova licena. O Asterisk e a filosofia de cdigo aberto vm democratizar a utilizao de aplicaes de voz, pois cada novo servio no Asterisk implementado por software normalmente aberto e livre de licenas. Ter controle do seu prprio sistema de telefonia um dos benefcios que o Asterisk oferece. Ao invs de esperar e pagar para algum configurar seu PABX proprietrio (a maioria no fornece nem a senha para o cliente final), o Asterisk d toda a liberdade de configur-lo e program-lo. Em relao adio de novas funcionalidades, com Asterisk basta adicionar os programas adequados. J com solues convencionais muito provvel que seja necessrio adquirir novas licenas e novo hardware. possvel desenvolver todas as funcionalidades presentes em sistemas tradicionais no Asterisk, em que mesmo aplicaes especializadas so programveis, como as utilizadas em call centers. Por outro lado, cada nova funcionalidade em sistemas convencionais exige a aquisio de nova licena e, quase sempre de novo hardware. Alm de tudo, o Asterisk suporta protocolos de Voz sobre IP isto , possibilita a fcil , integrao das redes de voz e dados. Na verdade, o Asterisk pode ser entendido como um sistema de voz sobre IP que pode ser interligado ao sistema de telefonia
132

Funes do Asterisk
Algumas funes e servios complementares suportados pelo Asterisk:
\\Identificador \\Siga-me; \\Transferncia \\Pndulo; \\Desvios

de chamada;

assistida ou cega;

baseados no chamador; eletrnica (com envio da mensagem por e-mail);

\\Secretria \\Msica

em espera (configurvel por contextos);

\\Conferncia; \\Estacionamento \\Funes

de chamadas;

avanadas: Interativa por Voz (IVR);

\\Resposta \\Billing \\Queue \\Fax

(tarifao) utilizando o registro detalhado das chamadas (CDR); (filas de chamadas);

over IP; de conversas ou conferncias;

\\Gravao \\Entrega \\Call

automtica de chamadas (ACD);

pickup.

Iteractive Voice Response (IVR)


Tambm conhecida como URA (Unidade de Resposta Audvel), serve para criar menus de navegao. Desta forma possvel encaminhar o cliente at um atendente especializado, ou ainda em alguns casos automatizar o atendimento sem nenhuma participao humana.

Reconhecimento de voz
possvel instalar um mdulo (software) para reconhecimento de voz. Assim, quando utilizado em conjunto com o IVR, possibilita a navegao simplesmente enunciando as opes do menu, aumentando-as consideravelmente, pois o limite do teclado deixa de existir.

133

Captulo 4 Asterisk

convencional com a instalao de placas especiais. Assim, j traz embutidas as vantagens das solues de telefonia IP como a possibilidade de aproveitar a , infraestrutura de dados para o trfego de voz e mobilidade dos ramais, entre outras vantagens. O Asterisk no apenas um PABX, porque faz muito mais que unir um conjunto de ramais e lig-los rede de telefonia pblica.

Introduo Voz sobre IP e Asterisk

Text-to-Speech (TTS)
Movimento contrrio ao reconhecimento de voz; um texto colhido de um banco de dados, por exemplo, pode ser lido para o cliente. Implementada via software, esta funo permite um elevado grau de automao, dispensando atendentes humanos em alguns casos.

Call Detail Record (CDR)


O Registro do Detalhamento das Chamadas identifica e detalha todas as chamadas realizadas e recebidas pelo sistema. A partir desta informao possvel tarifar chamadas com preos diferenciados por qualquer regra estabelecida. possvel tambm criar sistemas de bilhetagem (pr e ps-pago), e instalar mdulos para pagamento on-line e impresso de boleto bancrio, para criao de um servio de compra e venda de minutos ou qualquer outro tipo de comercializao de servios de voz.

DAC (Automatic Call Delivery ACD)


Tambm conhecido como servio de filas de chamadas (queues), um recurso criado para evitar a perda de chamadas entrantes por falta de atendentes, com larga utilizao em call centers. As chamadas chegam e so enfileiradas para que sejam atendidas assim que um atendente estiver livre. Uma vez enfileiradas, as chamadas podem ser encaminhadas para atendentes especializados, dependendo do nmero chamador ou do encaminhamento atravs de um IVR. Ainda possvel realizar o encaminhamento por prioridade, por data e hora, por disponibilidade etc. possvel obter informaes estatsticas das chamadas nas filas, como tempo mdio de espera de uma chamada em determinada fila e taxa de desistncia.

Gateway Fax-Email
possvel utilizar o Asterisk para receber e enviar fax utilizando o sistema de e-mail. Um usurio da rede envia um e-mail para um endereo especfico; o sistema recebe o e-mail e transforma o corpo da mensagem ou o anexo (pdf, ps, doc, txt) e o encaminha via fax pela rede de telefonia. No sentido inverso, o sistema recebe um fax, transforma-o em PDF e o encaminha por e-mail para o usurio do sistema. Dessa forma, cada usurio que tiver um ramal prprio, pode ter tambm o seu fax pessoal.

O que o Asterisk no e no faz


\\Sistema \\SIP

comum de telefonia;

Proxy:

\\OpenSER. \\Gatekeeper \\GnuGK. \\No

H.323:

executa nativo no Windows;

134

\\Todos \\Qualquer \\No

os seus arquivos so configurveis. alterao em um de seus arquivos ter efeito em todo o sistema:

precisa de software adicional para funcionar.

O Asterisk no um sistema comum de telefonia, porque para utiliz-lo necessrio algum conhecimento, mesmo que mnimo, em Linux, redes e telefonia. No basta lig-lo na tomada e conectar os fios dos ramais e da linha telefnica. preciso configur-lo antes de utiliz-lo. O Asterisk no um SIP Proxy, mas um Back-to-Back User Agent (B2BUA). Isto significa que se trata de um User Agent (dispositivo SIP), que em uma conversa entre dois telefones SIP simula um SIP Proxy. Na verdade, visto como um telefone SIP para cada perna da chamada. Na prtica, visto como um SIP Proxy. Da mesma forma, utilizando o protocolo H.323, o Asterisk no um gatekeeper, mas simula ser um gatekeeper, uma espcie de B2BUA. Essa caracterstica faz com que o Asterisk no seja a melhor ferramenta para lidar com grande quantidade de telefones IP Dois exemplos de softwares de cdigo aberto para grande instalaes . VoIP so OpenSIPS, que funciona como SIP Proxy, e GnuGK, que funciona como gatekeeper. Em grandes redes, o Asterisk deve trabalhar em conjunto com outras ferramentas mais apropriadas para esta finalidade, exercendo o papel de gateway (traduzindo protocolos ou interfaceando com sistema de telefonia convencional) ou de servidor de aplicaes de voz. O Asterisk altamente flexvel, com configurao totalmente baseada em arquivos texto e sintaxe facilmente compreendida. A estratgia de manter comentrios nos arquivos de configurao facilita muito a configurao do sistema, mesmo para usurios iniciantes que nunca viram o sistema. Existe um arquivo de configurao para cada parte do sistema: SIP H.323, filas, , msica em espera, interface com banco de dados, CDR (Call Detail Record) etc. Cada mdulo possui um arquivo separado e de fcil entendimento. Alm disso, utilizando AGI (Asterisk Gateway Interface) ainda possvel criar novos programas em qualquer linguagem de programao para interao com a rede de dados. Por exemplo, possvel construir uma aplicao que, ao receber uma chamada, o sistema pea para digitar um nmero de matrcula. Aps o recebimento do nmero, o sistema procura o status do cliente em um banco de dados e, dependendo da informao retornada, decide a ao a ser executada.

135

Captulo 4 Asterisk

\\O

Asterisk possui como principal caracterstica a flexibilidade:

Introduo Voz sobre IP e Asterisk

Hardware e interfaces para Asterisk


\\Tecnologias \\O

suportadas:

Asterisk foi desenvolvido para permitir a adio de novas tecnologias e interfaces com facilidade; objetivo suportar todo tipo possvel de tecnologia de telefonia; geral, as interfaces podem ser divididas em trs: hardware; hardware; voice.

\\Seu \\Em

\\Zaptel

\\Non-Zaptel \\Packet

O Asterisk desenvolvido para permitir que novas interfaces e tecnologias sejam agregadas facilmente. Essa meta visa suportar qualquer tipo de tecnologia telefnica possvel. A lista dos ltimos protocolos e hardwares compatveis pode ser encontrada em http://www.digium.com ou em http://www.asterisk.org. De forma geral, as interfaces so divididas em trs categorias: Hardware Zaptel, Hardware no-Zaptel e pacotes de voz.
ISDN4Linux Basic rate ISDN Interface for Linux OSS/Alsa Sound card interfaces Linux Telephony Interface (LTI) Quicknet internet ihonejac/Linejack Dialogic hardware1 Full-duplex Intel/Dialogic hardware

Figura 4.1
Session Initiation Protocol (SIP) Inter-Asterix eXchange (IAX) versions 1 and 2 Media Gateway Control Protocol (MGCP) ITU H.3232 Voice over Frame Relay (VOFR)

Figura 4.2

Zaptel Pseudo TDM interfaces


\\Zaptel

Pseudo TDM interfaces, disponveis em: www.digium.com: uma variedade de interfaces de rede: POTS;

\\Para

\\PSTN, \\T1,

E1; PRA: Single Span T1 ou PRI connections; Quad Span T1 ou PRI connections.

\\PRI,

\\T100P \\T400P

136

TDM (Time Division Multiplexing) ou Multiplexao por Diviso do Tempo, em telefonia significa que o canal digital utilizado para transporte da voz separado em fatias de tempo (Time Slots TS). Em cada fatia, segue um canal de voz. Em uma interface E1, padro utilizado no Brasil e na Europa, existem 32 time slots, sendo o TS0 utilizado para sincronismo e o TS16 para transporte das informaes das ligaes. Os outros 30 time slots TS1 a TS15 e TS17 a TS31, so os 30 canais de voz da interface E1. O termo TDM acabou ganhando um novo sentido entre os usurios do Asterisk, designando tambm os canais analgicos da telefonia tradicional, como as interfaces FXS (Foreing Exchange Station) e FXO (Foreing Exchange Office). Essas interfaces tambm so conhecidas como POTS (Public Old Telephony System). O sistema de telefonia que compreende as duas tecnologias (analgica e digital) conhecido como PSTN (Public Switched Telephony Network), a Rede de Telefonia Pblica Comutada.

Non-Zaptel hardware interfaces


\\Conectividade \\Exemplo

a outros tipos de interfaces;

de hardware suportado pelo Asterisk para conexo a PSTN: TDM400P .

\\Zaptel

As interfaces no-Zaptel proveem conectividade a outros tipos de interfaces. Essas interfaces do acesso a outros dispositivos, como a placa de som do computador, interfaces BRI (ISDN), JACK, ou outras placas de telefonia no baseadas na tecnologia Zaptel. TDM400P uma placa base de 4 entradas que permite a insero de at 4 cartes irmos, que admitem portas FXO (mdulo vermelho) e FXS (mdulo verde), sendo os mdulos FXO e FXS intercambiveis para criao de vrias combinaes de interface.

Figura 4.3 Zaptel TDM400P


137

Captulo 4 Asterisk

Zaptel Pseudo TDM interfaces proveem integrao com interfaces telefnicas analgicas e digitais, tradicionais e legadas, incluindo conexo ao sistema de telefonia pblica.

Introduo Voz sobre IP e Asterisk

Atualmente existem outras placas para telefonia analgica que possibilitam uma srie de combinaes de interfaces FXSs (para ligao de ramais analgicos comuns) e FXOs para ligao de uma linha telefnica comum. Para mais informaes, visite: www.digium.com. Fabricantes como Sangoma e os nacionais Khomp e DigiVoice possuem placas e solues com densidades diferentes. Tambm possuem placas com DSP (Digital Signal Processor), provendo integrao dos codecs mais utilizados e assim aliviando consideravelmente a carga de processamento no servidor.
Protocolos de Telefonia IP SIP IAX2 MGCP H323 Interface de rede (Ethernet ...) Placas de comunicao Linhas Digitais E1 T1 BRI ... PC / Servidor

Linhas Analgicas

Figura 4.4

Esta figura mostra um esquema conceitual do Asterisk utilizando uma placa de rede (Ethernet) para sua comunicao com a rede IP uma placa digital e uma analgica , para comunicao com a rede de telefonia. Neste exemplo, o Asterisk pode funcionar como um gateway entre as redes de telefonia IP e a tradicional (TDM).

Packet voice protocol


\\nicas

interfaces que no requerem um hardware especfico Asterisk Gateway Interface (AGI):


\\Interface \\AGI; \\EAGI; \\Dead \\Fast \\Os

padro:

AGI;

AGI.

scripts so utilizados em lgica avanada.

\\AGI

permite tambm comunicao com bancos de dados relacionais:

138

\\MySQL: \\Acesso \\Scripts

a outros recursos externos.

AGI podem ser escritos em quase todas as linguagens de programao moderna, como:
\\Perl; \\PHP; \\Python.

Packet Voice Protocol so protocolos para comunicao em redes comutadas por pacotes, como IP e Frame Relay. As interfaces de packet voice, ou numa traduo livre, de pacotes de voz, no requerem placas especficas. Elas utilizam a infraestrutura de rede disponvel com o servidor. possvel montar uma rede de telefonia totalmente baseada em packet voice. Assim no seria necessrio possuir nenhuma interface para telefonia no servidor. Por outro lado, os telefones tradicionais devem ser trocados por telefones IP que so bem mais caros. , AGI (Asterisk Gateway Interface) uma interface muito similar ao Common Gateway Interface (CGI) para o HTML. Ela oferece uma interface padro pela qual programas externos podem controlar o plano de discagem do Asterisk. Utilizar AGI uma maneira elegante de estender a capacidade do Asterisk. possvel criar programas em qualquer linguagem (shell script, C, php, perl, java, pascal, python), que podem controlar o plano de discagem do Asterisk e tambm podem interagir com o sistema e a rede de dados, conforme a vontade e necessidade do programador.
\\AGI

pode controlar o plano de discagem;

\\EAGI

possibilidade de acessar e controlar o canal de som, alm da interao com o plano de discagem; AGI permite acesso ao canal morto aps um hangup*, tendo sido descontinuado aps o Asterisk 1.6; AGI permite que o script AGI seja chamado pela rede, para que mltiplos servidores Asterisk possam chamar scripts AGI de um local centralizado. * Neste caso, mesmo que a ligao tenha sido desligada e um comando hangup tenha sido executado, o canal continuar no estado UP at que o programa termine, criando um canal morto. Isto pode gerar inconsistncias diversas na aplicao, por exemplo no CDR que continuar contabilizando a chamada at o canal ser fechado propriamente.

\\Dead

\\Fast

Normalmente, scripts AGI so utilizados na lgica avanada, na comunicao com bancos de dados relacionais e no acesso a outros recursos externos. Passar o

139

Captulo 4 Asterisk

\\PostgreSQL;

Introduo Voz sobre IP e Asterisk

controle do plano de discagem para um script AGI externo permite que o Asterisk execute facilmente tarefas que de outra forma seriam difceis ou impossveis. O AGI funciona fazendo com que o programa se comunique com o Asterisk por meio do standard input (em um programa normal seria o teclado, no AGI o Asterisk que envia estes dados) e do standard output (em um programa normal seria a tela do computador, no AGI o programa envia comandos como se estivesse escrevendo na tela).
Base de Dados

CD

Ca R(

ll D

eta

e il R

cor

d)

CDRs

Asterisk

Dia

lpla

nC

ont

rol
Programa externo

C / C++ Java / .Net Python Bash [ ... ]

Figura 4.5 Exemplos de uso AGI

Esta figura ilustra os conceitos apresentados em slides anteriores, onde temos um programa externo que nos d controle do plano de discagem do Asterisk, permitindo tambm ter acesso a seu banco de dados para uma coleta de CDRs com o intuito de que seja realizada alguma operao (billing, tempo gasto em uma ligao por um cliente etc.).

Protocolos usados pelo Asterisk


\\Uso

de protocolos VoIP no Asterisk: as conexes; o ponto de destino; questes relacionadas sinalizao de telefonia, como: de chamada;

\\Estabelecer \\Determinar \\Estabelecer

\\Indentificador \\Desconexo. \\IAX

e o Asterisk: aberto;

\\Protocolo \\Histrico:

\\Desenvolvido \\Protocolo

pela Digium com o propsito de comunicao com outros servidores Asterisk; de transporte;

140

\\Canais

de sinalizao; de mdia.

\\Tansporte \\No

IAX, usurios so autenticados de trs formas: text; hashing;

\\Plain \\MD5 \\RSA.

\\Facilidades \\Fornece \\Utiliza

do IAX: controle e transmisso de voz sobre redes IP;

qualquer tipo de mdia, como:

\\Voz; \\Vdeo. \\Caractersticas \\Derivado \\SIP; \\MGCP . \\Utiliza

do IAX:

da experincia dos protocolos:

o mesmo protocolo para sinalizao e mdia em uma mesma porta do protocolo IAX: o uso de banda; de uso na presena de firewalls; de transmitir informaes sobre plano de discagem. transparncia NAT;

UDP .
\\Objetivos

\\Minimizar \\Prover

\\Facilidade

\\Possibilidade

O protocolo um conjunto de regras. Fazendo uma analogia, imagine que voc encontra uma pessoa na rua e a cumprimenta com um bom-dia. No mnimo voc espera um bom-dia de resposta. Mas imagine que voc no recebeu de volta a sua resposta. Ento voc repete o bom-dia. Desta vez voc recebe a sua resposta e inicia uma conversa. Durante a conversa, enquanto a outra pessoa fala, de vez em quando voc balana a cabea afirmativamente para demonstrar que est acompanhando seu interlocutor. No final, vocs se despedem dizendo tchau. Essas aes fazem parte de um protocolo de comunicao pessoal. Nada foi declarado, escrito ou documentado para fazer desses gestos e frases um protocolo formal, mas a prtica aprendida no cotidiano faz este conjunto de aes definirem o incio da conversao (bom-dia), o acompanhamento (uhum) e o trmino (tchau) da conversa.

141

Captulo 4 Asterisk

\\Utiliza

porta UDP (4569):

Introduo Voz sobre IP e Asterisk

Note que, mesmo quando a informao perdida, quando no incio da conversa voc no recebe a resposta do seu interlocutor, existe uma regra que o faz tentar novamente o estabelecimento da conversa. Esta regra diz: caso no haja resposta em um tempo adequado, repita o bom-dia. A mesma coisa pode-se dizer das comunicaes de dados. A forma como uma pgina da internet solicitada e transferida faz parte de protocolos como HTTP TCP , , UDP RTP IP FTP exemplos de protocolos para transferncia de informao. , , , , Em VoIP no diferente; H.323, SIP MCGP e IAX so protocolos de Voz sobre IP , suportados pelo Asterisk, e todos eles possuem uma forma de estabelecer, controlar e finalizar chamadas, alm de uma forma de lidar com a perda de mensagens importantes. Mesmo na telefonia tradicional, digital ou analgica, existem meios de estabelecer, controlar e finalizar chamadas. Principais protocolos de Voz sobre IP suportados pelo Asterisk:
\\SIP

(Session Initiation Protocol); (padro definido pela ITU);

\\H.323 \\IAX

(Inter-Asterisk eXchange Protocol) v1 e v2; (Media Gateway Control Protocol);

\\MGCP \\SCCP

(Cisco Skinny), protocolo proprietrio da Cisco.

Protocolo IAX
O IAX (Inter Asterisk eXchange) foi desenvolvido pela Digium com o propsito de comunicao eficiente com outros servidores Asterisk. A verso 2 do protocolo (IAX2) est definida na RFC 5456. um protocolo aberto, isto , qualquer pessoa pode baix-lo da internet e aprimor-lo. De acordo com o texto da RFC, ele no um padro do IETF e deve ser utilizado com cautela. O Asterisk utiliza apenas uma porta UDP conhecida e fixa (4569), para trfego de sinalizao e mdia. Esta estratgia cria uma boa vantagem sobre os outros protocolos de VoIP pois no sofre com implementaes de NAT. Alm disso, tambm , facilita o tratamento dos pacotes em firewalls, sem a necessidade da instalao de mdulos especficos para VoIP . O protocolo IAX2 permite a autenticao de dispositivos utilizando:
\\MD5

Message-Digest (conforme a RFC 1321) neste caso, a senha no trafega pela rede, mas sim a resposta a um desafio calculado, utilizando uma combinao com o domnio e um nmero aleatrio. Forma utilizada pelo SIP , com base na autenticao www. (de acordo com a RFC 3447) utiliza par de chaves pblica e privada. A chave pblica deve ser criptografada como algoritmo 3DES, descrito na RFC 1851.

\\RSA

142

O IAX foi desenvolvido para prover controle e transmisso de voz e vdeo por meio de servidores Asterisk. Tambm utilizado para conexes entre clientes e servidores que o suportam. Ele aproveita ideias do SIP do H323 e de outros protocolos. Por exemplo, evita , fortemente o envio de informao redundante e j conhecida, que no seria aproveitada. Tambm utiliza cdigos ao invs de descrever textualmente a informao. Estas caractersticas tornam o IAX um protocolo mais rpido e eficiente para tratamento de chamadas. NAT (Network Address Translation) um recurso de traduo de endereo de rede muito comum, usado quando necessrio ligar mais de um dispositivo de rede a internet, mas s h um endereo rotevel pela grande rede. O NAT causa problemas com protocolos como H.323 e SIP porque eles utilizam um canal (par de portas , origem e destino) para o controle das chamadas e, durante o estabelecimento da chamada, negociam dinamicamente outros dois canais para mdia, um em cada sentido. O que acontece que o roteador que implementa o NAT fica perdido e no consegue saber o par de portas atravs do qual o canal de mdia ser transmitido. Esta alocao dinmica dos canais de mdia representa um problema adicional para os firewalls que, da mesma forma que no NAT, no conseguem saber que portas devem ser abertas para as ligaes estabelecidas.

J existem implementaes de firewall e NAT que conseguem identificar os canais de mdia porque, ao perceberem um pacote com caractersticas de uma ligao SIP ou H.323, analisam o pacote completamente at a camada 7 (de aplicao) e verificam os endereos e portas que sero utilizadas para o trfego de mdia. Obviamente, este artifcio consome recursos computacionais do firewall e deve ser evitado quando possvel. O protocolo IAX resolve facilmente estes problemas, porque utiliza apenas a porta UDP 4569 para controle e transmisso de todas as chamadas entre os dois servidores. Outra vantagem do protocolo IAX o modo trunk (tronco) para transmisso das chamadas entre servidores. Quando configurados para operar neste modo, dois servidores Asterisk so capazes de otimizar o consumo de banda quando houver mais de uma chamada em curso entre eles. O IAX consegue utilizar o mesmo cabealho IP e UDP para transmitir vrias ligaes simultaneamente em um s pacote, aumentando apenas 4 bytes de cabealho para cada chamada no tronco. Por exemplo, para 30 chamadas utilizando SIP ou H.323 com codec G.729, para cada pacote de voz seria necessrio um cabealho IP+UDP+RTP Como cada cabealho .
143

Captulo 4 Asterisk

Como j sabemos, o IAX utiliza apenas a porta UDP 4569 tanto para a sinalizao das chamadas quanto para o transporte da voz. Alm disso, diferentemente do SIP e do H.323, o IAX no utiliza o RTP para transporte de mdia, mas implementa seu prprio mecanismo para transporte e controle do canal de mdia, seja de voz ou vdeo.

Introduo Voz sobre IP e Asterisk

possui 40 bytes e cada payload (carga til do pacote de voz) tambm possui 40 bytes, teremos 30 x (40+ 40) bytes trafegando na rede 50 vezes por segundo. O resultado da conta revela um consumo de banda de aproximadamente 960 kbps. Por outro lado, se for utilizado o IAX2 em modo tronco com as mesmas 30 ligaes e codec G.729, teremos um cabealho IP + UDP de 28 bytes mais 30 vezes 4 bytes, mais 30 vezes o payload de 40 bytes: 28 + 30 x (4 + 40). O resultado desta conta indica um consumo de banda de 539,2 kbps, pouco mais que a metade dos protocolos consagrados.

\\As

mensagens IAX so chamadas de frames; vrios tipos de frames: completo;

\\Existem

\\Frame

\\Miniframe.

As mensagens IAX so chamadas de frames. Existem vrios tipos de frames. Um bit F usado para indicar se o frame completo (full) ou no. O valor 0 indica que completo. Um nmero de chamada de 15 bits usado para identificar o ponto final do fluxo de mdia. Valor 0 indica que o ponto final no conhecido. Uma chamada tem dois nmeros de chamada associados a ele em qualquer uma das direes. O horrio (timestamp) pode ser um campo de 32 ou 16 bits. De qualquer forma, o campo ocupa 32 bits.
1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 F

Nmero originador da chamada

Nmero de destino da chamada

Timestamp OSeqno ISeqno Frame Type C Subclasse

Figura 4.6 Frame completo do IAX

A figura ilustra o formato binrio de um frame completo. Um frame completo pode ser usado para enviar sinalizao, udio e vdeo de forma confivel. O frame completo o nico tipo de frame transmitido de maneira confivel. Isso significa que aps o recebimento o receptor deve retornar algum tipo de mensagem ao emissor. O bit R marcado para 1 se o frame est sendo retransmitido. A retransmisso ocorre aps um perodo de timeout. As retransmisses so tentadas vrias vezes, dependendo do contexto. O nmero de sequncia do fluxo de sada (outbound) OSeqno inicia com 0 e incrementado de um em um. O campo OSeqno usado para identificar a ordenao dos frames de mdia. O campo ISeqno o mesmo, s que no sentido de entrada (inbound). O tipo de frame indica a classe da mensagem. O bit C determina como a subclasse interpretada.

144

1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 F

Figura 4.7 Miniframe do IAX

Nmero originador da chamada Dados

Timestamp

O miniframe usado para enviar udio ou vdeo (mdia) com um mnimo de sobrecarga de protocolo. O formato do miniframe o apresentado na figura. O timestamp do miniframe truncado. O cliente geralmente mantm o timestamp completo de 32 bits. Quando est enviando miniframes, os 16 bits de ordem mais baixa so enviados no campo timestamp. Quando o timestamp de 16 bits d a volta (estoura), um frame completo enviado para permitir que o outro lado sincronize. Uma descrio completa do protocolo IAX pode ser encontrada na RFC 5456 ou em:
\\www.cornfed.com/iax.pdf

Campo F Source Call Number R Destination Call Number Timestamp OSeqno ISeqno Tabela 4.1 Campos do frame completo do IAX Frame Type C Subclasse

Descrio Marcado para 1 indica que um frame completo. Nmero de chamada originador do lado de transmisso. Marcado para 1 indica que o frame est sendo retransmitido e o valor de 0 para a transmisso inicial. Nmero de chamada de destino do lado receptor do frame. Timestamp completo, 32 bits. Nmero de sequncia do fluxo de sada. Nmero de sequncia do fluxo de entrada. Tipo de frame. Formato do valor da subclasse. Subclasse.

145

Captulo 4 Asterisk

Introduo Voz sobre IP e Asterisk

Campo F Source Call Number Timestamp Dados

Descrio Marcado para 0 indica que um frame incompleto Nmero de chamada originador do lado de transmisso do frame completo Timestamp completo, 16 bits. Dados Tabela 4.2 Campos do Miniframe do IAX

SIP Vantagens Largamente implementado pelas operadoras VoIP; Padro de fato para a telefonia IP no momento. Problemas com NAT e FW.

IAX Uso eficiente da banda; Transparente a implementaes de NAT; Simples e rpido.

H.323 Larga adoo pelo mercado; Padro de videoconferncia; Essencial na conectividade com projetos mais antigos. Arquitetura complexa Problemas com NAT e FW. Tabela 4.3 Comparativo entre IAX, SIP e H.323.

Desvantagens

Protocolo ainda pouco difundido, implementado em poucos dispositivos.

Este quadro resume as qualidades e defeitos dos dois principais protocolos, confrontando-os com o IAX, o protocolo feito para o Asterisk.

Resumo
\\IAX

protocolo eficiente, que procura economizar ao mximo os recursos da rede, reduzindo o consumo de banda da rede, o consumo de processamento em roteadores e, por ser bem simples, tambm reduz o consumo de recursos para o processamento das chamadas no PABX. mais antigo e maduro protocolo de VoIP Completo e bem consolidado, . o protocolo mais utilizado para videoconferncia. Por outro lado, relativamente lento e complexo, alm de apresentar problemas com implementaes de NAT. protocolo da vez na internet, o mais utilizado para chamadas VoIP talvez , sendo o mais adequado para uma implementao em larga escala. Mais flexvel que o H.323, porm menos eficiente que o IAX.

\\H.323

\\SIP

146

4
Roteiro de Atividades
Tpicos e conceitos
\\A

atividade tem por objetivo instalar e configurar o Asterisk.

Competncias tcnicas desenvolvidas


\\Ao

final desta prtica o aluno ir aprender a instalar e configurar o Asterisk.

Tempo previsto para as atividades


\\1

hora a 1h30 minutos (trabalho individual).

Requisitos
\\Esta

prtica envolve atividades individuais.

Preparando o ambiente
Descompacte a mquina virtual para o desktop e troque o nome do diretrio para Asterisk.

Atividade 1 Instalando o Asterisk


Nesta atividade efetuaremos a instalao do Asterisk em uma mquina virtual Debian. Passo 1: inicie a mquina virtual com sistema operacional Debian no diretrio Asterisk.

147

Introduo Voz sobre IP e Asterisk

Se for apresentada a tela abaixo selecione a opo I copied it.

Figura 4.8 Passo 2: execute o comando: apt-get update Passo 3: execute o comando: apt-get install asterisk Ao trmino da instalao do Asterisk, o arquivo asterisk localizado no diretrio /etc/ default dever ser editado. Somente a linha RUNASTERISK=no dever ser modificada, alterando o valor de no para yes. Uma instalao tpica inclui vrios arquivos de configurao padro, normalmente localizados em /etc/asterisk, sendo os mais importantes para comear:
\\asterisk.conf; \\extensions.conf; \\sip.conf; \\voicemail.conf.

Para nossa primeira atividade, primeiro editaremos o arquivo sip.conf, onde definiremos os softphones disponveis na rede. O arquivo sip.conf dividido em duas partes, onde a primeira uma seo de configuraes gerais, que pode ser deixada com quase todas as entradas com o valor padro. A segunda composta por entradas de telefones individuais para cada aparelho.

Passo 4: o arquivo sip.conf ser o primeiro arquivo a ser editado. Abra o arquivo:
# vi /etc/asterisk/sip.conf

Mude o bindaddr para o endereo da sua mquina virtual (ser o IP do servidor).

148

;RAMAL PARA O X-LITE [10XX] type=friend secret=voip Host=dynamic Canreinvite=no ;RAMAL PARA O TELEFONE IP [20XX] type=friend secret=voip Host=dynamic Canreinvite=no ;RAMAL PARA O ATA [30XX] type=friend secret=voip Host=dynamic Canreinvite=no

Salve o arquivo e reinicie o servio:


# /etc/init.d/asterisk restart

Atividade 2 Configurando e testando os clientes X-Lite, Telefone IP e ATA


X-Lite Passo 1: configure o cliente X-Lite para o registro em seu servidor Asterisk. Observe se a mensagem Ready ser exibida no display do cliente.
Display Name: 10XX User name: 10XX Password: voip Authorization user name: 10XX Domain: <IP_do_servidor_Asterisk> Domain Proxy: <IP_do_servidor_Asterisk>

149

Captulo 4 Asterisk

No fim do arquivo, adicione os novos ramais:

Introduo Voz sobre IP e Asterisk

Telefone IP
Line 1 Display Name: 20XX Address: 20XX Auth User ID: 20XX Auth Password: voip Server 1 Address: <IP do servidor Asterisk> Port: 5060 Transport: DNSnaptr

ATA
Proxy: <IP do servidor Asterisk> Display Name: Entre com o seu nome completo User ID: 30XX Password: voip Register Expires: 3600

Volte para a mquina virtual e se conecte no console do Asterisk com o comando asterisk -r. Certifique-se de que o X-Lite foi registrado visualizando a lista de peers no console SIP utilizando o comando sip show peers. , Passo 2: teste os clientes e o servidor efetuando uma chamada para o ramal 1000 do X-Lite, do Telefone IP e do ATA. Oua a mensagem em ingls e observe as opes apresentadas na mensagem. Congratulations. You have successfully installed and executed the Asterisk open source PBX. You have also installed a set of sample sounds and configuration files that should help you to get started. Like a normal PBX, you will navigate this demonstration by dialing digits. If you are using a console channel driver instead of a real phone you can use the dial, answer, and hang up commands to simulate the actions of a standard telephone. Opes 200 600 # Para maiores informaes Para teste de eco (excelente para teste de atraso) Para retornar ao menu Tabela 4.4

150

5
Arquitetura do Asterisk

Sumrio
Arquitetura do Asterisk . . . . . . . Introduo a canais analgicos e digitais . Dual Tone Multi Frequency (DTMF) . . . Gateway de voz sobre IP . . . . . . . Loop start . . . . . . . . . . . . Ground start . . . . . . . . . . . Kewl start . . . . . . . . . . . . Estrutura dos arquivos de configurao . Organizao dos arquivos de configurao Introduo s aplicaes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 . 156 . 159 . 160 . 162 . 163 . 163 . 165 . 167 . 168

Roteiro de Atividades . . . . . . . . . . . . . . . . . . . . . 171 Atividade 1 Configurando um novo ramal . . . . . . . . . . . . . 171

151

Introduo Voz sobre IP e Asterisk

Arquitetura do Asterisk
\\O

Asterisk possui uma arquitetura simples, diferente da maioria dos produtos de telefonia; como um intermediador entre: de telefonia:
Internet e Telephony applications

\\Atua

\\Tecnologias \\IAX; \\SIP; \\H.323. \\Aplicaes

Asterisk
da telefonia: de voz; de chamadas.
Internet e Telephony technologies

\\Conferncia \\Secretria

eletrnica;

Figura 5.1

\\Estacionamento \\Limitaes \\Usa

da arquitetura do Asterisk: muito dependente da performance da CPU;

a CPU do servidor para processar os canais de voz; acesso de alta prioridade frequente para a CPU.

\\Sistema \\Requer \\Canais

do Asterisk: lgicas para a trajetria das sinalizaes e transmisses;

\\Conexes \\As

conexes podem ser: em software.

\\Fsicas; \\Baseadas \\As \\Os

regras para os canais so definidas no plano de discagem.

canais tm vrios tipos de formatos: fsicos:


\\FXO \\FXS \\PRI \\BRI

\\Circuitos

Foreign eXchange Office; Foreign eXchange Station; Primary Rate Interface; Basic Rate Interface. em software: Session Initiation Protocol; Inter-Asterisk eXchange Protocol.

\\Baseados \\SIP \\IAX \\Canais

internos do Asterisk:

\\Agent; \\Local; \\TDMoE

TDM over Ethernet.

152

Asterisk Application API Codec Translator

Application Laucher PBX Switching Core

Scheduler and I/O Manager

Dinamic Module Loader

Figura 5.2

Asterisk Channel API

Dynamic Module Loader


Mdulo responsvel por carregar e inicializar todos os drivers necessrios, providos por:
\\Drivers

de canal (channel drivers); de arquivos (file formats); de chamadas gravadas (call detail records);

\\Formato \\Detalhe \\Codecs;

\\Aplicaes.

Tradutor de codec (codec translator)


Converso transparente entre canais utilizando diferentes codecs, realizada para obter o mximo de chamadas possveis em uma rede de dados em que haja necessidade de converter os codecs.

Asterisk File Format API

Codec Translator API

153

Captulo 5 Arquitetura do Asterisk

Em essncia, o Asterisk atua como um mediador, conectando as tecnologias de telefonia s aplicaes da telefonia, criando assim um ambiente consistente. As tecnologias de telefonia podem incluir servios VoIP como SIP H.323, IAX e MGCP , , tecnologia TDM como T1/E1, ISDN PRI, R2D, e ainda as linhas analgicas conhecidas como POTS e/ou PSTN. J as aplicaes de telefonia incluem: call bridging, conferncia de voz (conferencing), secretria eletrnica (voicemail), IVR scripting (URA Unidade de Resposta Audvel) e estacionamento de chamadas (call parking), entre outras.

Introduo Voz sobre IP e Asterisk

Ncleo de comutao PBX (PBX switching core)


Comea aceitando chamadas vindas das interfaces, depois as encaminha para a aplicao adequada, conforme descrito no plano de discagem para:
\\Fazer

um telefone tocar; ao correio de voz;

\\Conectar-se \\Discagem

para a rede pblica.

Agendador e gerente de I/O (scheduler and I/O manager)


Mdulo que oferece funes para aplicativos e drivers. O Asterisk usa a CPU do servidor para processar os canais de voz, ao invs de ter um processador de sinais digitais (DSP) dedicado a cada canal. Por isso exige muito da capacidade de processamento da sua CPU. Sendo assim, deve-se evitar realizar muitas tradues entre codecs diferentes. A utilizao do cancelador de eco via software em ambientes muito carregados ou com baixa capacidade de processamento tambm pode prejudicar a qualidade das chamadas. Entretanto, existem placas para uso com o Asterisk que contam com DSP prprio, inclusive possuem os codecs G.729 e GSM. Tambm existem mdulos e placas exclusivamente voltadas para o cancelamento de eco. A utilizao de placas com DSP embutido reduz consideravelmente a utilizao de CPU no servidor que hospeda o Asterisk. Para o Asterisk, canais so conexes lgicas para a trajetria das vrias sinalizaes e transmisses que podem ser utilizadas para criar e conectar chamadas. Podem ser fsicas (porta analgica FXO ou FXS) ou baseadas em software (canal IAX). No plano de discagem so definidas as regras que o Asterisk deve seguir para conectar canais. Por exemplo, se uma chamada recebida pela rede de telefonia tradicional por um tronco E1 e deve chamar um ramal SIP o plano de discagem deve possuir regras para ligao dos canais digitais TDM ao , canal digital (por software) SIP correspondente ao telefone de destino. A forma como o Asterisk trata os canais de comunicao simplifica bastante sua configurao, pois no plano de discagem todos so tratados da mesma forma, praticamente com a mesma sintaxe. Principais canais do Asterisk:
\\FXO

(Foreing Exchange Office) interfaces analgicas utilizadas para a comunicao com a operadora ou posio de ramal de um PABX; (Foreing Exchange Station) interfaces analgicas para ligao de ramais tradicionais; (Primary Rate Interface) servio RDSI (Redes Digitais de Servios Integrados) que prov 30 canais do tipo B (Bearer) de 64 Kbps para voz e um canal do tipo D (Data) para controle e sinalizao, tambm conhecido como 30B+D. Utilizam interfaces digitais E1. Nos EUA, utilizada a interface T1 e, neste caso, a quantidade de canais para voz diminui para 24; (Basic Rate Interface) interface RDSI desenvolvida para pequenos negcios. Contm apenas dois canais do tipo B e um canal do tipo D, tambm conhecido como 2B+D;

\\FXS

\\PRI

\\BRI

154

\\IAX

(Inter Asterisk eXchange) protocolo utilizado na telefonia IP proprietrio , do Asterisk; canal proxy de distribuio de chamadas em fila para atendentes, muito utilizado em implementaes para centrais de atendimento; utilizado na lgica de programao do Asterisk, faz loops com as chamadas dentro do plano de discagem, em contextos diferentes; canal especial do Asterisk que simula conexes TDM (Time Division Multiplexing) na camada de enlace da rede local, til para interligar dois ou mais servidores Asterisk na mesma LAN (Local Area Network). Detalhe Um canal de agente ACD. Cliente de console do Linux, driver para placas de som (OSS ou ALSA). Um dos protocolos mais antigos de VoIP . O prprio protocolo do Asterisk. Outro protocolo de VoIP . Usados para linhas ISDN e no modem. Usado para broadcast de som. Canal de telefonia do Linux. Protocolo mais comum em VoIP . Um driver para o protocolo dos telefones IP da Cisco. Voz sobre Frame Relay. Linhas telefnicas para placas da Voicetronix. Para conectar telefones e linhas com placas da Digium. Tambm usado para TDMoE e para Asterisk ZPHFC (ISDN em modo NT).

\\Agent

\\Local

\\TDMoE

Canais Agent Console H.323 IAX e IAX2 MGCP Modem NBS Phone SIP Skinny VOFR Tabela 5.1 Canais que o Asterisk suporta VPB ZAP

Outros canais do Asterisk:


\\H.323 \\MGCP

protocolo de voz sobre IP do ITU; protocolo de voz sobre IP; utilizado em linhas ISDN (Integraded Services Digital Network);

\\Modem \\NBS

utilizado para broadcast de som; utilizado para telefonia no Linux; protocolo de voz sobre IP utilizado nos telefones da Cisco;

\\Phone \\Skinny \\VOFR

voz sobre Frame Relay;

155

Captulo 5 Arquitetura do Asterisk

\\SIP

(Session Initiation Protocol) protocolo utilizado na telefonia IP;

Introduo Voz sobre IP e Asterisk

\\VPB \\ZAP

canais de voz das placas Voicetronix;

canais de voz das placas baseadas no projeto Zapata (placas digitais da Digium).

Conforme mais empresas desenvolvem solues para Asterisk, esta lista cresce. Os parmetros de configurao dos canais dependem de cada fabricante. Portanto, no h uma regra nica para configurar os diversos canais do Asterisk.

Introduo a canais analgicos e digitais


\\Reviso \\A

dos conceitos de telefonia

maior parte das implementaes de telefonia usa fios metlicos:

\\Tip; \\Ring. \\Loop

fechado: recebe o tom de discagem da central telefnica: do tipo loop-start; do tipo ground-start: utilizada na telefonia analgica.

\\Telefone

\\Sinalizao \\Sinalizao

\\Sinalizao

A maior parte das implementaes de telefonia analgica usa um par de fios metlicos (tip and ring). Quando um loop fechado, o telefone recebe o tom de discagem da central telefnica, seja ela pblica (operadora) ou privada (PABX). Nos primeiros telefones, a discagem era feita por meio de um disco que gerava uma sequncia de pulsos na linha telefnica. Ao ocupar a linha, o lao (loop) era fechado e, ao efetuar a discagem, ocorriam aberturas peridicas deste lao, tantas vezes quanto o nmero discado. Dizemos que este tipo de sinalizao do tipo loop start. Existem outras sinalizaes menos comuns, como ground start.
\\Loop

start tcnica para sinalizao de chamada telefnica usada por praticamente todas as linhas analgicas;

\\Ground

start tcnica de sinalizao de telefonia utilizada geralmente em linhas telefnicas conectadas a um PABX.

\\Existem

basicamente trs tipos de sinalizao: de superviso: (no gancho); (fora do gancho); de endereamento; de informao.

\\Sinalizao \\On-hook \\Off-hook \\Ringing

(tocando);

\\Sinalizao \\Sinalizao \\Ajustes

de tons deve ser realizado no arquivo indications.conf..

156

\\Sinalizao

de superviso indica se o telefone est no gancho (On-hook), fora do gancho (Off-hook) ou tocando (Ringing); de endereamento indica os nmeros que foram marcados pelo usurio;

\\Sinalizao

\\Sinalizao

de informao indica se o telefone chamado est ocupado, se o nmero marcado est errado etc. Podemos destacar os seguintes eventos: de discagem; de ocupado;

\\Tom

\\Sinal \\Tom

de retorno (ringback); (congestion);

\\Congestionamento \\Nmero \\Tom

invlido;

de confirmao.

Existem diferenas nas sinalizaes dos tons de discagem, de ocupado e da campainha (ringing), que variam de acordo com as regras adotadas por pases e fabricantes. Voc pode ajustar os tons do Asterisk para o padro brasileiro atravs do arquivo indications.conf.

On-hook (no gancho)


IDLE State

PBX

TIP

Telefone

RING Bateria

ON-Hook

Figura 5.3 IDLE State

Detector de corrente
Quando o usurio deixa o telefone no gancho, o circuito eltrico interrompido e no permite que a corrente seja transmitida. Neste caso, o circuito est em estado on-hook. Quando o telefone est nesta posio, apenas a campainha (ringer) est ativa. A figura ilustra a sinalizao loop start. A sinalizao ground start no usada com frequncia.

157

Captulo 5 Arquitetura do Asterisk

De forma muito resumida pode-se dizer que:

Introduo Voz sobre IP e Asterisk

Off-hook (fora do gancho)


Telefone inicia chamada

PBX

TIP corrente eltrica RING

Telefone

OFF-Hook

Bateria

Detector de corrente
O usurio que deseja fazer uma chamada telefnica deve passar para o estado offhook, retirando o telefone do gancho. Este estado fecha o circuito eltrico, que indica ao PABX que o usurio deseja fazer uma chamada telefnica. Aps receber essa indicao, o PABX gera o tom de discagem, indicando ao usurio que est pronto para receber o endereo de destino (nmero do telefone). No Asterisk possvel usar dois tipos de sinalizao para a discagem: multifrequencial de dois tons (DTMF) e pulsada, como nos antigos telefones de disco. DTMF a sigla de Dual Tone Multi Frequency, em referncia aos tons das frequncias utilizadas na discagem dos telefones mais modernos. Nos primeiros telefones, quando o termo discagem foi originado e fazia sentido, o endereo de destino era informado por meio de um disco que gerava uma sequncia de pulsos na linha telefnica. Ao ocupar a linha, o lao (loop) era fechado e, ao se efetuar a discagem, ocorriam aberturas peridicas deste lao, tantas vezes quanto o nmero discado: para a discagem do 1, uma abertura; para a discagem do 2, duas aberturas, e assim sucessivamente. O nmero 0 (zero) equivalia a 10 aberturas no circuito. Com a evoluo, as centrais telefnicas modernas passaram a utilizar a sinalizao multifrequncial, uma combinao de tons para discagem. A sinalizao DTMF foi desenvolvida nos laboratrios Bell e vulgarmente conhecida em ingls como touch tones. Mais detalhes na recomendao ABNT 13083.

Figura 5.4 Telefone inicia chamada

158

\\Teclado

de discagem altas e baixas para a central o nmero discado


1209 1336 1477 1633 697 770 852

\\Frequencias \\Indica

1 4 7

2 5 8 0

3 6 9 #

A B C D

Figura 5.5

941

Os usurios que tm um teclado para discagem possuem, associado a cada boto, um conjunto de frequncias de tons altos e baixos. A combinao destes dois tons indica para a central os dgitos selecionados. Este mecanismo conhecido como DTMF (Dual Tone Multi Frequency). Na figura so mostradas as frequncias altas na linha superior e as baixas na coluna mais esquerda. No centro esto os nmeros do teclado. Nos teclados dos telefones so mostrados apenas os nmeros de 1 a 0 e os caracteres * e #. Foi definida uma quarta coluna, com letras de A a D. A frequncia de 1633 hertz correspondente aos algarismos A, B, C e D utilizada apenas internamente, entre equipamentos de teste e medida. A sinalizao de informao mostra o progresso da chamada e os diferentes eventos. Os mais conhecidos so:
\\Tom

de discagem normalmente um tom contnuo, que indica que a linha est disponvel; de ocupado tom intermitente, intercalado com 250ms de silncio, indica que o destino est off-hook; semelhante ao tom de ocupado, indica falta de recurso na rede para completar a chamada.

\\Sinal

\\Congestionamento

Outros sinais menos comuns:


\\Tom

de retorno; invlido;

\\Nmero \\Tom

de confirmao.

As frequncias e tempos tambm podem variar ligeiramente de acordo com o padro adotado. Os padres podem ser configurados no Asterisk no arquivo /etc/asterisk/indications.conf.
159

Captulo 5 Arquitetura do Asterisk

Dual Tone Multi Frequency (DTMF)

Introduo Voz sobre IP e Asterisk

Os padres utilizados no Brasil esto descritos na prtica Telebras para telefonia, e podem ser encontrados no site da Anatel, www.anatel.gov.br.
\\Interfaces

FX (Foreign eXchange): analgicas;

\\Interfaces \\O

termo Foreign eXchange aplicado para troncos; interfaces: (Foreign eXchange Office); (Foreign eXchange Station).

\\Duas

\\FXO \\FXS

Interfaces FX (Foreign eXchange) so interfaces analgicas. O termo Foreign eXchange aplicado para troncos, para o acesso operadora de telefonia.

Resumo Um canal da central da operadora ligado em uma porta FXO (linha telefnica tradicional). Um telefone analgico convencional ligado em uma porta FXS. Ento, possvel ligar uma porta FXO em uma porta FXS, assim como possvel ligar um telefone linha da operadora. Dito de outra forma, um telefone analgico possui uma porta FXO, e um tronco na operadora telefnica uma porta FXS.

Gateway de voz sobre IP


Tom de discagem

FXO
\\FXO

Companhia telefnica

Figura 5.6

(Foreign eXchange Office): utilizada para comunicao com Central Office ou PABX; interfaces conectam um PABX a outro: pblica.

\\Interface \\Estas

\\PABX: \\Rede

As interfaces FXO so normalmente utilizadas para ligao com a central da operadora telefnica ou com a posio de ramal de um PABX comum. Esta porta espera receber o tom de discagem ou de linha (dialtone) e a indicao de que est chamando o destino (ringing). A porta FXO deve prover indicadores de chamadas em progresso.

160

\\FXS

(Foreign eXchange Station): as conhecidas linhas residenciais padro; para conectar dispositivos bsicos:

\\So

\\Utilizadas

\\Telefones; \\Modem; \\Fax. \\Deve

prover: ringing; off-hook; chamadas em processo.

\\Voltagem; \\Gerar

\\Detectar \\Indicar

As interfaces FXS (Foreign eXchange Station) so as conhecidas linhas residenciais padro. Podem ser utilizadas para conectar dispositivos bsicos como telefones, aparelhos de modem e fax. Tambm possvel conectar uma porta FXO nessas linhas. As portas FXS devem prover voltagem para acionar a campainha, ou seja, 88V AC a 20Hz. O sinal ringing, deve detectar o estado off-hook do telefone e indicar chamadas em progresso. O termo E&M proveniente de Ear and Mouth (Ouvido e Boca) e indica a analogia de uma orelha para receber sinais e de uma boca para transmitir sinais. Interfaces E&M tambm so interfaces analgicas, usadas principalmente nas ligaes entre PABXs ou entre Net-Net Switches.

\\Interfaces

E&M: analgicas;

\\Interfaces \\E&M

Ear (receive) and Mouth (transmit); em ligaes entre PABXs ou entre Net-Net Switches; no mercado como tie-lines analgicas;

\\Usadas \\No

esto disponveis para o Asterisk; comunicao bidirecional.

\\Conhecidas \\Permitem

161

Captulo 5 Arquitetura do Asterisk

muito comum ligar, no lugar de um telefone, uma interface FXO de um gateway VoIP e transportar a voz empacotada pela rede IP at outro gateway remoto, em que o telefone concetado em uma interface FXS. Esta operao conhecida como OPX (Off-Promises eXtension) ou ramal remoto.

Introduo Voz sobre IP e Asterisk

As placas E&M so conhecidas no mercado de telefonia como tie-lines analgicas, e no esto disponveis para Asterisk. A maioria das centrais no vem com este tipo de interface, muito embora as centrais de marcas conhecidas possuam E&M como um componente opcional. As placas E&M permitem uma comunicao bidirecional, podendo dar ou receber tom. Se voc precisar usar uma interface E&M com o Asterisk, a melhor opo a integrao com um gateway de voz. A Cisco possui interfaces E&M para a maioria de seus roteadores de voz, que podem ser integradas ao Asterisk.

\\Sinalizao \\Loop

nos troncos: start;

start; start; (no sero abordados): Wink Start; Immediate Start; Delay Start.

\\Ground \\Kewl

\\Outros

\\E&M \\E&M \\E&M

Kewl start o mesmo que loop start, exceto por ter uma inteligncia maior e por isso maior capacidade para detectar desconexes remotas. Desta forma, recomenda-se a utilizao da sinalizao kewl start com interfaces analgicas no Asterisk. E&M uma forma de sinalizao de superviso analgica utilizada entre PABXs. Tambm pode ser utilizada em linhas digitais, em verses adaptadas para isso. Entretanto, a sinalizao E&M est obsoleta. Esta sinalizao no ser abordada no curso, pois placas E&M no esto disponveis para o Asterisk.

Loop start
\\Usado

por praticamente todas as linhas analgicas; ao telefone indicar os estados de:

\\Permite

\\On-hook; \\Off-hook. \\Indica

ao switch os estados de: ring.

\\Ring; \\No \\

uma linha aberta; chamada entrante sinalizada por 100 V ring voltage.

\\Uma

162

Nesta sinalizao, o switch da central fornece 48 volts a um dos fios da linha, mas o circuito permanece aberto pelo telefone ou PABX do cliente, indicando a posio (on-hook). Quando o telefone retirado do gancho, o circuito fechado, indicando a posio off-hook. Este o sinal enviado para a interface da central para que ela fornea o tom de linha, de forma que o usurio possa discar o nmero de destino. No outro sentido, ao receber uma chamada entrante, a central sinaliza o telefone ou o PABX do cliente utilizando uma tenso alternada (20 Hz) de 88 volts, conhecida como ringing voltage. Para responder chamada, o loop deve ser fechado, com a retirada do telefone do gancho.

Ground start
\\Semelhante \\No

ao loop start;

momento de fazer uma ligao, o loop no fechado.

Sinalizao semelhante ao loop start. Neste caso, o switch da operadora permanece fornecendo -48 volts em um dos fios, mantendo o outro aberto. Quando uma ligao iniciada, o loop fechado no lado do cliente, e o circuito aterrado (ground). Este o sinal para que a interface da operadora feche o circuito e envie o tom de discar.

Kewl start
\\Monitora \\Incorpora

o que o outro lado est fazendo; vantagens do loop start e do ground start.

Adiciona inteligncia habilidade dos circuitos em monitorar o estado do dispositivo remoto. a superviso de desconexo. Desde que o kewl start incorporou as vantagens do loop start e ground start, sendo superior a ambos, voc provavelmente ir utiliz-lo. Kewl start tornou-se, informalmente, o padro para o uso com o Asterisk. Nova forma de conexo, completamente digital.

Channel B

PRI

Figura 5.7

D Channel

163

Captulo 5 Arquitetura do Asterisk

Usado por praticamente todas as linhas analgicas, o sistema que voc tem em casa. Permite ao telefone indicar os estados on-hook/off-hook e indicar ao PABX o estado de ring. Cada linha tem um par separado de fios, podendo ser utilizada tanto para fazer quanto para receber chamadas.

Introduo Voz sobre IP e Asterisk

Com a evoluo tecnolgica surgiram as linhas digitais, interfaces capazes de carregar mais informao de modo mais confivel. Assim, quando a demanda por troncos de voz relativamente alta (mais que 8 canais simultneos), utilizar canais digitais uma opo mais vantajosa. A tecnologia utilizada nos enlaces digitais da telefonia divide o meio de transporte em fatias de tempo, tambm conhecidas como time slots. Cada fatia um canal de transmisso de dados. Esta tecnologia conhecida como TDM (Time Division Multiplexing Multiplexao por Diviso do Tempo). No Brasil, assim como na Europa, a interface digital mais utilizada a E1, composta por 32 canais de 64 kbps, comumente chamado de canal ou link de 2 Mbps. Nos Estados Unidos utilizado o padro T1, composto por 24 canais de 64 kbps. A Telebrs estipulou que o protocolo digital padro para comunicao dos PABX dos assinantes com as operadoras deveria ser E&M pulsada, E&M contnua ou R2D/ MFC-5C. O protocolo R2 o mais utilizado, e juntamente com a interface E1, pode enderear at 30 canais de voz; j as sinalizaes E&M caram em desuso. Junto com o protocolo de sinalizao de linha, utilizada a sinalizao de registro Multifrequencial Compelida, que significa que cada sinal s pode ser enviado aps a resposta do sinal anterior ter sido recebida. O Brasil utiliza os tipos de sinalizao de registro MFC 5C terrestre (compelida), e MFC 5S (no compelida), embora mantenha a sigla MFC.

\\Integrated

Services Digital Network (ISDN) apresenta: sobre R2;

\\Vantagens \\Uso

Flexvel possibilitando uso simultneo de dados de voz; E1 com possibilidade de 30 canais de voz, conhecida como T123 com canais de voz +1;

\\Interface

30B+D;
\\Interface

Existe ainda outro protocolo para telefonia digital, conhecido como Rede Digital de Servios Integrados (RDSI), do ingls Integrated Services Digital Network (ISDN), que possui algumas vantagens sobre o R2. As principais so sua maior rapidez e o fato de prover um servio flexvel, possibilitando inclusive uso simultneo de dados e voz. O ISDN utilizado com interfaces E1 conhecido como PRI (Primary Rate Interface), e tem capacidade para enderear 30 canais de voz, mais um canal para controle das ligaes, ou seja, para sinalizao. Tambm conhecido como 30B+D. Nos Estados Unidos, utilizado com o padro T1, tem sua capacidade reduzida para 23 canais de voz e um para sinalizao.

\\MFC/R2: \\Sinalizao \\Usada \\Utiliza \\R2

definida pela ITU-T;

principalmente na Amrica Latina e na sia; CAS (Channel Associated Signaling): Digital Brasil: variaes especficas para cada pas.

\\Possui

164

Estrutura dos arquivos de configurao


\\O

Asterisk controlado por meio de arquivos de configurao:

\\/etc/asterisk; \\O

formato dos arquivos de configurao do Asterisk semelhante ao formato dos arquivos Windows (.ini); arquivos esto em formato ASCII, divididos em sees: das sees entre [ ].

\\Os

\\Nomes \\Em

seguida aos pares de colchetes: separado por (=) ou (=>).

\\ Valor \\(

; ) usado para comentrio.

O Asterisk controlado por meio de arquivos de configurao localizados no diretrio padro /etc/asterisk. O formato dos arquivos de configurao do Asterisk semelhante ao dos arquivos (.ini) do Windows. Os arquivos esto em um formato ASCII, em texto plano.

Sintaxe
Os arquivos de configurao so divididos em sees designadas pelo nome entre [colchetes]. O ponto e vrgula (;) o caractere de comentrio. Dentro de cada seo, seguem os atributos e seus valores, separados por um sinal de igual (=) ou por um sinal de igual seguido de maior (=>). Uma forma de distinguir a utilizao dos sinais de atribuio pode ser adotada como no exemplo, onde usado o sinal = para atribuio de valores a varireis e o sinal => para instanciao de objetos, muito embora possam ser utilizados indistintamente. Exemplo:
; ; A primeira linha sem ser comentrio deve ser um ttulo de sesso. [sessao1] chave = valor ; Designao de varivel [sessao2] objeto => valor ; Declarao de objeto

165

Captulo 5 Arquitetura do Asterisk

MFC/R2 uma sinalizao definida pela ITU (Q.421/Q.441), usada principalmente na Amrica Latina e na sia. Utiliza Sinalizao por Canal Associado (CAS), onde uma associao entre a sinalizao de linha realizada atravs do canal 16 e cada canal de voz, ou seja, a sinalizao de linha, ocorre no canal 16, enquanto a sinalizao de registro ocorre no canal de voz, definido no canal 16. O R2 possui variaes especficas de acordo com o pas, sendo a sinalizao de linha digital mais comum no Brasil, seguindo a Prtica Telebrs TB 210-110-703.

Introduo Voz sobre IP e Asterisk

Grupo simples
Formato mais bsico, usado por arquivos de configurao em que os objetos so declarados com todas as opes na mesma linha. Os arquivos extensions.conf, meetme.conf e voice.conf seguem este formato. No exemplo a seguir, o objeto1 criado com as opes op1, op2 e op3, enquanto o objeto2 criado com as opes op1b, op2b e op3b.
[sessao] objeto1 => op1, op2, op3 objeto2 => op1b, op2b, op3b

Entidades individuais
Sintaxe usada por arquivos de configurao em que objetos so declarados com muitas opes, raramente compartilhadas com outros objetos, de modo que uma seo associada a cada objeto. Existe normalmente uma seo [general] para as configuraes globais. No exemplo seguinte, a seo geral define duas variveis globais. Em seguida, dois objetos so criados: [objeto1] e [objeto2].
[general] globalop1=valorglobal1 globalop2=valorglobal2 [objeto1] op1=valor1 op2=valor2 [objeto2] op1=valor3 op2=valor4

Formato de objeto com herana de opes


Este formato usado por: phone.conf, mgcp.conf, zapata.conf e outras interfaces onde h muitas opes. Na classe de arquivo de configurao, existem, tipicamente, uma ou mais sees que contm declaraes de um ou mais canais ou objetos. As opes para o objeto so especificadas acima da declarao do objeto e podem ser mudadas para a declarao de outro objeto. Considere o exemplo abaixo:
[sessao] op1 = bas op2 = adv objeto => 1 op1 = int objeto => 2

As duas primeiras linhas configuram o valor das opes op1 e op2 para bas e adv, respectivamente. Quando o objeto1 instalado, criado com sua opo1 como bas e sua opo2 sendo adv. Aps declarar o objeto1, mudamos o valor
166

Objeto entidade complexa


Formato usado por iax.conf, sip.conf e outras interfaces nas quais existem numerosas entidades com muitas opes, que tipicamente no compartilham um grande volume de configuraes comuns. Cada entidade recebe seu prprio contexto; pode existir um contexto reservado, como [general], para as configuraes globais. As opes so especificadas na declarao de contexto. Considerando o exemplo:
[entidade1] op1=valor1 op2=valor2 [entidade2] op1=valor3 op2=valor4

A entidade [entidade1] tem valores valor1 e valor2 para as opes op1 e op2, respectivamente. A entidade [entidade2] tem valores valor3 e valor4 para as opes op1 e op2.

Organizao dos arquivos de configurao


\\Os

arquivos de configurao do Asterisk so comumente organizados nos diretrios abaixo:


\\Arquivos

de configurao : e scripts: astman astgenkey safe_asterisk

\\/etc/asterisk \\Executveis

\\/usr/sbin/asterisk \\Bibliotecas

e mdulos:

\\/usr/lib/asterisk/modules

Os arquivos de configurao do Asterisk so comumente instalados nos diretrios listados a seguir. Para facilitar a administrao do sistema, recomenda-se que a estrutura original seja mantida. Se for alterada, dever ser escrita uma documentao bem estruturada, para facilitar a manuteno do sistema. Alguns destes locais podem ser personalizados no arquivo de configurao /etc/asterisk/ asterisk.conf. Outros podem ser modificados durante a compilao do programa.
\\Arquivos

de configurao:

\\/etc/asterisk

167

Captulo 5 Arquitetura do Asterisk

da opo1 para int. O objeto2 criado com sua opo1 como int e sua opo2 permanecendo adv.

Introduo Voz sobre IP e Asterisk

\\Executveis

e scripts:

\\/usr/sbin/asterisk \\/usr/sbin/astman \\/usr/sbin/astgenkey \\/usr/sbin/safe_asterisk \\Bibliotecas

e mdulos:

\\/usr/lib/asterisk \\/usr/lib/asterisk/modules \\Arquivos

(headers) para criao de aplicativos, drivers e mdulos:

\\/usr/include/asterisk \\PID

do processo:

\\/var/run/asterisk \\Arquivos

VoiceMail e chamadas outbounds:

\\/var/spool/asterisk \\rea

de dados:

\\/var/lib/asterisk \\Scripts

usados pelo AGI:

\\/var/lib/asterisk/agi-bin \\Banco

de dados:

\\/var/lib/asterisk/astdb

Introduo s aplicaes
\\Partes \\Cada

fundamentais do Asterisk;

aplicao executa uma ao especfica no canal em questo: sons; dgitos; uma chamada.

\\Emitem \\Aceitam

\\Desligam \\No

CLI (Command Line Interface) utilizado o comando show applications.

168

As aplicaes so partes fundamentais do Asterisk, funcionando como comandos. Elas tratam o canal de voz, tocam sons, aceitam dgitos, atendem e desligam uma chamada. As aplicaes normalmente so utilizadas com opes que afetam a sua forma de funcionamento. As opes variam entre as aplicaes, e cada uma possui seu prprio leque de opes. No console do Asterisk voc pode digitar o comando show applications para visualizar a lista de aplicaes suportadas pela sua instalao do Asterisk. Exemplos de aplicaes: Aplicaes Answer ( ) AbsoluteTimeout( ) Background( ) Congestion ( ) Descrio Responde a um canal que est chamando. Define o limite de tempo de uma chamada em segundos. Reproduz o(s) arquivo(s) de udio especificado(s) enquanto espera que o usurio comece a inserir um ramal. Solicita que o canal indique o congestionamento e ento espera que o usurio desligue ou que o tempo de expirao (em segundos) acabe. Permite que voc conecte todos os tipos de canal. Incondicionalmente desliga o canal atual. Toca um arquivo de som previamente gravado sobre um canal. Define uma varivel global. As variveis globais esto disponveis para todos os canais. Deixa mensagens de voz em determinada caixa postal.

Dial( ) Hangup( ) Playback( ) SetGlobalVar ( ) Tabela 5.2 VoiceMail ( )

Exemplo:
[incoming] Exten=>s,1,Answer Exten=>s,2,Background(enter-ext-of-person) Exten=>1,1,Playback(digits/1) Exten=>1,2,Goto(incoming,s,1) Exten=>2,1,Playback(digits/2) Exten=>2,2,Goto(incoming,s,1)

Neste exemplo, as ligaes que chegam no contexto incoming so recebidas pela primeira linha, a extenso especial s. A primeira aplicao associada, ou seja, o primeiro comando executado, o Answer, que responde a chamada e prepara o
169

Captulo 5 Arquitetura do Asterisk

Aplicaes

Introduo Voz sobre IP e Asterisk

ambiente para trat-la. Em seguida, a chamada colocada em segundo plano, pela aplicao background. Este comando toca o arquivo inter-ext-of-person e aguarda que o chamador digite uma opo. Caso ele digite 1, a extenso 1, prioridade 1 (exten => 1,1) executada tocando o arquivo digits/1. Quando o arquivo termina, a ligao passa para a prioridade 2 (exten => 1,2), que envia o fluxo para o contexto incoming (o mesmo em que a ligao se encontra), extenso s, prioridade 1, ou seja, para o incio. A outra opo vlida neste exemplo o dgito 2, que executar as prioridades 1 e 2.Qualquer outra opo ser invlida. Exemplo: Aplicao echo() No so necessrios parmetros adicionais.
exten exten exten exten exten exten exten => => => => => => => 100,1,Answer() 100,2,Playback(welcome) 100,3,Playback(demo-echotest) 100,4,Echo() 100,5,Playback(demo-echodone) 100,6,Playback(vm-goodbye) 100,7,Hangup()

Plano de discagem para teste de eco


exten => 100,1,Answer()

Atende a chamada.
exten => 100,2,Playback(welcome)

A mensagem padro welcome reproduzida.


exten => 100,3,Playback(demo-echotest)

A mensagem padro de eco demo teste reproduzida.


exten => 100,4,Echo()

Executa a funo de teste de eco. Para terminar tecle #.


exten => 100,5,Playback(demo-echodone)

Reproduz o que foi gravado no teste de eco anterior.


exten => 100,6,Playback(vm-goodbye)

Reproduz a mensagem padro goodbye (voicemail).


exten => 100,7,Hangup()

Desconecta a chamada, liberando a linha.

170

5
Roteiro de Atividades
Tpicos e conceitos
\\A

atividade tem por objetivo compreender e analisar os arquivos de configuraes do Asterisk.

Competncias tcnicas desenvolvidas


\\Ao

final desta prtica o aluno conhecer os arquivos de configurao do Asterisk.

Tempo previsto para as atividades


\\30

minutos a 1 hora (trabalho individual).

Requisitos
\\Esta

prtica envolve atividades individuais e em dupla.

Atividade 1 Configurando um novo ramal


Passo 1: inicie a mquina virtual localizada no diretrio Asterisk, e efetue login com usurio root e a senha rnpesr. Passo 2: abra para edio o arquivo executando o comando:
# vim /etc/asterisk/sip.conf

171

Introduo Voz sobre IP e Asterisk

Passo 3: no fim do arquivo adicione o ramal incluindo as linhas conforme o exemplo abaixo, onde XX ser o nmero do ramal da sua dupla.
;RAMAL PARA O X-LITE [10XX] type=friend secret=voip Host=dynamic canreinvite=no ;RAMAL PARA O TELEFONE IP [20XX] type=friend secret=voip Host=dynamic canreinvite=no ;RAMAL PARA O ATA [30XX] type=friend secret=voip Host=dynamic canreinvite=no
Dialplan O dialplan define o modo como o Asterisk PBX ir lidar com chamadas de entrada e de sada, e tambm contm todos os nmeros de extenso. O dialplan dividido em sees chamadas de contextos. Cada quadro composto de mais de uma extenso. Extenso A extenso o nmero de telefone, podendo ser composto de nmeros, letras ou ambos. Qualquer prorrogao tem uma prioridade e uma aplicao. Com a ajuda de contextos possvel organizar o dialplan.

Salve o arquivo e reinicie o Asterisk executando o comando:


# /etc/init.d/asterisk restart

Tente efetuar chamadas de um softphone para o outro. A chamada no poder ser completada porque ainda no definimos nenhuma regra de discagem. Passo 4: faa um backup do arquivo de configurao extensions.conf executando o comando:
# cp extensions.conf extensions.conf.bak

O arquivo extensions.conf o mais importante arquivo de configurao no PBX Asterisk, contendo o dialplan e as extenses. Na maioria das distribuies ele fica localizado em /etc/asterisk. Abra o arquivo utilizando o comando:
# vi /etc/asterisk/extensions.conf

172

Na seo [general], altere os parmetros abaixo:


[general] writeprotect=yes static=yes

Na seo default localizada no fim do arquivo, insira os parmetros abaixo:


[default] exten=>_10XX,1,Dial(SIP/${EXTEN},20,r) exten=>_10XX,2,Hangup() exten=>_20XX,1,Dial(SIP/${EXTEN},20,r) exten=>_20XX,2,Hangup() exten=>_30XX,1,Dial(SIP/${EXTEN},20,r) exten=>_30XX,2,Hangup()

Passo 6: se conecte no console do Asterisk com o comando asterisk r e execute comando extensions reload. Passo 7: efetue chamadas entre o X-Lite, o Telefone IP e o ATA.

173

Captulo 5 Arquitetura do Asterisk

Passo 5: neste passo iremos configurar o arquivo extensions.conf.

174

6
Plano de discagem

Sumrio
O plano de discagem . Contextos . . . . . Extenses . . . . . Prioridades . . . . . Aplicaes . . . . . extensions.conf . . . Variveis . . . . . Variveis predefinidas . Expresses . . . . . Operadores. . . . . Padres de extenso . Aplicao Background() Aplicao Goto() . . . Aplicao Dial() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 . 176 . 178 . 179 . 179 . 180 . 181 . 183 . 183 . 184 . 185 . 186 . 186 . 187

Roteiro de Atividades . . . . . . . . . . . . . . . . . . . . . 189 Atividade Atividade Atividade Atividade 1 2 3 4 Primeiro plano de discagem . . . . . Configurao do plano de discagem com Tratamento de erros . . . . . . . Aperfeioamento do plano de discagem . . . . . Background e . . . . . . . . . . . . Goto . . . . . . . . . 190 . 191 . 191 . 192

175

Introduo Voz sobre IP e Asterisk

O plano de discagem
\\O \\O

plano de discagem a parte mais importante de um sistema Asterisk;

arquivo extensions.conf, localizado no diretrio etc/asterisk, especifica o plano de discagem; plano de discagem composto por quatro elementos:

\\O

\\Contextos; \\Extenses; \\Prioridades; \\Aplicaes.

O plano de discagem considerado por muitos a parte mais importante de uma implementao de PABX. Nele so definidos a lgica de atendimento, os perfis e como cada chamada deve ser tratada. No Asterisk, o plano de discagem definido no arquivo extensions.conf. Portanto, este considerado o arquivo de configurao mais importante do Asterisk. Pode-se considerar que o plano de discagem consiste em uma lista de instrues que devero ser seguidas pelo Asterisk. No plano de discagem so implementadas instrues para:
\\Perfis

dos ramais usurios do sistema; de chamadas e os fatores sobre os quais as decises sero

\\Roteamento

baseadas;
\\Variar

o comportamento do sistema de acordo com o horrio;

\\Auto-atendimento; \\URA

(Unidade de Resposta Audvel) e filas para atendimento.

possvel separar o plano de discagem em quatro elementos: contextos, extenses, prioridades e aplicaes.

Contextos
\\Os

planos de discagem so divididos em sees chamadas contextos. um contexto definindo um cabealho: seu nome entre colchetes [ ];

\\Especificamos \\Colocamos \\Exemplo:

\\[meu_contexto] \\Exemplo: \\[gerente] \\Dois

e [funcionrio]

contextos com permisses diferentes.

176

\\Usamos

contextos para implementar um nmero importante de recursos, como: solicitar senha para certas extenses;

\\Autenticao: \\Segurana:

podemos evitar que determinados usurios tenham acesso a certas funes que so vetadas a outros; bloquear certas pessoas, por exemplo.

\\Privacidade:

O plano de discagem organizado de acordo com contextos. Os contextos so responsveis por parte da segurana do plano de discagem. Com eles possvel definir diferentes perfis de utilizao do sistema. Por exemplo, um gerente poder fazer chamadas internacionais. J um funcionrio no poder. Os contextos esto ligados diretamente aos canais pelo arquivo de configurao de cada canal. Quando uma ligao entra no Asterisk por um canal, ela direcionada para um contexto especfico, identificado no arquivo de configurao deste canal. Da mesma forma, um ramal analgico, digital ou VoIP pode ser colocado em um , contexto especfico na sua configurao. Com a utilizao de contextos possvel fazer com que o mesmo cdigo se comporte de forma diferente, dependendo do perfil associado ao contexto. Por exemplo, dentro do contexto [gerente], quando o dgito 0 discado, ouve-se o tom de discagem da rede pblica. Dentro do contexto [funcionrio], quando o dgito 0 discado, recebida uma gravao ligao no autorizada. No arquivo extensions.conf., os contextos so delimitados simplesmente pela definio de outros contextos. Exemplo:
[primeiro_contexto] instruo01 instruo02 [segundo contexto] instruo01 instruo02

Os contextos servem principalmente para organizar o fluxo de cada chamada no plano de discagem. possvel configurar comportamentos diferentes para um mesmo nmero, dependendo de quem liga ou de que canal uma ligao recebida. Tambm possvel controlar as permisses e perfis distintos para grupos de ramais ou usurios. Com a separao do plano de discagem em contextos, consegue-se criar ambientes virtualmente separados. Por exemplo, com apenas uma implementao de Asterisk, possvel emular uma srie de PABXs virtuais, cada um com seus ramais e troncos especficos. Implementaes deste tipo so importantes para uma utilizao mais eficiente de recursos.

177

Captulo 6 Plano de discagem

Introduo Voz sobre IP e Asterisk

Extenses
\\Os

contextos so formados por extenses;

\\Uma

extenso uma instruo que o Asterisk segue, acionada por uma chamada de entrada ou por dgitos discados em um canal; declarao de uma extenso possui o seguinte formato: nmero, prioridade, aplicao: ou nome da extenso;
\\Nmero

\\A

\\exten=>

\\Prioridade; \\Aplicao. \\As

extenses seguem a forma: nome, prioridade, aplicao()

\\exten=> \\Um

exemplo prtico de uma extenso poderia ser: exemplo, o nome da extenso 1001, a prioridade 1 e a aplicao answer.

\\exten=1001,1,Answer() \\Neste

\\A

extenso especial s: uma ligao entra em um contexto, sem estar destinada a uma extenso especfica, ela tratada automaticamente pela extenso s.

\\Quando

Dentro de cada contexto se encontram as extenses. Uma extenso uma regra ou instruo que deve ser seguida pelo Asterisk. Aes como atender ou desligar o canal, tocar um arquivo de udio ou executar o tratamento de variveis so instrues tpicas das extenses. A declarao de uma extenso possui o seguinte formato:
exten => EXTENSO, PRIORIDADE, APLICAO(OPES)

Os termos em letras maisculas sero abordados adiante. Os outros so fixos e fazem parte da sintaxe da declarao. O Asterisk possui uma srie de extenses especiais pr-definidas. So elas:
\\a

chamada quando o usurio pressiona * (asterisco) durante a mensagem do voicemail; extenso chamada aps o desligamento; extenso invlida; extenso do Operador, usada para sada do voicemail ao pressionar 0 (zero); start ou extenso de incio em cada contexto; extenso de timeout;

\\h \\i \\o \\s \\t

178

\\failed \\fax

usado se uma chamada auto-dial falhar;

usado para deteco de fax em canais zap; usado conjuntamente com BackgroundDetect.

\\talk

Fonte: www.voip-info.org/wiki/view/Asterisk+standard+extensions

Prioridades
\\As

extenses podem ter vrios passos; estes passos de prioridades;

\\Chamamos \\Exemplo \\exten \\exten \\A

de extenso que atende a uma chamada e em seguida a desliga: => 1001,1,Answer() => 1001,2,Hangup()

prioridade n significa prxima (next).

Cada extenso normalmente possui mais de um comando (ou aplicao). Por isso foi definido o nmero de prioridade, que designa a ordem em que as aplicaes devem ser executadas. No exemplo seguinte (sem uma funo prtica), primeiro a chamada atendida e logo depois desconectada:
exten => 1001,1,Answer() exten => 1001,2,Hangup()

Para facilitar a configurao, o Asterisk pode utilizar a prioridade n (next) para indicar o prximo nmero sequencial de prioridade. Neste caso, o exemplo ficaria:
exten => 1001,1,answer() exten => 1001,n,hangup()

Aplicaes
\\As

aplicaes executam aes especficas nos canais; de aplicaes:

\\Exemplos

\\Answer(); \\Playback() \\Hangup()

As aplicaes so como os comandos das extenses. Elas indicam as aes a serem executadas durante o fluxo da chamada no plano de discagem, como emitir sons, aceitar entradas ou desligar chamadas.
179

Captulo 6 Plano de discagem

\\T

extenso chamada aps o AbsoluteTimeout();

Introduo Voz sobre IP e Asterisk

Answer()
A aplicao Answer() utilizada para responder a um canal que est tocando. Ela faz a configurao inicial para que o canal receba uma ligao. uma das aplicaes mais importantes, pois boa parte das outras aplicaes necessita que o canal tenha sido configurado por Answer() para operar corretamente, por exemplo para executar um arquivo de som no canal. Esta aplicao no recebe argumentos.

Playback()
Utilizada para reproduzir um arquivo de som sobre o canal. Recebe o nome do arquivo de som como argumento. Para facilitar o uso desta aplicao, existe um diretrio padro, var/lib/asterisk/sounds/, onde todos os sons do Asterisk se encontram. Assim no precisamos especificar o caminho completo ao utilizar a aplicao. Este caminho pode ser modificado no arquivo asterisk.conf.

Hangup()
Simplesmente desliga um canal ativo e desaloca os recursos computacionais que estavam sendo utilizados na chamada. No recebe argumentos.

extensions.conf
\\Os

dois primeiros cabealhos que encontramos no arquivo extensions.conf [general] e [globals] so especiais e chamados de sees; que encontramos no arquivo:

\\Sees

\\[general] \\[globals]

Os dois primeiros contextos do arquivo extensions.conf so sees especiais.

[general]
So declaradas opes gerais sobre o plano de discagem. Por enquanto, duas opes importantes so static e writeprotect, que especificam se o arquivo extensions.conf pode ser modificado pelo plano de discagem dinamicamente no Asterisk. uma boa escolha trocar o parmetro para writeprotect=yes, que evita que o plano de discagem seja modificado pelo comando save dialplan, na linha de comando do Asterisk.

[globals]
Na seo [globals] podemos definir e iniciar as variveis globais com seus respectivos valores. Da mesma forma que em programas de computadores, normalmente as variveis globais so utilizadas para simplificar mudanas na configurao do sistema. Na prtica, estas variveis so utilizadas como constantes.

180

\\Valores

de variveis so obtidos com a seguinte sintaxe:

\\${nomedavariavel} \\Variveis

podem ser:

\\Globais; \\De

ambiente; a um canal.

\\Associadas \\Variveis \\So

globais: vez definidas, podem ser referenciadas a qualquer momento. de ambiente: para acessar as variveis de ambiente do sistema operacional; fazer referncia s variveis de ambiente da seguinte forma:

configuradas na classe [globals] ou utilizando o comando SetGlobalVar;

\\Uma \\Variveis

\\Servem

\\Podemos

\\${ENV(nomedavariavel)} \\Variveis

de canal: com o comando Set(), antigo SetVar;

\\Configuradas \\Tm

um escopo local restrito ao canal em que foram criadas. So destrudas quando o canal encerrado, para liberar memria; variveis de canal so predefinidas e podem ser referenciadas no plano de discagem.

\\Algumas

As variveis so declaradas e tm seus valores atribudos como abaixo:


RINGTIME=>3

Define quanto tempo (em segundos) vai tocar antes de executar a prxima aplicao.
VMANNOUCE=>mysounds/my-vm-annouce

Define qual arquivo de udio usar quando anunciar o voicemail.


RAMAL01=>Zap/2

Define o canal associado extenso. As variveis globais no so case sensitive. A utilizao de caixa-alta mera conveno. Para resgatar o valor de uma varivel no plano de discagem, preciso acess-la da seguinte forma:
${VARIVEL}

181

Captulo 6 Plano de discagem

Variveis

Introduo Voz sobre IP e Asterisk

Exemplo:
exten => 1,1, answer() exten => 1,n, Dial(${RAMAL01}) exten => 1,n, hangup()

Tambm possvel declarar uma varivel global durante o fluxo de uma chamada, utilizando a aplicao SetGlobalVar() no plano de discagem. Por exemplo:
[contexto1] exten => 123,1, Answer() exten => 123,n, SetGlobalVar(saidaPadrao=Zap/2) exten => 123,n,GoTo(contexto2,456,1) [contexto2] exten => 456,1, Dial(${saidaPadrao}) exten => 456,n, hangup() ${ENV(ASTERISK_PROMPT)}: Prompt atual da linha de comando do CLI do

Asterisk
${ENV(RECORDED_FILE)}: ltimo arquivo gravado com o comando Record

O Asterisk pode usar uma srie de variveis como argumentos das aplicaes ou comandos. Podem ser do tipo Global, Compartilhada, De canal ou De ambiente. Variveis tambm podem ser manipuladas (cortadas, somadas, concatenadas). Variveis de ambiente oferecem um meio de resgatar via Asterisk as variveis de ambiente Unix. Mais informaes sobre as variveis do Asterisk em: www.voip-info.org/wiki/view/Asterisk+variables Cada canal no Asterisk possui seu prprio espao para variveis. Elas podem ser definidas dinamicamente atravs do plano de discagem, pelo comando Set() antigo SetVar. Variveis de canal so destrudas e seu espao na memria desalocado quando a chamada termina, quando o comando Hangup() executado. Algumas variveis de canal predefinidas no Asterisk podem ser utilizadas pelo plano de discagem, como veremos a seguir.

182

\\Exemplos

de variveis de canal predefinidas: cdigo de contabilizao; horrio em que a chamada foi atendida;

\\${ACCOUNTCODE}: \\${ANSWERDTIME}: \\${CALLERID}: \\${CHANNEL}: \\${CONTEXT}:

identificador da chamada; nome do canal atual; nome do contexto atual; nome de quem foi chamado; nmero de quem foi chamado;

\\${DIALEDPEERNAME}:

\\${DIALEDPEERNUMBER}: \\${DIALEDTIME}: \\${EXTEN}:

hora em que o nmero foi discado;

extenso atual (nome da extenso atual); prioridade atual.

\\${PRIORITY}:

A varivel ${EXTEN} talvez a varivel de canal mais utilizada nos planos de discagem. Ela contm o nmero da extenso corrente e pode simplificar e facilitar significativamente a configurao do Asterisk. Existem diversas variveis no Asterisk. O aluno pode visitar a documentao on-line para conhecer a lista completa.

Expresses
\\As

expresses utilizam variveis, valores e operadores para retornar resultados que so utilizados no plano de discagem; expresso segue a seguinte sintaxe:

\\Uma

\\$[expresso] \\Um

exemplo de expresso poderia ser:

\\$[${nomedavariavel}+200]

Os argumentos dos comandos podem ser calculados dinamicamente na hora em que sero utilizados. O Asterisk suporta que sejam realizados clculos durante a execuo do plano de discagem. Portanto, possvel utilizar uma expresso matemtica ou manipulao de strings como argumentos de comandos.

183

Captulo 6 Plano de discagem

Variveis predefinidas

Introduo Voz sobre IP e Asterisk

Por exemplo, a linha


exten => 2112345678,n, dial(ZAP/g1/${EXTEN:2})

Ir chamar o nmero 12345678 no canal ZAP/g1, cortando os dois primeiros algarismos: 21. No exemplo abaixo temos uma varivel referenciada com seu valor somado ao valor 200.
$[${nomedavariavel}+200]

Operadores
\\Existem

basicamente trs tipos de operadores que podem ser utilizados nas expresses:
\\Matemticos: \\+ \\\\/ \\% \\Lgicos: \\& \\| \\Operador \\:

para expresses regulares:

(dois pontos)

Funes dos operadores apresentados:


\\+ \\\\/

soma um nmero a outro

subtrai um nmero de outro retorna o resultado da diviso de dois nmeros retorna o resto da diviso de dois nmeros E lgico OU lgico utilizado para produzir substrings. ${STRING:incio:comprimento}

\\% \\& \\| \\:

Mais informaes em: www.voip-info.org/wiki/view/Asterisk+Expressions

184

\\Os

seguintes caracteres so exemplos de padres: dgitos de 0 at 9; dgitos de 1 at 9; dgitos de 2 at 9;

\\X \\Z \\N

\\[1237-9] \\.

qualquer dgito entre as chaves e o intervalo 7-9, neste caso 1, 2, 3, 7, 8, 9; ponto um padro curinga que combina com um ou mais dgitos.

Para auxiliar a produzir planos de discagem mais complexos e menos extensos, o Asterisk oferece uma forma de coincidir os caracteres digitados no teclado do telefone. So as expresses regulares, que diferem bastante da expresso regular conhecida da programao. Para indicar que um nmero de extenso uma expresso regular, deve comear com o caractere _ (underline). Exemplos:
\\Nmero

de 6 dgitos, onde os dois primeiros so diferentes de 0:

exten => _ZZXXXX,1,Answer() exten => _ZZXXXX,n,Dial(SIP/meuTroncoSip/${EXTEN}) exten => _ZZXXXX,n,Hangup()


\\Nmero \\Cdigo

de 8 dgitos + 2 de cdigo de rea;

de rea no inicia com 0 nem com 1, e o segundo dgito diferente de

zero;
\\Nmero

do telefone comea com os algarismos 2, 3, 4 ou 5. Depois tem mais 7 dgitos livres; o nmero de 8 dgitos discado pelo tronco meuTroncoSip:

\\Apenas

exten => _NZ[2-5]XXXXXX,1,Answer() exten => _NZ[2-5]XXXXXX,n,Dial(SIP/meuTroncoSip/${EXTEN:2}) exten => _NZ[2-5]XXXXXX,n,Hangup()


\\Qualquer \\

nmero de qualquer tamanho que comece com zero;

passado para o tronco SIP apenas o nmero, sem o zero inicial:

exten => _0.,1,Answer() exten => _0.,n,Dial(SIP/meuTroncoSip/${EXTEN:1}) exten => _0.,n,Hangup()

185

Captulo 6 Plano de discagem

Padres de extenso

Introduo Voz sobre IP e Asterisk

Aplicao Background()
\\Uma

das peas chave para interao no Asterisk;

\\Diferentemente \\Porm,

da aplicao Playback(), a aplicao Background() reproduz um arquivo de udio: quando o usurio digita alguma coisa em seu softphone, a ligao redirecionada para o ramal especificado.

A aplicao Background() essencial para a construo de URAs. Ela reproduz um arquivo de udio para o chamador, mas fica aguardando que ele digite alguma tecla. Assim podemos tocar um arquivo que diz Por favor, digite 1 para compras ou 2 para vendas e teremos um menu de voz interativo. A aplicao Background() possui a mesma sintaxe da aplicao Playback(). Ento, seu argumento o nome do arquivo de udio a ser reproduzido, tambm com referncia ao diretrio padro dos arquivos de udio do Asterisk.

Aplicao Goto()
\\til

para direcionar a ligao para diferentes extenses, prioridades e at mesmo contextos; programao do fluxo de uma ligao pelo plano de discagem;

\\Possibilita \\Sintaxe: \\H

exten=> extenso, prioridade, Goto (contexto, extenso, prioridade);

tambm a aplicao Gotoif().

A aplicao GoTo() muito til para produzir desvios no fluxo da chamada, ou seja, no caminho que a chamada percorre pelos comandos do plano de discagem. Um desvio incondicional implementado de acordo com a sintaxe GoTo (contexto, extenso, prioridade), mas extenso e contexto so opcionais. H tambm a forma condicional desta aplicao, Gotoif(). Neste caso, a sintaxe muda consideravelmente.
Gotoif(EXPRESSO?LABEL_SE_VERDADE:LABEL_SE_FALSO)

Onde: EXPRESSO um teste de condio. Uma string vazia ou o valor 0 (zero) so considerados falsos. LABEL_SE_VERDADE e LABEL_SE_FALSO podem assumir a mesma forma que na aplicao Goto().

186

\\www.voip-info.org/wiki/view/Asterisk+cmd+Goto \\www.voip-info.org/wiki/view/Asterisk+cmd+GotoIf

Aplicao Dial()
\\Utilizada \\A

literalmente para discar para algum destino:

aplicao Dial() til, pois permite que usurios que estejam usando mtodos de comunicao distintos possam se comunicar. quatro argumentos:

\\Recebe

\\Destino; \\Timeout; \\Opes; \\URL

(pouco usual).

\\Exemplo: \\exten \\Disca

=> 123,1,Dial(Zap/1/33072022,10,r); para o nmero 3307 2022 no canal Zap/1; 10 segundos;

\\Espera \\D

o tom de chamada para quem est discando pela opo r; especificamos nenhum URL.

\\No \\Outro

exemplo: => 123,1,Dial(SIP/1001,20,t); para o ramal SIP 1001; 20 segundos; transferncia de chamadas com a opo t.

\\exten \\Disca

\\Espera

\\Permite \\Mais

um exemplo: => 123,1,Dial(SIP/1001,,rt); para o ramal SIP 1001;

\\exten \\Disca \\No \\D

foi especificado o tempo de espera; foi especificado nenhum URL.

o tom de chamada para quem est discando pela opo r;

\\No

A aplicao Dial() , talvez, a mais importante de todas. Ela responsvel por estabelecer uma conexo com o canal desejado e lig-lo ao canal solicitante. Recebe como argumento pelo menos o nome do canal de destino, mas existem opes que podem ser passadas no momento da discagem.

187

Captulo 6 Plano de discagem

Mais informaes:

De forma simplificada, pode ser utilizada de acordo com a sintaxe Dial (tipo/ identificador, timeout, opes, URL), onde:
\\Type

tipo do canal (SIP H.323, Zap, Agent etc); ,

\\Identifier

identificador do canal, especificado no arquivo de configurao apropriado; tempo durante o qual o canal deve ser chamado at desistir;

\\Timeout \\URL

envia este URL para o dispositivo destino quando ele suporta, mas raramente utilizado; opes que adicionam funcionalidades ao comando Dial.

\\Options

A lista de opes grande. Confira no link abaixo:


\\http://www.voip-info.org/wiki/view/Asterisk+cmd+dial

Deve-se notar que os argumentos da aplicao Dial() no so obrigatrios, podendo ser passadas vrias opes como argumento.

188

6
Roteiro de Atividades
Tpicos e conceitos
\\A

atividade tem por objetivo compreender e analisar os arquivos de configuraes do Asterisk.

Competncias tcnicas desenvolvidas


\\Ao

final desta prtica o aluno ir aprender a configurar um plano de discagem no Asterisk.

Tempo previsto para as atividades


\\1

hora a 1h30 minutos (trabalho individual).

Requisitos
\\Esta

prtica envolve atividades individuais

Preparando o ambiente
Introduo ao arquivo de configurao extensions.conf. A sintaxe para uma extenso a palavra exten, seguida por uma seta formada por um sinal de igual (=) e um sinal de maior (>).
exten => <nome_da_extenso>

Uma extenso completa composta por trs componentes: 1. Nome ou nmero da extenso; 2. Prioridade; 3. Aplicao ou comando a ser executado na chamada.
189

Introduo Voz sobre IP e Asterisk

Os trs componentes so separados por vrgulas. Exemplo:


exten => nome, prioridade, aplicao( )
\\Nome

o nmero que ser digitado para executar a aplicao;

\\Prioridade

cada prioridade numerada sequencialmente, iniciando a partir do nmero 1, onde cada prioridade executa uma aplicao especfica.

Exemplo:
exten => 123,1,Answer( ) exten => 123,2,Hangup( )

A verso 1.2 do Asterisk introduziu o uso da prioridade n (next). O parmetro n adiciona 1 ao valor anterior. Exemplo:
exten => 123,1,Answer( ) exten => 123,n,Hangup( )

A extenso especial start (representada pela letra s) utilizada quando uma ligao entra em um contexto sem estar destinada a uma extenso especfica. Nesta atividade o aluno aprender e entender o uso e a sintaxe dos parmetros de configurao do arquivo, para o funcionamento adequado do Asterisk.

Dicas
\\No

arquivo sip.conf, altere o parmetro context=default para context=cursovoip. fim do arquivo extensions.conf insira a seo [cursovoip]; os parmetros das atividades devero ser includos dentro desta seo.

\\No

Inicie a mquina virtual localizada no diretrio Asterisk, e efetue login com usurio root e a senha rnpesr.

Atividade 1 Primeiro plano de discagem


Comearemos a editar nosso plano de discagem utilizando uma das maiores tradies existentes na computao. Criaremos um Hello Word! com o que foi visto at agora. Os arquivos de udio esto localizados no diretrio /usr/share/asterisk/sound.

190

Atividade 2 Configurao do plano de discagem com Background e Goto


Vamos criar agora um plano de discagem mais complexo utilizando as aplicaes Background e Goto, onde deveremos chamar o ramal 9 no cliente X-Lite e escutar uma gravao; ao digitar 1 e 2, o Asterisk confirmar o nmero digitado, e ao digitarmos 3 a ligao dever ser encerrada. Anote as linhas inseridas:

Para a elaborao de um plano mais complexo, precisamos ser capazes de tratar excees com eficincia. Exemplos bsicos so as extenses especiais i e t. Desafio: na atividade 2, ao clicar em qualquer nmero que seja diferente de 1, 2 ou 3, uma mensagem de erro dever ser emitida e a ligao no poder ser encerrada. Anote as linhas inseridas:

Atividade 3 Tratamento de erros


De acordo com o plano de discagem abaixo, faa as atividades propostas.
[cursovoip] exten => 9,1,Answer() exten => 9,2,Background(vm-enter-num-to-call) exten => 1001,1,Dial(SIP/1001,10,r) exten => 1001,2,Hangup() exten => 1002,1,Dial(SIP/1002,10,r) exten => 1002,2,Hangup()

191

Captulo 6 Plano de discagem

Anote as linhas inseridas:

Introduo Voz sobre IP e Asterisk

1. Acrescente um tratamento de erro para um canal ocupado.

2. Podemos acrescentar variveis para simplificar o plano de discagem. Adicione as variveis RAMAL01=SIP/1001 e RAMAL02=SIP/1002 em [globals].
[globals]

[cursovoip]

3. Disque 9 e depois os nmeros dos ramais definidos no plano de discagem.

Atividade 4 Aperfeioamento do plano de discagem


O ltimo plano de discagem realizado na atividade 3 tem um grande defeito: para cada novo ramal, precisamos modificar o plano de discagem. Qual seria a sua proposta de soluo?

192

7
Servios complementares

Sumrio
Transferncia de chamadas . Estacionamento de chamadas Captura de chamadas . . . Msica em espera . . . . Correio de voz (voicemail) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 . 194 . 196 . 196 . 197

Roteiro de Atividades . . . . . . . . . . . . . . . . . . . . . 199 Atividade Atividade Atividade Atividade Atividade 1 2 3 4 5 Transferncia de chamadas (Blind transfer) Estacionamento de chamadas . . . . . Captura de chamadas . . . . . . . Msica em espera . . . . . . . . . Correio de voz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 . 200 . 201 . 202 . 202

193

Introduo Voz sobre IP e Asterisk

Transferncia de chamadas
\\A

transferncia de chamadas habilitada de forma bastante simples no Asterisk; transferncia de chamadas pode ser feita de duas formas: cega (blind transfer); assistida.

\\ A

\\Transferncia \\Transferncia

Permite que chamadas sejam encaminhadas para outros ramais. Quando um usurio recebe uma ligao e decide transferi-la para outra pessoa, pode faz-lo de duas formas:
\\Transferncia

cega (blind transfer) o usurio pode simplesmente passar a ligao para a segunda pessoa, sem antes falar com ela. Neste caso, o primeiro usurio disca o segundo ramal e, quando ouve o sinal de chamando, pode desligar o telefone;

\\Transferncia

assistida o primeiro usurio pode conversar com o segundo enquanto a ligao aguarda em hold e, apenas quando o primeiro desliga o telefone que a chamada repassada para o segundo;

Estacionamento de chamadas
\\Funcionalidade \\Serve

muito til e conhecida dos usurios de PABX convencionais;

para estacionar uma chamada enquanto o usurio se locomove de um terminal para outro; de configurao:

\\Parmetros \\parkext;

\\parkpos; \\context; \\parkingtime.

De forma simplificada, o estacionamento de chamadas (call parking) pode ser entendido como uma transferncia para uma sala virtual, de forma que seja possvel desligar o ramal sem que a chamada seja desligada. Depois, em outro ramal, possvel resgatar a chamada original telefonando para o nmero da sala virtual. A chamada estacionada em determinada extenso e o usurio pode recuper-la digitando o nmero da extenso onde ela est. Por padro, no Asterisk a extenso 700 responsvel pelo estacionamento de chamadas. Durante uma chamada, o usurio disca #700 e o Asterisk anuncia a extenso de estacionamento (normalmente o intervalo 701-720). Discar a extenso anunciada faz com que a chamada prossiga.

194

Os parmetros do estacionamento de chamadas so controlados pelo arquivo de configurao features.conf e esto contidos na seo [general].

parkext
Extenso utilizada para colocar a chamada em estacionamento. Ao transferir a chamada para esta extenso, o sistema informa a posio de estacionamento em que a chamada foi colocada. Por padro a extenso 700.

parkpos
Esta opo define o nmero de posies de estacionamento. Por padro, temos o intervalo 701-720 (20 extenses).

context
Nome do contexto de estacionamento. Para estacionar chamadas, precisamos incluir este contexto no plano de discagem (include =>parkedcalls).

parkingtime
Permite que uma chamada em andamento no precise ser desligada quando um dos usurios tiver que se deslocar para outro ramal. Quando configurada, esta opo controla o tempo (em segundos) que uma chamada pode ficar estacionada. Se no for recuperada no tempo fornecido, a extenso que estacionou a chamada voltar a tocar. Alm do arquivo features.conf, tambm precisamos fazer alteraes no extensions. conf para habilitar o uso do estacionamento de chamadas. Para habilitar o estacionamento de chamadas, devemos fazer a incluso do contexto para estacionamento de chamadas.
include=>parkedcalls

Figura 7.1
195

Captulo 7 Servios complementares

Parmetros de configurao

Introduo Voz sobre IP e Asterisk

A chamada fica estacionada at que o lado que a colocou em espera se conecte novamente. Exemplo: em chamada entre os ramais 101 e 102, o usurio que est falando no ramal 101 deseja ir at a sala em que se encontra o ramal 103 e continuar a ligao de l. Ao digitar #700, ele recebe do Asterisk um nmero associado chamada estacionada. Ao discar para esse nmero a chamada capturada.

Captura de chamadas
\\A

captura de chamadas (call pickup) permite que o usurio atenda a chamadas direcionadas a outros usurios que estejam em um mesmo grupo; outro velho conhecido dos usurios de PABX convencionais; que tenhamos que levantar para atender ao telefone de outro colega.

\\

\\Evita

Permite que um usurio capture a chamada de outro ramal que ainda no tenha sido atendida. No Asterisk, o cdigo padro para captura de ligaes *8. Este cdigo pode ser modificado no arquivo features.conf pelo parmetro pickupexten. Alm disso, para habilitar a captura, devemos configurar grupos de chamadas nos arquivos que correspondem a cada tecnologia utilizada:
\\sip.conf; \\iax.conf; \\zapata.conf

/ chan_dahdi.conf.

O usurio do ramal 101 est ligando para o usurio do ramal 103. O usurio do ramal 102, ao escutar o ramal 103 tocando na sala ao lado, sem que ningum atenda, disca *8 em seu prprio telefone e captura a chamada, sem precisar se levantar e ir at a sala ao lado onde o ramal est tocando.

Msica em espera
\\A

msica em espera utilizada em diversas situaes, como estacionamento de chamadas, filas e transferncias; msica em espera controlada pelo arquivo musiconhold.conf; definir vrias classes para organizar as msicas;

\\A

\\Podemos \\Podemos

utilizar a varivel mohsuggest para definir classes-padro de msica em espera para os diversos canais.

Permite que um usurio em espera escute uma msica de fundo. possvel utilizar quase qualquer tipo de mdia como msica de espera do Asterisk, de arquivos wav at streams mms://.
196

O arquivo musionhold.conf controla as opes da msica em espera. possvel configurar vrias classes de msica em espera. Isto muito til, por exemplo, para implementaes de callcenters que atendem a diversos tipos de clientes. Ligaes para Loja1 escutam anncios corporativos da Loja1. Ligaes para Loja2, escutam os da Loja2. Nos arquivos de configurao dos diversos canais (sip.conf, queues.conf, chan_ dahdi.conf, etc) possvel especificar a classe da msica em espera que deve ser utilizada. Tambm possvel definir estas classes em termos globais ou individualmente para cada ramal. A funcionalidade music on hold permite que um usurio em espera escute uma msica de fundo para que no ache que a chamada foi terminada. Exemplo: existe uma chamada entre os ramais 101 e 102, e o usurio do ramal 103 faz uma chamada para o ramal 102. Ao receber a notificao de uma nova chamada, o usurio do ramal 102 avisa ao ramal 101 que vai deix-lo em espera, sendo disponibilizada uma msica de fundo para o usurio do ramal 101.

Correio de voz (voicemail)


\\Mais

do que uma simples secretria eletrnica, ele pode aprimorar a experincia do usurio com uma interface simples e funcional; a aplicao VoiceMail() para direcionar ligaes para o correio de voz; a aplicao VoiceMailMain() para acessar nossa caixa de correio.

\\Utilizamos \\Utilizamos

A funcionalidade de correio de voz do Asterisk permite que as mensagens deixadas na caixa postal de voz sejam gravadas em arquivos (mp3 ou wav). Posteriormente, possvel acess-las utilizando qualquer telefone, dentro ou forma da empresa, bastando que o Asterisk seja corretamente programado. Alm disso, tambm possvel enviar e-mails avisando sobre a chegada de recados na caixa postal de voz. O texto do e-mail configurvel e pode informar a data e a hora em que a ligao foi recebida e o nmero de origem, entre outras opes. Alm disso, ainda possvel anexar a esta mensagem o prprio recado, gravado em mp3 ou wav. O correio de voz tambm permite a configurao de contextos, muito til para implementaes de um nico servidor para vrios clientes.

197

Captulo 7 Servios complementares

A escolha mais segura a utilizao de arquivos locais wav ou mp3. Para tocar arquivos mp3 necessrio instalar o pacote addons do Asterisk. Os arquivos mp3 no devem ter bitrate varivel. Tambm preciso remover as identificaes ID3. possvel fazer essas modificaes nos arquivos mp3 usando ferramentas de edio de udio.

198

7
Roteiro de Atividades
Tpicos e conceitos
\\A

atividade tem por objetivo explorar as funcionalidades do Asterisk.

Competncias tcnicas desenvolvidas


\\Ao

final desta prtica o aluno ser capaz de realizar configuraes de servios complementares no Asterisk.

Tempo previsto para as atividades


\\1

hora a 2h30 minutos (trabalho individual).

Requisitos
\\Esta

prtica envolve atividades em dupla ou mais alunos.

Atividade 1 Transferncia de chamadas (Blind transfer)


Nesta atividade iremos criar uma configurao para que seja possvel efetuar transferncia de chamadas. Passo 1: abra o arquivo sip.conf e verifique se todos os clientes esto com a opo canreinvite=no habilitada. Passo 2: edite o arquivo extensions.conf e coloque as opes t e T na aplicao Dial(). Ex: Dial(SIP/${EXTEN},20,rtT) Passo 3: abra o arquivo features.conf e localize a seo [featuremap], certificando-se de que as variveis blindxfer e atxfer estejam comentadas.

199

Introduo Voz sobre IP e Asterisk

Passo 4: reinicie o servio Asterisk:


# /etc/init.d/asterisk restart

Passo 5: abra o cliente X-Lite, e efetue uma chamada para um ramal; aps atender, transfira a chamada para outro ramal utilizando a tecla #. Anotaes:

Atividade 2 Estacionamento de chamadas


Nesta atividade executaremos uma configurao para que seja possvel efetuar o estacionamento das chamadas. Passo 1: edite o arquivo features.conf e localize a linha que possui a varivel parkext=>, alterando seu valor para 500. Passo 2: localize a linha que possui a varivel parkpos=>, e altere seu valor para 501-503. Passo 3: salve e feche o arquivo. Passo 4: edite o arquivo extensions.conf e inclua o contexto responsvel pelo estacionamento de chamadas: include=>parkedcalls. Passo 5: reinicie o servio Asterisk:
# /etc/init.d/asterisk restart

Passo 6: teste o estacionamento das chamadas, discando para um ramal e estacione a chamada discando #500; para recuperar a chamada disque 501, 502 ou 503.
200

Atividade 3 Captura de chamadas


Nesta atividade iremos efetuar uma configurao para capturar as chamadas destinadas a outro usurio. Esta atividade requer trs ou mais alunos cadastrados em um servidor SIP . Passo 1: edite o arquivo sip.conf e defina o valor 1 para callgroup e pickupgroup: callgroup=1 e pickupgroup=1 em todos os ramais definidos. Passo 2: reinicie o servio Asterisk:
# /etc/init.d/asterisk restart

Passo 3: neste passo podemos testar a captura de chamadas; um usurio dever ligar para um ramal e um terceiro ir capturar a chamada teclando *8. Esta sequncia default do Asterisk e est definida no arquivo features.conf, no parmetro pickupexten. Anotaes:

201

Captulo 7 Servios complementares

Anotaes:

Introduo Voz sobre IP e Asterisk

Atividade 4 Msica em espera


Nesta atividade efetuaremos uma configurao para que seja possvel ouvir a msica de espera. Passo 1: edite o arquivo de configurao musiconhold.conf, localize a seo [default], adicione o suporte ordenado aleatrio random=yes. Passo 2: edite o arquivo de configurao extensions.conf e adicione uma extenso de teste para a msica em espera. Passo 3: reinicie o servio Asterisk:
# /etc/init.d/asterisk restart

Como ficaria o arquivo extensions.conf?

Atividade 5 Correio de voz


Nesta atividade efetuaremos uma configurao para que seja possvel ouvir a msica de espera. Passo 1: edite o arquivo voicemail.conf, localize a seo [default] e acrescente alguns contextos para os ramais definidos no arquivo sip.conf, seguindo o padro abaixo: Extenso=> senha, nome do usurio, e-mail, pager, opes.
1001=>1111,Aluno1 Voip,root@localhost 1002=>1111,Aluno2 Voip,root@localhost

202

Abaixo temos um modelo de plano de discagem:


exten=>9,1,Answer() exten=>9,2,Background(vm-enter-num-to-call) exten=>_10XX,1,Playback(transfer) exten=>_10XX,2,Dial(SIP/${EXTEN},5,r) exten=>_10XX,3, VoiceMail(u${EXTEN}@default) exten=>_10XX,4,Hangup() exten=>_10XX,103, VoiceMail(b${EXTEN}@default) exten=>_10XX,104, Hangup() exten=>i,1,Playback(pbx-invalid) exten=>i,2,Goto(cursovoip,9,1) exten=>t,1,Playback(vm-goodbye) exten=>t,2,Hangup()

Passo 3: acrescente uma extenso para que o usurio possa acessar sua caixa de correio.
exten=>500,1,VoiceMailMain()

Passo 4: reinicie o servio Asterisk: /etc/init.d/asterisk restart Passo 5: faa testes com o X-Lite, o Telefone IP e o ATA e verifique o funcionamento das aplicaes relacionadas ao voicemail.

203

Captulo 7 Servios complementares

Passo 2: edite o arquivo extensions.conf para tratar o voicemail. Coloque a aplicao Voicemail() no lugar da aplicao Playback(), que trata as situaes busy e nobodyavail.

204

8
Distribuio de chamadas

Sumrio
Discagem por diretrio . . . . . . . . . . . . . . . . . . . . 206 Distribuio automtica de chamadas . . . . . . . . . . . . . . . 207 Roteiro de Atividades . . . . . . . . . . . . . . . . . . . . . 209 Atividade 1 Discagem por diretrio . . . . . . . . . . . . . . . 209 Atividade 2 Distribuio automtica de chamadas . . . . . . . . . . 210

205

Introduo Voz sobre IP e Asterisk

Discagem por diretrio


\\O

correio de voz fornece suporte para outra funcionalidade: a discagem por diretrio; servio de diretrio de nomes do Asterisk utiliza os nomes definidos nas extenses do arquivo voicemail.conf para associar nomes a extenses; servio de discagem por diretrio fornecido pela aplicao Directory().

\\O

\\O

\\Default

se refere seo do voicemail.conf, onde definimos as caixas de correio. a seo do plano de discagem.

\\cursovoip

\\Sintaxe: \\Directory(vm-context[|dial-context[|options]]) \\Anuncia

ao usurio uma lista de ramais que podem ser selecionados pelo

nome:
\\Esta

caracterstica conhecida com discagem por nome (dial by name) nos sistemas tradicionais.

\\A \\O

lista de nomes e ramais declarada no arquivo voicemail.conf;

primeiro argumento vm-context define o contexto no qual os ramais devem ser interpretados; segundo argumento usado para definir o plano de discagem.

\\O

Fluxo:
\\Toca \\O

o arquivo de introduo (dir-intro) e espera 5 segundos para os 3 dgitos;

arquivo de introduo toca a mensagem Please enter the first three letters of the persons last name...; a ltima palavra encontrada no campo <name> em voicemail.conf;

\\Nome \\Toca

a mensagem em (dir-instr) com as instrues para conexo ao ramal desejado; toca o nome como gravado na mailbox do usurio. Se a gravao no existir, ele tocar as letras do nome (bee-oh-bee-space-ess-em-aye-tee-aich) Bob Math; mais de um nome for encontrado, possvel escolher entre os nomes encontrados; nenhum nome for encontrado, a mensagem de introduo repetida; * para sair; 1 para ir ao ramal desejado.

\\Tambm

\\Se \\Se

\\Pressione \\Pressione

206

Distribuio automtica de chamadas


\\A

distribuio automtica de chamadas possibilitada pelo uso de filas, e funciona da seguinte forma:
\\As

chamadas entram e so colocadas em fila; autenticados como agentes atendem as chamadas; estratgia usada para distribuir as chamadas.

\\Clientes \\Uma \\Agentes

so atendentes com ramais definidos no arquivo agents.conf, onde so definidas as filas de atendentes; agente pode pertencer a mais de uma fila:

\\Um

\\agents.conf

[agents] agent => 1001,4321,Wayne Kerr


\\queues.conf

[queue1] member => Agent/1001


\\extensions.conf

exten => 28,1,AgentLogin(1001) exten => 29,1,Queue(queue1)

Esta funo permite que as chamadas sejam atendidas assim que chegam e inteligentemente direcionadas aos agentes disponveis, como em um call center. A distribuio automtica de chamadas tambm auxilia a gerenciar redirecionamentos de transbordo, redirecionamento de chamadas baseado em estatsticas de fila, recuperao de chamadas abandonadas e encaminhamento de chamadas entre mltiplas localidades. O encaminhamento baseado nas habilidades dos agentes (skills-based routing) define o agente mais apropriado para atender cada chamada; o encaminhamento baseado em regras aplica um nico conjunto de regras de negcio para todos os canais de contato; e a funcionalidade Specific Agent Recall direciona clientes que estejam retornando chamadas para o mesmo agente que fez o contato original.

207

Captulo 8 Distribuio de chamadas

208

8
Roteiro de Atividades
Tpicos e conceitos
\\A

atividade tem por objetivo explorar as funcionalidades do Asterisk.

Competncias tcnicas desenvolvidas


\\Ao

final desta atividade prtica o aluno ser capaz de realizar configuraes avanadas no Asterisk.

Tempo previsto para as atividades


\\Uma

a duas horas, entre atividades individuais e em grupo.

Atividade 1 Discagem por diretrio


Passo 1: edite o arquivo extensions.conf e acrescente as seguintes extenses:
exten=>7,1,Directory(default,cursovoip,f) exten=>7,2,Directory(default,cursovoip,f)

Passo 2: reinicie o servio Asterisk executando o comando:


# /etc/init.d/asterisk restart

Passo 3: teste o resultado ligando para a extenso. Anotaes:

209

Introduo Voz sobre IP e Asterisk

Atividade 2 Distribuio automtica de chamadas


Passo 1: edite o arquivo agents.conf e adicione uma nova seo [fila], que definir a nossa fila.
[general] persistentagents=yes [agents] autologoff=15 musiconhold => default group=1 agent => 300,300, atendente 1 agent => 301,301, atendente 2

Passo 2: edite o arquivo queues.conf e adicione uma nova seo [fila]. Esta seo definir a nossa fila.
[fila] music = default strategy= ringall maxlen = 0 member => Agent/300 member => Agent/301 ;classe da "music on hold" ;estratgia para distribuir as chamadas ;Comprimento mximo da fila (0 = infinito) ;Incluso de um agente ;Incluso de outro agente

Passo 3: edite o arquivo extensions.conf para configurar o acesso fila no plano de discagem.
exten exten exten exten => => => => 0800,1,Answer ;atende chamadas para a fila 0800,2,Queue(fila) ;aciona a fila 6000,1,AgentCallbackLogin(||${CALLERIDNUM}@cursovoip) 6001,1,AgentLogin(||${CALLERIDNUM}@cursovoip)

Passo 4: disque do X-Lite para uma das extenses de login (6001 ou 6000) e siga as instrues.
\\ \\ \\

Disque 300# para informar o login Disque 300# para confirmar a senha Disque o nmero da extenso que est usando (1001)

210

Anotaes:

211

Captulo 8 Distribuio de chamadas

Passo 5: utilizando outro softphone, disque para a fila 0800.

212

9
Unidade de Resposta Audvel (URA)

Sumrio
Hora do sistema . . . . . . . . . . . . . . . . . . . . . . . 214 Unidade de Resposta Audvel (URA) . . . . . . . . . . . . . . . . 215 Roteiro de Atividades . . . . . . . . . . . . . . . . . . . . . 219 Atividade 1 Gerando mensagens personalizadas . . . . . . . . . . . 219 Atividade 2 Criando plano de discagem para uma empresa de servio VoIP . 220

213

Introduo Voz sobre IP e Asterisk

Hora do sistema
\\Servio

adicional data e hora: pela funo SayUnixTime();

\\Implementado

\\SayUnixTime([unixtime][|[timezone][|format]]): \\Unixtime \\Timezone \\Format \\Todos

tempo em segundos desde 1 de janeiro de 1970;

abreviao do timezone para data/hora; se vazio, utilizar os parmetros do sistema; formato em que data e hora sero reproduzidas. os parmetros so opcionais.

\\SayUnixTime([unixtime][|[timezone][|format]])

a hora e a data informados devero ser o primeiro argumento em segundos desde 1 de janeiro de 1970. os parmetros so opcionais; se nada for informado, os parmetros padro sero utilizados. propsito desta aplicao de plano de discagem informar data e hora em segundos, aps 1 de janeiro de 1970. hora em segundos aps 1 de janeiro de 1970. Pode ser negativa (segundos antes de 1 de 1970). O valor padro o timestamp atual. abreviao do timezone para data/hora. Maiores informaes sobre timezones podem ser encontradas em /usr/share/zoneinfo. O valor padro a hora em que o computador est configurado. formato em que data e hora so reproduzidos. Os formatos abreviados so:

\\Todos

\\O

\\Unixtime

\\Timezone

\\Format \\A \\B \\d \\Y \\I

ou a dia da semana; ou b ou h nome do ms; ou e dia do ms numrico; ano; ou i hora, relgio em 12 horas; hora, relgio em 24 horas; hora, relgio em 24 horas; minuto; ou p AM ou PM; today, yesterday ou ABdY; for today, yesterday, weekday ou ABdY; relgio em 24 horas, incluindo minutos; o valor padro ABdYIMp.

\\H \\k

\\M \\P \\Q \\q \\R

214

\\Servio

adicional Data e Hora:

; Hora exten => 102,1,Ringing exten => 102,2,Wait(1) exten => 102,3,SayUnixTime(,America/Sao_Paulo,IMp) exten => 102,4,Hangup ; Data exten => 103,1,Ringing exten => 103,2,SayUnixTime(,America/Sao_Paulo, ABdY) exten => 103,3,Hangup

\\Hora \\Data

IMP: hora, minuto, AM/PM. ABdY: dia da semana, nome do ms, dia do ms numrico, ano.

Unidade de Resposta Audvel (URA)


\\Servio \\ou

adicional Interactive Voice Response (IVR):

Unidade de Resposta Audvel (URA);

\\Recurso \\Muito

que permite detectar voz e tons utilizando uma chamada normal de telefonia; til para permitir que o sistema de telefonia utilize a rede VoIP; utilizado para criar uma lista de menus para enderear ramais sem DDR ou fornecer algum tipo de servio de call center, como:
\\Bem-vindo

\\Tambm

ao suporte de vendas, em breve voc ser atendido... Sua ligao importante para ns... Disque 1 para esperar mais um pouco, 2 para falar com o Luiz etc....

Interactive Voice Response (IVR) automatiza algumas ou todas as interaes dos seus clientes, utilizando recursos de converso de texto em voz (text-to-speech) e de reconhecimento de voz (voice recognition) integrados para obter informaes do cliente e fazer a comparao com os sistemas de informao para, automaticamente, atender s questes e solicitaes dos clientes. As funcionalidades de URA e DAC podem ser utilizadas em conjunto para obter informaes do cliente e encaminhar a chamada para o agente mais habilitado. Nas campanhas ativas via Unidade de Resposta Audvel, a URA disca para os clientes e toca uma mensagem assim que eles atendem ao telefone; responde automaticamente algumas perguntas pr-definidas, e encaminha o cliente para um agente humano, se necessrio.

215

Captulo 9 Unidade de Resposta Audvel (URA)

Introduo Voz sobre IP e Asterisk

\\Servio

adicional IVR: a extenso [IVR]:

\\Criar

[IVR] exten => 9999,1,Answer() exten => 9999,n,Wait(2) exten => 9999,n,Background(teste-ivr) exten => 1,1,Goto(opcao-1,s,1) exten => 2,1,Goto(opcao-2,s,1)
\\Servio \\Crie

adicional IVR: duas extenses para completar o menu da IVR:

\\[opcao-1] \\[opcao-2]

[opcao-1] exten => s,1,Dial(SIP/6331@openser) exten => s,2,Hangup() [opcao-2] exten => s,1,Dial(SIP/7531@openser) exten => s,2,Hangup()
\\

Opo 1 ser encaminhado para o canal SIP um invite para 6331@openser (o OpenSER neste exemplo a conta SIP definida em sip.conf). Opo 2 ser encaminhado para o canal SIP um invite para 7531@openser.

\\

\\Servio

adicional IVR: um prompt de udio:

\\Gravando \\Com \\A

o Asterisk possvel gravar as mensagens de udio que sero utilizadas no menu do IVR; aplicao Record() pode ser utilizada para essa finalidade:
exten => 100,1,Wait(2) exten => 00,n,Record(/var/lib/asterisk/sounds/ minhaGravacao:gsm) exten => 100,n,NoOp(${RECORDED_FILE}) exten => 100,n,Wait(2) exten => 100,n,Playback(/var/lib/asterisk/sounds/ minhaGravacao) exten => 100,n,NoOp(${PLAYBACKSTATUS}) exten => 100,n,Wait(1) exten => 100,n,Hangup()

216

Para utilizar um IVR, normalmente necessrio gravar algumas mensagens de udio utilizando o Asterisk. Para esse propsito, voc poder adicionar uma extenso no extension.conf para gravar a mensagem. Neste exemplo, voc pode discar 100 e depois do beep comear a gravao e terminar com #. As mensagens so gravadas no formato GSM e chamadas de minhagravacao.gsm, no diretrio /var/lib/asterisk/sounds/. Depois de pressionar #, aps dois segundos, o Asterisk tocar a mensagem gravada. Neste exemplo so utilizadas as aplicaes Wait(), Record(), Playback() e Hangup(). Voc poder ver as descries dessas aplicaes digitando no console do Asterisk 1.4 core show application <aplicaes> ou, no formato antigo, show application <aplicaes>; este formato ser removido em implementaes futuras.

\\Servio

adicional IVR: um prompt de udio:

\\Gravando \\Aps

gravar a mensagem, copie-a para o lugar definitivo, como por exemplo:


# cd /var/lib/asterisk/sounds # cp minhaGravacao.gsm teste-ivr.gsm

\\Esta

etapa est pronta; falta encaminhar as mensagens de/para o Asterisk.

\\Agora

possvel tambm na IVR chamar os ramais que esto no OpenSER; para isso poderia ser implementada uma extenso conforme abaixo:
exten: _XXXX,1,Dial(SIP/${EXTEN}@openser) exten: _XXXX,2,Hangup()

217

Captulo 9 Unidade de Resposta Audvel (URA)

Gravando mensagens de udio

Introduo Voz sobre IP e Asterisk

218

9
Roteiro de Atividades
Tpicos e conceitos
\\A

atividade tem por objetivo explorar as funcionalidades do Asterisk.

Competncias tcnicas desenvolvidas


\\Ao

final desta prtica o aluno ser capaz de realizar configuraes avanadas no Asterisk.

Tempo previsto para as atividades


\\2h30

minutos a 3 horas (trabalho individual e em grupo).

Atividade 1 Gerando mensagens personalizadas


Nesta atividade iremos gerar mensagens para serem utilizadas como atendimento. Sintaxe da aplicao Record() Record(filename:format,silence[,maxiduration][,options]) (no Asterix 1.0.X) Record(filename:format,silence[,maxiduration][,options]) (no Asterix 1.2.X) Opes Filename Format Silence Tabela 9.1 Maxduration Nome do arquivo que ser gerado na gravao. Se o arquivo existir ele ser substitudo Especifica o tipo de formato que o arquivo ser gravado. Os formatos vlidos incluem: g723, g729, gsm, h263, ulaw, alaw, vox, wav. Especifica o tempo mximo de gravao em segundos de silncio. Especifica o tempo mximo de gravao em segundos. este campo vazio ou com 0 (zero), implica a ausncia de tempo mximo.
219

Introduo Voz sobre IP e Asterisk

1. Descreva um plano de discagem que permita a gravao das mensagens, onde os arquivos gerados estejam no formato gsm e armazenados no diretrio /tmp.

2. Crie uma mensagem de saudao com nome atende, com a mensagem a seguir: Voc ligou para a central VoIP; disque 1 para suporte, 2 para financeiro e 3 para vendas.

3. Crie uma mensagem para suporte, uma para o departamento financeiro e outra para vendas, onde em cada contexto vamos tocar uma gravao como Voc foi redirecionado para o departamento xxxx.

Atividade 2 Criando plano de discagem para uma empresa de servio VoIP


Forme grupos de quatro pessoas, onde trs representaro setores da empresa e a quarta representar o cliente que efetuar a chamada. Crie uma regra de discagem conforme abaixo: 1. Ao chamar o ramal 9000, a mensagem que atende dever ser tocada em Background; 2. Ao discar a opo desejada, a ligao ser transferida para o ramal correspondente. Faa o tratamento das opes invlidas.

220

221

Captulo 9 Unidade de Resposta Audvel (URA)

Anote o plano de discagem do grupo:

222

10
Qualidade de Servio em VoIP

Sumrio
Situao atual . . . . . . . . . . . Proviso de QoS . . . . . . . . . . Estabelecimento de contratos de servios . . Service Level Agreement (SLA) . . . . . . Proviso centralizada . . . . . . . . . Proviso distribuda . . . . . . . . . . Manuteno . . . . . . . . . . . . Trmino do contrato . . . . . . . . . Modelos de QoS . . . . . . . . . . Protocolo de sinalizao RSVP . . . . . Rotina de controle de admisso . . . . . Classificador . . . . . . . . . . . . Escalonador de pacotes . . . . . . . . Escalonador FIFO (First In First Out) . . . Escalonador WFQ (Weighted Fair Queuing) . Escalonador PQ (Priority Queying) . . . . IntServ . . . . . . . . . . . . . . DiffServ . . . . . . . . . . . . . DiffServ no pacote IP . . . . . . . . . DiffServ DSCP . . . . . . . . . . . Consideraes sobre DiffServ . . . . . . Encaminhamento . . . . . . . . . . Servios Integrados sobre Diferenciados . . Multi-Protocol Label Switching MPLS . . Modelo bsico de rede MPLS . . . . . . Real-time Transport Protocol RTP . . . . Real-time Transport Control Protocol RTCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 . 225 . 226 . 227 . 228 . 229 . 230 . 231 . 231 . 233 . 234 . 235 . 235 . 235 . 236 . 237 . 237 . 238 . 239 . 240 . 240 . 241 . 241 . 242 . 243 . 244 . 247

Roteiro de Atividades . . . . . . . . . . . . . . . . . . . . . 253 Atividade 1 Qualidade de Servio (QoS) . . . . . . . . . . . . . . 253


223

Introduo Voz sobre IP e Asterisk

Situao atual
\\A \\O

internet disponibiliza um servio de melhor esforo; congestionamento da rede causa atrasos e perdas; h garantia de tempo de entrega; h garantia nas perdas;

\\No \\No

\\Novos

cenrios de trfego e aplicaes necessitam de requisitos de perdas, retardo e taxa de transmisso; tecnologias, novas demandas: sobre IP (VoIP); distncia; interativa distribuda;

\\Novas \\Voz

\\Educao

\\Teleconferncia; \\Simulao

\\Telemedicina; \\Vdeo

sob demanda.

A internet faz o melhor possvel para entregar os pacotes, mas sem garantia alguma. Pacotes podem ser perdidos, atrasados ou entregues fora de ordem. Durante o congestionamento (comutadores e roteadores recebendo mais quadros/ pacotes do que a capacidade de encaminhar/rotear), quadros e pacotes sofrem atrasos, aguardando na fila a oportunidade de serem colocados na interface de sada ou de serem excludos. As aplicaes atuais, de voz e vdeo principalmente, exigem garantias de QoS para que satisfaam as necessidades dos usurios. Os parmetros que definem a qualidade de servio so intrinsecamente ligados s aplicaes suportadas, diferindo se a comunicao em tempo real ou no.
\\Aplicaes \\Aplicaes

de voz demandam pouca banda, mas no toleram alto atraso ou jitter.

de imagem podem exigir grande banda e no toleram alto atraso ou jitter, embora tolerem alguma perda. e dados nas redes de circuitos exigiam taxas de erro distintas e, em ltima instncia, parmetros de qualidade diferentes. redes de pacotes, os fatores a considerar so a criticidade do servio em relao ao transporte em tempo real ou no, delay e perda de pacotes suportada. Uma vez definidos os valores dos parmetros, como monitor-los? Via web em tempo real? Atravs de relatrios recebidos da operadora em perodos a serem acordados? So perguntas importantes que devero ser respondidas ao longo desta sesso de aprendizagem.

\\Voz

\\Nas

224

\\A

rede de comunicao deve prover funes para QoS: funes atuam em diferentes fases do ciclo de vida de um servio: de servios; de contratos de servios; dos contratos;

\\As

\\Solicitao

\\Estabelecimento \\Manuteno \\Trmino

do contrato. estticos:

\\Mecanismos \\Ex.:

solicitao ao administrador de rede. dinmicos:

\\Mecanismos \\Ex.:

uso de protocolos de sinalizao. estticos e dinmicos demandam: de recursos; de trfego; da QoS a ser aplicada.

\\Mecanismos \\Alocao

\\Caracterizao \\Especificao

1. Para prover QoS, a rede deve possuir ferramentas de controle e monitorao do QoS ou, simplesmente, estar superdimensionada, sem a ocorrncia de congestionamentos; 2. Ao solicitar um servio, o usurio deve descrever os parmetros exigidos pela sua aplicao; 3. Ao atender a solicitao do usurio, o fornecedor do servio oferece uma determinada qualidade de servio, podendo ou no ser a qualidade esperada pelo usurio, que poder ter que diminuir um pouco a qualidade do resultado final de sua aplicao, seja por motivos econmicos (custo do servio maior que o esperado) ou tcnicos (a operadora no tem como oferecer a QoS solicitada); 4. Na assinatura de contratos de servios, devem ser considerados os parmetros de QoS, que respondero pela qualidade do servio. Neste ponto importante que o usurio verifique se a qualidade esperada a que est sendo oferecida, e da parte do provedor checar se os parmetros de servio esto aderentes expectativa do usurio; 5. Na manuteno dos contratos, ser avaliada no dia a dia a qualidade do servio, que poder ser a esperada, inferior ou at superior. importante definir as caractersticas da aplicao, procedimentos de emergncia, e principalmente como o cliente pode monitorar os parmetros da aplicao; 6. importante que haja clusulas de multa que forcem a operadora a manter a QoS dentro dos padres contratados;

225

Captulo 10 Qualidade de Servio em VoIP

Proviso de QoS

Introduo Voz sobre IP e Asterisk

7. Ao trmino do contrato, aps a liberao dos recursos, importante fazer uma avaliao geral do comportamento da qualidade, isto , se o que foi oferecido era o esperado pelo usurio e os cuidados de qualidade necessrios para novas solicitaes de servio. Ao responder, o provedor de rede poder atender a novas solicitaes de servio com qualidade mais robusta. Nos mecanismos estticos, normalmente a configurao realizada manualmente por um administrador de rede, sendo esta mantida at o fim do servio ou at que seja realizado um pedido de mudana da configurao. Nos mecanismos dinmicos, protocolos de sinalizao respondem automaticamente a mudanas na rede, atravs de informaes recebidas de sistemas de monitoramento, procurando sempre manter o servio dentro de limites contratados entre o usurio e a operadora. A proviso de QoS necessita da caracterizao do trfego detalhamento do perfil do trfego: taxa mdia, taxa de pico, tamanho mximo da rajada , para que a QoS possa ser especificada para a aplicao e a operadora aloque um mnimo de recursos em sua rede (filas em roteadores, banda, LSPs) para provimento da QoS exigida. Para proviso de QoS, necessrio conhecer as caractersticas do servio a ser prestado. H uma srie de fatores que contribuem para a qualidade na prestao de um servio, entre eles:
\\Disponibilidade \\Medio

do servio;

de atrasos; dos servios.

\\Desempenho

Os parmetros podem ser configurados de duas maneiras:


\\Estaticamente

configurao por comandos de um operador;

\\Dinamicamente

quando a rede nota alguma mudana de estado e ajusta seus parmetros conforme as necessidades da aplicao e as possibilidades da rede.

Estabelecimento de contratos de servios


\\Comprometimento \\Aplicao \\A \\Esse

entre a aplicao e a rede:

gera trfego como especificado no contrato;

rede assegura o transporte dos fluxos com a QoS solicitada. acordo recebe o nome de Service Level Agreement (SLA).

Os contratos de servios devem estar em conformidade com exigncias contratuais ou normas regulatrias do setor (Anatel, ITU, IEEE). O SLA o contrato de garantias de servio estabelecendo no apenas garantias ao trfego do cliente, mas tambm definindo limites. Assim, um trfego gerado pelo cliente acima do perfil descrito na caracterizao, no obrigatoriamente dever receber as garantias contratadas.
226

Ao elaborar uma SLA, algumas perguntas devero ser respondidas: 1. Quais as caractersticas do servio? 2. Quem e quantos so os usurios do servio? 3. Qual o impacto deste servio para os usurios? 4. Qual o custo associado interrupo do servio? 5. Quanto o cliente quer pagar pelo servio? 6. Qual o processo para a execuo deste servio? 7. Quais os pontos crticos deste processo? 8. Como monitorar este processo? 9. Como detectar a falha e medir a sua ocorrncia? 10. Como estabelecer penalidades para a falha? 11. Como cobrar multas geradas pela penalidade? 12. Quem far o acompanhamento do processo? 13. Como as futuras divergncias sero dirimidas (em casos sob judice)? 14. Qual ser o frum para deciso? Tais perguntas devero ser respondidas pelo contratante e pelo contratado ou provedor do servio.

Service Level Agreement (SLA)


\\Estabelecimento \\Para

de contratos de servios;

garantir o SLA, preciso orquestrar recursos de forma a: os recursos disponveis; um controle de admisso; e escalonar pacotes.

\\Quantificar \\Prover

\\Classificar \\O

SLA pode ser configurado de forma:


\\Recursos

\\Esttica:

reservados pelo administrador de rede.

227

Captulo 10 Qualidade de Servio em VoIP

Esse trfego fora da caracterizao poder ter pacotes perdidos ou atrasados, sem que a operadora tenha que indenizar o cliente.

Introduo Voz sobre IP e Asterisk

\\Dinmica: \\Efetuada \\Podendo

por um protocolo de sinalizao; ser:

\\Centralizada; \\Descentralizada

ou distribuda.

Para garantir o SLA, necessrio conhecer os recursos totais da rede e os recursos j reservados para que o controle de admisso conhea o limite para a garantia de recursos aos usurios. Acima deste limite os pacotes trafegaro sem garantia ou sero descartados. A classificao a funo normalmente exercida na borda da rede, onde o equipamento descobre a qual classe (definida em conjunto com o cliente) pertence cada pacote, fazendo sua marcao e colocando-o na fila adequada. No caso do cliente extrapolar os valores combinados com o provedor, os pacotes podem ser classificados com uma prioridade mais baixa ou simplesmente descartados. Durante o escalonamento, o n da rede (comutador ou roteador) colocar os quadros ou pacotes nas filas adequadas e selecionar os prximos a serem encaminhados/ roteados conforme a QoS estabelecida para cada classe. Na forma esttica, o SLA definido por um perodo de tempo e recursos pr-determinados, sendo essa configurao mantida at que o administrador faa outra interveno. Na forma dinmica, ao contrrio do modelo anterior, a reserva de recursos realizada por protocolos especficos, que podem alterar parmetros durante o perodo em que a aplicao est sendo realizada. Na configurao centralizada, um nico equipamento recebe informaes de toda a rede, toma as decises necessrias e as envia aos equipamentos da rede. Como exemplo, podemos citar a engenharia de trfego em uma rede MPLS, onde as definies dos LPS podem ser realizadas por um servidor centralizado. J a configurao descentralizada ocorre quando todos os ns da rede participam da definio.

Proviso centralizada
\\Bandwidth

Broker (BB) ou negociador de recursos o responsvel pela reverso e configurao dos recursos. BB disponibiliza: de solicitao e configurao de servios; das decises.

\\O

\\Interface

\\Comunicao

228

\\Exemplos

de BB: Open Policy Server (COPS) RFC 2748; (RFC 3588).

\\Common \\Diameter

Os negociadores de recursos (Bandwidth Broker BB) so agentes que possuem conhecimento dos recursos disponveis, recursos reservados e das necessidades das aplicaes, alm do nvel de utilizao da rede e do fluxo de pacotes marcados como prioritrios, entre outros, para assim interpretar com maior inteligncia e coerncia as novas requisies de banda. Os negociadores de recursos facilitam, orientam e disciplinam as alteraes de recursos desejados, facilitando a administrao da rede, a QoS e o SLA. Cada domnio dever possuir o seu BB. Common Open Policy Server (COPS), especificado na RFC 2748, um modelo cliente/ servidor para efetivar o controle e o policiamento da QoS para determinada aplicao. Para a parte de autenticao e billing, utilizado o RADIUS (Remote Authentication Dial In User Service). Diameter (RFC 3588) um protocolo para autenticao e billing, em uma verso mais robusta que o RADIUS, com o acesso seguro sendo feito via IPsec ou TLS, na porta 3868 TCP .

Proviso distribuda
\\Estaes

e roteadores na rede so dotados de um negociador prprio;

\\Negociadores

trocam informaes de controle via protocolo de sinalizao e determinam a reserva de recursos;

\\Exemplo: \\Resource

ReSerVation Protocol RSVP (RFC 2205).

A alocao do recurso feita para todo o perodo em que a aplicao ser utilizada, no podendo o recurso ser compartilhado com outras aplicaes. Ao trmino da aplicao, os recursos devero ser liberados para que outras aplicaes possam utiliz-los. O RSVP o protocolo utilizado no modelo de QoS, conhecido como IntServ ou Integrated Services (Servios Integrados). Antes do estabelecimento da comunicao entre dois pontos, cada roteador por onde o fluxo de dados ir passar deve alocar os recursos necessrios para garantir a qualidade da comunicao. Se qualquer roteador negar a solicitao, o fluxo em questo no poder trafegar pela rede.

229

Captulo 10 Qualidade de Servio em VoIP

Introduo Voz sobre IP e Asterisk

Manuteno
\\A

manuteno garante que as aplicaes no ultrapassem a cota de utilizao dos recursos; de policiamento:

\\Necessidade \\A

rede deve reagir prontamente a degradaes ocasionais. de componentes de rede: conversativo dos recursos.

\\Falhas

\\Dimensionamento \\Acionar \\Manter

funes de sintonizao; o SLA contratado: recursos; subredes e roteadores alternativos. do SLA:

\\Realocar \\Escolher

\\Renegociao \\Tentativa

de manter o novo SLA contratado.

O policiamento tem a funo de verificar se o trfego gerado pelo cliente encontra-se dentro do combinado com a operadora. Estando o trfego fora dos padres combinados, o policiamento pode reagir, marcando o pacote para um possvel descarte, mudando a sua classe ou prioridade ou simplesmente descartando-o. O policiamento deve levar em conta as caractersticas para trfego de tempo real, como voz e trfego sensvel a perdas, que o caso de trfego de dados. Os parmetros a serem atendidos so providos pela QoS nos roteadores de acesso. O dimensionamento conversativo dos recursos deve fornecer uma poltica de deciso para policiamento (por exemplo perdas so admissveis), cuja gesto poder estar no Bandwidth Broker. Para manter o SLA contratado, so importantes algumas premissas: 1. Estabelecer os limites para a aplicao; 2. Estabelecer garantias especficas de desempenho para a aplicao contratada; 3. Avaliar os relatrios peridicos de acompanhamento de QoS; 4. Criar uma poltica de compensao adequada em caso de no conformidade em alguns dos itens contratados; 5. Utilizar sempre mtricas quantificveis.

230

Se for o caso de negociar ajustes nos indicadores do SLA, um perodo de avaliao e conformidade, aberto a alteraes, necessrio para a renegociao do documento. No caso das metas e parmetros no serem atingidos, antes da renegociao importante verificar possveis obstculos, como:
\\Metas \\Metas \\SLA

inatingveis nos prazos negociados; definidas pela tecnologia e no pelo negcio;

entendido pela organizao como um overhead, e no como um diferencial competitivo; de SLM sem a devida senioridade/autoridade para negociar com as partes envolvidas (clientes e fornecedores); de SLA inadequados;

\\Equipe

\\Contratos \\As

diversas reas envolvidas no perceberem que o acordo um construtor, e no um destruidor de relacionamentos; de recursos (pessoas, processos e tecnologia); inadequada de metas e reportes.

\\Falta

\\Divulgao

Trmino do contrato
\\A \\A

aplicao informa rede a inteno de finalizar o contrato; rede libera os recursos alocados;

\\Especificado

o perodo do contrato, a liberao dos recursos poder ocorrer de forma automtica.

necessrio ter cautela e ferramentas de avaliao sobre a disponibilidade dos recursos. A gerncia da rede deve estar familiarizada com esses recursos para evitar surpresas de recursos alocados indevidamente. Liberar recursos de forma automtica pode ser um problema quando a rea tcnica no est integrada ou bem alinhada com a rea de ps-vendas das empresas.

Modelos de QoS
\\Existem

diferentes tipos de modelos propostos pelo Internet Engineering Task Force (IETF); modelos se adaptam de acordo com o tipo de aplicao e de arquitetura da rede:
\\Integrated

\\Esses

Services (IntServ); Services (DiffServ).

\\Differentiated

231

Captulo 10 Qualidade de Servio em VoIP

Renegociao do SLA

Introduo Voz sobre IP e Asterisk

\\IntServ: \\Utilizado

para designar um modelo de servios que acrescenta ao servio de melhor esforo oferecido na internet; de servios com diferentes graus de comprometimento de recursos (banda e memria) e nveis (ou classes) de QoS; fluxo identificado na arquitetura IntServ pela tupla IP Origem e Porta TCP ou UDP de origem. oferece, alm do best effort, as seguintes categorias de servios: garantidos: aplicaes que necessitam de um atraso constante. de carga controlada:

\\Categorias \\Um

\\IntServ

\\Servios \\Para \\Servios \\Para

aplicaes que necessitam de segurana e limite de variao de atraso (jitter).

\\Aplicaes

que exigem esses tipos de servio devem configurar caminhos e reservar recursos antes da transmisso dos dados; implementao do IntServ feita por quatro componentes: de sinalizao (RSVP); de controle de admisso; de pacotes.

\\A

\\Protocolo \\Rotina

\\Classificador; \\Escalonador

Integrated Services (IntServ) um protocolo caracterizado pela reserva prvia de recursos para atender determinada aplicao. O conceito simula um circuito, uma vez que a comunicao s realizada se houver recursos disponveis nos roteadores antes do incio da conversao, seja ela de dados ou de voz. Um fator que pode ser considerado negativo neste caso que os recursos dos roteadores ficam comprometidos durante todo o tempo em que a aplicao estiver ativa, independente de naquele exato momento a aplicao estar utilizando os recursos de rede. Alm disso, de difcil escalabilidade, pois um protocolo complexo e consome muitos recursos computacionais, especialmente memria para manter os estados de todas as conexes. O Differentiated Services (DiffServ) foi desenvolvido pelo IETF para resolver os problemas do protocolo anterior em relao ao comprometimento dos recursos, seja para o controle das conexes ou para o trfego de dados propriamente dito. Os pacotes so marcados de acordo com caractersticas do servio e, em cada roteador, so encaminhados de acordo com sua prioridade. No h necessidade de estabelecimento de circuito. O modelo IntServ est descrito na RFC 1633. A sinalizao deste modelo de QoS provida pelo protocolo de reserva de recursos, o RSVP (Resource Reservation Protocol), descrito na RFC 2205.
232

Os dois servios esto descritos em RFCs:


\\RFC \\RFC

2211 Controlled-Load Network Element Service; 2212 Guaranteed Quality of Service.

A definio do caminho a ser percorrido pelo fluxo, assim como a reserva de recursos, anteceder o incio do fluxo propriamente dito, o que gera um atraso maior do primeiro pacote. O controle de admisso essencial para que o sistema no se comprometa com uma carga superior ao que pode realmente transportar. A arquitetura IntServ causa dois problemas principais:
\\Processa

cada fluxo individualmente nos roteadores do centro da internet, gerando problemas de escala; de polticas de controle.

\\Falta

Uma rede que implemente o modelo IntServ precisa garantir que seus roteadores sejam capazes de executar as seguintes tarefas:
\\Controle

de admisso determina que um fluxo pode ser encaminhado com o grau de qualidade requerido, sem interferir em fluxos j em curso; reconhece pacotes que necessitam de nveis especficos de QoS;

\\Classificao \\Policiamento

age quando o trfego no est em conformidade com o especificado, inclusive descartando pacotes;

\\Enfileiramento

e escalonamento encaminha os pacotes de acordo com os requisitos de QoS.

Protocolo de sinalizao RSVP


\\RSVP

(Resource reSerVation Protocol) um protocolo de sinalizao que gerencia recursos ao longo do caminho no qual se quer utilizar aplicaes que necessitem de QoS; processo de sinalizao ocorre antes da transmisso dos dados e renovado sempre que necessrio.

\\O

O protocolo RSVP descrito na RFC 2205, o protocolo de sinalizao utilizado , pelo modelo IntServ para reserva de recursos nos roteadores envolvidos na comunicao. o responsvel pela sinalizao no domnio IntServ, estabelecendo e desfazendo caminhos confiveis na rede. Se apenas um dos roteadores envolvidos
233

Captulo 10 Qualidade de Servio em VoIP

De forma simplificada, um fluxo identificado na arquitetura IntServ pelo IP e a porta TCP ou UDP de origem. possvel fazer a reserva de recursos e garantir o atraso constante ou, atravs de carga controlada, manter o atraso dentro de determinados limites de variao. A primeira categoria muito mais onerosa em termos dos recursos utilizados.

Introduo Voz sobre IP e Asterisk

no trnsito dos dados no tiver disponvel o recurso solicitado, a transmisso dos dados no ocorre. Para alocar recursos, as mensagens PATH e RESV so trocadas entre o receptor e o transmissor.
Nuvem RSVP
PATH(1) PATH(2) PATH(3)

Figura 10.1
RESV(6) RESV(5) RESV(4)

Origem solicita reserva de recursos tais como banda, delay e jitter, para determinada aplicao atravs da mensagem PATH, que pode ser unicast ou multicast. Cada roteador consultado que atender solicitao passa ao estado de reserva dos recursos, e encaminha a mensagem at o destino, que retorna a mensagem RES pelos mesmos roteadores, confirmando a reserva do caminho. Desta maneira estabelecido um caminho prvio, semelhante ao conceito dos recursos solicitados ao longo circuito. No RSVP um fluxo de dados uma sequncia de mensagens com a mesma origem , (endereo IP e porta), o mesmo destino e a mesma qualidade de servio. Principais problemas deste protocolo:
\\Estabelecida

a conexo e no caso de queda de um roteador no caminho (path), todo o procedimento tem que ser refeito; de recursos durante todo o tempo da conexo, exigindo alto desempenho da rede; o caminho desfeito, preciso se certificar de que todos os recursos sejam liberados, evitando comprometimentos desnecessrios; de escala, pois conforme aumenta a quantidade de fluxos das aplicaes, aumenta o consumo dos recursos, causando problemas aos backbones das grandes redes.

\\Comprometimento

\\Quando

\\Problema

Rotina de controle de admisso


\\O

controle de admisso tem apenas a funo de determinar se um fluxo de dados poder ser aceito ou no, de acordo com a banda disponvel; componente requisitado de forma que sua deciso no interfira nos fluxos previamente aceitos pelo roteador.

\\Este

A rotina de controle de admisso deve conhecer os recursos totais da rede, os recursos alocados, e consequentemente os recursos livres. Deve verificar se possvel aceitar o trfego solicitado pela aplicao do cliente, podendo aceitar, negar ou negociar parmetros menos rgidos. Algumas tecnologias permitem que um novo fluxo retire os recursos de fluxos j estabelecidos, mas de menor prioridade.
234

\\Marca \\O

os pacotes para possibilitar a reserva de banda para determinado fluxo;

fluxo atendido de acordo com sua prioridade na fila dentro do roteador;

\\As

prioridades da fila so tratadas pelo escalonador, que implementa algoritmos que selecionam os pacotes.

O classificador identifica a classe a qual os pacotes pertencem, conforme o endereo IP endereo MAC, porta etc., para que os pacotes recebam o tratamento contratado , para a classe. O classificador mapeia os pacotes desses fluxos nas diferentes classes de servio, usando a classificao gerada como parmetro do algoritmo no tratamento dos pacotes.

Escalonador de pacotes
\\Estabelece \\O

polticas de enfileiramento e preveno de congestionamento;

escalonador trabalha com algoritmos que fazem implementaes de acordo com a necessidade de QoS para determinados servios, tais como:
\\First

In First Out (FIFO); Fair Queuing (WFQ); Queuing (PQ).

\\Weighted \\Priority

O escalonador de pacotes gerencia os buffers das filas de sada dos roteadores e estaes, usando alguma poltica de atendimento com a finalidade bsica de selecionar os primeiros pacotes a serem colocados na interface de sada, lembrando que aguardar na fila representa aumento do atraso e da possibilidade de descarte.

Escalonador FIFO (First In First Out)


\\Pacotes
FIow 1 FIow 2 FIow 3 FIow 4 FIow 5 FIow 6 FIow 7 FIow 8

de diferentes fluxos so transmitidos na ordem em que so recebidos


5 2 4

FIFO Queue Multiplexer

Port

3 1

Figura 10.2

235

Captulo 10 Qualidade de Servio em VoIP

Classificador

Introduo Voz sobre IP e Asterisk

a poltica mais simples, normalmente utilizada para aplicaes que no necessitam de QoS. FIFO (o primeiro a chegar o primeiro a sair) uma implementao de escalonador que apenas faz o armazenamento e o repasse dos pacotes, sem nenhum tipo de classificao ou prioridades. A ordem de chegada dos pacotes respeitada, determinando a alocao da banda. Algumas aplicaes podem sofrer muito com o trfego em rajada, causando grandes atrasos para aplicaes sensveis ao tempo.

Escalonador WFQ (Weighted Fair Queuing)


\\Pacotes

so classificados e designados a uma fila

Incoming packets

Classify

Transmit queue

Outgoing packets

Weighted fair scheduling Configurable number of queues Queueing buffer resources Flow-based classification: Source and destination adress Protocol Session identifier (port/socket) Weight determined by: Required QoS (IP Precedence, RSVP) Flow throughput inversely proportional Frame Relay FECN, BECN, DE (for Frame Relay traffic)

Figura 10.3

Weighted Fair Queuing (enfileiramento justo e ponderado) uma implementao de escalonador que utiliza um algoritmo que estabelece pesos diferenciados para determinados tipos de pacotes (classes). Cada classe corresponder a uma fila onde pode ser estabelecido, por exemplo, que para cada pacote transmitido da fila A, sero transmitidos dois pacotes da fila B e trs pacotes da fila C. Na verdade, a abordagem de pesos normalmente implementada sem a utilizao de pacotes como unidade de medida; a quantidade de dados medida em bytes de cada fila a unidade de medida. Ento, envia-se a quantidade de pacotes que coincida com a quantidade de bytes a serem enviados. Caso a fila no tenha pacotes para transmitir, o algoritmo buscar imediatamente os pacotes na prxima fila, sem perder o tempo de transmisso dos pacotes a que tinha direito a primeira fila. uma forma de garantir bandas mnimas para os fluxos.

236

\\O

roteador mantm vrias filas com diferentes prioridades

High Incoming packets Mediun Classify Normal Low Length defined by queue limit Transmit queue Outgoing packets

Queueing buffer resources Classification by: Protocol (IP IPX, AppleTalk, , SNA, DECnet, bridge, and so on) Source interface (EO, SO, and so on) Interface hardware: Ethernet Frame Relay ATM Serial link (and others)

Figura 10.4

Priority Queuing (enfileiramento prioritrio) um algoritmo desenhado para aplicaes de tempo real. A fila com maior prioridade checada e se houver algum pacote ele enviado. Quando a fila SP (Strict Priority, Prioridade Estrita), a fila de maior prioridade, estiver vazia, o algoritmo procura por pacotes na prxima fila. Assim que chega um pacote na fila SP o algoritmo volta a esvaziar esta fila e repete o processo. , Tambm conhecido como LLQ (Low Latency Queue) ou fila de baixa latncia. A desvantagem deste mtodo a possibilidade das outras filas sofrerem um fenmeno chamado de starvation (morrer de fome), pois elas podem nunca ser atendidas pela possibilidade de sempre haver pacotes em uma fila de maior prioridade.

IntServ
\\Escalabilidade: \\Informaes \\Inadequado \\Complexidade: \\Todos

de estado podem sobrecarregar os elementos centrais da rede; para redes de backbone.

os roteadores devem implementar RSVP controle de admisso, , classificao e escalonador de pacotes.

O IntServ pouco escalvel, uma vez que trata de cada fluxo individualmente. Em uma grande rede, armazenar informaes e tratar individualmente de cada fluxo pode comprometer o espao de armazenamento e o processamento dos ns intermedirios, assim como o esforo de gerenciamento. Os roteadores devem
237

Captulo 10 Qualidade de Servio em VoIP

Escalonador PQ (Priority Queying)

Introduo Voz sobre IP e Asterisk

obrigatoriamente implementar funes mais sofisticadas, trazendo maior necessidade de processamento, memria, upgrade de softwares e, consequentemente, maiores custos.

DiffServ
\\Differentiated

Service:

\\Introduzido \\Neste \\O

pelo Internet Engineering Task Force (IETF) para resolver os problemas encontrados com a implantao do IntServ; modelo, os pacotes so previamente marcados de acordo com os tipos de servios desejados; DiffServ possibilita a criao de classes de servios dentro de um domnio: ISP Teleco. ,
\\Ex.:

\\Quando

o cliente contrata um servio diferenciado, o campo TOS (Type Of Service) marcado com a classe correspondente.

O modelo de Servios Diferenciados, descrito na RFC 2475 e atualizado pela RFC 3260, foi criado pela necessidade de um mtodo relativamente simples de prover tratamentos adequados para os fluxos das diferentes aplicaes de redes. Era preciso diferenciar os fluxos em classes de servios distintas e tratar os pacotes de acordo com suas necessidades. Os roteadores que implementam DiffServ precisam possuir 4 blocos lgicos:
\\Classificador

seleciona um pacote do fluxo baseado no contedo de alguma poro do cabealho; checa se os parmetros do trfego esto de acordo e passa os resultados para o marcador e modelador; escreve ou reescreve o campo DSCP;

\\Medidor

\\Marcador

\\Modelador

atrasa ou descarta alguns pacotes para que o trfego fique em conformidade com o projeto.

238

\\Formato

do datagrama IP

0 Version

4 HLen

8
Type of service

16 Flags Source IP address Destination IP address Options Data

19 Total lenght Fragment offset Header checksun

31

Identification Time to live Protocol

Padding

Figura 10.5 Inicialmente, a classificao de pacotes utilizava o campo TOS (Type Of Service). Este procedimento popularmente conhecido como marcao de pacotes. Quando um pacote IP marcado, significa que o campo foi preenchido com determinado valor. Este campo indica o tipo de servio que est sendo transportado pela rede IP . A RFC 3260 redefine o campo TOS, modificando o significado de alguns bits. Agora, este octeto conhecido como DS (Differentiated Services). So utilizados 6 bits para a marcao dos pacotes, e os outros dois esto reservados e no so utilizados. Na prtica, os pacotes so marcados com valores que definem a classe de servio a que pertencem, fornecendo uma indicao aos roteadores da prioridade com que esses fluxos devem ser tratados. No IPv6, o campo DSCP foi mapeado como o octeto Classe de trfego.

239

Captulo 10 Qualidade de Servio em VoIP

DiffServ no pacote IP

Introduo Voz sobre IP e Asterisk

DiffServ DSCP
\\Valores

DSCP

PBH Default 000000 Low Drop Probability Assured Forwarding Classe 1 Classe 2 Classe 3 Classe 4 Expedited Forwarding 001010 AF11 010010 AF21 011010 AF31 100010 AF41 101110 EF

DSCP

Precedncia IP 0

Medium Drop Probability 001100 AF12 010100 AF22 011100 AF32 100100 AF42

High Drop Probability 001110 AF13 010110 AF23 011110 AF33 100110 AF43 1 2 3 4 5

Pacotes com prioridade EF (Expedit Forwarding) so imediatamente enviados para a rede. A classe EF est descrita na RFC 2598. Pacotes com prioridade AF (Assured Forwarding) possuem 4 classes distintas, so enfileirados e encaminhados de acordo com a poltica de enfileiramento. Pacotes da classe AF4 tm maior prioridade que pacotes da classe AF1. Dentro de cada classe, ainda existe uma marcao conhecida como three colour marking ou marcao de trs cores, que define a probabilidade de descartar pacotes dentro de cada fila. Assim, existem 12 classes AF distintas, que vo desde AF41 at AF13. As classes AF esto descritas na RFC 2597. Os pacotes com prioridade BE (Best Effort) possuem a menor prioridade e sero encaminhados depois de todas as outras classes, se houver recursos para isto. Esta classe est descrita na RFC 2474.

Tabela 10.1

Consideraes sobre DiffServ


\\Em

cada roteador que trabalhe com diferenciao de servios, o cdigo contido no sub-campo DSCP mapeado em um Per-Hop Behavior (PHB) Comportamento por enlace; PHB define o tratamento a ser dado ao pacote: dois principais PHBs definidos pelo IETF so: Expresso (Expedited Forwarding EF); Assegurado (Assured Forwarding AF).
\\Encaminhamento \\Encaminhamento

\\O

\\Os

Uma vez que os pacotes foram marcados, os roteadores devem encaminh-los de acordo com regras pr-estabelecidas. Dependendo de suas classes, um pacote ter maior ou menor prioridade na fila de sada de cada interface de rede, conforme
240

Encaminhamento
\\Expresso

(EF Express Forward): diminuir o tempo de permanncia nas filas dos pacotes em trnsito; prioridade nos pacotes com esta marcao em relao a qualquer outro; tempos de atraso e perdas de pacotes mximos aceitveis. (AF Assured Forward):

\\Objetivo \\Garante \\Garante \\Assegurado \\Fornece \\O

apenas uma expectativa de servio quando a rede passa por momentos de congestionamento; contratante do servio possui garantias mnimas de QoS.

O encaminhamento expresso garante que o pacote atravessar a rede sem descarte e com um mnimo de atraso. adequado a servios prioritrios com requisitos rgidos quanto ao tempo de entrega dos pacotes, como sinalizao da rede, controles de processos em tempo real e telefonia. O encaminhamento assegurado garante que o fluxo encontrar-se- dentro de limiares pr-estabelecidos, podendo haver perdas e variaes de atraso (dentro de limites pr-estabelecidos). uma boa escolha para servios que precisam de alguma prioridade em relao a outros, mas no tem compromisso rgido com o tempo de entrega dos pacotes.

Servios Integrados sobre Diferenciados


\\Emprega

a arquitetura IntServ nas redes de acesso e a arquitetura DiffServ nas redes de backbone; IntServ trata de fluxos, enquanto o DiffServ agrega os diversos fluxos em classes dentro de um domnio DS; da integrao:

\\O

\\Vantagens

\\Possibilidade \\Melhor

de se implementar servios de policiamento por fluxo e autenticao de usurios individuais; uso de recursos e custo, obtidos com a reserva por fluxo.

Servios Integrados sobre Servios Diferenciados so utilizados para racionalizar o uso de recursos em um modelo de QoS que equilibra a vantagem de alocao de recursos com a simplicidade do PHB. Essa combinao aplica as arquiteturas onde
241

Captulo 10 Qualidade de Servio em VoIP

descrito. Cada roteador decide como o pacote deve ser encaminhado. Por isso a expresso Per Hop Behavior (PHB), que significa que a cada salto (hop) possvel tratar o trfego de forma independente do salto anterior. Desta forma no necessrio manter o estado das conexes em cada roteador por onde um fluxo passa.

Introduo Voz sobre IP e Asterisk

elas so mais adequadas: IntServ no acesso (prximo ao usurio), onde h uma quantidade menor de fluxos, sem problemas de escalabilidade; e DiffServ nos backbones, onde a quantidade de fluxos muito grande e o processamento de cada pacote no pode ser alto, para que as altas taxas de transmisso necessrias no backbone no sejam comprometidas. Mesmo sendo bem diferentes, as duas arquiteturas podem ser combinadas para criar uma soluo fim-a-fim.
NE (Host)

NE (Link)

Network Edge NE (Router) IntServ NE (Link)

NE (Router) DiffServ Transit Network NE (Virtual Link)

Fonte: ARMITAGE, Greenville. Quality of Service in IP Networks. New Riders Publishing, 2000.

Figura 10.6

Na figura, os elementos de rede esto indicados com a sigla NE (Network Elements). Uma ou mais redes IntServ podem ser construdas em volta de uma rede DiffServ. Podemos conseguir isso tratando a borda da rede (NE Network Edge) DiffServ como uma ponta de um link virtual.

Multi-Protocol Label Switching MPLS


\\O

modelo tradicional de roteamento IP pode ser melhorado em redes de backbone: roteamento feito pacote a pacote, e dois pacotes com os mesmos destino e origem podem seguir rotas diferentes; ideia do MPLS criar um caminho virtual na entrada da rede MPLS, permitindo a determinao prvia da sequncia de roteadores que compem a rota. do MPLS: prover QoS; a carga nos roteadores.

\\O \\A

\\Vantagens

\\Permite \\Reduz

242

O IP possui algumas dificuldades, como a necessidade do tratamento individual de cada pacote (ao invs de fluxos ou de classes) e a possibilidade dos pacotes chegarem fora da sequncia, pois podem seguir caminhos diferentes na rede. A princpio, a comutao de pacotes, executada pelo MPLS, exige menos processamento do que o roteamento, executado pelo IP tornando a rede mais eficiente , e eliminando a possibilidade dos pacotes chegarem fora da sequncia correta.

Modelo bsico de rede MPLS


Costumer 1 Costumer 2
MPLS Core
Label = 35
17

Label = 10

Label =

Costumer 2 Costumer 3

Costumer 1
L

e ab

l=

17

Costumer 1
0

Costumer 3
MPLS Edge

Costumer 2
Label = 17

MPLS Edge

Physical links

Segments of LSP 1

Segments of LSP 2

Fonte: ARMITAGE, Greenville. Quality of Service in IP Networks. New Riders Publishing, 2000.

Figura 10.7

O Multi-Protocol Label Switching em alguns aspectos semelhante ao DiffServ:


\\

um protocolo independente, situado entre a camada de enlace e a camada de rede (camada 2,5); utilizado no ncleo da rede;

\\Normalmente \\O

pacote recebe um rtulo (label) ao entrar na rede MPLS; nas bordas e comutao no ncleo;

\\Roteamento \\Dentro

da rede o QoS contratado atendido.

243

Captulo 10 Qualidade de Servio em VoIP

O IP foi desenhado para encaminhar pacotes de um ponto a outro da rede, sem preocupaes com descarte ou tempo de entrega. O objetivo principal o roteamento inter-redes. Dessa forma, no h preocupao com QoS ou qualquer outra garantia. Por esse motivo, implementar QoS em redes IP no uma tarefa trivial.

La be l= 20

Introduo Voz sobre IP e Asterisk

Real-time Transport Protocol RTP


\\Protocolo \\udio

que oferece funes de transporte de rede fim-a-fim: e vdeo interativos. versus Confiabilidade.

\\Desempenho

UDP Performance RTP

TCP

Reliability
Fonte: Analog Devices: Analog Dialogue: Blackfin Voip; Acessado em 22/02/07.

Figura 10.8

O Real-time Transport Protocol (RTP) um protocolo que oferece funes direcionadas para aplicaes que transmitem fluxos de dados em tempo real, como udio, vdeo e dados de simulaes, por meio de servios de rede unicast e multicast. Esse tipo de fluxo deve ser transportado utilizando o UDP pois o TCP , possui controle de fluxo, que diminui a taxa de transmisso em caso de perda de pacotes. Assim, natural que o RTP funcione sobre o UDP ao invs do TCP , evitando o controle de fluxo e retransmisses. O custo disso a pouca confiabilidade e a falta de ordenao na chegada dos pacotes. A retransmisso de pacotes tambm no uma caracterstica desejada em fluxos de udio e vdeo interativos, uma vez que o pacote retransmitido normalmente no chega ao receptor a tempo de ser utilizado. Alguns protocolos mais sofisticados de streamming calculam a probabilidade do pacote ser retransmitido, permitindo que ele possa chegar a tempo de ser processado. Assim, apenas em caso positivo o pacote retransmitido.

\\O

servio inclui: do tipo payload; sequencial; da entrega de dados:

\\Identificao \\Numerao \\Marcas

temporais (timestamping); interpolao.

\\Monitorao \\Permite \\No

trata da reserva de recursos e no garante qualidade de servio (QoS) em tempo real.

244

A recomendao Secure RTP (RFC 3711) permite uso de criptografia e autenticao das mensagens RTP e RTCP .

\\Formato \\Os

do pacote RTP:

doze primeiros octetos esto presentes em todos os pacotes de um fluxo de dados de uma sesso RTP;

0
V P X #CS

8
M PT

16
Timestamp Syncronization Source (SSRC) Countributing Source (CSRS) Header Extention

24
Sequence

32

Figura 10.9
\\V \\P \\X

Payload (udio, vdeo etc)

(Version); (Padding); (Extention); (CSRC Counter); (Payload Type); Number; (Marker Bit);

\\CC \\M

\\PT

\\Sequence

\\Timestamp; \\SSRC \\CSRC

(Synchronization Source) Identifier; (Contributing Source) Identifiers.

\\V \\P

(Version) verso do RTP;

(Padding) indica a presena ou no de preenchimento das posies finais do pacote com um ou mais bytes que no fazem parte da carga; (Extention) indica presena ou no de extenso de cabealho;

\\X

\\CC

(CSRC Counter) contador do nmero de identificadores CSRC aps o cabealho fixo;

245

Captulo 10 Qualidade de Servio em VoIP

Funcionando sobre o UDP soma-se a este algumas informaes de sequenciamento , e de timestamp necessrias para a sincronizao de imagem e udio e para possibilitar o sequenciamento correto pela aplicao. O RTP possibilita aplicao identificar perdas e avaliar quanto tempo uma amostra pode permanecer armazenada em um buffer aguardando a chegada do prximo pacote.

Introduo Voz sobre IP e Asterisk

\\M

(Marker Bit) delimita um conjunto de dados relacionados, o incio de uma rajada de udio ou o fim de um quadro de vdeo; (Payload Type) indica o formato da carga do RTP e determina sua interpretao pela aplicao; Number incrementado em cada pacote RTP e utilizado pelo receptor para detectar perda de pacote ou para restaurar a prpria sequncia; utilizado pelo receptor para sincronizao e clculo do jitter;

\\PT

\\Sequence

\\Timestamp \\SSRC

(Synchronization Source) Identifier utilizado para identificar um fluxo especfico em uma sesso RTP Necessrio para o receptor agrupar pacotes com . o mesmo SSRC para a reproduo; (Contributing Source) Identifiers lista de identificadores CSRC inseridos por mixers. verso: 2 (RFC 3550);

\\CSRC

\\V \\p

padding = 1, se o pacote contm enchimento para completar mltiplos de 32 bytes; - 1, se houver extenso de cabealho;

\\x

\\PT

(payload type) tipo de aplicao (codec), definido na RFC 1890 e 3551 (PT=200/RTCP); (CSRC COUNT) nmero de fontes de mdia contribuintes;

\\cc \\m

(marker) depende do PT (igual a 1), por exemplo quando houver supresso de silncio; de sequncia de 0 a 65535, inicializado aleatoriamente e incrementado de um, a cada pacote transmitido; 32 bits, utilizado para calcular o jitter; source (SSRC) identificador da fonte e sincronismo;

\\Nmero

\\Timestamp

\\Synchronization \\Contributing

source (CSRC) identifica as fontes contribuintes para mixagem.

Exemplo de uma sesso RTP Cada fluxo de voz contm uma sesso RTP e uma RTCP .

RTP

RTCP UDP IP Sesso RTP

RTCP UDP IP

RTP

Figura 10.10 Sesso RTP

246

O valor do timestamp (estampa/selo de tempo) do cabealho RTP pode ser utilizado para determinar o atraso entre a fonte e o receptor. O valor do timestamp marcado pelo transmissor do fluxo no momento do envio dos dados. Conforme os pacotes do fluxo chegam ao receptor, a variao no espaamento entre pacotes (variao do atraso ou jitter) pode ser examinada, e durante a reproduo, essa informao pode ser utilizada para clculo de um buffer dinmico, com a finalidade de eliminar a variao do atraso e, ao mesmo tempo impor o menor atraso possvel, de forma que o decodificador possa reproduzir a mdia mantendo uma boa experincia de interatividade.

Real-time Transport Control Protocol RTCP


\\Protocolo \\Permite

que complementa o transporte de dados feito pelo RTP;

o monitoramento da entrega de dados de forma escalvel em redes multicast; funcionalidades mnimas de controle e identificao;

\\Oferece

\\Baseado

na transmisso peridica de pacotes de controle para todos os participantes de uma sesso RTP; o mesmo mecanismo de distribuio definido para os pacotes que compem os fluxos de dados das aplicaes; 4 funes:

\\Utiliza

\\Desempenha \\Prover

informao a respeito da qualidade da distribuio dos dados de um fluxo; um identificador de nvel de transporte persistente para um transmissor em uma sesso RTP: cannico (canonical name ou CNAME);
\\As

\\Transportar \\Nome

funes anteriores requerem que todos os participantes enviem pacotes periodicamente; informaes mnimas de controle de sesso.

\\Transportar \\Informaes \\Sender

geradas pelo RTPC: Report (RR);

Report (SR); Description (SDES);

\\Receiver \\Source \\BYE; \\APP .

247

Captulo 10 Qualidade de Servio em VoIP

Quando pacotes RTP relativos a um fluxo chegam ao seu destino, o nmero de sequncia de cada pacote examinado para determinar a sequncia correta dos dados, e tambm para registrar a frao de dados (por exemplo, amostras de udio ou quadros de vdeo) perdidos.

Introduo Voz sobre IP e Asterisk

A frequncia de transmisso de pacotes de controle pode variar com a quantidade de participantes em uma sesso, uma vez que, em caso de uma quantidade muito alta, o fluxo de dados de controle pode comprometer os fluxos de dados. Uma das melhorias que a atualizao da RFC traz justamente o desempenho do protocolo RTCP com um novo algoritmo para clculo do tempo de transmisso dos pacotes deste protocolo em conferncias. O RTCP prov o feedback da qualidade da distribuio, til para codecs adaptativos e para a deteco de problemas locais ou globais. O identificador CNAME utilizado para associar mltiplos streammings, como voz e vdeo. O RTCP controla a taxa que os participantes devem enviar informaes de controle para que o fluxo de dados no seja prejudicado. Prov um mnimo de informaes de controle. Informaes mais detalhadas, necessrias para algumas aplicaes devem ser providas por nvel superior.
\\Sender

Report (SR) para estatsticas de transmisso e recepo de participantes que so transmissores ativos em uma sesso; Report (RR) para estatsticas de recepo de participantes que no so transmissores ativos em uma sesso; Description (SDES) itens que descrevem um transmissor em uma sesso, como o CNAME; para indicar o fim da participao de uma aplicao em uma sesso; para funes especficas da aplicao;
IC PT Length

\\Receiver

\\Source

\\BYE \\APP

Format-specific information

Padding if P = 1
V = Version number P = padding IC = item count PT = packet type Fonte: PERKINS, Colin. RTP: Audio and Video for the Internet. Boston: Addison Wesley, 2003.

Figura 10.11 Estrutura do RTCP .

248

Todos esses pacotes seguem uma estrutura comum, ilustrada na figura. O cabealho dos pacotes RTCP tem em comum 5 campos que ocupam 32 bits: 1. Nmero da verso (V) o nmero da verso atual do RTP 2. No existem planos para introduzir novas verses, e as verses antigas so utilizadas raramente hoje em dia; 2. Padding (P) indica que o pacote foi preenchido com bits alm do seu tamanho natural. Este tipo de expediente necessrio quando so utilizados alguns algoritmos de criptografia que necessitam de blocos com tamanho constante; 3. Contagem de itens (IC) indica o nmero de itens contidos em um pacote. Normalmente utilizado para indicar o nmero de receiver reports contido no pacote; 4. Tipo do pacote (PT) identifica o tipo de informao contida no pacote. Atualmente existem 5 tipos; 5. Comprimento (Length) indica o tamanho do contedo do pacote contido aps este cabealho comum. Os pacotes RTCP nunca so transmitidos individualmente. Eles so sempre agrupados para a transmisso, formando pacotes compostos.
V P RC PT=201 Reporter SSRC Reportee SSRC Loss fraction Cumulative number of packets lost Extended highest sequence number received Interarrival jitter Timestamp of last sender report received (LSR) Delay since last sender report received (DLSR)
First report block

Length

Figura 10.12 Pacote RR (Receiver Report)

Next receiver report block

Utilizado principalmente para reportar sobre a qualidade de recepo, o Receiver Report identificado pelo tipo de pacote 201. Podemos ter um total de 31 blocos de reports em cada pacote RR.
\\Reporter

SSRC (Reporter Synchronization Source) fonte de sincronizao do participante que envia o reporte;

249

Captulo 10 Qualidade de Servio em VoIP

H 5 tipos de pacotes RTPC definidos na especificao do RTP um para cada , mensagem discutida anteriormente: SR, RR, SDES, BYE e APP .

Introduo Voz sobre IP e Asterisk

\\Reportee

SSRC (Reportee Synchronization Source) identifica o participante e o destinatrio deste report. Assim, o destinatrio pode saber a qualidade do RTP recebido pelo emissor; fraction definido como a frao entre o nmero de pacotes perdidos no intervalo de reporte dividido pelo nmero esperado; number of packets lost representa o nmero de pacotes esperado, subtrado o nmero de pacotes realmente recebidos; highest sequence number received identifica os pacotes recebidos para possibilitar a identificao da perda de pacotes; jitter estimativa do jitter dos pacotes;

\\Loss

\\Cumulative

\\Extended

\\Interarrival \\Timestamp

of last sender report received (LSR) Timestamp NTP (Network Time Protocol) que identifica o tempo do mais recente pacote RTCP SR recebido; since last sender report received (DLSR) o delay entre o recebimento do ltimo pacote SR e o envio do RR.
P RC PT=200 Reporter SSRC Length

\\Delay

NTP timestamp RTP timestamp Senders packet count Senders octet count Receiver report block

Figura 10.13 Pacote SR (Sender Report)

Alm dos relatrios de qualidade dos receptores, o RTCP tambm possui relatrios do emissrio. Esse relatrio fornece informaes sobre a mdia enviada. identificado pelo tipo de pacote 200.
\\Reporter

SSRC (Reporter Synchronization Source) fonte de sincronizao do participante que envia o reporte; timestamp corresponde ao tempo de envio do SR; timestamp corresponde ao tempo de envio do ltimo pacote RTP;

\\NTP \\RTP

\\Senders

packet count nmero de pacotes de dados gerados pela fonte de sincronizao na seo; octet count nmero de octetos contido no payload dos pacotes de dados, incluindo os cabealhos e o padding;

\\Senders

250

RC

PT=202 SSRC / CSRC 1

Length

List of SDES items SSRC / CSRC 2

Figura 10.14 Pacote SDES (Source Description)


V = Version number P = padding SC = number of SDES items PT = packet type

List of SDES items

Figura 10.15 Pacote SDES - Item

Type

Length

Value (not null-terminated)

O pacote de descrio de fontes composto basicamente de uma lista de itens separados pela identificao de fontes individuais de sincronizao. identificado pelo tipo de pacote 202. As entradas so armazenadas nos pacotes de uma maneira contnua, sem separao ou padding. O fim da lista indicado por um item de tipo zero.

SC = 1

PT = 202 SSRC

Length = 10

Type = 1 (CNAME) p . 2 9 o

Length = 15 @ 7 . Type = 2 (NAME) l P

c 1 . 1 Length = 13 i e n 0

s 0 4 6
C

n r s 0

Figura 10.16 Exemplo de SDES

k Type = 0

i i

\\Type \\Type

1 (CNAME) nome cannico, obtido para identificar os participantes;

2 (Name) nome do participante, utilizado basicamente para listar o nome dos participantes na interface de usurio;
251

Captulo 10 Qualidade de Servio em VoIP

\\Type \\Type \\Type

3 e-mail do participante; 4 (Phone) telefone do participante;

5 (LOC) localizao do participante (normalmente configurado pelo usurio em sua aplicao); 6 (TOOL) indica a implementao utilizada pelo participante;

\\Type \\Type

7 (NOTE) permite ao participante fazer uma breve nota informando qualquer mensagem arbitrria; 8 (PRIV items) utilizado para especificar extenses privadas e para criar extenses experimentais ou especficas para determinadas aplicaes.
P RC PR = 203 SSRC 1 SSRC 2 ... SSRC n Optional length Optional reason for leaving Lenght

\\Type

Figura 10.17 Pacote BYE

V = Version number P = padding RC = number of SSRC headers PT = packet type

Subtype

PR = 204 SSRC Application-defined packet name

Lenght

Application-defined data

Figura 10.18 Pacote BYE


\\O

BYE identificado pelo tipo de pacote 203, e mostra que os participantes indicados deixaram a transmisso. identificado pelo tipo de pacote 204.

\\

A ltima classe de pacotes RTCP permite extenses especficas para aplicaes, sendo til para utilizar extenses RTCP fora dos padres ou para testar novas funcionalidades.

252

10
Roteiro de Atividades
Tpicos e conceitos
\\Conceitos

sobre QoS.

Competncias tcnicas desenvolvidas


\\Ao

final desta prtica o aluno saber solicitar QoS para o servio VoIP que implementar.

Tempo previsto para as atividades


\\1

hora a 1h30 minutos (trabalho individual).

Atividade 1 Qualidade de Servio (QoS)


Em se tratando de Qualidade de Servio na internet, o IETF props dois modelos que se adaptam de acordo com o tipo de aplicao e de arquitetura. 1. Quais so os modelos e suas respectivas RFCs?

2. Quais so as suas vantagens e desvantagens?

253

Introduo Voz sobre IP e Asterisk

3. Na figura a seguir, o usurio do PC1 da empresa 2 quer estabelecer uma comunicao de Voz sobre IP com o usurio do PC2 da empresa 1. Baseando-se no modelo DiffServ, descreva o processo para classificao de trfego e escalonamento de pacotes nos equipamentos de rede mostrados na figura a seguir.

Figura 10.19

4. Com suas palavras, descreva o que uma rotina de controle de admisso.

5. Qual a funo do classificador?

6. Qual a funo do escalonador de pacotes?

254

8. O que Real-time Transport Protocol (RTP)?

9. Qual o objetivo do Real-Time Transport Control Protocol (RTCP)? Quais as suas principais funes?

10. Analisando o pacote RTP observamos o campo Payload Type (PT), que indica o , formato da carga do pacote e como ser sua interpretao pela aplicao. Quantos so os valores para este campo, quais so e o que representam?

255

Captulo 10 Qualidade de Servio em VoIP

7. Qual o objetivo do Multi Protocol Label Switching (MPLS)?

256

Bibliografia
\\ARMITAGE, \\BRANDL,

Grenville. Quality of Service in IP Networks. New Riders Publishing, 2000.

Margit; DASKOPOULUS, Dimitris; DOBBELSTEIJN, Erik; GARROPPO, Rosario Giuseppe; JANAK, Jan; Kuthan, Jiri; NICCOLINI, Saverio; OTT, Jorg; PRELLE, Stefan; UBIK, Sven e VERHAREN, Egon. IP Telephony Cookbook. Terena, 2004. Srgio; GOMES, Antnio Tadeu; OLIVEIRA, Anderson; GUIDO, L. E. VoIP: Voz sobre IP. Editora Campus/Elsevier, 2005. Barrie; GARRISON, Kerry. TrixBox Made Easy. Packt Publishing, 2006.

\\COLCHER,

\\DEMPSTER, \\GOMILLION,

David; DEMPSTER, Barrie. Building Telephony Systems with Asterisk. Packt Publishing, 2006. David; VEIBELL, Scott. Cisco IP Telephony. Cisco Press, 2004.

\\LOVELL,

\\MADSEN,

Leif; SMITH, Jarred; MEGGELEN, Jim Van. Asterisk: The Future of Telephony. OReilly, 2005. Disponvel em: http://www.asteriskdocs.org/modules/ tinycontent/index.php?id=11. Acessado em 16/08/2006.

\\PERKINS, Colin. RTP: Audio and Video for the Internet. Boston: Addison Wesley, 2003. \\SINNREICH,

Henry e JOHNSTON, Alan B. Internet Communications Using SIP.

Wiley, 2006.
\\SPENCER,

Mark; ALLISON, Mack; RHODES, Cristhopher. The Asterisk Handbook Version 2. Andrew S. Redes de computadores. Editora Campus, 2003.

\\TANENBAUM, \\TODD, \\ITU-T: \\RFC

John. Asterisk: A Bare-Bones VoIP Example. OReilly.

H.323 Packet-based multimedia communications systems.

3261 ITU G.711

\\Recomendao \\Apostila

VoIP e Telefonia IP UFF 2009

257

Introduo Voz sobre IP e Asterisk

\\www.voip.nce.ufrj.br.

Acessado em 22/11/2006, com informaes retiradas sobre o servio fone@RNP . Acessado em 20/08/2006, com informaes retiradas sobre redes de computadores. Acessado em 12/04/2007, com informaes retiradas sobre codecs.

\\www.babooforum.com.br.

\\www.maxrouter.com.

\\www.speex.org.

Acessado em 12/04/2007, com informaes retiradas sobre o

codec Speex.
\\www.brasiltelecom.com.br.

Acessado em 15/08/2006, com informaes retiradas sobre a histria da telefonia.

\\en.wikipedia.org.

Acessado em 10/4/2007, com informaes retiradas sobre codecs e evoluo das redes e da telefonia. Acessado em 15/08/2006, com informaes retiradas sobre a histria da telefonia. Acessado em 15/08/2006, com informaes Acessado em 22/08/2006, retiradas sobre redes de dados.

\\www.anatel.gov.br.

\\www.clubedohardware.com.br.

\\www.sobresites.com/telefonia/historiadotelefone.htm.

com informaes retiradas sobre telefonia.


\\www.ilbcfreeware.org.

Acessado em 12/04/2007, com informaes retiradas

sobre o codec iLBC.


\\www.rnp.br/voip/.

Acessado em 22/11/2006, com informaes retiradas sobre o servio fone@RNP e o projeto VoIP4All. Acessado em 26/04/07, com informaes retiradas sobre IAX.

\\www.cornfed.com/iax.pdf.

\\www.voip.nce.ufrj.br/courses/rnp/Interconexao_Gateways_parte_1_3tr.pdf.

Acessado em 03/05/2007.
\\CISCO.

Guia do primeiro ano, segunda edio. ITU G.711

\\Recomendao

\\www.digium.com \\Quality

of Service, diff serv code point, IP precedence. Acessado em 25/12/2006. Disponvel em: www.rhyshaden.com/qos.htm Devices: Analog Dialogue: Blackfin VoIP Acessado em 22/02/07. Disponvel . em: www.analog.com/library/analogDialogue/archives/40-04/blackfin_voip.html Utilizado como fonte de fotos.

\\Analog

\\www.voip.nce.ufrj.br/courses/rnp/Interconexao_Gateways_parte_1_3tr.pdf.

\\Apostilas

do curso VoIP4All

\\www.voip-info.org

258

\\www.asterisk.org \\www.networksocerty.com/enp/protocol/sip.htm

259

Bibliografia

\\www.packetizer.com

260

Aprenda na prtica a configurar uma rede VoIP com Asterisk, telefones IP e ATA
O curso capacita o aluno na utilizao da tecnologia VoIP permitindo o entendimento dos elementos e , benefcios desta soluo. Sero vistos seus principais codecs e protocolos de sinalizao e transporte, as diferenas em relao ao sistema de telefonia tradicional e o diferencial da aplicao da qualidade de servio (QoS) rede VoIP Nas atividades . prticas, o aluno montar uma rede VoIP de pequeno porte utilizando o protocolo SIP e configurar uma rede de ramais VoIP e um ambiente com softphones, telefones IP e adaptadores ATA; e aprender a instalar e configurar o Asterisk.

esr.rnp.br