Escolar Documentos
Profissional Documentos
Cultura Documentos
GT Voip p41 PDF
GT Voip p41 PDF
1:
Junho de 2003
Este relatório consiste da descrição e da análise dos resultados do ambiente de demonstração VOIP
montado pelo GT-VoIP durante o Workshop da RNP e o Simpósio Brasileiro de Redes de
Computadores em Natal, em maio de 2003.
RNP/REF/0204
Sumário
1. Introdução........................................................................................................................................... 3
2. Infra-Estrutura Instalada ..................................................................................................................... 3
2.1. Equipamentos Utilizados ................................................................................................................ 4
2.2. Topologia Completa do Ambiente................................................................................................... 4
2.3. Softwares Envolvidos no Ambiente ................................................................................................ 8
2.4. Configuração de QoS nos Roteadores ......................................................................................... 14
3. Descrição do Serviço........................................................................................................................ 15
4. Relatórios de Uso ............................................................................................................................. 16
4.1. Histórico da Utilização do Ambiente ............................................................................................. 16
4.2. Estatísticas de Uso e Perfil do Tráfego dos Gateways VOIP ....................................................... 17
5. Problemas Encontrados ................................................................................................................... 23
6. Conclusões ....................................................................................................................................... 23
7. Anexos ............................................................................................................................................ 24
Este relatório técnico descreve a implantação do serviço experimental de telefonia e de voz sobre IP
(VOIP), instalado para atender aos participantes do 4o. Workshop da Rede Nacional de Pesquisa
(WRNP) e do 21o. Simpósio Brasileiro de Redes de Computadores (SBRC). Os dois eventos foram
realizados no Hotel Pirâmide em Natal, Rio Grande do Norte, em maio de 2003. O objetivo deste
experimento foi realizar uma demonstração do serviço VOIP utilizando a estrutura da Rede Nacional
de Pesquisa, com uma topologia idêntica à do futuro piloto a ser implementado pelo GT-VOIP, que
envolverá várias instituições interligadas através da RNP2.
Para a implantação do piloto VOIP é necessário a instalação de equipamento gateway, que conectará
o PBX da instituição participante à Internet. O piloto irá envolver diversas instituições e, no momento,
estamos aguardando a chegada dos gateways que estão sendo adquiridos pela RNP. Com o uso de
gateways emprestados pela Cisco, um instalado na UFRJ e o outro no hotel do evento, foi possível
avaliar as configurações adequadas dos equipamentos envolvidos, bem como aspectos associados a
segurança, qualidade de serviço (QoS), plano de numeração e gerenciamento (monitoração do
serviço e contabilização das chamadas), necessários à implementação do serviço.
2.
Infra-Estrutura Instalada
Gateway de Voz sobre IP: Equipamento com capacidade de realizar a tradução entre a sinalização
do PBX e a sinalização VOIP da Internet.
2.2.
Topologia Completa do Ambiente
Foram instalados dois gateways durante o evento: um roteador Cisco 2611 conectado ao PBX do
hotel Pirâmide, configurado com 4 interfaces analógicas FXO (Foreign Exchange Office) e uma
interface de rede ethernet (10 Mbps), configurada com o IP 200.19.164.2/24; e um segundo gateway
modelo Cisco Access Gateway 4224 instalado no laboratório VOIP do Núcleo de Computação
Eletrônica/UFRJ, contendo 1 interface digital E1, com suporte à sinalização CAS R2 e conectada ao
PBX do NCE, e uma interface de rede FastEthernet (100 Mbps), configurada com o IP
146.164.247.200/26.
! Configuração das porta de voz FXO. Os ramais 781, 782, 783 e 784 estavam associados
! às porta 1/0/0, 10/1, 11/0 e 1/1/1, respectivamente
! Configurada desconexão na porta ao identificar término da chamada. Foi utilizado o
! cptone BE (Bélgica) para compatibilizar com o PBX do hotel.
!
voice-port 1/0/0
cptone BE
timeouts call-disconnect 1
supervisory disconnect dualtone mid-call
no battery-reversal
!
voice-port 1/0/1
cptone BE
timeouts call-disconnect 1
supervisory disconnect dualtone mid-call
no battery-reversal
!
voice-port 1/1/0
cptone BE
timeouts call-disconnect 1
supervisory disconnect dualtone mid-call
!
Na estrutura montada, o gateway da UFRJ respondeu pelo prefixo 21 (ligações para o Rio de Janeiro),
enquanto que o do hotel, pelo 842022.
O desenvolvimento de um script, utilizando o suporte à linguagem TCL presente nos gateways de voz
dos equipamentos Cisco, permitiu que uma mensagem audível fosse apresentada ao usuário,
orientando-o sobre o uso do serviço. O usuário, ao discar para um ramal conectado ao gateway,
recebia a mensagem e através da discagem normal, que também interpretada pelo IVR, podia chamar
qualquer dispositivo utilizando o protocolo H.323. Esta facilidade permitiu que o serviço pudesse ser
oferecido aos usuários sem alterações na configuração do PBX e sem que os usuários precisassem
ter qualquer treinamento no uso do serviço. A configuração do gateway para que seja utilizado o script
ring.tcl é apresentada a seguir. O código fonte do script é apresentado no anexo 1.
Dentre as dificuldades enfrentadas, podemos relatar que os scripts TCL IVR só funcionam quando
“assinados” com a ferramenta lockScript da Cisco, cuja única versão disponível é para plataforma
Sun Solaris. Alternativamente, pode ser desativada a opção de verificação de assinaturas com o
comando “test voip scripts”. No nosso ambiente, utilizamos a ferramenta lockScript, obtida do site da
Cisco, para assinar o script ring.tcl.
Todas as chamadas estão sendo contabilizadas, e existe um tempo máximo de utilização por
chamada. Aproveite o serviço.
Acesse nosso website (http://www.voip.nce.ufrj.br) para saber mais informações sobre o uso
GnuGK
[Gatekeeper::Main]
Fourtytwo=42
# Aqui temos o Identificador do Gatekeeper = NATALGK
Name=NATALGK
[RoutedMode]
# Para uma análise de problemas durante o evento, optamos por redirecionar toda a
# sinalização H.225/H.245 através do Gatekeeper, facilitando a configuração do
# Firewall
GKRouted=1
H245Routed=1
AcceptNeighborsCalls=1
AcceptUnregisteredCalls=1
SupportNATedEndpoints=1
[Proxy]
# O gatekeeper foi configurado para atuar como proxy, de forma que todo o tráfego H.323
# proveniente ou destinado à rede interna (10.249.0.0) passasse necessariamente através
# do gatekeeper, possibilitando uso de H.323 através do NAT. É necessário que o
# gatekeeper tenha conectividade com a rede interna, seja através de conexão direta,
# ou através de roteamento
Enable=1
ProxyForNAT=1
ProxyForSameNAT=0
InternalNetwork=10.249.0.0/16
# Esta seção mapeia estaticamente prefixos ao gateway que será utilizado para
# alcança-los. Esta configuração é necessária com as versões mais recentes de IOS
# Nesta seção temos os endereços IPs dos Gateways e Clientes H.323 autorizados
# a usar o ambiente VoIP Demo durante o evento
# Endereços IP fora desta faixa automaticamente recebem uma rejeição no seu registro
[RasSrv::RRQAuth]
VOIP-NATAL=sigip:200.19.164.2:1719
VOIP-UFRJ=sigip:146.164.247.200:1719
04001= sigip:146.164.248.28:1719
04002= sigip:200.135.21.253:1719
04003= sigip:200.133.0.200:1719
04004= sigip:200.179.187.24:1719
04005= sigip:169.254.224.131:1719
04006= sigip:200.17.63.111:1719
04007= sigip:146.164.251.72:1719
default=reject
[RasSrv::LRQFeatures]
AlwaysForwardLRQ=1
# Mensagens ARQ e RRQ podem ser autenticadas através do protocolo H.235 com o
# uso de senhas, se o cliente tiver suporte a esta funcionalidade, ou através das regras
# definidas na seção RasSrv::RRQAuth. O cadastro das senhas pode ser realizado
# através do programa addpasswd
[Gatekeeper::Auth]
SimplePasswordAuth=optional;RRQ;ARQ
AliasAuth=required;RRQ
default=allow
O GNUGK oferece uma console de gerenciamento através da porta TCP/7000, onde pode ser
controlada a operação do gatekeeper, visualizados os gateways e clientes registrados e gerenciadas
as chamadas em curso. Várias mensagens de console são apresentadas, incluindo o CDR (Call Detail
Record), que apresenta informações sobre as chamadas, quando estas terminam.
Onde:
CDR = Call Detail Record
111 = Call number
91 7d 56 f1 87 c6 11 d7 82 27 cd a5 4d 5c c3 69 = Call ID
Sat, 17 May 2003 14:47:19 = Data /Hora do início da chamada
Sat, 17 May 2003 14:47:58 = Data /Hora do término da chamada
200.19.164.2:1720 = Endereço IP do terminal chamador
146.164.247.196:1721 = Endereço IP do terminal chamado
2125983240 = Número telefônico chamado
782 = Número telefônico do chamador
Servidor FreeRadius
O software FreeRadius v 0.8.1 foi utilizado para implementar o serviço que permitiu manter uma
descrição de todas as chamadas realizadas através dos dois gateways de voz, permitindo identificar o
tempo da chamada e o tráfego gerado por cada uma. A contabilização é realizada através de
informações recebidas nos CDRs (Call Detail Record), registros que podem ser enviados pelos
gateways quando é iniciada ou encerrada uma chamada. O IETF (Internet Engineering Task Force)
definiu, através da RFC 2866, um conjunto de atributos básico para fins de contabilização, incluindo o
tempo da sessão e o tráfego (bytes e pacotes) recebido e enviado. Entretanto, os fabricantes podem
incluir novos atributos aos básicos, chamados de Vendor Specific Attributes (VSA). Os gateways Cisco
podem incluir VSAs que fornecem dados sobre a qualidade da chamada, como por exemplo, pacotes
perdidos, pacotes atrasados, pacotes adiantados, round trip time (RTT), receive delay, entre outros.
para coletar estas informações foram utilizados os comandos a seguir na configuração dos gateways:
(config)#gw-accounting aaa
(config-gw-accounting-aaa)# acct-template callhistory-detail
As informações básicas obtidas pelo FreeRadius provenientes dos gateways de voz podem ser vistas
a seguir, as quais incluem atributos definidos pelo IETF e VSAs (informações H.323).
Detalhes Específicos Coletados pelos CDRs gerados pelos equipamentos Cisco (AVPairs)
Cisco-AVPair = "remote-media-address=146.164.247.200"
Cisco-AVPair = "outgoing-area=NATALGK"
Cisco-AVPair = "gw-final-xlated-cdn=21XXXXXXXX"
Cisco-AVPair = "gw-final-xlated-cgn=783"
Cisco-AVPair = "charged-units=0"
Cisco-AVPair = "disconnect-text=destination out of order (27)"
Cisco-AVPair = "peer-address=21XXXXXXXX "
Cisco-AVPair = "info-type=speech"
Cisco-AVPair = "peer-id=16"
Cisco-AVPair = "peer-if-index=21"
Cisco-AVPair = "logical-if-index=0"
Cisco-AVPair = "codec-bytes=20"
Cisco-AVPair = "coder-type-rate=g729r8"
Cisco-AVPair = "ontime-rv-playout=39780"
Cisco-AVPair = "remote-udp-port=1721"
Cisco-AVPair = "remote-media-udp-port=19280"
Cisco-AVPair = "vad-enable=disable"
Cisco-AVPair = "receive-delay=57 ms"
Cisco-AVPair = "round-trip-delay=74 ms"
Cisco-AVPair = "hiwater-playout-delay=70 ms"
Cisco-AVPair = "lowater-playout-delay=57 ms"
Cisco-AVPair = "gapfill-with-interpolation=0 ms"
Cisco-AVPair = "gapfill-with-prediction=80 ms"
Cisco-AVPair = "gapfill-with-redundancy=0 ms"
Cisco-AVPair = "gapfill-with-silence=20 ms"
Cisco-AVPair = "early-packets=1"
A fim de limitar o tempo das chamadas foi desenvolvido um script perl que controlava as chamadas
através da console de gerenciamento do gatekeeper (porta TCP/7000). O código desse script é
apresentado abaixo:
$port = 7000;
$host = '146.164.247.196';
while ($t) {
$line = $t->getline;
$t->open(Host => $host, Port => $port) or die "Erro na conexao com GK";
for (;;) {
if ($t->getline =~ /^;/o) { last; }
}
$now = `date`;
chomp($now);
if ( $now =~ /.* (.*) (.*) (.*):(.*):(.*) .* (.*)/o ) {
$horaatual = converteparasegundos ($6, $1, $2, $3, $4, $5);
}
$t->print("cv");
while ($t) {
$line = $t->getline;
Foi também desenvolvido outro script perl que permitia a visualização dos equipamentos registrados
no GK, as chamadas ativas e os CDRs associados às últimas chamadas terminadas.
2.4.
Configuração de QoS nos Roteadores
O serviço VOIP é sensível a problemas como atraso, variação no atraso (jitter) e perda de pacotes.
Desta forma, é necessário que a rede onde o serviço é implementado ofereça mecanismos de QoS
que tratem os pacotes de Voz com a maior prioridade possível. De acordo com as RFCs 2597 e 2598
é recomendável que o tráfego de voz seja marcado como serviço expedited forwarding (EF, DSCP
No entanto, a mesma marcação foi incorretamente adotada para o tráfego de vídeo, quando o
recomendável seria que este fosse classificado com o serviço AF41, DSCP34, de prioridade abaixo da
de voz. É importante lembrar que o tráfego de vídeo, diferentemente do tráfego de voz, gera pacotes
maiores e requer uma grande banda, podendo impactar significativamente na qualidade da voz. A voz
por seu lado. Gera pacotes pequenos e a banda total associada a uma sessão de voz está, em geral,
abaixo de 100 kbps.
Durante o evento, o tráfego de vídeo estava sendo roteado somente para São Paulo, não havendo
competição direta com o de voz, em boa parte da rota utilizada. O restante dos roteadores, no
caminho entre Natal e a UFRJ, não foram configurados com nenhuma opção de priorização de
tráfego. Também não existia nenhuma priorização para o tráfego de voz no sentido UFRJ – Natal, pela
própria impossibilidade de suportar QoS no roteador da RNP no Rio.
Para a implantação do serviço de VOIP na RNP é recomendado o uso de duas LLQs, a primeira
utilizada exclusivamente para voz e a segunda para vídeo.
A divulgação do serviço aos participantes do WRNP e do SBRC foi realizada através da própria
página do evento e de avisos colocados em vários locais do hotel, que orientavam como fazer uso do
serviço. Através da página havia a possibilidade de se cadastrar para receber um número de telefone
virtual para que as ligações pudessem ser feitas de/para clientes H.323 instalados em micros. Os
usuários que fizeram cadastro receberam um e-mail com instruções de como usar o serviço.
Uma cópia do e-mail e das instruções de uso do serviço são apresentadas no anexo 2.
4.1.
Histórico da Utilização do Ambiente
São apresentadas abaixo as estatísticas obtidas através dos CDRs gerados pelo gatekeeper. Foram
consideradas somente as chamadas que conseguiram iniciar com sucesso, sendo expurgadas as
chamadas realizadas durante os testes. Na seqüência podem ser observados os quadros contendo o
número de chamadas, os tempos totais das chamadas e a média de duração de cada chamada,
englobando:
• Todas as chamadas realizadas no período;
• As chamadas realizadas do Rio de Janeiro para Natal;
• As chamadas realizadas de Natal para o Rio de Janeiro;
• As chamadas realizadas de ramais da UFRJ para Natal, não incluídas nas chamadas do Rio
para Natal;
• As chamadas realizadas a partir de clientes H.323 (ramais virtuais).
4.2.
Estatísticas de Uso e Perfil do Tráfego dos Gateways VOIP
Os CDRs recebidos pelo servidor Radius relativos a todas as chamadas, incluindo as que não foram
iniciadas por algum motivo, foram armazenados para análise. Com as informações recebidas, foi
Durante o experimento foi possível observar problemas como degradação na qualidade da voz
durante a chamada, normalmente sentida somente por um dos lados, e o término anormal das
chamadas. Através dos dados dos CDRs foram detectados alguns fatores que poderiam explicar estes
problemas. Foram analisados a princípio, o round-trip time (RTT) e a perda de pacotes, já que a
qualidade de ligações VOIP é afetada diretamente por estes dois fatores. Uma chamada VOIP está
associada pelo menos a dois fluxos de mídia independentes, um para cada sentido da conversa.
Desta forma, a análise foi realizada nos fluxos gerados nos dois sentidos: Rio de Janeiro/Natal e
Natal/Rio de Janeiro.
No sentido Natal/Rio de Janeiro foi possível observar uma perda grande no domingo (18/05/03) e na
segunda (19/05/03), o que explica uma perda na qualidade na voz recebida pelos usuários no Rio de
Janeiro. Após um trabalho realizado em conjunto com a equipe da RNP (Marcel e Ari Frazão), foram
identificados vários fluxos saindo da Natalnet ocupando completamente o PVC da RNP (limitado a
2.5Mbps) no sentido Natal-Rio de Janeiro. Por limitações impostas pela interface ATM do roteador
Cisco do POP-RN, não pudemos determinar precisamente a ocorrência de descartes naquele ponto,
embora soubéssemos que as estatísticas de perda do tráfego de voz indicavam perdas acima de 20%
e elevado RTT. As perdas poderiam estar ocorrendo por problemas de policiamento na Embratel, ou
em algum ponto intermediário na rota.
A partir da noite de domingo, todo o tráfego de Natal direcionado ao gateway VOIP localizado na
UFRJ, passou a ser roteado por São Paulo, já que havia uma suspeita no comportamento do PVC
Natal/Rio. Entretanto, foi observado que este caminho acabava sendo pior, o que pôde ser visto pelo
RTT coletado nos dois sentidos. O RTT persistiu elevado na segunda-feira, o que pode ser explicado
pela mudança no roteamento por São Paulo e pelo gargalo existentes na rede da UFRN, cuja
existência somente seria desvendada mais tarde.
Em uma reunião de emergência na noite de segunda feira, envolvendo o POP-RNP, Natal-Net, UFRN,
GT-VOIP e VT-Vídeo, o tráfego saturante foi identificado como experimento do GT-Vídeo a partir de
estações de trabalho internas da UFRN, que, inadvertidamente, estavam gerando tráfego pesado de
testes para vários destinos na RNP, ocupando banda além da capacidade em enlaces na UFRN e
saturando a conexão para o POP-RN. Esta geração desenfreada de tráfego certamente estava
provocando provavelmente descartes em switch na UFRN com entrada em portas de 100 Mbps e
saída em 10 Mbps. Por este switch na UFRN estava passando todo o tráfego do hotel (inclusive o de
VOIP), com exceção do tráfego de vídeo de geração local, que utilizava um PVC de 155Mbps direto
com o POP-RN. de VOIP. O roteamento voltou à situação original na noite de segunda-feira. Na noite
da segunda-feira, todo o tráfego proveniente do hotel passou a ser roteado através do mesmo PVC
dedicado anteriormente aos experimentos de vídeo, evitando a rede local da UFRN. Estas alterações
puderam explicar algumas melhoras nas condições da rede. Nos outros dias, o RTT médio esteve
dentro de valores mais aceitáveis em ambos os sentidos.
Ao serem removidos os fluxos saturantes na manhã de terça-feira, houve uma redução na perda de
pacotes e uma melhora significativa na qualidade de voz obtida. De qualquer forma, o tratamento de
filas configurado no roteador do POP-RN deveria dar preferência aos fluxos associados a VOIP, o que
não foi observado. As suspeitas sobre este comportamento estavam associadas a problemas no IOS,
A fim de verificar o motivo do término anormal das chamadas, foram mapeados os motivos de
desconexão das chamadas VOIP através de informações obtidas do Radius. Estas informações estão
ainda sendo estudadas de forma a correlacionar as chamadas terminadas de forma anormal e os
motivos da desconexão.
(Extraído da página de estatística da RNP. Gráfico original produzido através do software MRTG)
Um dos problemas que afeta interfaces FXO conectadas a ramais de PBXs é o reconhecimento da
desconexão quando termina a chamada. Em função da sinalização adotada nos ramais de telefonia
tradicional, o gateway não tem como identificar o término da chamada e, por conseguinte, não libera a
linha. Algumas soluções são adotadas para contornar este problema. A solução adotada no gateway
instalado em Natal permitiu que o mesmo identificasse o tom de desconexão gerado pelo PBX ao
término da chamada. Como estes tons variam de país para país, é necessário que o gateway seja
configurado para reconhecer o tom adequado, compatibilizando-o com a configuração do PBX.
Normalmente a configuração do gateway é para reconhecer o padrão de tons adotado no Brasil.
Entretanto, ao utilizar esta configuração não havia o reconhecimento dos tons gerados pelo PBX do
hotel. A solução foi testar as várias opções disponíveis de configuração, só funcionando corretamente
quando foi utilizado o padrão belga.
A versão utilizada de sistema operacional ( Cisco IOS 12.2(13)T3 ) implementa a versão 4 do H.323, a
qual ainda não é implementada no gatekeeper (GnuGK 2.0.3). Algumas facilidades que funcionavam
em versões anteriores do IOS com o gatekeeper, deixaram de funcionar corretamente. Um exemplo é
o cadastro de prefixos (tech-prefix) atendidos pelo gateway, que agora tem que ser registrado
manualmente no gatekeeper. Há incompatibilidades também com o software Netmeeting da Microsoft.
Neste caso, tiveram que ser desabilitadas algumas funcionalidades do gateway (comando h245 caps
mode restricted).
6.
Conclusões
O serviço foi implementado com relativo sucesso durante o evento. O retorno recebido pelos usuários
era de que, apesar de alguns problemas que ocorriam, o serviço ficou acima das expectativas.
Entretanto, ficou claro que o serviço VOIP é bastante sensível a problemas como o atraso e a perda
de pacotes, fatores que podem afetar seriamente a qualidade da voz. Logo, dentre várias medidas, é
importante que o tráfego de voz seja priorizado para que o serviço possa ser operacionalizado no
backbone da RNP. Com este objetivo, é recomendável que os roteadores do backbone sejam
configurados para dar um tratamento de mais alta prioridade ao tráfego de voz com um mínimo de
descarte e de atraso (serviço Expedited Forwarding, DSCP 46). Uma atenção especial deve ser dada
também aos fluxos de sinalização. O recomendável neste caso é trabalhar com AF31, DSCP26.
proc do_active_notimer {} {
global state
set event [waitEvent]
while { $event == "digit" || $event == "call connected" } {
set event [waitEvent]
}
set state end
return 0
}
proc do_active {} {
global state
do_active_notimer
}
proc do_place_fail {} {
global state
proc do_place_call {} {
global state
global destination
puts $destination
if {$event == "active"} {
set state active
return 0
}
if {$event == "call fail"} {
if {$info(code) == 17} {
set state place_fail
return 0
}
Caro usuário.
Estamos confirmando o seu registro no Sistema VoIP WRNP/SBRC.
Seu telefone virtual é 04001.
Para fazer o acesso ao serviço, utilize um software cliente baseado em H.323
como o Netmeeting. Configure o Netmeeting com os seguintes parâmetros:
• Acione o Netmeeting
• Acesse o menu *Tools*. Depois acesse a opção *Options* e, por fim, clique no
botão: *Advanced Calling*
• Habilite a opção “Use a Gatekeeper to place calls”
• Configure o endereço IP oficial do Gatekeeper do Serviço VoIP WRNP/SBRC:
*Gatekeeper: 200.19.164.3*
• Opcionalmente configure o seu nome na opção *Log on using my account name”
• Obrigatoriamente configure a identificação do seu número
telefônico virtual na opção “Log on using my phone number = 04001”
WRNP/SBRC 2003
Serviço VOIP
GT-VOIP
ACESSANDO E RECEBENDO LIGAÇÕES
TELEFÔNICAS
Telefones da rede de telefonia (fixa ou celular) ligando para ramais internos do hotel através do
Serviço VOIP na UFRJ:
Discar para (21) 2598-3000.
Após entrada da mensagem gravada, disca 84-202-2XXX, onde XXX é um ramal interno
do hotel Pirâmide.
Ramais internos do hotel discando para telefones fixos no Rio de Janeiro, através do Serviço
VOIP do GT-VOIP implantado no hotel:
Discar 784 ou 783 ou 782 ou 781.
Após entrada da mensagem gravada, discar 21, seguido do número de telefone fixo no
Rio.
TELEFONES VIRTUAIS
Ligando para ramais internos do Hotel Pirâmide:
Cliente H.323 chama 84-202-2XXX, onde XXX é um ramal interno do hotel Pirâmide.