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.
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.
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.
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] ;
; 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.
; 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:
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
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.
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