Você está na página 1de 62

Avaliao de desempenho do PBX Asterisk

Lus Antnio Pereira de Sousa




Dissertao para obteno do Grau de Mestre em
Engenharia de Redes de Comunicaes


Jri
Presidente: Prof. Lus Eduardo Teixeira Rodrigues
Orientador: Prof. Paulo Rogrio Barreiros D'Almeida Pereira
Vogal: Prof. Fernando Corte-Real Mira da Silva





Setembro 2008
l

Resumo
Actualmente, as centrais telefnicas ou PBX (Private Branch eXchange) so uma ferramenta quase
indispensvel no mundo empresarial. As centrais telefnicas permitem aos colaboradores efectuar
ligaes entre telefones internos, ou ainda efectuar chamadas para a rede externa. Com o aumento
de utilizao da Internet, existe o interesse em perceber quais os servios oferecidos, saber como
configurar e avaliar o desempenho de um PBX com suporte para voz sobre IP (VoIP). O Asterisk
um PBX open source e gratuito, em software, para Linux, que suporta mltiplos protocolos (SIP,
SCCP, H.323, IAX2, etc).
O principal foco da dissertao incide sobre o software Asterisk, que descrito em detalhe. So
dadas instrues para a sua configurao e apresentados resultados de testes realizados com vrias
configuraes, tendo em vista a avaliao do desempenho.
So ainda descritos os aspectos fundamentais sobre o VoIP, e analisadas algumas ferramentas para
anlise de trfego IP.
Conclui-se que para um computador com um CPU a 2.6 GHz so obtidos valores capazes de
satisfazer algumas empresas de dimenso baixa ou mdia, o PBX Asterisk pode suportar cerca de
125 chamadas G.711 ponto a ponto em simultneo. Se houver transcodificao, o consumo de CPU
aumenta e este valor baixa no pior caso 75%, para 25 chamadas simultneas.
Uma srie de outros servios so possveis implementar no PBX Asterisk, dos quais foram testados
as chamadas em conferncia, e chamadas de resposta interactiva.
Com recurso ao codec G.711 possvel efectuar uma chamada em conferncia com 90
participantes, sendo o nmero total de chamadas simultneas reduzido quando outras chamadas em
conferncia surgem, bem como no caso de se utilizar codecs mais complexos.
O nmero mximo de chamadas suportadas pelo sistema est assim fortemente dependente dos
codecs que so utilizados e consequentemente a capacidade de processamento do computador
onde est instalado o PBX Asterisk.

Palavras-chave: Voice over IP (VoIP), Asterisk, PBX, SIP.

ll

Abstract
Currently PBX (Private Branch eXchange) are an almost indispensable tool in the enterprise world.
The PBXs allow collaborators to make connections among the internal telephones of an enterprise
and also connect them to the public switched telephone network (PSTN). With the increased use of
Internet, there is a need to understand what are the services offered, how to configure and evaluate
the performance of a PBX with support for voice over IP (VoIP). The Asterisk PBX is a cost free and
open source software for Linux, which supports multiple protocols (SIP, SCCP, H.323, IAX2, etc).
The main focus of this thesis is the Asterisk software, which is described in detail. Instructions about
installation and configuration are given and results of tests with various configurations with the aim of
evaluating the performance of the Asterisk PBX are presented.
The key issues of VoIP are described, and some tools for analyzing IP traffic are examined.
We conclude that to a computer with a 2.6 GHz CPU the values obtained are able to meet some low
and medium enterprises, the Asterisk PBX may support 125 point to point G.711 calls simultaneously.
In case of transcoding, the consumption of CPU increases and that value decrease 75 % to 25 calls in
worst case.
A great number of other services are possible to implement in Asterisk PBX, which were tested the
conference calls and Interactive voice Response (IVR).
Using the G.711 codec, its possible a conference call with 90 users, with the total number of
simultaneous calls reduced when other conference call arise, as well as in the case of using more
complex codecs.
The maximum number of calls supported by the system is so heavily dependent on the codecs that
are used and hence the ability of processing of the computer where Asterisk PBX is installed.


Keywords: Voice over IP (VoIP), Asterisk, PBX, SIP.
lll

ndice
Resumo.i
Abstract.ii
Siglas.iv
1 Introduo .................................................................................................................................. 1
2 Voice Over Internet Protocol (VoIP)........................................................................................... 2
2.1. Protocolos .......................................................................................................................... 3
2.1.1. SIP............................................................................................................................... 3
2.1.2 SDP.............................................................................................................................. 7
2.1.3 RTP: ............................................................................................................................. 8
2.2 Codecs ................................................................................................................................ 9
2.3 Terminais Utilizador .......................................................................................................... 10
2.4 Gateway/Gatekeepers VoIP ............................................................................................ 12
2.5 Servidor VoIP / IP PBX .................................................................................................... 12
3 PBX Asterisk ............................................................................................................................ 13
3.1 Caractersticas do PBX Asterisk ....................................................................................... 13
3.2 Arquitectura detalhada...................................................................................................... 14
3.3 Estrutura de organizao e configurao de ficheiros...................................................... 15
4 Requisitos de sistema e consideraes necessrios para implementar o PBX Asterisk........ 18
5 Software para anlise e captura de trfego............................................................................. 20
6 Avaliao de desempenho PBX Asterisk................................................................................. 22
6.1 Chamadas ponto a ponto.................................................................................................. 22
6.2 Chamadas em conferncia ............................................................................................... 36
6.3 Interactive Voice Response (IVR) ..................................................................................... 44
6.4 Anlise global de resultados ............................................................................................. 54
7 Concluso e trabalhos futuros.55
Referncias ................................................................................................................................. 57

lv

Siglas
AGI Asterisk Gateway Interface
ATA Analog Telephone Adaptor
HTTP Hyper Text Transfer Protocol
IETF Internet Engineering Task Force
ISDN Integrated Services Digital Network
ITU International Telecommunication Union
ITU-T ITU Telecommunication Standardization Sector
IVR Interactive Voice Response
MOS Mean Opinion Score
NAT Network Address Translation
PBX Private Branch eXchange
PSTN Public Switched Telephone Network
QoS Quality of Service
RTCP RTP Control Protocol
RTP Real-time Transport Protocol
SDP Session Description Protocol
SIP Session Inititation Protocol
SER SIP Express Router
SMTP Simple Mail Tranfer Protocol
UAC User Agent Client
UAS User Agent Server
UDP User Datagram Protocol
URI Uniform Resource Identifier
VoIP Voice over IP
1

1 Introduo

O aumento da utilizao da Internet fez com que surgissem vrias tecnologias de voz sobre IP
(VoIP). Em relao telefonia tradicional (comutao de circuitos), o VoIP actualmente mais
escalvel, permite a integrao de novas funcionalidades e a possibilidade de reduo de custos. Na
perspectiva das redes de dados, o VoIP vem tornar a voz em apenas mais uma aplicao.
Em relao a uma central telefnica tradicional, uma central telefnica VoIP permite para alm das
funcionalidades tradicionais, novas funcionalidades como por exemplo, conectar colaboradores a
trabalhar a partir de casa com a central telefnica do escritrio sobre conexes de banda larga,
conectar facilmente escritrios em localizaes geogrficas distintas, oferecer voicemail integrado
com o email. Sendo estas funcionalidades realizadas com recurso Internet ou atravs de uma rede
IP privada.
Nesta tese so analisadas, com algum detalhe, questes que devem ser levadas em considerao
para se implementar um sistema PBX (Private Branch eXchange) VoIP, mais concretamente o PBX
Asterisk, bem como questes sobre a avaliao do seu desempenho.
O Asterisk um PBX, em software open source e gratuito, para Linux, que suporta mltiplos
protocolos (SIP, IAX, H.323, etc). O Asterisk permite tanto a utilizao de telefones em software
como dispositivos telefnicos VoIP.
So apresentadas vrias configuraes para o PBX Asterisk, utilizando vrios cenrios de utilizao:
chamadas ponto a ponto, chamadas em conferncia e chamadas de resposta interactiva (interactive
voice response, IVR).
Entende-se por chamada ponto a ponto a situao em que um utilizador (emissor da chamada)
telefona para outro utilizador (receptor da chamada) e estabelecem uma chamada telefnica, sendo
estes os nicos intervenientes da chamada, para alm do PBX Asterisk. Numa chamada em
conferncia, a chamada pode ter vrios interlocutores, permitindo a qualquer altura a sua entrada ou
sada, desde que a conferncia esteja activa. No cenrio de chamadas de resposta interactiva, IVR,
o PBX Asterisk tem a capacidade de atender as chamadas e interagir com o interlocutor atravs de
udio pr-gravado, permitindo, por exemplo, instruir o interlocutor das aces a tomar.
analisado o desempenho do PBX Asterisk consoante o tipo de codificao de som utilizada,
nmero de chamadas em simultneo, nos vrios cenrios. So medidos parmetros como: a carga
na rede, utilizao de recursos computacionais (cpu e memria) e tempo de resposta do PBX
Asterisk.
A dissertao est organizada da seguinte forma. O prximo captulo apresenta uma introduo do
VoIP e s tecnologias associadas. O captulo 3 descreve em detalhe o que o PBX Asterisk e os
componentes que o constituem. O captulo 4 apresenta os requisitos necessrios para se
implementar o PBX Asterisk, e apresenta algumas consideraes teis. O captulo 5 apresenta uma
descrio sobre o tipo de software necessrio para anlise e captura de trfego IP, bem como a
apresentao de alguns exemplos. O captulo 6 apresenta a avaliao de desempenho do PBX
Asterisk e os resultados obtidos para os vrios cenrios de teste. No captulo 7 so apresentadas as
concluses sobre os resultados obtidos e que trabalhos futuros so relevantes para complementar
esta dissertao.
2

2 Voice Over Internet Protocol (VoIP)
Voz sobre IP, ou VoIP, pode ser definido com um conjunto de tecnologias e componentes que, em
conjunto, disponibilizam ao utilizador a possibilidade de estabelecer chamadas de voz atravs de
uma rede de comutao de pacotes IP.
O uso do VoIP permite a utilizadores de redes de comutao de pacotes IP efectuar chamadas de
voz para outros utilizadores VoIP e/ou para telefones tradicionais (PSTN - Public Switched Telephone
Network). Atravs do VoIP possvel obter vrios servios adicionais para alm de chamadas de
voz, como voice mail, fax, IVR (Interactive Voice Response), chamadas em conferncia, instant
messaging, etc.
Por forma a possibilitar a existncia destes servios, esto definidos vrios protocolos, dos quais se
destacam o SIP (Session Initiation Protocol), um dos protocolos de sinalizao mais utilizados em
VoIP, e o RTP (Real Time Transport Protocol), que ajuda a assegurar a transmisso de pacotes em
aplicaes tempo real.
Os melhores resultados para o VoIP so garantidos utilizando redes de comutao de pacotes
privadas (destinadas ao trfego de voz), ou com recurso a fornecedores de servios VoIP, sendo,
neste caso, necessria ligao Internet, preferencialmente de banda larga.
Para analisar de forma conveniente o desempenho de um software com suporte VoIP, como o PBX
Asterisk, necessrio entender quais as condies de rede que podem afectar negativamente o
desempenho para VoIP. Estas so principalmente a latncia, o jitter e a perda de pacotes. A latncia
o tempo que um pacote demora a viajar de um ponto A para um ponto B da rede. O jitter a
variao da latncia sobre uma srie de pacotes. A perda de pacotes o nmero de pacotes
enviados de um dado ponto A da rede que nunca alcanam o ponto B. Devido ao udio em VoIP ser
enviado em tempo real por UDP, um pacote que recebido fora de ordem tem de ser descartado se
um pacote posterior j tiver sido processado pelo receptor. [1][7]
Neste captulo sero descritos os principais componentes VoIP, tais como o protocolo de sinalizao
de chamadas SIP, o protocolo de descrio de sesses, SDP, e o protocolo de transmisso de dados
em tempo real, RTP. So descritos os vrios tipos de terminais utilizador existentes, a importncia
dos codecs em VoIP, bem como outros componentes essenciais.
3

2.1. Protocolos
2.1.1. SIP

O protocolo de iniciao de sesso SIP (Session Initiation Protocol) um protocolo de sinalizao
que opera na camada de aplicao e desenvolvido pelo Internet Engineering Task Force
(IETF)(RFC 3261)[2]. O SIP permite a criao e gesto de sesses de comunicao interactivas,
como voz, vdeo e mensagens de texto sobre rede IP, tipicamente sobre UDP ou TCP, onde uma
sesso considerada como troca de dados entre uma associao de participantes. Possibilitando a
entrada de participantes para uma sesso estabelecida, como conferncias em multicast.
O protocolo SIP inspirado noutros protocolos de Internet com um modelo de transaco do tipo
pedido/resposta semelhante ao HTTP e SMTP. Cada transaco consiste num pedido que invoca um
mtodo particular, ou uma funo, no servidor e pelo menos uma resposta.
O SIP um componente que pode ser usado com outros protocolos para construir uma arquitectura
multimdia. Tipicamente, estas arquitecturas incluem protocolos como o Real-time Transport Protocol
(RTP) (RFC 1889) para transporte de dados tempo real e providenciar feedback acerca da qualidade
de servio (QoS) e o Session Description Protocol (SDP) que sero descritos mais frente.
Exemplo de cenrio SIP
O exemplo seguinte mostra as funes bsicas do SIP, num cenrio tpico, em que existe um
terminal que deseja comunicar com outro, sendo necessrios parmetros de negociao de uma
sesso, estabelecimento da sesso e, por fim, o encerramento da sesso.
A figura 1 mostra este exemplo tpico com uma troca de mensagens SIP entre dois utilizadores, Alice
e o Rui. (Cada mensagem est identificada com a letra "F" e um nmero para referenciar a partir do
texto). Neste exemplo, Alice utiliza uma aplicao SIP no seu PC (referido como Softphone) para
efectuar uma chamada para o Rui no seu telefone SIP, atravs da Internet. Existem ainda dois
servidores proxy's SIP que actuam em nome da Alice e do Rui de forma a facilitar o estabelecimento
da sesso.
4


Figura 1. Cenrio exemplo, sesso SIP entre a Alice e o Rui.

Descrio do cenrio:
A Alice telefona ao Rui (atravs de um softphone) utilizando a sua identidade SIP, um tipo de Uniform
Resource Identifier (URI) chamado SIP URI. O SIP URI tem uma forma similar a um endereo de e-
mail, tipicamente contendo o username e o hostname do utilizador. Neste caso ser sip:rui@inesc.pt,
onde inesc o domnio do SIP service provider (fornecedor do servio SIP) do Rui. A Alice tem o SIP
URI sip:alice@ist.utl.pt. No exemplo da figura 1, a transaco comea quando o softphone da Alice
envia um pedido INVITE endereado para o SIP URI do Rui. INVITE um exemplo de um mtodo
SIP que especifica a aco que o pedinte (Alice) pretende que o receptor (Rui) aceite. O pedido
INVITE contm um nmero com os campos do cabealho. Os campos do cabealho fornecem
informao adicional sobre as mensagens. Os campos presentes num INVITE incluem um
identificador nico da chamada, o endereo de destino, e informao sobre os tipos de sesso que a
Alice gostaria de estabelecer com o Rui.
O INVITE (mensagem F1 na figura 1) ser semelhante ao apresentado na figura 2:
3








Figura 2 Exemplo de uma mensagem INVITE.

Arquitectura SIP
Os elementos bsicos do SIP so os user agents, proxies, registrars, e redirect servers. Estes
elementos so normalmente entidades lgicas. Sendo vantajoso localiz-los no mesmo computador,
permitindo assim uma maior velocidade de processamento, no entanto a sua localizao pode
depender duma implementao e configurao em particular.
Descrio dos principais elementos SIP:
- User Agents:
User agents podem ser definidos como terminais IP que utilizam SIP para se encontrarem
mutuamente e negociarem as caractersticas para se estabelecer uma sesso. User agents podem
residir nos computadores dos utilizadores sobre a forma de uma aplicao ou em telemveis, PSTN
gateways, PDAs, sistemas de atendimento automtico, como IVR, entre outros.
Cada User Agent constitudo por duas entidades lgicas, o User Agent Server (UAS) e o User
Agent Client (UAC). UAC a parte do user agent que envia pedidos e recebe respostas. UAS a
parte do user agent que recebe pedidos e envia respostas. Por exemplo, quando uma entidade est
a iniciar uma chamada, o user agent comporta-se como UAC quando envia o pedido INVITE e
recebe respostas ao pedido. Para quem recebe uma chamada, o user agent comporta-se como UAS
aquando da recepo de um pedido INVITE e envia respostas.
- Proxy servers:
Na infra-estrutura de rede de um host pode ser criado um proxy server. Os proxy servers actuam
como um programa intermedirio, permitindo que os pedidos sejam servidos internamente ou
passem para o exterior aps traduo para outros servidores. Uma das funcionalidades mapear
endereos de email para uma extenso do PBX para cada chamada.
Um proxy server fornece ainda mecanismos de autenticao, de contabilidade, entre outras funes
relevantes.

INVITE sip:rui@inesc.pt SIP/2.0
Via: SIP/2.0/UDP pc33.ist.utl.pt;branch=z9hG4bK776asdhds
Max-Forwards: 70
To: Rui sip:rui@inesc.pt
From: Alice <sip:alice@ist.utl.pt>;tag=1928301774
Call-ID: a84b4c76e66710@pc33.ist.utl.pt
CSeq: 314159 INVITE
Contact: sip:alice@pc33.ist.utl.pt
Content-Type: application/sdp
Content-Length: 142
(SDP da Alice no apresentado)
6

- Registrar:
O Registrar uma entidade SIP que recebe registos de utilizadores, extrai informao acerca da sua
localizao actual (endereo IP, porto, nome de utilizador, entre outros) e guarda a informao numa
base de dados de localizao. O propsito da base de dados de localizao fazer o mapeamento
de sip:rui@inesc.pt para algo como sip:rui@1.2.3.4:5060 por exemplo.
A base de dados de localizao ser ento usada pelo proxy server de inesc.pt. Quando o proxy
recebe um pedido INVITE para sip:rui@inesc.pt a traduo do endereo ser procurada na base de
dados, aps encontrar o endereo real sip:rui@1.2.3.4:5060, o INVITE ser enviado para l.
Cada registo tem um tempo de vida limitado. O campo do cabealho Expire ou o parmetro
expires do campo Contact do cabealho determinar por quanto tempo o registo ser vlido.
Assim, o user agent deve renovar o registo periodicamente, por forma a que no fique indisponvel.
- Redirect Servers:
O Redirect Server, ou servidor de redireccionamento, uma entidade SIP que recebe um pedido e
envia de volta a resposta contendo uma lista com a localizao/endereos do destinatrio. A sua
funo fornecer resoluo de nomes e localizao do utilizador, recorrendo base de dados de
localizao criada pelo registrar. Desta forma, o cliente poder contactar o endereo de um utilizador
directamente.
O redirect server permite reduzir o processamento no proxy server que responsvel pelo
encaminhamento dos pedidos e tornar mais robusto o encaminhamento da sinalizao.


Figura 3. Exemplo de fluxo de pedido e resposta SIP numa chamada.
Na figura 3 so ilustrados os fluxos de mensagens SIP, existem vrios tipos mensagem de pedido e
mensagem de resposta, so descritos os principais, essncias para efectuar chamadas VoIP quando
se utiliza como protocolo de sinalizao o SIP:
Pedidos SIP:
INVITE (convidar) - mensagem utilizada quando se pretende estabelecer uma sesso.
ACK (confirmar) - mensagem utilizada para confirmar a resposta final do pedido INVITE. Indica que o
utilizador est disponvel para comunicar.
BYE (despedir) - mensagem utilizada para desligar de forma ordeira uma sesso. O interveniente
que pretende desligar a sesso envia uma mensagem BYE outra parte.
7

CANCEL (cancelar) - mensagem utilizada para cancelar uma sesso que ainda no est confirmada.
Tipicamente utilizado quando um pedido a resposta a um INVITE demora demasiado.
REGISTER (registo) - o propsito desta mensagem informar o registrar acerca da localizao do
utilizador. Os dados indicados so o nome, endereo IP e porto.

Respostas SIP:
Quando um user agent recebe um pedido devolvida sempre uma resposta, excepo do pedido
ACK.
O tipo de resposta identificado por um nmero inteiro entre 100 e 699 e existem 6 classes de
respostas:
1xx - respostas do tipo informativa, informa que o pedido associado foi recebido mas o resultado final
ainda no conhecido.
Tipicamente os proxy servers enviam a mensagem 100 quando se inicia o processo de INVITE e o
user agent enviam a mensagem 180 Ringing que significa que o telefone do receptor da chamada
est a chamar (a tocar).
2xx - respostas finais positivas, ou de confirmao. Este tipo de resposta indica que esta ser a
ltima resposta acerca do pedido feito pelo originador, e que o pedido foi processado com sucesso e
aceite. Por exemplo a mensagem 200 OK enviada quando um utilizador aceita o convite para
uma sesso (pedido INVITE).
3xx - respostas em que o objectivo redireccionar o originador da chamada. Uma resposta deste tipo
informa acerca da nova localizao do utilizador ou sobre um servio alternativo que poder
satisfazer a chamada. Geralmente enviadas por proxy servers.
O originador da chamada deve reenviar um novo pedido para a nova localizao.
4xx - respostas negativas, que indicam que um pedido no foi satisfeito. Informa que o problema est
do lado do originador do pedido, ou este pedido no pode ser processado porque contm sintaxe
incorrecta ou no pode ser satisfeita no servidor.
5xx - resposta que indica que o problema est no servidor. O pedido aparentemente vlido, mas o
servidor falhou ao tentar satisfaz-lo.
6xx - respostas deste tipo indicam que um pedido no pode ser satisfeito em nenhum servidor. Por
exemplo, um user agent pode enviar uma resposta 603 Decline quando este no quer participar
numa sesso.

2.1.2 SDP

O SDP (Session Description Protocol) um protocolo que fornece uma representao standard para
a descrio dos parmetros de inicializao para uma sesso, como por exemplo, chamadas VoIP,
streaming vdeo, teleconferncias multimdia. Este protocolo foi publicado pela IETF como RFC
8

4566[3] e apropriado para incorporar diferentes protocolos, como o SIP (Session Initiation
Protocol), RTSP (Real Time Streaming Protocol), HTTP (Hypertext Transport Protocol), entre outros.
A negociao dos parmetros para uma sesso, em termos de contedo ou codificao, est fora do
mbito da descrio de sesso feita pelo SDP.
Este protocolo utilizado em SIP para se proceder descrio de sesso, que permite aos
participantes acordarem a compatibilidade dos tipos de dados a utilizar.
Uma descrio de sesso SDP deve conter a seguinte informao:
- O tipo de dados (vdeo, udio, etc.)
- O protocolo de transporte (RTP/UDP/IP, H.320, etc.)
- O formato do tipo de dados utilizado (vdeo H.261, vdeo MPEG, etc.)
Adicionalmente ao formato dos dados e ao protocolo de transporte, o SDP requer o endereo e porto
utilizados.
Uma descrio de sesso SDP consiste num conjunto de linhas de texto na seguinte forma:
<tipo>=<valor>
Exemplo de descrio SDP:
c=IN IP4 193.136.143.77
m=audio 38060 RTP/AVP 0
O exemplo mostra a informao, transmitida no payload de uma mensagem INVITE de SIP, para
uma conexo de voz, que se pretende estabelecer. indicado o endereo IP de origem, onde o
emissor pretende receber a transmisso de voz e o tipo de dados (udio), nmero do porto, protocolo
e lista de formatos de dados suportados, segundo a sintaxe:
c=<network type> <address type> <connection address>
m=<media> <port>/<number of ports> <transport> <fmt list>
Existem vrios parmetros para descrever uma sesso no caso de uma chamada VoIP (parmetros
opcionais marcados com *):
m= nome do media e endereo para transporte.
i=* designao do media.
c=* informao sobre a conexo.
b=* informao sobre largura de banda.
k=* chave de cifra
a=* atributos do media.

2.1.3 RTP

O RTP (Real-time Transport Protocol), um protocolo de rede da camada de aplicao utilizado para
transferncia de dados de tempo real, tais como udio e vdeo. O RTP geralmente o protocolo
utilizado para transmitir o fluxo de voz para VoIP, oferecendo mecanismos de associao de
9

numerao de sequncia, identificao do formato de codificao e informao temporal. O RTP
deixa o processamento desta informao a cargo da aplicao, no oferecendo por si mecanismos
de garantia de entrega, sequncia ou QoS.
Este protocolo foi publicado pela IETF com o RFC 3550[4] e pode ser usado sobre qualquer
protocolo de transporte, sendo normalmente utilizado sobre UDP, multicast ou unicast.
Associado ao protocolo RTP est associado o protocolo RTCP (RTP Control Protocol), utilizado para
monitorizar a qualidade de servio e para transmitir informaes sobre os participantes numa sesso
em curso.
A quantidade de largura de banda utilizada pelo RTCP deve ser pequena, de forma a no
comprometer o transporte dos dados de tempo real. Especificaes do IETF recomendam que a
fraco de largura de banda usada pelo RTCP deve ser 5% da banda utilizada pelo RTP.
A mensagem RTP possui um cabealho com um mnimo de 12 bytes contendo informao referente
aos dados contidos no pacote, sendo ainda necessrio passar informao de controlo atravs dos
cabealhos dos protocolos utilizados para transportar o pacote RTP.
No caso de se utilizar UDP, o pacote UDP (incluindo o pacote RTP) encapsulado num pacote IP,
possuindo por sua vez um cabealho do MAC (media access control) utilizado, conforme o exemplo
da figura 3.

Figura 3. Ilustrao de uma mensagem RTP.
2.2 Codecs

No mbito VoIP, codec (abreviatura de coder/decoder), pode ser definido como um algoritmo usado
para codificar e descodificar fluxos de voz. A voz e o som como ns o ouvimos analgico e tem de
ser convertido (ou codificado) para o formato digital, de forma a poder ser transmitido numa rede de
comutao de pacotes IP. Da mesma forma, no extremo oposto (receptor) necessrio descodificar
a voz para que o utilizador possa ouvir o que foi transmitido. Existem diversas formas de codificar e
descodificar os fluxos de voz, muitas das quais utilizam compresso de forma a reduzir a largura de
banda necessria para uma conversao VoIP. Para possibilitar uma compresso elevada, torna-se
necessrio agrupar blocos de amostras e processar estes blocos. Estas duas operaes introduzem
atrasos na conversao. Um bom codec deve codificar e descodificar o fluxo de voz no menor tempo
possvel, mantendo a qualidade nos fluxos de voz. O objectivo dos vrios algoritmos de codificao
alcanar o melhor compromisso qualidade/eficincia.
Dado que largura de banda sempre finita, o nmero de chamadas de voz simultneas que uma
conexo permite est directamente relacionada com o tipo de codec utilizado.
Alguns codecs suportam a deteco/supresso de silncio, permitindo uma diminuio na utilizao
da rede quando no h som para transmitir. Pode ser utilizada gerao de rudo de conforto(Comfort
Noise Generation), o comfort noise utilizado para que os utilizadores no pensem que a chamada
caiu. Geralmente corresponde a uma transmisso a um ritmo muito mais baixo.
10

Existem vrios codecs disponveis, destacando-se: G.711, G.726, G.723.1, G.729A, GSM, iLBC,
Speex, MP3.[5]
A tabela 1 mostra os parmetros principais dos codecs utilizados em chamadas VoIP. A frequncia
de amostragem corresponde ao dobro da frequncia mais elevada do som que pode ser reproduzida,
de acordo com o teorema da amostragem. O atraso algortmico corresponde ao atraso que
obteramos no som ligando directamente um codificador a um descodificador, se o processamento
das amostras fosse instantneo. O Mean Opinion Score corresponde opinio mdia sobre a
qualidade do som produzido pelo codec, sendo 5 o valor mximo e 1 o mnimo. A capacidade de
processamento necessria para o codec funcionar dada como o nmero de milhes de instrues
por segundo.
Atraso
algortmico Processamento
Codec Algoritmo
Freq.
amostragem
(KHz)
Ritmo
binrio
(kbit/s)
(ms)
Mean
Opinion
Score
(MIPS)
G.711 PCM 8 64 0.125 4.3 0.01
G.722 ADPCM 16 48/56/64 0.125 4.1 5
G.722.1 Siren7 16 24/32 40
G.723.1 ACELP 16 5.3/6.3 37.5 3.8 16
G.726 ADPCM 8 16/24/32/40 0.125 4.0 a
32
kbit/s
10
G.728 LD_CELP 8 16 0.625 3.9 30
G.729A ACELP 8 8 15 4.0 20
GSM-
FR
RPE-LTP 8 13 20 3.5-3.9 5-6
GSM-
EFR
ACELP 8 12.2 20 3.8
4.14 GSM-
AMR
ACELP e
outras
8 4.75-12.2 20-25
(a 12.2
kbit/s)

iLBC LPC 8 13.33/15.2 20-30 4.14 20
Speex CELP 8/16/32 2.15-24.6 30
Tabela 1. Sntese dos principais codecs utilizados em VoIP.[6]

2.3 Terminais Utilizador

Os sistemas terminais VoIP, constituem a interface pessoa mquina, permitindo ao utilizador efectuar
chamadas VoIP e utilizar todos os servios disponveis. [1][5][7][8]
Existem diversos tipos de terminais utilizador:
11

- ATA (analog telephone adaptor) - um adaptador para telefones analgicos, que permite converter
sinais analgicos para digitais. Permitindo assim ligar um telefone standard (analgico) a um
computador ou ligao de rede IP para utilizar VoIP.

Figura 4. Adaptador para telefones analgicos da marca Cisco.
- Telefones IP Tm um aspecto semelhante aos telefones tradicionais (analgicos), mas ao invs
de terem um conector RJ-11, os telefones IP tm um conector RJ-45 Ethernet, ou USB. Podem ser
ligados directamente a um router e possuem todo o software e hardware necessrio para efectuar
uma chamada de voz sobre a rede IP.

Figura 5. Telefone IP da marca Cisco.
- Softphones So aplicaes software, que quando instaladas num computador permitem utilizar os
servios VoIP. Para alm do software necessrio hardware adicional como: placa de som,
dispositivos de sada udio (altifalantes) e microfone, geralmente utiliza-se um headset ligado placa
de som. Neste caso os componentes de udio in/out so utilizados para controlar a voz, ou seja, so
a interface fsica do telefone.

Figura 6. Softphone xTen a correr em Windows XP.

12

2.4 Gateway/Gatekeepers VoIP

Os gateways VoIP permitem que sejam efectuadas chamadas entre terminais que normalmente no
poderiam inter-operar (SIP/ISDN, IPv4/IPv6, diferentes sistemas de codificao de voz). Os gateways
mais utilizados so os que ligam telefones IP aos telefones tradicionais (comutao de circuitos).
Gatekeepers so responsveis pela admisso de chamadas e controlo de largura de banda. [1][7]

2.5 Servidor VoIP / IP PBX

Um Servidor VoIP/IP PBX um sistema onde so processadas as chamadas de voz, bem como os
servios adicionais, como por exemplo: chamadas em conferncia, integrao do sistema de
mensagens voicemail/e-mail, presena, redireccionamento/forking, IVR, instant messaging, etc. Estes
servios podem estar em mquinas diferentes. Um PBX (Private Branch Exchange ou ainda PABX
para Private Automatic Branch Exchange) pode ser definido como um sistema de troca automtica de
ramais privados, e centro de distribuio telefnica privada, isto numa rede tradicional (circuitos
comutados). De modo anlogo, um IP PBX fornece todas as funes que um PBX tradicional
oferece, mas neste caso tambm suporta VoIP. Um IP PBX baseado em software, que pode correr
em diversas plataformas, como Linux e Windows. [1][7]

13

3 PBX Asterisk

O Asterisk um software open source gratuito para Linux, desenvolvido por Mark Spencer. Este
software apresenta todas as funcionalidades de um PBX (Private Branch eXchange) tradicional, bem
como funcionalidades adicionais como o IVR (Interactive Voice Response). O Asterisk
essencialmente um PBX VoIP que suporta mltiplos protocolos utilizados em VoIP (SIP, SCCP,
H.323, IAX2, etc). Permite tanto a utilizao de telefones em software como dispositivos telefnicos
VoIP. Sendo tambm possvel inter-operar com os sistemas de telefonia tradicionais, sendo neste
caso necessrio hardware adicional. [5][8][9][12][13]

3.1 Caractersticas do PBX Asterisk

- Distribuio de chamada recebida:
O Asterisk permite receber uma chamada telefnica, olhar para os atributos da mesma e tomar
decises de encaminhamento com base no seu contedo. Exemplos de como encaminhar uma
chamada podem ser: enviar para uma extenso nica, um grupo de extenses, gravar a chamada,
entre outros.
- Informao detalhada de chamada:
O Asterisk mantm o registo completo de detalhe de chamadas. Esta informao pode ser guardada
num flat file, ou em base de dados permitindo uma apresentao mais formatada e com maior
facilidade de anlise. A partir desta informao podemos monitorizar a utilizao do Asterisk,
podendo detectar padres ou anomalias.
- Sistema IVR:
O Asterisk permite configurar um sistema IVR (Interactive Voice Response), este permite que seja
programado de forma flexvel o atendimento de chamadas, de forma a dar algum tipo de resposta s
mesmas sem interaco humana. Sendo o emissor da chamada a escolher uma das opes que lhe
so expostas.
O Asterisk permite que este sistema reproduza ficheiros udio, faa leitura de texto, e at devolver
informao a partir de uma base de dados. Atravs do toque em teclas do telefone possvel
interagir com sistema, por exemplo um sistema de votao via telefone, ou aceder a uma conta no
banco, inserindo o nmero de conta e palavra secreta atravs do teclado, seguindo ordens do
sistema telefnico.
- Sistema de correio de voz:
O Asterisk inclui um sistema de voice mail completo. So suportados contextos, permitindo que
mltiplas entidades possam estar hospedadas no mesmo servidor. Suporta diferentes fusos horrios
permitindo aos utilizadores perceber quando as chamadas chegaram ao voice mail. Existe tambm a
capacidade de notificar o destinatrio sobre uma nova mensagem de voz por email, com a
possibilidade de anexar a mensagem udio gravada.

14

- SIP Proxy limitado:
Atravs do Asterisk podem ser efectuadas e recebidas chamadas SIP. Em SIP, os dispositivos
registam-se num servidor SIP. E este servidor permite aos dispositivos localizarem-se mutuamente
para estabelecer comunicaes. Quando um nmero elevado de dispositivos SIP utilizado, um
proxy SIP implementada para manipular os registos e conexes de forma eficiente. Contudo, o
Asterisk, no actua como SIP Proxy. Os dispositivos SIP podem registar-se com o Asterisk, mas com
o aumento do nmero de dispositivos SIP, o Asterisk no escala de forma conveniente. Por exemplo,
para um sistema com cerca de 100 dispositivos SIP, o Asterisk no ser apropriado.[8]
O Asterisk pode ser configurado para utilizar um proxy para registos. Um dos proxys SIP mais
utilizadas o SER (SIP Express Router).[21] O SER um proxy SIP open source que permite ao
Asterisk escalar em instalaes de larga escala.
3.2 Arquitectura detalhada

O ncleo do Asterisk manipula os seguintes componentes internamente:
- PBX Switching:
A essncia do Asterisk o Private Branch Exchange Switching system, permitindo interconexo de
chamadas para os vrios utilizadores e automao de tarefas. O Switching Core conecta de forma
transparente as chamadas efectuadas em vrias interfaces hardware e software.
- Application Launcher:
O Application Launcher responsvel por lanar aplicaes que executam servios, como o voice
mail e playback de ficheiros.
- Codec Translator:
O componente Codec Translator utiliza o mdulo codec para codificar e descodificar vrios formatos
de compresso existente na indstria telefnica.
- Scheduler and I/O Manager:
Este componente um calendarizador de input, output e responsvel por manipular as tarefas de
baixo nvel agendadas e pela gesto do sistema de forma a optimizar o desempenho para todas as
condies de carga.
No Asterisk esto definidas quatro APIs para os mdulos carregveis, facilitando a abstraco ao
nvel de protocolos e hardware. Com os mdulos carregveis, o ncleo Asterisk no tem de se
preocupar com os detalhes sobre como o emissor de uma chamada se est a conectar, que codec
est a utilizar, etc.
- Channel API:
O Channel API manipula o tipo de conexes que o emissor de uma chamada efectua, seja esta uma
conexo VoIP, ISDN, PRI, ou atravs de outra tecnologia. Mdulos dinmicos so carregados para
manipular os detalhes da camada inferior destas conexes. Cada chamada em Asterisk feita sobre
uma interface num canal distinto.
13

- Application API:
A API de aplicao permite que vrias aplicaes como voice mail, chamada em conferncia,
transmisso de dados, chamada em espera, entre outras, sejam carregadas a partir de mdulos
especficos consoante a aplicao.
- Codec Translator API:
A API de traduo de codecs, responsvel por carregar os mdulos de codecs, tornando possvel
traduzir o sinal de voz a processar para outro formato desejado. Existem vrios formatos de
codificao udio como o GSM, G.711, G.722, mp3, etc.
- File Format API:
A API de formato de ficheiros permite a manipulao de ficheiros de vrios formatos para leitura e
escrita, e para armazenamento de dados fisicamente no sistema. Por exemplo, ficheiros udio
podem ser utilizados como toques de chamada, para msica em espera ou para utilizar no voice
mail. O Asterisk permite ler e reproduzir sons em diferentes formatos entre os quais, WAV, AU, e
MP3.
3.3 Estrutura de organizao e configurao de ficheiros

A flexibilidade do Asterisk controlada atravs de ficheiros de configurao em formato ASCII,
localizados na directoria /etc/asterisk. Estes ficheiros apresentam uma sintaxe fcil de entender.
Tendo um formato muito similar ao formato win.ini utilizado no antigo Microsoft Windows 3.1.
Os ficheiros de configurao esto divididos em seces, em que o nome da seco se encontra
entre parntesis rectos. Um simples exemplo da sintaxe dos ficheiros de configurao apresentado
na figura 7.






Figura 7. Ficheiro de configurao exemplo.
Embora todos os ficheiros de configurao Asterisk partilhem a mesma sintaxe, existem pelo menos
trs grupos gramaticais distintos tipicamente usados:
Grupos simples:
O formato de ficheiros de configurao nos grupos simples o formato mais simples que podemos
encontrar de entre os grupos gramaticais, no qual os objectos so declarados com todas as opes
; Um ficheiro de configurao deve
; comear pelo nome da seco
; excepto se for um comentrio
[seccao1]
identificador = valor ; atribuir valor a uma varivel
[seccao2]
identificador = valor
objecto => valor ; declarao de objectos

16

na mesma linha. Fazem parte deste grupo os seguintes ficheiros: extensions.conf, meetme.conf,
voicemail.conf, entre outros.
Entidades complexas:
Neste grupo gramatical esto os ficheiros de configurao iax.conf, sip.conf. Neste tipo de ficheiros
de configurao existem vrias opes, que tipicamente no partilham configuraes. As opes so
ento guardadas na declarao de uma seco especfica, qual chamamos contexto.
Herana de opes de objectos:
Este formato utilizado pelos ficheiros zapata.conf, phone.conf, mgcp.conf, alsa.conf, modem.conf,
oss.conf e outras interfaces em que existem diversas opes, mas na maioria das interfaces ou
objectos as opes partilham os mesmos valores.
Descrio dos principais ficheiros de configurao:
asterisk.conf
O ficheiro asterisk.conf contm informao relevante do sistema como:
- Localizao das vrias directorias utilizadas pelo Asterisk para armazenar os ficheiros de
configurao, log, bibliotecas e scripts.
- Opes de linha de comando predefinidas.
modules.conf
No ficheiro de configurao modules.conf est contida a lista de mdulos que devem ser carregados
quando o Asterisk inicia.
logger.conf
No ficheiro logger.conf est a configurao sobre onde devem ser guardados os ficheiros de log e
que nvel de detalhe devem ter.
voicemail.conf
O ficheiro voicemail.conf onde a configurao de parmetros do sistema de correio de voz deve
estar localizada, alguns parmetros de caixas de correio de voz so: nome do utilizador da caixa de
correio, endereo de email e nmero correspondente.
sip.conf
No ficheiro sip.conf esto localizados os parmetros relacionados com a configurao SIP para o
PBX Asterisk. Os clientes SIP devem estar configurados neste ficheiro de forma a poderem efectuar
e receber chamadas atravs do Asterisk.
extensions.conf
O ficheiro extensions.conf contm os dial-plan, permitindo a configurao do dispositivo telefnico de
cada utilizador, e contm as instrues para processamentos de chamadas e comportamentos
predefinidos.
Neste ficheiro encontra-se uma entidade relevante do Asterisk, o dial plan.
17

O dial plan responsvel por encaminhar cada chamada no sistema, desde a origem atravs das
vrias aplicaes, at ao destino final. Todas as aplicaes, desde o voice mail, chamadas em
conferncia, IVR, etc. so configuradas no dial plan.



Figura 8. Sintaxe utilizada para o dial plan.
A figura 8 ilustra a sintaxe utilizada para o dial plan no ficheiro extensions.conf, em que o contexto
uma label definida pelo administrador do sistema que permite separar as extenses e pode ser
descrito como contexto de extenses, cada contexto pode possuir um conjunto de extenses. Cada
contexto num dado dial plan tem sempre um nome nico associado. Exten: em Asterisk uma
extenso uma cadeia de caracteres, que acciona um aplicao atravs da execuo de um
<comando>. As extenses pertencem sempre a um determinado contexto. O campo <identificador>
representa a cadeia de caracteres que identifica a extenso, nos telefones tradicionais o nmero de
telefone. No caso de uma extenso ter o mesmo identificador, um <comando> vai ser executado
consoante a <prioridade> definida. A prioridade representada atravs de um algarismo numrico,
no qual o menor nmero representa a maior prioridade.
O <comando> representa o nome da aplicao a executar, uma aplicao especfica executar uma
aco no canal de voz, como sendo, reproduzir um som, correr o voice mail, atender a chamada,
desligar a chamada, entre outras.
Na figura 9 ilustrado um exemplo de um dial plan, em que existe um contexto com o nome teste,
trs extenses 1000, neste caso o primeiro comando a ser executado ser o Answer, pois
apresenta o valor, prioridade, mais pequeno: 1.




Figura 9. Exemplo de dial plan.
[<contexto>]
exten => <identificador>, <prioridade>, <comando>
[teste]
exten => 1000,1,Answer
exten => 1000,2,Playback(goodbye)
exten => 1000,3,Hangup
18

4 Requisitos de sistema e consideraes necessrios para
implementar o PBX Asterisk

O Asterisk um software bastante flexvel, sendo possvel a sua instalao na maioria das
distribuies Linux, bem como em grande parte de plataformas no Linux. Nesta seco so feitas
algumas consideraes que devem ser tidas em conta de forma a se obter um sistema fivel, robusto
e eficiente.[5]
Os recursos necessrios para o Asterisk so similares aos consumidos por uma aplicao embebida
de tempo real. Isto deve-se necessidade de acesso prioritrio ao processador e ao bus do sistema.
tambm necessrio que todas as tarefas a correr no sistema que no esto relacionadas com o
processamento de chamadas do Asterisk, tenham prioridade baixa.
Quando a carga do sistema aumenta, este ter maiores dificuldades em manter conexes. Para um
PBX, esta situao desastrosa, os requisitos de desempenho so um factor crtico no processo de
escolha de uma plataforma.
A tabela 2 mostra o sistema mnimo recomendado, ao nvel de hardware, com base no tipo de
utilizao pretendido. [5]
Finalidade Nmero de
canais
Sistema mnimo
recomendado
Hobby system At 5 400-MHz x86, 256 MB
RAM
SOHO[1]
system
De 5 a 10 1-GHz x86, 512 MB RAM
Small business
system
De 10 a 15 3-GHz x86, 1 GB RAM
Medium to large
system
Mais de 15 Dual CPUs, possibly also
multiple
Tabela 2. Requisitos de sistema recomendados.
Para instalaes de Asterisk de grande dimenso comum desenvolver funcionalidades em vrios
servidores. Uma ou mais unidades centrais dedicadas ao processamento de chamadas
complementado por um ou mais servidores auxiliares para manipular servios, como, base de dados,
voice mail, billing, interface Web, firewall, etc.
O Asterisk um software bastante personalizvel, permitindo configurar tudo o que necessitamos,
mas existe uma curva de conhecimento associada. Aquando da alterao de um atributo no sistema
telefnico necessrio considerar o seu impacto.
De forma a construir uma plataforma adequada, necessrio entender como que o Asterisk utiliza
o sistema de forma a fazer decises inteligentes sobre que recursos vo ser necessrios.

1
Small Cfflce/home Cfflce

19

Para implementar um sistema Asterisk necessrio considerar vrios factores:
- Nmero mximo de conexes concorrentes que esperado o sistema suportar. Cada conexo ir
aumentar a carga do sistema.
- A percentagem de trfego que ir requerer processamento intensivo, Digital Signal Processing
(DSP) de codecs comprimidos, como por exemplo, G.729 e GSM.
O processamento DSP que o Asterisk executar em software ter impacto no nmero de chamadas
concorrentes que iro ser suportadas. Um sistema que manipule com facilidade 50 chamadas
concorrentes que utilizam G.711 pode ser afectado negativamente por um pedido de chamada em
conferncia levada a cabo por 10 utilizadores que utilizam o codec G.729 de canais comprimidos.
- Que actividade est prevista para as chamadas em conferncia? O sistema ser sobrecarregado?
As chamadas em conferncia requerem que o sistema transcodifique e misture cada fluxo de udio
recebido em mltiplos fluxos de sada. Misturar mltiplos fluxos udio praticamente em tempo real
pode gerar uma enorme carga de CPU.
- Existncia de aplicaes (ou scripts) externas invocadas pelo Asterisk
Sempre que o Asterisk tem de passar o controlo para um programa exterior, existem penalizaes de
desempenho. Toda a lgica que for necessria deve ser feita no dial plan. Se scripts externos so
utilizados, podem ser desenvolvidos tendo em conta o desempenho.
- Outros processos que correm concorrentemente no sistema:
Sendo baseado em Unix, o Linux permite diferentes processos a correr simultaneamente. O
problema surge quando um dos processos (como o Asterisk) requer um alto nvel de resposta por
parte do sistema. Por predefinio, o Linux ir distribuir equitativamente os recursos por todas as
aplicaes que os requisitem. No caso de coexistirem vrias aplicaes no sistema, o sistema dever
ser optimizado para o Asterisk, no que diz respeito s prioridades das vrias aplicaes.
- Verso de Kernel Linux
O Asterisk oficialmente suportado pela verso 2.6 do Linux.
O impacto destes factores desconhecido com exactido. Sendo apenas conhecidos em termos
gerais. Existem muitas variveis em causa, como a potncia do CPU, o chipset da motherboard, o
carregamento de trfego no sistema, optimizaes no kernel Linux, trfego na rede.
20

5 Software para anlise e captura de trfego

Uma das formas de avaliao de desempenho do PBX Asterisk, recorrer a ferramentas, geralmente
em software, que permitem a captura de pacotes (sniffers). No entanto, sem uma interpretao, os
pacotes capturados podem parecer consistir de dados em formato binrio gerados aleatoriamente.
Por forma a entender o trfego (dados) capturado, h outro tipo de ferramentas que complementam
os programas de captura de pacotes: os analisadores de protocolos e os monitores de rede. Estes
permitem visualizar o trfego capturado de forma estruturada e legvel para o olho humano. O
recurso a estes tipo de ferramentas permite ainda diagnosticar erros, produzir estatsticas e ter uma
viso grfica do fluxo do trfego de dados (no caso do PBX Asterisk, trfego de dados
maioritariamente VoIP) que passa na rede.[19]
O Tcpdump [14] uma ferramenta em software, de captura de pacotes. Esta fornece estatsticas
sumrias e reporta o nmero de pacotes perdidos. Aps capturar trfego, possvel redireccionar
este para um ficheiro e analisar posteriormente noutras ferramentas de anlise como por exemplo o
wireshark [16] e o tcptrace [15]. O Tcpdump uma ferramenta de software geralmente utilizada em
computadores com ambiente text-only ou em computadores remotos.
Uma ferramenta software bastante completa para captura e anlise de trfego de dados o
Wireshark [16]. Este utiliza o mesmo motor de captura do tcpdump e os ficheiros gerados podem ser
gravados neste mesmo formato. O Wireshark suporta dois tipos de filtros: filtros de captura,
baseados no tcpdump; e filtros de amostragem, utilizados para controlar o que se est a observar.
O Wireshark possui uma interface grfica simples e intuitiva, podendo no entanto ser tambm
utilizado em ambiente text-only.
O VoIP envolve uma srie de protocolos que o Wireshark pode descodificar e relacionar. Por
exemplo, o estabelecimento de uma chamada envolve um protocolo diferente do utilizado para o
trfego de voz propriamente dito: SIP e RTP/RTCP, respectivamente.
O Wireshark tem a capacidade de utilizar a informao de sinalizao referente ao estabelecimento
de uma chamada para melhor compreender o fluxo de voz. Tendo esta informao, ser mais fcil a
despistagem em caso de erro, por exemplo.
possvel actualizar a lista de pacotes capturados em tempo real de forma a verificar se o trfego
que est a ser gerado est de acordo com o esperado.
Uma das funes do SIP o estabelecimento do fluxo RTP entre dois terminais. Isto feito atravs
do SDP (Session Description Protocol). Esta negociao que permite ao VoIP funcionar, feita pelo
PBX VoIP, que funciona como intermedirio. Todo este processo pode ser analisado no Wireshark
graficamente.[17]
Para testar o PBX Asterisk ao nvel de desempenho para SIP existem vrias ferramentas software,
como o SIPP [18], esta foi desenvolvida pela HP, e as suas principais caractersticas so: cenrios
bsicos SIP includos, possibilidade de se criar cenrios complexos, bastando para isso alterar
ficheiros em formato XML, produo de um conjunto de estatsticas em tempo real, transporte TCP e
UDP, carga de chamadas ajustvel dinamicamente e a possibilidade de enviar trfego RTP.
Existe ainda outro tipo de ferramentas software que permitem simular condies mais adversas ao
nvel de intensidade de trfego numa rede de dados, estas permitem carregar a rede com padres de
21

trfego diversificado. O MGEN [20] uma ferramenta software com estas capacidades, em que so
utilizados sripts para emular padres de trfego UDP/IP unicast e/ou multicast.
Para se efectuar a avaliao de desempenho do PBX Asterisk ser necessrio ter em conta vrios
factores de natureza distinta, conforme descrito anteriormente. Desde analisar condies de rede
que podem afectar negativamente o desempenho do sistema, bem como os protocolos, codecs, tipo
de terminal utilizador utilizados. Ser necessrio avaliar que aplicaes Asterisk se pretende utilizar
(conferncia, voice mail, IVR, etc.) e como varia o consumo de recursos para cada uma. A avaliao
da dimenso e carga esperada que o sistema ir ter necessria para se escolher o hardware e
software apropriado a cada caso. No fundo, ser necessrio fazer uma avaliao de desempenho
com recurso a vrias configuraes.
S estudando estes pontos ser possvel identificar de forma rigorosa quais os parmetros que
contribuem para o desempenho do Asterisk.
22

6. Avaliao de desempenho do PBX Asterisk
6.1 Chamadas ponto a ponto

No cenrio de chamadas ponto a ponto, quando um utilizador efectua uma chamada para uma dada
extenso, o PBX Asterisk encaminha a chamada para o receptor previamente configurado em
sistema e negoceia o codec que o receptor pretende utilizar, de forma independente das opes
sobre codecs que o emissor apresenta. Actua assim como intermedirio na chamada.
Pretende-se perceber qual o nmero mximo de chamadas simultneas que o PBX Asterisk suporta,
e qual o impacto quando necessrio o PBX Asterisk efectuar transcodificao, ou seja, tornar
possvel a comunicao entre dois terminais mesmo que estes no utilizem o mesmo codec para o
trfego de voz.

Ambiente de teste:

Para avaliar o desempenho para as chamadas ponto a ponto foram efectuados testes de carga.
Foram utilizados 5 computadores, ligados em rede atravs de um hub de 8 portas 10/100 Mbps.

A primeira srie de teste foi realizada tendo por base a instalao do PBX Asterisk num computador
com um processador 2.6 GHz Pentium Celeron. Seguidamente foram realizados testes com recurso
a um computador mais fraco, um Pentium 350 MHz.
A configurao dos restantes elementos de rede manteve-se. Um computador que gera chamadas
Sip, com recurso aplicao SIPp, por forma a sobrecarregar o PBX Asterisk. Outro computador que
actua como receptor de chamadas Sip, correndo a aplicao SIPp. Por ltimo existe ainda um
computador que captura todo o trfego na rede. A figura 10 ilustra a configurao de rede utilizada
bem como as caractersticas de cada computador.

23


Figura 10. Ilustrao das ligaes de rede e caractersticas dos computadores utilizados nos testes
de avaliao de desempenho para as chamadas ponto a ponto.

Configurao do PBX Asterisk:
Ficheiro: extension.conf

; Sempre que seja efectuada uma chamada para a extenso 222333444
; o PBX Asterisk ir encaminhar a chamada para o utilizador
; sippuas

[sipp_pp]

exten => 222333444,1,Dial(SIP/sippuas)
; Quando existe uma chamada em linha para a extenso 222333444, esta
; chamada encaminhada para o cliente sippuas


Ficheiro: sip.conf

; Para que um utilizador consiga efectuar uma chamada para o terminal ;
sippuas necessita de utilizar o perfil [sipp], que contm o
; contexto sipp_pp (context= sipp_pp).

[sipp]
type=friend
; indica que este perfil pode receber e efectuar chamadas

username=sipp
24

; nome do utilizador

host=dynamic
; Localizao do cliente, no caso de ser dynamic o cliente pode
; registar-se de forma independente do endereo IP utilizado
context=sipp_pp
; contexto no qual pode participar, segundo o ficheiro de
; configurao extension.conf que contem o dial plan

canreinvite=no
; Por predefinio o PBX Asterisk tenta redireccionar o trfego media
; RTP (udio) para ir directamente do emissor para o receptor.
; alguns dispositivos ou aplicaes VoIP no suportam esta
; funcionalidade, como o caso da aplicao SIPp

insecure=very
; Indica que este perfil no utiliza autenticao, nem sero
; verificados o ip e nmero de porto

nat=no
; Network Address Translation
; Como os testes apenas sero efectuados numa rede interna, no h
; necessidade de traduo de endereos IP da rede interna para a rede
; pblica


[sippuas]
type=friend
username=sippuas

host=192.168.0.3
; Localizao do cliente, neste caso com IP esttico, para poder ser
; contactado pelo PBX Asterisk, uma vez que a aplicao SIPp no
; regista automaticamente os clientes.

context=sipp_pp
insecure=very
canreinvite=no
nat=no

Estrutura do teste:
Nos testes de carga realizados, a aplicao SIPp est configurada de forma a gerar chamadas SIP
em um dos computadores e configurada como receptor de chamadas SIP noutro computador
distinto. A figura 11 ilustra o fluxo de mensagens SIP e RTP, conforme os testes de carga realizados
para as chamadas ponto a ponto.
23


Figura 11. Fluxos de mensagens SIP e RTP, para os testes de carga nas chamadas ponto a ponto.
Quando o emissor (gerador de chamadas SIP) efectua uma chamada para a extenso 222333444,
encaminhado para o receptor (receptor de chamadas SIP), o emissor transmite ento trfego RTP de
voz durante 60 segundos, que poder estar codificado de vrias formas, em G711a, Gsm, iLBC ou
speex. O receptor recebe o trfego de voz e ecoa de volta para o emissor.
O PBX Asterisk permite que o codec utilizado pelo emissor para transmitir o trfego de voz RTP seja
diferente do utilizado/suportado, neste caso o PBX Asterisk encarrega-se de efectuar a
transcodificao de codec.

Nos testes de carga para este cenrio so geradas trs chamadas a cada segundo. Sendo o nmero
de chamadas simultneas o parmetro varivel. O nmero de chamadas simultneas serve para
testar qual o limite para o qual no h retransmisso de mensagens devido a timeout, por falta de
resposta do PBX Asterisk.
No caso do gerador de chamadas, as mensagens para as quais o PBX Asterisk dever sempre
responder so a INVITE e BYE. No caso do receptor de mensagens, o PBX Asterisk dever
responder sempre s mensagens 200 OK. Conforme a figura 11.

Para que a aplicao Sipp transmita o trfego de voz necessrio que exista um ficheiro com a
extenso .pcap, que contenha o trfego de voz RTP no codec que se pretende utilizar para simular
uma chamada de voz, este ficheiro ento carregado pelo Sipp, conforme a descrio contida no
ficheiro .xml respectiva.(anexo)
Para este teste foi capturado trfego durante 1 minuto utilizando o Wireshark, o trfego foi capturado
tendo por base uma chamada entre dois softphones xten, em que o emissor da chamada reproduziu
um dilogo retirado de uma srie televisiva com a durao de 1 minuto. O softphone xten foi
configurado com a supresso de silncio desligada ("Transmit Silence"=YES) conforme as
indicaes no ficheiro de configurao sip.conf no PBX Asterisk.
Este procedimento foi repetido, utilizando sempre o mesmo dilogo para vrios codecs: g711a, gsm,
ilbc e speex. Posteriormente o trfego foi filtrado no Wireshark de forma a que o ficheiro com a
extenso .pcap apenas contivesse o trfego de voz e na direco em que foi emitido.
26

Pretende-se:

1 Testar qual o nmero mximo de chamadas ponto a ponto simultneas que o PBX Asterisk
suporta, ou seja, o nmero mximo para o qual no h retransmisso de mensagens devido a
timeout por falta de resposta do PBX Asterisk.

2 Para o mesmo nmero de chamadas em simultneo, utilizando o mesmo codec no emissor e no
receptor, verificar quais as diferenas e principais as vantagens e desvantagens da utilizao de
cada codec.

3 Testar o impacto do uso de diferentes codecs na transmisso do trfego de voz RTP, em ambos
os terminais (emissor e receptor) numa chamada ponto a ponto, obrigando o PBX Asterisk a efectuar
transcodificao para que os terminais consigam comunicar.

4 Qual o desempenho do PBX Asterisk quando instalado num computador com recursos (CPU e
memria) limitados, no cenrio de chamadas ponto a ponto.

Para avaliar o desempenho do PBX Asterisk ao nvel de nmero de chamadas recebidas e
correctamente tratadas foram utilizados vrios parmetros ao nvel do cliente Sipp, sendo o
parmetro varivel o limite mximo de chamadas simultneas, sendo que so geradas trs
chamadas por segundo.

Para a monitorizao do sistema onde est instalado o PBX Asterisk foi utilizada a aplicao
Statgrab[2], que permite visualizar todas as estatsticas disponibilizadas pela biblioteca libstatgrab. A
biblioteca libstatgrab fornece uma plataforma de acesso s estatsticas sobre o sistema a correr. As
estatsticas incidem sobre utilizao do CPU, de memria, disco rgido, contabilizao de processos,
trfego de rede, entre outros.
Para se obter dados mais precisos sobre o trfego gerado e recebido no servidor PBX Asterisk foram
recolhidas as estatsticas do comando ifconfig de Linux, para alm da captura do trfego efectuada
por outro computador a correr o Wireshark em modo promscuo ligado na mesma rede atravs de um
hub. A captura tem a durao de aproximadamente 65 segundos, constituindo assim uma amostra
do trfego na rede, a partir do qual foi analisada a latncia, o jitter e as perdas nos fluxos RTP.
Apenas foi recolhida uma amostra devido aos recursos consumidos pela captura de trfego de voz,
que quando muito extensa fica com processamento moroso, sendo por vezes impossvel a anlise da
captura.

Procedimento:

PC com PBX Asterisk instalado
IP:192.168.0.1

1 Executar PBX Asterisk:
> sudo /usr/sbin/asterisk vc

2 Execuo de um script perl que faz o reset s estatsticas apresentadas pelo comando ifconfig e
executa o programa statgrab, escrevendo os resultados obtidos para um ficheiro aps a execuo do
teste.


PC Receptor chamadas SIP, aplicao Sipp :
IP:192.168.0.3:

27

3 Executar a aplicao Sipp como receptor de chamadas SIP, isto , em modo servidor, indicando
os parmetros como, nome do ficheiro .xml que contm o cenrio a utilizar no teste, activar a opo
para ecoar o trfego RTP de voz recebido.


PC Receptor chamadas SIP, aplicao Sipp :
IP:192.168.0.2:

4 Executar a aplicao Sipp como gerador de chamadas SIP, isto , em modo cliente, a partir de
um script que recebe como parmetros os dados essenciais como, nmero mximo de chamadas em
simultneo, nmero de chamadas geradas por segundo, durao do teste (em minutos) e o nome do
ficheiro .xml que contm o cenrio a utilizar no teste.
Conforme o codec utilizado para transmitir o trfego RTP de voz, o cenrio diferente, pois os
parmetros do payload da mensagem Invite SIP, o SDP (Session Description Protocol), diferem.

PC de captura de trfego:
IP:192.168.0.4:

5- Captura de trfego utilizando o Wireshark.

Resultados:
Foram efectuados diversos testes com durao de aproximadamente 3 minutos. Este valor no
exacto pois o cliente SIPp (gerador de chamadas SIP) espera que todas as chamadas pendentes
terminem (soft exit). A varivel utilizada para testar a carga do sistema foi o nmero mximo de
chamadas em simultneo. Sendo que so geradas em todos os testes trs chamadas por segundo.
Cada chamada tem a durao aproximada de 1 minuto em udio de voz RTP mais sinalizao SIP,
em mdia 01:00:027 minutos por chamada.
Os valores encontrados para o nmero mximo de chamadas em simultneo que o PBX Asterisk
suporta so considerados apenas os valores estveis mximos, ou seja, para os quais no h
retransmisso ou timeout de mensagens SIP. No entanto pode haver perdas ao nvel de pacotes
RTP, devido carga elevada na rede.
Com o mximo de 100 chamadas simultneas para chamadas ponto a ponto com o mesmo codec no
emissor e no receptor, g771a, gsm, speex e ilbc. Foram obtidos os resultados da tabela 12.

Na tabela 13, so apresentados os valores mximos estveis obtidos, para as chamadas ponto a
ponto para diversos codecs (g711a, gsm, speex e ilbc), no PC Normal.


Na tabela 14, so apresentados os valores mximos estveis obtidos, quando o emissor de uma
chamada utiliza um codec diferente do receptor, caso em que o PBX Asterisk efectua
transcodificao para que os terminais comuniquem.


Na tabela 15 so apresentados os valores de vrios parmetros obtidos, para o nmero mximo de
chamadas em simultneo, quando o PBX Asterisk executado no PC limitado.

Nos grficos 1, 2, 3 e 4 so apresentadas comparaes de alguns valores obtidos.

28

Notar que nos valores obtidos no so apresentados valores para o Jitter no caso do codec iLBC e
Speex, pois o Wireshark no os calcula correctamente (uma limitao do software).

Codec G711a Speex Gsm iLBC
Max. Chamadas simultneas 100 100 100 100
Durao do teste (segundos) 214,22 214,23 214,57 214,09
Total de chamadas 300 300 300 300
Estatsticas de rede
Downlink (MB) 366,8 172,6 149,7 119,7
Uplink (MB) 366,1 172,2 149,5 119,7
DownLink 14,37 6,76 5,85 4,69
Carga na rede
(Mbit/s) UpLink 14,34 6,74 5,85 4,69
Estatsticas sobre fluxos de udio de voz RTP
Mdia 5,61 - 4,4 -
Max.
7,53
-
6,59
-
Jitter (ms)
Min.
0,8
-
1,25
-
Mdia 45,3 54,07 45,95 60,57
Max.
62,78 67,05 59,69 66,22 Latncia (ms)
Min.
26,63 22,65 20,23 40,01
Nmero fluxos RTP analisados 256 296 304 276
N de fluxos RTP com perdas 18 64 109 0
% mdia de perda por fluxo RTP 0,22 0,44 0,29 0
Utilizao mdia do sistema
% CPU 60,1 56 55,02 36,77
PBX Asterisk
% Memria
RAM 48 49,7 49 49,2
Tabela 12. Resultados obtidos para o teste de carga para 100 chamadas em simultneo no
computador normal.




Crflco 1. Comparao da evoluo do Cu para 100 chamadas slmulLneas no C normal.
29


Codec G711a Speex Gsm iLBC
Max. Chamadas simultneas 125 130 130 145
Durao do teste (segundos) 223,02 226,75 224,58 229,55
Total chamadas 375 390 390 435
Estatsticas de rede
Downlink (MB) 457,90 224,00 193,90 172,70
Uplink (MB) 456,9 223,4 193,4 172,3
DownLink 17,23 8,29 7,25 6,31
Carga na rede
(Mbit/s) UpLink 17,19 8,27 7,23 6,30
Estatsticas sobre fluxos de udio de voz RTP
Mdia 5,59 - 6,74 -
Max.
6,68
-
17,9
-
Jitter (ms)
Min.
0,8
-
1,25
-
Mdia 44,86 276,45 73,3 76,34
Max.
56,16 303,87 228,81 120,73 Latncia (ms)
Min.
26,49 256,49 20,47 35,79
Nmero fluxos RTP analisados 328 518 400 824
N de fluxos RTP com perdas 28 518 196 414
% mdia de perda por fluxo RTP 0,2 2,77 0,51 4,7
Utilizao mdia do sistema
% CPU 74,1 70,41 72,23 65,42
PBX Asterisk
% Memria RAM 47,13 50,13 48,82 49,86
Tabela 13. Resultados obtidos para o teste de carga para testar o mximo de chamadas em
simultneo suportadas pelo PBX Asterisk no computador normal.



Crflco 2. Comparao da evoluo do Cu para o mxlmo esLvel de chamadas slmulLneas no C
normal.
30

Codec emissor
<->
Codec receptor
G711a
<->
Gsm
G711a
<->
iLBC
G711a
<->
Speex
Gsm
<->
iLBC
Gsm
<->
Speex
iLBC
<->
Speex
Max. Chamadas simultneas 50 35 20 25 15 15
Durao do teste (segundos) 198,05 192,96 187,49 189,32 185,77 185,79
Total chamadas 150 105 60 75 45 45
Estatsticas de rede
Downlink (MB) 129,7 85,5 51,3 27 22,1 16,5
Uplink (MB) 129,4 85,1 51,2 27,1 22,2 16,5
DownLink 5,50 3,72 2,30 1,20 1,00 0,75
Carga na rede
(Mbit/s) UpLink 5,48 3,70 2,29 1,20 1,00 0,75
Estatsticas sobre fluxos de udio de voz RTP
Mdia 18,76 - - - - -
Max.
32,16
- - - - -
Jitter (ms)
Min.
5,67
- - - - -
Mdia 185,78 61,96 50 74,37 65,5 72
Max. 280,36 90,61 71,3 119,88 92,12 135,48
Latncia (ms)
Min. 44,55 43,55 42,99 47,91 47,95 61,3
Nmero fluxos RTP analisados 200 140 80 100 60 60
N de fluxos RTP com perdas 49 0 0 0 0 0
% mdia de perda por fluxo RTP 1,12 0 0 0 0 0
Utilizao mdia do sistema
% CPU 89,72 93,11 87,9 72,32 78,4 77
PBX Asterisk
% Memria
RAM 49 49 48,82 49,23 49 49,21
Tabela 14. Resultados obtidos para o teste de carga para testar o mximo de chamadas em
simultneo suportadas pelo PBX Asterisk no computador normal, quando o emissor e o receptor
utilizam codecs diferentes.

Grfico 3. Nmero mximo de chamadas simultneas obtidas para os vrios codecs, com o PBX
Asterisk a correr num PC normal.
31


Codec G711a Speex Gsm iLBC
Max. Chamadas s|mu|tmeneas 55 55 55 65
Durao do teste (segundos) 199,28 199,31 199,28 202,84
1ota| chamadas 165 165 165 195
Lstat|st|cas de rede
Down||nk (M8) 202,6 93,2 82,3 77,9
Up||nk (M8) 202,1 93 82,3 77,8
DownL|nk 8,33 4,01 3,48 3,22
Carga na
rede
(Mb|t]s) UpL|nk 8,31 4,00 3,47 3,22
Lstat|st|cas sobre f|uxos de ud|o de voz k1
Md|a 6,33 - 4,1 -
Max. 9,34 - 11,29 - I|tter (ms)
M|n. 3,66 - 3,98 -
Md|a 30,37 38,79 47,93 119,39
Max. 78,49 334,29 61,94 272 Latnc|a (ms)
M|n. 41,93 33,09 44,37 61,34
Nmero f|uxos k1 ana||sados 220 220 220 260
N de f|uxos k1 com perdas 0 0 0 0
% mdia de perda por fluxo RTP 0 0 0 0
Ut|||zao do s|stema
CU 73,2 71,93 70,32 66,32
8k Aster|sk
Memr|a kAM 96 89,84 91 93
Tabela 15. Resultados obtidos para o teste de carga para testar o mximo de chamadas em
simultneo suportadas pelo PBX Asterisk no computador limitado.



Crflco 4. numero mxlmo de chamadas slmulLneas obLldas para os vrlos codecs, com o 8x
AsLerlsk a correr num C llmlLado.
32

Resultados dos tempos de resposta do PBX Asterisk obtidos para as chamadas ponto a ponto
No cenrio de chamadas ponto a ponto esto instalados dois contadores no gerador de chamadas
SIP (aplicao SIPp em modo cliente). O primeiro contador inicializado quando se envia a
mensagem INVITE do protocolo SIP e termina quando recebida uma resposta confirmao do PBX
Asterisk, a mensgem 200 OK. E pretende contabilizar o tempo que o PBX Asterisk demora a
responder a um pedido de chamada para uma determinada extenso.
O segundo contador inicializado quando o gerador de chamadas SIP pretende terminar a chamada
e envia a mensagem BYE do SIP. Este termina quando recebe a mensagem 200 OK do SIP, enviada
pelo PBX Asterisk. Os resultados para estes contadores so apresentados na tabela 7, para os
testes realizados com o PBX Asterisk instalado no PC normal. Na tabela 8 apresentada a
distribuio dos tempos de resposta obtidos para o PC limitado.
Distribuio do Tempo de resposta Asterisk Gerador chamadas SIP
Invite Bye
Codec < 50 ms 50 x < 200 200 ms < 50 ms 50 x < 200 200 ms
Total
Teste limite 100 chamadas em simultneo
G711a 299 1 0 300 0 0 300
Speex 292 6 2 300 0 0 300
Gsm 297 3 0 300 0 0 300
iLBC 300 0 0 300 0 0 300
Teste limite mximo de chamadas em simultneo sem transcodificao
G711a 199 176 0 375 0 0 375
Speex 179 210 1 390 0 0 390
Gsm 293 95 2 390 0 0 390
iLBC 435 0 0 435 0 0 435
Teste limite mximo de chamadas em simultneo com transcodificao
G711a <-> Gsm 61 86 3 150 0 0 150
G711a <-> iLBC 69 33 3 104 1 0 105
G711a <-> Speex 59 1 0 60 0 0 60
Gsm <-> iLBC 75 5 0 75 0 0 75
Gsm <-> Speex 45 0 0 45 0 0 45
iLBC <-> Speex 45 0 0 45 0 0 45
Tabela 16 Distribuio dos tempos de resposta obtidos para as mensagens SIP, Invite e Bye, para o
PC Normal.
Tempo resposta Asterisk - Gerador chamadas SIPP
Invite Bye
Codec < 50 ms 50 x < 200 200 ms < 50 ms 50 x < 200 200 ms
Total
G711a 158 7 0 165 0 0 165
Speex 120 45 0 165 0 0 165
Gsm 119 37 9 165 0 0 165
iLBC 171 14 10 194 1 0 195
Tabela 17. Tempos de resposta obtidos para as mensagens SIP, Invite e Bye, para o PC limitado.
33

No receptor de chamadas SIP, aplicao SIPp em modo servidor, foi instalado um contador, que
inicializado aquando do envio da mensagem 200 OK do protocolo SIP, como resposta mensagem
INVITE, e termina quando recebe a mensagem ACK do SIP, por parte do PBX Asterisk.
Os resultados para este contador so apresentados na tabela 18, para os testes realizados com o
PBX Asterisk instalado no PC normal. Na tabela 19 apresentada a distribuio dos tempos de
resposta obtidos para o PC limitado.
Tempo resposta Asterisk - Receptor chamadas SIP
200 OK
Codec < 30 ms 30 x < 200 200 ms
Total
Teste limite 100 chamadas em simultneo
G711a 300 0 0 300
Speex 300 0 0 300
Gsm 299 1 0 300
iLBC 300 0 0 300
Teste limite mximo de chamadas em simultneo sem
transcodificao
G711a 372 3 0 375
Speex 386 4 0 390
Gsm 435 0 0 390
iLBC 377 13 0 435
Teste limite mximo de chamadas em simultneo com
transcodificao
G711a <-> Gsm 145 5 0 150
G711a <-> iLBC 105 0 0 105
G711a <-> Speex 60 0 0 60
Gsm <-> iLBC 74 1 0 75
Gsm <-> Speex 45 0 0 45
iLBC <-> Speex 45 0 0 45
Tabela 18. Distribuio dos tempos de resposta obtidos para a mensagem SIP, 200 OK, para o PC
normal.
Tempo resposta Asterisk - Receptor chamadas
SIPP
200 OK
Codec < 30 ms 30 x < 200 200 ms
Total
G711a 165 0 0 165
Speex 164 1 0 165
Gsm 163 2 0 165
iLBC 191 4 0 195
Tabela 19. Tempos de resposta obtidos para a mensagem SIP, 200 OK, para o PC limitado.
34

Anlise dos resultados obtidos
O uso de diferentes codecs no emissor e no receptor, implica o aumento significativo de
processamento devido necessidade de o PBX Asterisk ter de transcodificar o trfego de voz para
que os interlocutores consigam comunicar. O maior processamento implica maior consumo de
recursos (principalmente CPU) no computador onde se onde est a correr o PBX Asterisk. Com o
maior consumo de CPU para efectuar transcodificao de codecs, o nmero de chamadas
simultneas suportadas pelo PBX Asterisk diminui drasticamente.
Pela anlise da tabela 13, vemos que quando se utiliza apenas o codec g711a para efectuar
chamadas ponto a ponto, o PBX Asterisk suporta, isto , efectua o encaminhamento de chamadas de
forma a que os interlocutores consigam comunicar de forma estvel, para o mximo de 125
chamadas simultneas. No caso em que o emissor utiliza o codec g711a e o receptor o codec gsm
(ou vice versa), tabela 14, o nmero de chamadas simultneas suportadas pelo PBX Asterisk 50.
Ou seja, 60% menos chamadas.
Quando os interlocutores utilizam o mesmo codec, g711a, speex, gsm ou iLBC, possvel verificar
que o maior nmero de chamadas simultneas que o PBX Asterisk suporta est relacionado com o
nmero de bytes necessrios para transmitir a informao de voz, ou seja, um codec menos
complexo comprime menos o udio de voz, logo consome maior largura de banda para transmitir a
informao de voz. Na tabela 13 possvel verificar que com maior carga de rede, no caso de se
utilizar o codec g711a numa chamada, o PBX Asterisk suporta 125 chamadas em simultneo. Mas se
for utilizado um codec mais complexo, isto , que comprime mais o udio de voz, como o caso do
codec iLBC, o PBX Asterisk suporta 145 chamadas simultneas, mais 13,8%, atravs dos dados da
tabela 13.
Atravs da tabela 13 e da tabela 15, possvel verificar qual a diferena encontrada no que diz
respeito ao nmero mximo de chamadas em simultneo sem transcodificao obtido no PC normal
e no PC limitado. Os valores obtidos no PC normal so cerca de 56% superiores em relao ao PC
limitado. No entanto, o desempenho no PC limitado satisfatrio, visto que ter um PBX que
consegue nmeros na ordem da meia centena para chamadas ponto a ponto em simultneo,
suficiente, por exemplo num pequeno escritrio. Isto quando ambos os interlocutores utilizam o
mesmo codec.
Ao nvel dos fluxos RTP, o Jitter (variao do atraso entre pacotes sucessivos de dados) nunca
ultrapassou os 15 ms. Para reduzir o efeito do jitter, a aplicao no receptor deve criar um buffer, por
forma a manter a taxa de entrega constante. O buffer a utilizar pode ter tamanho fixo ou dinmico,
que permite suportar as variaes das condies dos jitters. No entanto a utilizao de um buffer
para compensar o jitter ir gerar atraso adicional. Como exemplo, um buffer para compensar a
variao do atraso at 50 milissegundos ir introduzir em mdia mais 25 milissegundos de atraso.
[22]
Para a latncia (atraso) foram obtidos valores mdios na ordem dos 70 milissegundos, sendo este
valor ultrapassado no caso do codec speex, 276,45 milissegundos, e na chamada com
transcodificao g711 para gsm, 185,18 milissegundos. partida, o facto de se estar a utilizar
transcodificao faz com que a latncia aumente na comunicao. Segundo a recomendao ITU
G.114 [22], o limite mximo de 400 milissegundos para a latncia e recomendado um valor no
superior a 150ms para que a latncia no seja notada pelo utilizador.
33

Na tabela 12 e 13 possvel verificar que a perda de pacotes num fluxo RTP teve como pior
resultado 4,7% para o caso do codec ilbc. As perdas de pacotes encontradas devem-se
possivelmente ao congestionamento na rede. No entanto, no chega a um valor crtico de perdas.
Atravs das tabelas 16, 17, 18 e 19 possvel constatar que o PBX Asterisk tem tempos de
resposta s mensagens SIP na ordem dos milissegundos.



36

6.2 Chamadas em conferncia

No cenrio de chamadas em conferncia, quando um utilizador efectua uma chamada para uma
dada extenso, o PBX Asterisk encaminha a chamada para uma sala de conferncia previamente
configurada no sistema, dependendo da configurao para uma determinada extenso poder ser
solicitado ao emissor da chamada a insero de um cdigo para ter acesso conferncia.
Nos testes efectuados, quando um dado utilizador entra numa conferncia, permanece conectado
durante 1 minuto, durante o qual gerado trfego de voz. Estamos perante o pior caso possvel, e
que na realidade no poderia acontecer numa conferncia, pois os interlocutores no se entenderiam
se falassem todos em simultneo.
Para complementar este teste so utilizados codecs distintos nos vrios testes.
Pretendem-se perceber qual o desempenho do PBX Asterisk num cenrio com chamadas em
conferncia. Determinar qual o nmero mximo de chamadas simultneas, ou seja, nmero mximo
de participantes que o PBX Asterisk suporta numa sala de conferncia. E tambm o que acontece
quando existe mais do que uma sala de conferncia em simultneo.

Para efectuar as chamadas em conferncia no PBX Asterisk utilizado o mdulo MeetMe, que
necessita do suporte de um temporizador (time source) para funcionar. Existem dispositivos
hardware desenvolvidos no mbito do projecto Zaptel[23], prprio para o efeito. No entanto,
possvel criar um temporizador virtual, ztdummy[24],que utiliza recursos do kernel para obter o
mesmo efeito apenas com software.

Ambiente de teste:

Para avaliar o desempenho para as chamadas em conferncia foram efectuados testes de carga.
Foram utilizados 4 computadores, ligados em rede atravs de um hub de 8 portas 10/100 Mbps.
Os testes foram efectuados tendo por base a instalao do PBX Asterisk num computador com um
processador 2.6 Ghz Pentium Celeron. Para gerar chamadas SIP so utilizados dois computadores,
correndo no total at 4 instncias da aplicao SIPp. Conforme o cenrio das chamadas ponto a
ponto existe ainda um computador que captura todo o trfego na rede. A figura 12 ilustra a
configurao de rede utilizada bem como as caractersticas de cada computador.

37


Figura 12. Ilustrao das ligaes de rede e caractersticas dos computadores utilizados nos
testes de avaliao de desempenho para as chamadas em conferncia.
Configurao do PBX Asterisk:
Ficheiro: meetme.conf

[rooms]
;
; Criao de salas de conferncia:
;
; Utilizao: conf => numero_conferencia[,pin][,pin_administrador]
;

conf => 1234
conf => 1235
conf => 1236
conf => 1237



Ficheiro: extension.conf

; Sempre que seja efectuada uma chamada para a extenso 8500, 8600,
; 8700 ou 8800, o PBX Asterisk ir criar/adicionar um utilizador
; chamada em conferncia na sala 1234, 1235, 1236 e 1237
; respectivamente.


[conferencia]
38

exten => 8500,1,Meetme(1234)
exten => 8600,1,Meetme(1235)
exten => 8700,1,Meetme(1236)
exten => 8800,1,Meetme(1237)

Ficheiro: sip.conf

; Para que um utilizador consiga participar em uma das salas de
; conferncia, necessita de utilizar o perfil [sipp], que contm o
; contexto conferncia (context=conferencia).


[sipp]
type=friend
; indica que este perfil pode receber e efectuar chamadas

context=conferencia
; contexto no qual pode participar, segundo o ficheiro de
;configurao extension.conf

host=dynamic
; Localizao do cliente, no caso de ser dynamic este cliente pode
; registar-se a partir de qualquer endereo IP

username=sipp
; Nome de utilizador

canreinvite=no
; Por predefinio o PBX Asterisk tenta redireccionar o trfego media
; RTP (udio) para ir directamente do emissor para o receptor.
; alguns dispositivos ou aplicaes VoIP no suportam esta
; funcionalidade, como o caso da aplicao sipP

insecure=very
; Indica que este perfil no utiliza autenticao, nem sero
; verificados o ip e nmero de porto

nat=no
; Como os testes apenas sero efectuados numa rede interna, no h
; necessidade de traduo de endereos da rede interna para a rede
; pblica de IP



Estrutura do teste:
Foram efectuados testes de carga ao PBX Asterisk recorrendo aplicao Sipp. Neste teste so
geradas duas chamadas a cada segundo. Do memo modo do que nas chamadas ponto a ponto, foi
limitado o nmero de chamadas simultneas, por forma a testar qual o limite para o qual no h
retransmisso de mensagens SIP(INVITE ou BYE) devido a timeout, por falta de resposta do PBX
Asterisk.

Quando o emissor (gerador de chamadas SIP, aplicao SIPp em modo cliente) efectua uma
chamada para a extenso 8500, 8600, 8700 ou 8800, encaminhado para uma sala de
conferncia. Caso seja o nico participante na conferncia, o emissor avisado pelo PBX Asterisk
desse facto, caso j existam outros participantes na conferncia apenas se escuta um sinal sonoro.
39

O sinal sonoro enviado igualmente para todos os participantes, aquando da entrada ou sada de
um participante na chamada em conferncia a decorrer.

A figura 13 ilustra o fluxo de mensagens SIP e RTP, conforme os testes de carga realizados para as
chamadas em conferncia. O trfego de voz RTP transmitido para o PBX Asterisk foi colectado da
forma anteriormente explicada nas chamadas ponto a ponto.
Pretende-se:

1 Testar para uma conferncia o nmero mximo de chamadas simultneas para o qual no h
retransmisso de mensagens devido a timeout por falta de resposta do PBX Asterisk.
Efectuar este teste com trfego de voz RTP, codificado em g711a, gsm, ilbc e speex.

2 Testar qual o nmero mximo de chamadas simultneas numa situao em que h mais do que
uma conferncia a decorrer em simultneo.
Efectuar este teste com trfego de voz RTP, codificado em g711a, gsm, ilbc e speex.



Figura 13. Fluxos de mensagens SIP e RTP, para os testes de carga nas chamadas ponto a ponto.
Para avaliar o desempenho do PBX Asterisk ao nvel de nmero de chamadas recebidas e
correctamente tratadas foram utilizados vrios parmetros ao nvel do cliente Sipp, sendo o
parmetro varivel, o limite mximo de chamadas simultneas, sendo que so geradas duas
chamadas por segundo.
A monitorizao do PBX Asterisk e da rede foi efectuada na mesma forma que nas chamadas ponto
a ponto.
Procedimento:

PC com PBX Asterisk instalado
IP:192.168.0.1

40

1 Executar PBX Asterisk:
> sudo /usr/sbin/asterisk vc

2 Execuo de um script perl que faz o reset s estatsticas apresentadas pelo comando ifconfig e
executa o programa statgrab, escrevendo os resultados obtidos para um ficheiro aps a execuo do
teste.


PC com cliente Sipp:
IP:192.168.0.2 e 192.168.0.3:

3 Executar cliente Sipp, a partir de um script que recebe como parmetros os dados essenciais
como, nmero mximo de chamadas em simultneo, nmero de chamadas geradas por segundo,
durao do teste (em minutos) e o nome do ficheiro .xml que contm o cenrio a utilizar no teste.

Conforme o codec utilizado para transmitir o trfego RTP de voz, o cenrio diferente, pois os
parmetros do payload da mensagem Invite SIP, o SDP (Session Description Protocol), diferem.

PC de captura de trfego:
IP:192.168.0.4:

4- Captura de trfego utilizando o Wireshark.

Resultados:
Foram feitos testes com durao de aproximadamente 3 minutos. Este valor no exacto pois o
cliente SIPP espera que todas as chamadas pendentes terminem (soft exit). A varivel utilizada
para testar a carga do sistema foi o nmero mximo de chamadas em simultneo. Sendo que so
geradas em todos os testes duas chamadas por segundo. Cada chamada tem a durao aproximada
de 1 minuto em udio de voz RTP mais sinalizao SIP, em mdia 01:00:027 minutos por chamada,
conforme o teste das chamadas ponto a ponto.
So apresentados os valores encontrados para o nmero mximo chamadas em simultneo que o
PBX Asterisk suporta num cenrio de chamadas em conferncia para vrios codecs. So
apresentados apenas os valores estveis mximos, ou seja, para os quais no h retransmisso ou
timeout de mensagens SIP, Invite e/ou Bye, por parte do cliente (emissor da chamada) o que
significa que o PBX Asterisk se encontra acessvel e no sobrecarregado. No entanto podem existir
perdas ao nvel dos pacotes RTP.
41



Carga na rede
(Mbit/s)
N
Conferncias
em
simultneo Codec
Max.
Chamadas
simultneas
obtido Total
Bytes
Recebidos
(Mb)
Bytes
Transmitidos
(Mb) DownLink UpLink
Durao
do teste
(seg.)
1 G711a 90 270 166.4 153 6,13 5,63 228
1 Gsm 50 150 37,7 36,2 1,53 1,47 206,57
1 iLBC 30 90 18 17,6 0,77 0,76 196,18
1 Speex 20 60 17,4 14,6 0,77 0,64 191,13
2 G711a 40 240 147,9 134,6 6,16 5,61 201,4
2 Gsm 20 120 30,2 28,9 1,33 1,27 191,09
2 iLBC 15 90 18,1 17,7 0,8 0,79 189,18
2 Speex 10 60 17,4 14,5 0,79 0,65 186,12
3 G711a 25 225 138,5 128,3 6 5,56 193,69
3 Gsm 15 135 34 32,6 1,51 1,45 188,9
3 iLBC 10 90 18,1 17,5 0,82 0,79 186,21
3 Speex 5 45 13 10,6 0,6 0,49 183,62
4 G711a 15 180 110,9 104 4,93 4,63 188,62
4 Gsm 10 120 30,2 29 1,36 1,31 186,2
4 iLBC 5 60 12,1 11,9 0,55 0,54 183,62
4 Speex 5 60 17,4 14,1 0,8 0,65 183,65
Tabela 20. Estatsticas de rede obtidas pela informao do comando ifconfig e resumo da aplicao
Sipp.
Jitter (ms) Latncia (ms)
N
Conferncias
em
simultneo CODEC Mdia Max Min Mdia Max Min
Nmero
fluxos
RTP
analisados
N de
fluxos
RTP
com
perdas
1 G711a 5,71 3,71 0,13 35,9 49,51 13,46 208 3
1 Gsm 3,66 5,92 0,08 37,9 54,66 21,06 108 3
1 iLBC - - - 53,30 77,33 26,38 77 4
1 Speex - - - 50,29 89,04 21,67 54 2
2 G711a 3,60 6,42 0,39 38,40 61,4 22,37 186 7
2 Gsm 3,16 6,39 0,49 36,93 49,99 22,39 110 8
2 iLBC - - - 52,13 78,45 28,26 115 4
2 Speex - - - 44,73 89,03 20,07 80 7
3 G711a 5,69 7,87 1,51 45,54 60,3 20,22 168 4
3 Gsm 3,44 6,14 1,11 35,57 53,33 20,23 110 5
3 iLBC - - - 54,08 77,37 24,68 83 8
3 Speex - - - 47,38 93,82 17,96 50 3
4 G711a 3,63 6,94 1,25 37,38 57,88 19,99 145 5
4 Gsm 3,24 5,2 1,03 35,97 49,95 18,64 105 6
42

4 iLBC - - - 52.58 86,08 30,34 68 5
4 Speex - - - 53,44 89,04 22,68 120 12
Tabela 21. Estatsticas sobre fluxos de udio de voz RTP, obtidas atravs da aplicao Wireshark
N
Conferncias
em
simultneo
Codec
Max.
Chamadas
simultneas
obtido
Total de
chamadas
Utilizao
mdia CPU
(%)
Utilizao
mdia
Memria
RAM (%)
1 G711a 90 270 63,47 47,26
1 Gsm 50 150 83,85 46,35
1 iLBC 30 90 79,64 37,1
1 Speex 20 60 89,2 46,1
2 G711a 40 240 77,78 66,14
2 Gsm 20 120 85,7 66,4
2 iLBC 15 90 90,4 66,53
2 Speex 10 60 93 66,79
3 G711a 25 225 80 66,4
3 Gsm 15 135 86,9 66,66
3 iLBC 10 90 87,27 66,8
3 Speex 5 45 68,4 66,66
4 G711a 15 180 79,04 66,53
4 Gsm 10 120 81,4 66,67
4 iLBC 5 60 68,53 66,7
4 Speex 5 60 92,63 66,92
Tabela 22. Percentagem mdia de utilizao de CPU e memria RAM, na mquina onde est
instalado o PBX Asterisk, para os diferentes testes.


Grafico 5. Comparao da percentagem utilizao de CPU na mquina onde est instalado o PBX
Asterisk, no caso de apenas uma conferncia, conforme os dados da tabela 22.
43


Grfico 6. Comparao do nmero de chamadas simultneas obtidas consoante o nmero de
conferncias em simultneo.

Anlise dos resultados obtidos
As chamadas em conferncia requerem que o sistema transcodifique o udio recebido das vrias
fontes em PCM linear, misture depois todos os fluxos de udio, para por fim recodificar para os
mltiplos fluxos de sada. Se o codec mais complexo, ou seja, comprime mais o udio de RTP de
voz, ser maior o processamento necessrio neste processo, conforme demonstrado na tabela 20.
Os codecs que utilizam maior compresso (apresentam menor carga na rede), mas o nmero de
chamadas suportadas em simultneo numa conferncia menor.
Com o aumento do nmero de conferncias em simultneo, o nmero total de chamadas no PBX
Asterisk diminui, o que pode ser compreendido atendendo que cada conferncia exige algum
processamento prprio. Mesmo no caso em que apenas existe uma conferncia os resultados no
que diz respeito ao nmero de chamadas em simultneo so significativamente menores do que os
valores obtidos no cenrio de chamadas ponto a ponto, para os codecs, g711a, gsm, speex, ilbc,
temos menos 28%, 61,5%, 84,61% e 79,31% chamadas simultneas, respectivamente. Esta
diferena pode ser explicada com o processamento necessrio para as chamadas em conferncia
apresentado no primeiro ponto.

Na comparao efectuada no grfico 5 e no grfico 6 possvel concluir que a limitao principal
do nmero de chamadas simultneas a capacidade de processamento do PC. O factor que
contribui mais para o aumento do processamento a complexidade do codec.
44

6.3 Interactive Voice Response (IVR)

No cenrio Interactive Voice Response (IVR) configurado para avaliar o desempenho do PBX
Asterisk, quando o utilizador efectua uma chamada para uma determinada extenso, o prprio PBX
Asterisk a atender a chamada. Atravs de uma gravao udio, so dadas ao utilizador vrias
opes de escolha, um menu de voz, que podem ser seleccionadas utilizando os tons DTMF (Dual-
Tone Multi-Frequency) (teclas do telefone).
Neste cenrio os testes esto divididos em duas partes. Na primeira parte, o cenrio IVR utilizado
apenas necessita que seja enviado um tom DTMF (tecla de telefone 1) para que seja seleccionada a
opo pretendida no menu. Na segunda parte, para seleccionar a opo necessrio enviar cinco
tons DTMF, o 54321 (as teclas de telefone 5, 4, 3, 2 e 1). Pretende-se assim verificar qual o impacto
causado quando so utilizados vrios tons DTMF num contexto IVR em VoIP. O cenrio IVR em que
se utilizam vrios tons DTMF muito utilizado na vida real, por exemplo, para o nmero de utilizador
e/ou password para aceder a um determinado servio via telefone.
Neste cenrio de teste apenas se utilizar o codec g711a para o trfego de voz RTP.
O cenrio IVR parametrizado no gerador de chamadas SIP, aplicao Sipp em modo cliente, tem a
seguinte estrutura:
Quando o cliente Sipp efectua a conexo extenso 2000, o PBX Asterisk devolve o seguinte menu
de voz:
- Main menu
- Press zero for help
- To hear your account balance
- Press one
Na primeira parte do teste: o cliente Sipp selecciona o tom DTMF 1.
Na segunda parte do teste: o cliente Sipp selecciona os tons DTMF 54321.

- The balance of your account is.

Ambiente de teste:
Para avaliar o desempenho para as chamadas IVR foram efectuados testes de carga. Foram
utilizados 4 computadores, ligados em rede atravs de um hub de 8 portas 10/100 Mbps.
A primeira srie de teste foi realizada tendo por base a instalao do PBX Asterisk num computador
com um processador 2.6 Ghz Pentium Celeron. Seguidamente foram realizados testes com recurso a
um computador mais fraco, um Pentium 350 Mhz.
A configurao dos restantes elementos de rede manteve-se. Um computador que gera chamadas
Sip, com recurso aplicao SIPp, por forma a sobrecarregar o PBX Asterisk. Por ltimo, conforme
os testes anteriores, existe ainda um computador que captura todo o trfego na rede. A figura 10
ilustra a configurao de rede utilizada bem como as caractersticas de cada computador

43

Hub 10/100 Mbps
Monitorizao rede - Wireshark
P: 192.168.0.4
10/100 Mbps
Descrio:
ntel Pentium M 1.8 Ghz
1 Gb Ram
Windows Xp profissional
PBX Asterisk v1.4.17
P: 192.168.0.1
10/100 Mbps
Descrio:
PC Normal
Pentium Celeron 2.60 Ghz
768 Mb Ram
Xubuntu 7.10
Linux Kernel 2.6.22
Gerador de chamadas SP
SPp v2.0.1 modo cliente
P: 192.168.0.2
10/100 Mbps
Descrio:
ntel Pentium M 1.7 Ghz
512 Mb Ram
Ubuntu 8.04
Linux Kernel 2.6.24
Figur
a 14. Ilustrao das ligaes de rede e caractersticas dos computadores utilizados nos testes de
avaliao de desempenho para as chamadas IVR.
Configurao do PBX Asterisk:
So necessrias as seguintes configuraes ao nvel do PBX Asterisk, no ficheiro sip.conf e
extension.conf:
sip.conf

; Para que um utilizador consiga efectuar uma chamada IVR
; necessita de utilizar o perfil [sippuac], que contm o
; contexto teste_IVR (context=teste_IVR).

[sippuac]
type=friend
; indica que este perfil pode receber e efectuar chamadas

username=sippuac
host=dynamic

context=teste_IVR
; contexto(seco) no qual pode participar, segundo o ficheiro de
;
configurao extension.conf

dtmfmode=rfc2833
; Especifica o formato que deve ser seguido para o payload dos pacotes
; RTP no caso dos dgitos DTMF (teclas do telefone)

insecure=very
; Indica que este perfil no utiliza autenticao, nem sero
; verificadoso ip e nmero de porto

canreinvite=no
; Por predefinio o PBX Asterisk tenta redireccionar o trfego media
; RTP (udio) para ir directamente do emissor para o receptor.
; alguns dispositivos ou aplicaes VoIP no suportam esta
46

; funcionalidade, como o caso da aplicao sipP

nat=no
; Como os testes apenas sero efectuados numa rede interna, no h
; necessidade de traduo de endereos da rede interna para a rede
; pblica de IP


extension.conf

[teste_IVR]
exten => 2000,1,Answer()
; Atende a chamada em linha para a extenso 2000

exten => 2000,2,Background(/etc/asterisk/sounds/main-menu)
; A funo Background reproduz uma gravao udio
; udio main menu: Main menu

exten => 2000,3,Background(/etc/asterisk/sounds/dictate/forhelp)
; udio forhelp: Press zero for help

exten => 2000,4,Background(/etc/asterisk/sounds/to-hear-your-account-
balance)
; udio to-hear-your-account-balance: To hear your account balance

exten => 2000,5,Background(/etc/asterisk/sounds/press-1)
; udio press-1: Press one

exten => 2000,6,Background(/etc/asterisk/sounds/silence/1)
; reproduo de um segundo em silncio

exten => 2000,7,Goto(2)
; Se entretanto no foi digitado nenhum tom DTMF, o menu reproduzido
; novamente.

exten => 0,1,Goto(t_help,200,1)
; Redireccionado para a seco [t_help]

NOTA: Na primeira parte do teste utilizou-se 1 dgito para a extenso alvo.

exten => 1,1,Goto(acc_bal,100,1)
; Redireccionado para a seco [acc_bal]

NOTA: Na segunda parte do teste, a extenso alvo tem 5 dgitos.

exten => 54321,1,Goto(acc_bal,100,1)
; Redireccionado para a seco [acc_bal]

exten => i,1,Background(/etc/asterisk/sounds/sorry)
; Qualquer outro tom DTMF apanhado pela extenso i
; udio sorry: were sorry

exten => i,2,Background(/etc/asterisk/sounds/silence/1)
; reproduo de um segundo em silncio

exten => i,3,Goto(2000,2)
; o menu reproduzido novamente a partir do passo 2
47


[acc_bal]
exten => 100,1,Playback(/etc/asterisk/sounds/astcc-balance-of-account-is)
; udio acc_bal: The balance of your account is

exten => 100,2,Hangup()
; A chamada desligada

[t_help]
exten => 200,1,Playback(/etc/asterisk/sounds/helpdesk)
; udio acc_bal: Helpdesk
exten => 200,2,Hangup()
; A chamada desligada

Lstrutura do teste:

Nos testes de carga realizados, a aplicao SIPp est configurada de forma a gerar chamadas SIP.
A figura 15 e 16 ilustram o fluxo de mensagens SIP e RTP, conforme os testes de carga realizados
para as chamadas IVR.
O tempo de pausa, PAUSE[6s] e PAUSE[1,4s], refere-se ao tempo para o qual o gerador de
chamadas est a receber udio RTP do PBX Asterisk, durante 6 segundos e durante 1,4 segundos
respectivamente. O tempo de pausa, PAUSE[0,2s], pretende simular o tempo que seria necessrio
esperar entre a digitao dos tons DTMF. Neste caso 0,2 segundos.


48

Figura 15. Fluxos de mensagens SIP e RTP, para os testes de carga nas chamadas IVR, no caso de
um tom DTMF.

Figura 16. Fluxos de mensagens SIP e RTP, para os testes de carga nas chamadas IVR, no caso de
5 tons DTMF.
Foi possvel configurar o cenrio IVR descrito anteriormente utilizando o wireshark para ajustar a
interaco da aplicao Sipp com o PBX Asterisk de forma a assemelhar-se a uma utilizao real de
um sistema IVR, conforme ilustra a figura 17.
49


Figura 17. Viso global de estatsticas VoIP no Wireshark.

Pretende-se:
1 Testar o nmero mximo de chamadas IVR por segundo que o PBX Asterisk suporta.
2 Comparar o nmero mximo de chamadas IVR por segundo obtidas quando se usa um tom DTMF
e cinco tons DTMF para seleccionar uma opo no menu de voz.
Para avaliar o desempenho do PBX Asterisk ao nvel de nmero de chamadas recebidas e
correctamente tratadas foram utilizados vrios parmetros ao nvel do cliente Sipp, sendo o
parmetro varivel, o nmero de chamadas geradas por segundo. O teste cancelado quando h
retransmisses de mensagens INVITE ou BYE devido a falta de resposta por parte do PBX Asterisk.
A monitorizao do PBX Asterisk e da rede foi efectuada da mesma forma que nas chamadas ponto
a ponto e chamadas em conferncia.

Procedimento:

PC com PBX Asterisk instalado
IP:192.168.0.1

1 Executar PBX Asterisk:
> sudo /usr/sbin/asterisk vc

2 Execuo de um script perl que faz o reset s estatstica apresentadas pelo comando ifconfig e
executa o programa statgrab, escrevendo os resultados obtidos para um ficheiro. Durante a
execuo do teste.


PC com cliente Sipp:
IP:192.168.0.2:

30

3 Executar cliente Sipp, a partir de um script que recebe como parmetros os dados essenciais
como, nmero mximo de chamadas em simultneo, nmero de chamadas geradas por segundo,
durao do teste (em minutos) e o nome do ficheiro .xml que contem o cenrio a utilizar no teste.

PC de captura de trfego:
IP:192.168.0.4:

4- Captura de trfego utilizando o Wireshark.

31

Resultados:
Primeira parte, teste IVR com um tom DTMF:
Foram feitos testes com durao de aproximadamente 3 minutos. Este valor no exacto pois o
cliente SIPP espera que todas as chamadas pendentes terminem (soft exit). A varivel utilizada para
testar a carga do sistema foi o nmero de chamadas por segundo. A primeira parte do teste consistiu
num cenrio IVR simples, onde apenas necessrio utilizar um tom DTMF para seleccionar uma
opo do menu.
Chamadas por segundo
3 6 9 12 15 16 17
Nmero de chamadas efectuadas
539 1078 1619 2159 2699 1878 3059
Chamadas por segundo obtidas
2,873 5,745 8,62 11,489 14,366 15,314 16,281
Pico de chamadas simultneas
obtido
24 48 72 101 122 131 142
Durao do teste (segundos)
187,57 187,57 187,79 187,88 187,85 187,88 187,87
Estatsticas de rede
Bytes Recebidos (MB)
1 2,1 3,1 4,2 5,2 5,6 5,9
Bytes Transmitidos (MB)
44,5 88,9 133.5 178.0 220,5 234,3 247,5
Downlink
0,05 0,09 0,14 0,19 0,24 0,24 0,25
Carga na
rede (Mbit/s)
Uplink
1,99 3,97 5,97 7,95 9,81 9,85 10,46
Estatsticas sobre fluxos de udio de voz RTP
Mdia
3,71 3,84 3,95 4,06 4,05 3,98 3,99
Max.
7,35 7,37 7,74 7,73 7,6 7,68 8,16 Jitter (ms)
Min.
0,17 0,26 0,31 0,58 0,57 0,59 0,74
Mdia
21,76 22,31 23,09 23,49 23,21 23,42 23,37
Max.
28,92 29,89 30,87 32 44,95 35,36 64,25
Latncia
(ms)
Min.
20 20,02 19,64 19,88 20,04 20,04 20,06
Utilizao mdia do sistema
CPU (%)
34,7 62,8 79,4 95,19 95,41 95,06 96,43
PBX Asterisk
Memria RAM (%)
53,51 54 54,55 55,4 48,56 48,95 49,34
1abela 23. LsLaLlsLlcas obLldas para os LesLes lv8 (1 u1Ml) no C normal.
32

Segunda parte, teste IVR com cinco tons DTMF:
Na segunda parte do teste ao cenrio IVR, o ficheiro extensions.conf do Asterisk foi modificado, de
forma que o comprimento da extenso necessria para alcanar a opo do menu desejada passe a
ser de 5 dgitos DTMF (54321) em vez de 1 dgito DTMF (1).
PBX Asterisk em PC normal:
No PC Normal, o mximo de chamadas simultneas atingidas (at se obter retransmisses de
mensagens SIP no cliente Sipp) foi 14, sendo que como seria de esperar houve um ligeiro aumento
no trfego da rede, no sentido cliente Sipp para o PBX Asterisk, pois para cada chamada so
necessrios mais 4 tons DTMF, sendo que cada tom DTMF constitudo por 10 pacotes, valor obtido
nas estatsticas VoIP do Wireshark.
Nas tabelas 24 so apresentadas as obtidas estatsticas para este teste.

Chamadas por segundo 3 6 9 12 13 14
Nmero de chamadas efectuadas 539 1079 1619 2159 2339 2519
Chamadas por segundo obtidas 2,856 5,712 8,568 11,424 12,376 13,321
Pico de chamadas simultneas obtido 28 55 86 118 123 147
Durao do teste (segundos) 188,69 188,86 188,92 188,96 188,96 189,07
Estatsticas de rede
Bytes Recebidos (MB) 2,3 4,5 6,8 9,1 9,9 10,7
Bytes Transmitidos (MB) 46,2 92,5 138,9 184,5 199,6 213,1
Downlink 0,10 0,20 0,31 0,41 0,44 0,48 Carga na
rede (Mbit/s)
Uplink 2,06 4,11 6,17 8,19 8,86 9,46
Estatsticas sobre fluxos de udio de voz RTP
Mdia
65,22 64,9 66,27 24,89 65,74 66,13
Max.
143,75 143,73 144,73 145,48 145,03 147,52 Jitter (ms)
Min.
0,21 0,11 0,38 0,36 0,21 0,57
Mdia
22,79 22,63 24,01 24,89 24,46 24,3
Max.
28,86 30,72 33,02 35,84 36,68 41,57
Latncia
(ms)
Min.
20,02 18,5 20 20 20,01 19,53
Utilizao do sistema
CPU (%) 40,29 74,38 87,7 92,82 95,98 96,51
PBX Asterisk
Memria RAM (%) 54,9 55,98 56 57,4 57,94 58,33
Tabela 24. Estatsticas obtidas para os testes IVR (5 DTMF) no PC Normal.
33

Comparao de resultados obtidos

Grfico 7. Percentagem de utilizao do CPU em funo do nmero de chamadas por segundo
geradas.

Anlise dos resultados obtidos

Pela anlise da tabela 23 e 24 e do grfico 7, possvel verificar que o teste de carga feito ao
cenrio IVR em que se utiliza apenas um tom DTMF para seleccionar uma opo no menu permite
mais 3 chamadas por segundo do que o cenrio que se utilizam 5 tons DTMF. Este facto deve-se a
facto de o processamento de 1 tom DTMF ser menor do que colectar os 5 tons DTMF e interpretar,
fazendo com que se atinja o limite mais cedo do PBX Asterisk.
Os valores de na ordem dos 100 ms encontrados na tabela 25 foram encontrados na transmisso
dos tons DTMF, fazendo com que a mdia do Jitter suba. No entanto, os resultados para o jitter e
latncia obtidos na tabela 23 e 24 so bastante satisfatrios e aceitveis para VoIP, conforme
explicado na anlise de resultados para as chamadas ponto a ponto.
34

6.4 Anlise global de resultados

Como resumo dos 3 cenrios de teste efectuados, temos que para um computador com um
processador Pentium Celerom 2.6 GHz, 768 MB Ram, interface de rede Ethernet 10/100 Mbps:
125,130,130 e 145 chamadas simultneas utilizando os codecs g711a, speex, gsm, ilbc
respectivamente, no caso de chamadas ponto a ponto.
50, 35, 20, 20, 25, 15 e 15 chamadas simultneas quando o emissor e receptor utilizam codecs
distintos, g711a<->gsm , g711a<->ilbc, g711a<->speex, gsm<-> ilbc, gsm<->speex, ilbc<->speex
respectivamente, no caso de chamadas ponto a ponto.
Para estes valores, o tempo de resposta do PBX Asterisk s mensagens de sinalizao SIP foi
menor que 100 milisegundos para 90% das chamadas.
Quando existe uma chamada em conferncia a decorrer o PBX Asterisk suporta numa sala de
conferncia, 90, 50, 30, 20 chamadas simultneas consoante o codec, g711a, gsm, speex, ilbc
respectivamente.
Para 4 chamadas em conferncia simultneas, o nmero de chamadas possveis de efectuar em
simultneo em cada sala de 15, 10, 5, 5, consoante o codec, g711a, gsm, speex, ilbc
respectivamente.
Um sistema IVR instalado no PBX Asterisk suporta 17 chamadas por segundo caso a opo a
seleccionar seja apenas constituda por um tom DTMF.
Um sistema IVR instalado no PBX Asterisk suporta 14 chamadas por segundo caso a opo a
seleccionar seja constituda por cinco tons DTMF.
Para um computador com um processador Pentium II 350 GHz, 128 MB Ram, interface de rede
ethernet 10/100 Mbps:
55, 55, 55 e 65 chamadas simultneas utilizando os codecs g711a, speex, gsm, ilbc
respectivamente, no caso de chamadas ponto a ponto.

33

7. Concluso e trabalhos futuros

Atravs da realizao destes testes possvel ter uma noo do potencial que o PBX Asterisk
apresenta enquanto PBX VoIP.
O principal factor a ter em conta no que diz respeito s chamadas VoIP perceber que percentagem
de trfego ir requerer processamento intensivo devido a codecs com grande
compresso/complexidade, no caso dos testes de desempenho realizados, os codecs gsm, speex e
ilbc. Um CPU a 2.6 GHz suporta 125 chamadas G.711 sem transcodificao, valor que pode subir
para 145 para codecs que requeiram menor largura de banda, no caso o codec ilbc. Se houver
transcodificao, o processamento no PBX Asterisk aumenta significativamente e o nmero de
chamadas suportadas so 50 no caso de os codecs a transcodificar sejam G711 para Gsm, baixando
para 15 no caso de se transcodificar udio numa chamada com ilbc e speex, dois codecs com baixas
taxas de transferncia de bits, o que implica maior processamento para comprimir o udio. Se houver
uma conferncia, o nmero de chamadas G.711 suportadas desce para 90, descendo para 20
quando se utiliza o codec speex que requer menor largura de banda, mas obriga a maior
processamento. Caso surja uma outra conferncia paralelamente, o nmero de chamadas G.711
suportadas em cada conferncia 40 e 10 para speex. Este nmero decresce se mais conferncias
surgirem, atendendo a que cada conferncia exige algum processamento prprio. Quando o PBX
Asterisk dispe de servios IVR, possvel aceitar 17 novas chamadas G.711 por segundo num caso
em que apenas necessrio 1 tom DTMF para seleccionar uma opo. No caso de serem
necessrios 5 tons DTMF para seleccionar uma opo, o nmero de novas chamadas por segundo
decresce para 14. No caso de um computador limitado com um CPU a 350 MHz, temos que so
suportadas 55 chamadas G.711 e para um codec que requer menor largura de banda, ilbc, obtemos
65 chamadas.
O nmero mximo de chamadas suportadas pelo sistema suportar est assim fortemente
dependente dos codecs que so utilizados.
Com a tecnologia existente actualmente, computadores com maior poder de processamento (CPUs
com 2 e 4 ncleos), os valores encontrados so facilmente ultrapassados, uma vez que o recurso de
sistema mais solicitado o processador.
Sendo o PBX Asterisk um sofware open source, com grande aceitao, existe uma grande
comunidade de utilizadores e variados testemunhos de implementaes concretas de sistemas
Asterisk que podem ser encontrados na Internet. Contribuindo para o aumento da documentao
existente e para a correco de eventuais bugs existentes na aplicao, bem como o
desenvolvimento de novos mdulos para incrementar funcionalidades, como exemplo, mdulos que
permitem monitorizar o que acontece no PBX Asterisk via interface Web, mdulo que permite a
criao de um plano de chamadas (dialplan) graficamente de forma simples, arrastando icons.
Um ponto importante que no focado nesta dissertao o Mean Opinion Score (MOS) medir a
qualidade de voz, nos diferentes pontos de carga do sistema. Este um tpico bom para trabalho
futuro. Outro tpico de interesse que no foi testado devido s caractersticas da aplicao SIPp,
analisar o desempenho para chamadas ponto a ponto em que o udio enviado directamente entre
os telefones, permitindo reduzir a carga no PBX Asterisk, isto quando no for necessria
transcodificao.
36

Integrando o PBX Asterisk com o SER [21], ter interesse a anlise de desempenho do Asterisk
tendo o SER para processamento da sinalizao. No caso de existir mais do que um servidor
Asterisk, a integrao com o SER tambm interessante pois permite, gerir o balanceamento de
carga, permitindo criar um sistema redundante e encarrega-se de efectuar os registos SIP de forma
escalvel.
Como complemento pode ainda ser realizada a ligao do PBX Asterisk a um operador VoIP sobre
internet de banda larga, que permita chamadas para a rede de telefones pblica. E verificar o
desempenho do PBX para chamadas externas, para alm das chamadas internas testadas nesta
dissertao. Bem como analisar o desempenho para outros cenrios alm dos trs aqui abordados.
37

Referncias
1. Switching to VoIP, Theodore Wallingford, OReilly, 30/06/2005
2. SIP: Session Initiation Protocol, J. Rosenberg, H. Schulzrinne, G. Camarillo, A. Johnston, J.
Peterson, R. Sparks, M. Handley, E. Schooler. IETF RFC 3261, Junho de 2002,
http://www.faqs.org/rfcs/rfc3261.html
3. SDP: Session Description Protocol, M. Handley, V. Jacobson, C. Perkins, IETF RFC 4566, Julho
de 2006, http://www.faqs.org/rfcs/rfc4566.html
4. RTP: A Transport Protocol for Real-Time Applications. H. Schulzrinne, S. Casner, R. Frederick, V.
Jacobson. IETF RFC 3550. Julho de 2003., http://www.faqs.org/rfcs/rfc3550.html
5. Asterisk: The Future of Telephony, Jared Smith, Jim Van Meggelen, Leif Madsen, OReilly, 2005
6. Multimedia Communication: Directions and Innovation, Jerry D. Gibson, Academic Press, Outubro
de 2000
7. Voice over IP Fundamentals, Jonathan Davidson, James Peters, Manoj Bhatia, Satish Kalidindi,
Sudipto Mukherjee, Cisco Press, Agosto de 2006
8. Building Telephony Systems with Asterisk, D Gomillion, B Dempster, Packt Publishing, 30/09/2005
9. VOIP Wiki - a reference guide to all things VOIP, http://www.voip-info.org/wiki-Asterisk
10. Homepage Asterisk - http://www.asterisk.org
12. Netwebs Asterisk Guide for Newbies, http://www.iareaphone.com/Downloads/Asterisk_config.pdf
13. The Asterisk handbook version 2, www.digium.com, 2003
14. Tcpdump - www.tcpdump.org
15. Tcptrace - http://jarok.cs.ohiou.edu/software/tcptrace
16. Wireshark - http://www.wireshark.org
17. Sean Walberg, Expose VoIP Problems Using Wireshark, Linux Jornal, 01/03/2007,
18. Sipp - http://sipp.sourceforge.net
19. Network Troubleshooting Tools, Joseph D. Sloan, O'Reilly, 2001
20. Mgen - http://cs.itd.nrl.navy.mil/work/mgen/index.php
21. SER - http://www.iptel.org/ser.
22. One-way transmission time. ITU-T Recommendation G.114, Maio de 2003.
23. Zaptel (Zapata Telephony) - http://www.voip-info.org/wiki/view/Zaptel
24. Asterisk timer ztdummy - http://www.voip-info.org/wiki-Asterisk+timer+ztdummy