Curso de Engenharia de Computação CONTROLADOR DE SESSÕES SIP PARA REDES DE TERCEIRA GERAÇÃO USANDO ASTERISK Márcio Aikawa Furuzawa Campinas – São Paulo – Brasil Dezembro de 2008 Curso de Engenharia de Computação CONTROLADOR DE SESSÕES SIP PARA REDES DE TERCEIRA GERAÇÃO USANDO ASTERISK Márcio Aikawa Furuzawa Monografia apresentada à disciplina de Trabalho de Conclusão do Curso de Engenharia de Computação da Universidade São Francisco, sob a orientação do Prof. Carlos Eduardo Pagani, como exigência parcial para conclusão do curso de graduação. Orientador: Prof. Carlos Eduardo Pagani Campinas – São Paulo – Brasil Dezembro de 2008 AIKAWA, Márcio Furuzawa. Controladores de Sessões SIP para Redes de Terceira Geração usando Asterisk. Monografia defendida e aprovada em 12 de Dezembro de 2008 pela Banca Examinadora assim constituída pelos professores: Prof. Carlos Eduardo Pagani (Orientador) USF – Universidade São Francisco – Campinas – SP. Prof. Carlos Eduardo Câmara USF – Universidade São Francisco – Campinas – SP. Prof. Sidney Pio de Campos USF – Universidade São Francisco – Campinas – SP. à meus amados pais, Lucília e Fernando, pelos sacrifícios que fizeram educação e formação. em prol da minha Agradecimentos Agradeço a minha família, que me apoiou e me deu condições e incentivou para concluir mais esta etapa da vida. Ao meu orientador, Prof. Carlos Eduardo Pagani, que acreditou e me orientou com profissionalismo para realizar este trabalho. Finalizo agradecendo a todos que, de alguma forma direta ou indireta me ajudaram a concluir mais essa etapa da vida. v Sumário Lista de Siglas ....................................................................................................................................... viii Lista de Siglas ....................................................................................................................................... viii Lista de Figura ..........................................................................................................................................x Resumo.....................................................................................................................................................x Abstract....................................................................................................................................................xi 1 Introdução......................................................................................................................................... 1 1.1 Definição do problema a ser tratado ......................................................................................... 2 1.2 Estrutura do Texto..................................................................................................................... 3 2 PROTOCOLO................................................................................................................................... 3 2.1 Entidades de rede SIP .............................................................................................................. 4 2.2 Estabelecimento de chamada SIP ............................................................................................ 5 2.3 Vantagens SIP sobre outros protocolos de sinalização............................................................ 5 2.4 Sintaxe mensagem SIP............................................................................................................. 6 2.5 Pedido SIP ................................................................................................................................ 7 2.6 Respostas SIP........................................................................................................................... 7 2.7 Endereçamento SIP .................................................................................................................. 8 2.8 Seqüência da Mensagem SIP................................................................................................... 8 3 Arquitetura IMS............................................................................................................................... 10 3.1 QoS para serviços multimídia ................................................................................................. 11 3.2 Política IP – Uso correto dos recursos.................................................................................... 12 3.3 Componentes da Arquitetura IMS........................................................................................... 12 3.4 O HSS e o SLF........................................................................................................................ 13 3.5 O CSCF ................................................................................................................................... 14 3.5.1 O P-CSCF ........................................................................................................................ 14 3.5.2 O I-CSCF ......................................................................................................................... 14 3.5.3 O S-CSCF ........................................................................................................................ 15 3.6 O AS ........................................................................................................................................ 16 3.7 O MRF ..................................................................................................................................... 16 3.8 O BGCF................................................................................................................................... 16 3.9 O PSTN/CS Gateway.............................................................................................................. 16 3.10 SGW ........................................................................................................................................ 17 3.11 MGCF ...................................................................................................................................... 17 3.12 MGW ....................................................................................................................................... 17 3.13 Registro/Autenticação ............................................................................................................. 17 3.14 Acesso Seguro – IPsec ASs ................................................................................................... 19 3.15 Estabelecimento de uma sessão ............................................................................................ 21 3.16 Serviços................................................................................................................................... 22 3.17 Estudo ..................................................................................................................................... 23 4 ASTERISK ...................................................................................................................................... 24 4.1 Requisitos................................................................................................................................ 24 4.2 Configuração SIP .................................................................................................................... 24 4.2.1 SIP.CONF ........................................................................................................................ 25 4.3 Configuração do Plano de discagem ...................................................................................... 26 vi 4.3.1 Contexto........................................................................................................................... 26 4.3.2 Extensões ........................................................................................................................ 26 4.3.3 Prioridades ....................................................................................................................... 27 4.3.4 Aplicação.......................................................................................................................... 27 4.4 O Gateway de Interface do Asterisk (AGI).............................................................................. 28 4.4.1 Fundamentos da Comunicação AGI................................................................................ 28 4.4.2 O modelo de comunicação AGI ....................................................................................... 28 4.4.3 Chamando um script AGI do Plano de discagem............................................................ 29 4.5 Estudo ..................................................................................................................................... 29 5 TESTE / ANÁLISE.......................................................................................................................... 30 5.1 Ambiente de Teste com Asterisk ............................................................................................ 30 5.1.1 – Configuração de Serviço............................................................................................... 31 5.1.2 – Resultados .................................................................................................................... 32 5.2 Ambiente de Teste com SDS.................................................................................................. 37 5.3 Análise..................................................................................................................................... 43 5.3.1 Semelhanças ................................................................................................................... 43 5.3.1.1 Registro..................................................................................................................... 44 5.3.1.2 Início de Sessão ....................................................................................................... 44 5.3.1.3 Encerramento de Sessão ......................................................................................... 44 5.3.2 Diferenças ........................................................................................................................ 44 5.3.2.1 Registro..................................................................................................................... 44 5.3.2.2 Serviços .................................................................................................................... 44 5.4 Proposta de Mudanças ........................................................................................................... 45 6 Conclusão....................................................................................................................................... 46 6.1 Contribuições .......................................................................................................................... 47 6.2 Trabalhos futuros .................................................................................................................... 47 Anexo A – Sip.conf ................................................................................................................................ 48 Anexo B - Extensions.conf..................................................................................................................... 49 Anexo C – Script PHP ativa_servico.agi ............................................................................................... 50 Anexo D – Script PHP valida_servico.agi.............................................................................................. 51 Anexo E – Teste de Resultado do Wireshark...................................................................................52 Anexo F – Log do Wireshark.................................................................................................................54 Referências Bibliográficas ..................................................................................................................... 73 vii Lista de Siglas 3GPP 3rd Generation Partnership Project ADSL Asynchronous Digital Subscriber Line AGI Asterisk Gateway interface AKA Authentication and Key Agreement ANSI American National Standards Institute AS Applications Servers AV Authentication Vector B2BUA Back-to-Back User Agent BGCF Breakout Gateway Control Functions CK Ciphering Key CSCF Call/Session Control Functions ETSI European Telecommunications Standards Institute GSM Global System for Mobile Communications GPRS General Packet Radio Service HSS Home Subscriber Servers I-CSCF Interrogating- Call/Session Control Functions IETF Internet Engineering Task Force IK Integrity Key IMS IP Multimedia Subsystem IP Internet Protocol IPsec SAs Internet Protocol security Security Associations ITU International Telecommunication Union MGCF Media Gateway Controller Function MGW Media Gateway MRF Media Resource Functions MRFC Media Resource Function Controllers MRFP Media Resource Function Processors OMA Open Mobile Alliance PDA Personal Digitals Assistants P-CSCF Proxy- Call/Session Control Functions PSTN Public Switched Telephone Network RTP Real Time Protocol S-CSCF Serving- Call/Session Control Functions SDS Service Development Studio SGW Signaling Gateway SIP Session Initiation Protocol SLF Subscriber Locations Functions viii THIG Topology Hiding Inter-network Gateway UE User Equipment URI Uniform Resource Identifier VoIP Voice over IP WLAN Wireless Local Area Network ix Lista de Figura Figura 1: Controle sessão SIP - Modelo de teste ...................................................................................2 Figura 2.1: Separação lógica da sessão de mídia e o sinal SIP ............................................................4 Figura 2.2: Exemplo de um fluxo de chamada[3] ...................................................................................5 Figura 2.3: seqüência de pedido SIP(estabelecimento e encerramento de uma chamada) [3] ............9 Figura 3.1: uma visão da arquitetura IMS [6] .......................................................................................12 Figura 3.2: um exemplo do BGCF e um gateway PSTN que faz interface com a rede PSTN [6] .......17 Figura 3.3: Fluxo de Autenticação e Registro no IMS ..........................................................................18 Figura 3.4: Estabelecimento de AS durante um registro inicial ............................................................20 Figura 3.5: Estabelecimento de sessão na Arquitetura IMS .................................................................21 Figura 3.6: Exemplo de solicitação e execução de serviço ..................................................................23 Figura 5.1: Comunicação entre dois usuários usando Asterisk ...........................................................31 Figura 5.2: Fluxo da execução de script AGI .......................................................................................32 Figura 5.3 : Pacotes UDP capturados no registro dos usuários e no início de uma sessão SIP .........33 Figura 5.4: pacotes capturados após uma sessão SIP ter iniciado ......................................................34 Figura 5.5: fluxo de uma sessão entre dois usuários .......................................................................... 35 Figura 5.6: Tela inicial de instalação SDS ............................................................................................37 Figura 5.7: Caminho para iniciar o Provisioning ...................................................................................38 Figura 5.8: Tela configuração de DNS .. ..............................................................................................38 Figura 5.9: Tela de criação do Profile do usuário .................................................................................39 Figura 5.10: Tela de cadastro de serviços ............................................................................................39 Figura 5.11: Comunicação entre dois usuários usando arquitetura IMS ..............................................40 Figura 5.12: Caminho para iniciar o “Start Test Agent” .......................................................................40 Figura 5.13: Construção de um pedido REGISTER no SDS ...............................................................41 Figura 5.14: Envio do pedido REGISTER e retorno de resposta 200 OK.............................................41 Figura 5.15: fluxo de pedidos e respostas SIP usando IMS .................................................................42 Figura 5.16: Fluxograma simples do processo com o Script Java........................................................45 x Resumo O objetivo desta monografia é testar e analisar o comportamento do software Asterisk para verificar e propor alterações para que esta possa executar as funções que um controlador de sessões para redes de 3G. A rede 3G possibilita o usuário a acessar todos os serviços que a Internet oferece, via celular. O elemento chave de algumas redes 3G é a arquitetura IMS (IP Multimedia Subsystem). O protocolo SIP é usado na arquitetura IMS para o controle de sessões multimídia. Para o estudo e análise é mostrado a arquitetura IMS e seus principais componentes, o funcionamento do protocolo SIP, o software Asterisk e a análise dos resultados obtidos nos testes. PALAVRAS-CHAVE: IMS, SIP e Asterisk. Abstract The objective of this monograph is to test and to analyze if it is possible to control SIP sessions in Third Generation (3G) networks using the Asterisk software. The 3G network makes possible the user access all services that the internet provides, by cellphone. The key element of the 3G network is an IMS (IP Multimedia Subsystem) architecture. The SIP protocol is used in the architecture IMS to control multimedia session. For the study and analysis, it is showed the IMS architecture and their main components, the SIP functioning, the Asterisk software and the results gotten in the test. KEY WORDS: IMS, SIP and Asterisk. xi 1 INTRODUÇÃO Hoje, a maioria das redes de comunicação operam no modo comutado por circuito. Há tempo vem se estudando a evolução e a migração destas redes para comutação de pacotes com suporte a tráfego multimídia. Estas são freqüentemente chamadas de “NGN” (New Generation Network ou Redes Convergentes), ou referidas como suporte à aplicação VoIP (Voice over IP). Entretanto é necessário atentar a alguns requisitos, como: suporte a serviços sofisticados de multimídia, conexão orientada a sessão, rede orientada a pacote com convergência de voz e dados, mobilidade sem restrições, convergência fixo/móvel de serviço e operação da rede, interface aberta para todos os elementos, base de dados para simplificar operação, e suporte aos assinantes e serviços legados. [1] A convergência permite aplicações do tipo telefonia via IP acessar a web através de telefones móveis. O canal nestas redes podem oferecer uma gama de serviços diferenciados e unificados em tempo real, combinar voz, dados e vídeos,independentes do dispositivo utilizado. A arquitetura IMS (IP Multimedia SubSystem) é a resposta para estes requisitos. Esta arquitetura da rede é desenvolvida pelo 3GPP/3GPP2, e padronizado pelos órgãos (ITU / ANSI / ETSI /OMA / IETF). [1] O maior benefício da arquitetura IMS é a disponibilidade de serviços sofisticados para os assinantes. As redes atuais já disponibilizam serviços de valor agregado para os assinantes, com algumas limitações: baixa interação entre plataformas de serviços, e baixa eficiência na administração de bases de dados. [1] A arquitetura IMS fornece uma forma eficiente de implementar novos serviços sofisticados. Por exemplo, o HSS (Home Subscriber System) onde são armazenados dados dos clientes, pode ser acessado através de protocolos abertos pelas plataformas de serviços. Um outro exemplo são serviços que podem ser executados simultaneamente numa mesma sessão. A arquitetura IMS possui o mecanismo de autenticação dos usuários no IMS para a reserva de recurso, e também possui mais mecanismos de controle de QoS, aumentando a segurança. A arquitetura IMS foi desenvolvida para aplicações em redes móveis 3G, mas ultimamente as redes fixas vêm mostrando um grande interesse nesta arquitetura. 1 Esta é vista como o caminho adequado para implementação de redes de nova geração. O software Asterisk [2] de código aberto (Softwares disponibilizados gratuitamente com o seu código fonte, permitindo alterações de acordo com a necessidade do usuário) inicialmente concebido como um software PBX (Private Branch eXchange) sobre IP, ao longo de suas melhorias e desenvolvimento foi se tornando uma poderosa máquina servidora SIP, por permitir integrar qualquer hardware ou software de telefonia a outras aplicações com extrema facilidade. A idéia desse estudo é testar e analisar a possibilidade do software Asterisk atuar como um controlador de sessão SIP da arquitetura IMS. Com a análise final propor alterações no comportamento do Asterisk, como mostra a Figura 1. Figura 1: Controle sessão SIP - Modelo de teste 1.1 Definição do problema a ser tratado O principal objetivo desta monografia é sugerir o software Asterisk como um controlador de sessão na arquitetura IMS, conforme a Figura 1, onde o comportamento do Asterisk precisa ser igual ao do componente S-CSCF (ServingCall/Session Control Function) da arquitetura IMS. Para isso, é apresentado o protocolo SIP usado no envio de pedidos e respostas, a arquitetura IMS e seus principais componentes, o software Asterisk e por final o resultado da comparação de sessões SIP na arquitetura IMS com as sessões no Asterisk. 2 1.2 Estrutura do Texto No Capítulo 2 é apresentado o protocolo SIP, no Capítulo 3 é apresentada a arquitetura IMS, no Capítulo 4 é apresentado o software Asterisk, no Capítulo 5 são apresentados os ambientes de testes, testes e análises e no Capítulo 6: são apresentadas as Conclusões e proposta para trabalhos futuros. 2 PROTOCOLO “Esta sessão tem como referência o livro do autor COLLINS, Daniel [Carrier Grade Voice Over IP – 2a. edição] [3]”. O SIP é considerado como uma solução simples, flexível, fácil de se implementar, pode suportar dispositivos inteligentes, e é adequado para implementações futuras, produtos e serviços podem ser desenvolvidos e disponibilizados rapidamente. O SIP é considerado uma alternativa ao protocolo H.323, hoje utilizado em telefonia VoIP. O protocolo H.323 que foi criado pelo ITU-T (International Telecommunication Union - Telecommunication Standardization Sector) e disponibilizado em 1996 é um protocolo de sinalização usado para o estabelecimento, controle e término de chamadas em redes comutadas por pacotes. Além disso, é usado para estabelecer padrões de codificação e decodificação em fluxo de dados de áudio e vídeo em tempo real, garantindo a interoperabilidade. O H.323 é um protocolo mais antigo e complexo, se comparado com o protocolo SIP. [2] O protocolo SIP foi proposto pela IETF (Internet Engineering Task Force), com a função de gerenciar, configurar, iniciar e encerrar sessões multimídia. Este protocolo foi projetado para trabalhar juntamente com outras aplicações já existentes, e também para operar em conjunto com outros protocolos IETF para descrever as características de sessões dos participantes. O protocolo SIP pode também operar com protocolos de transporte de mídia, por exemplo, o RTP (Real-Time Transport Protocol). Assim, numa sessão SIP, deve ser considerado que a sinalização SIP trafega separadamente da sessão mídia. Esta separação lógica mostrada na Figura 2.1 é importante porque o sinal pode chegar ao destino passando por um ou mais proxies enquanto que o fluxo de mídia pode pegar um caminho mais direto. [3] 3 Figura 2.1: Separação lógica da sessão de mídia e o sinal SIP 2.1 Entidades de rede SIP SIP é um protocolo cliente-servidor, chamadas VoIP usando SIP são gerados pelo cliente e terminado em um servidor. Exemplo: um aplicativo cliente emite pedido SIP, e um servidor emite uma resposta a esse pedido. Existem quatro tipos de servidor: servidor proxy, servidor de redirecionamento, servidor de agente de usuário e o servidor de registro. A funcionalidade do servidor proxy é igual à de um servidor proxy usado para web em redes locais (LAN), primeiro o cliente envia o pedido para o proxy, este encaminha o pedido para outros servidores através de mensagens. Um servidor de redirecionamento que suporta pedido SIP possui o mecanismo de mapear o endereço de destino com os outros endereços da rede. Depois de efetuado o mapeamento, um endereço é retornado ao destinatário. Com isso o destinatário pode enviar pedido nesse novo endereço. Um servidor de agente de usuário aceita pedidos SIP. O dispositivo SIP pode funcionar como cliente usuário-agente ou servidor usuário-agente. Agindo como cliente usuário-agente, este pode fazer um pedido SIP. Agindo como servidor usuário-agente, este pode receber e responder pedidos SIP. Na prática isto significa que o dispositivo SIP pode iniciar ou receber chamadas, e também pode ser usado para comunicação peer-to-peer. SIP tem o conceito de registro de usuário, com isso SIP suporta mobilidade pessoal. Por exemplo, um usuário que possui um computador com um dispositivo SIP instalado, ao conectar o computador na rede, este emite um pedido SIP REGISTER para um registrador. Com isso chamadas poderão ser roteadas para o computador registrado na rede. Quando é feita a troca de ambiente do computador é necessário que um novo registro de dispositivo seja efetuado. 4 2.2 Estabelecimento de chamada SIP O estabelecimento de chamada SIP mostrado na Figura 2.2, se inicia com a mensagem SIP INVITE, a qual é enviada do emissor até o destinatário. Esta mensagem convida o destinatário a participar de uma sessão. Depois da mensagem SIP INVITE ter iniciado uma chamada, várias respostas intercalares podem ser feitas antes do destinatário aceitar a chamada. Por exemplo, o emissor precisa manter-se informado do status da chamada, se a chamada se encontra na fila ou se o destinatário ainda não atendeu a chamada. Subseqüentemente, o destinatário responde a chamada, que gera uma resposta OK para o emissor. O emissor então, envia uma mensagem de ACK de reconhecimento para o destinatário. Após isso a mídia é trocada, a troca mais comum é para uma mídia de discurso, mas também pode ser trocado por um de vídeo. No final do discurso, ambos, o emissor ou o destinatário podem enviar uma mensagem de BYE, a parte que receber o BYE emite uma outra mensagem de OK, neste momento, a chamada é finalizada. Figura 2.2: Exemplo de um fluxo de chamada[3] 2.3 Vantagens SIP sobre outros protocolos de sinalização O estabelecimento e a liberação de chamadas são pontos fortes do protocolo SIP. Qualquer protocolo de sinalização de chamada possui um meio onde é feita a aceitação e a liberação de uma chamada. O fato de poder existir trocas de meio de comunicação ou a troca do tipo de transporte durante uma sessão SIP, deixa claro que o SIP provê mais flexibilidade do que as telefonias tradicionais. [3] Mensagens SIP podem conter campos específicos de usuários, que possibilitam ao usuário executar decisões inteligentes no tratamento de mensagens e possibilitam também a implementação de futuros serviços inteligentes. Por exemplo, 5 suponha que uma chamada é direcionada para uma pessoa que não está presente. O SIP RESPONSE irá indicar que o usuário está indisponível. Neste caso o terminal poderá fazer duas coisas. Primeiro: o terminal pode responder que o destinatário estará disponível somente às 16h. Segundo: após 16h o terminal perguntará se o remetente deseja efetuar a chamada novamente, dependendo da resposta, a chamada é efetuada automaticamente.[3] 2.4 Sintaxe mensagem SIP SIP é um protocolo de sinalização que tem a sintaxe baseada em texto, usa um conjunto de caractere International for Standardization Organization (ISO 10646) e tem uma similaridade com o Hypertext Transfer Protocol (HTTP). A vantagem dessa similaridade é que programas projetados para usar o HTTP pode ser adaptado facilmente para ser usado com SIP. A desvantagem é a largura de banda consumida. [3] As respostas do servidor para o cliente e o pedido do cliente para o servidor que usam as mensagens SIP, possuem um cabeçalho e o corpo da mensagem. No cabeçalho da mensagem há informações do usuário como: criador da mensagem, receptor da mensagem, informações do meio a ser carregado, tipo de pedido ou sucesso/falha e as informações adicionais. [3] No corpo da mensagem geralmente é descrito o tipo de sessão a ser estabelecida e uma descrição da mídia a ser trocada. SIP não define uma estrutura para o corpo da mensagem. A estrutura é obtida usando os protocolos disponíveis. A estrutura mais comum para o corpo da mensagem é o Session Description Protocol (SDP). De fato o corpo da mensagem pode conter diversas partes, cada uma codificada para diferentes estruturas. [3] Em algumas situações, esta capacidade pode ser usada para carregar uma mensagem ISDN User Part (ISUP) no formato binário, habilitando o SIP a carregar mensagens ISUP. SIP faz apenas o envio do corpo da mensagem de uma ponta a outra. No caso de haver a necessidade de examinar o corpo da mensagem, apenas as duas pontas estão habilitadas a executar esse papel. [3] 6 2.5 Pedido SIP Existem seis métodos diferentes de pedido definido pela RFC 3261: Invite (definido pela RFC 4235), Ack , Options, Bye, Cancel, e Register (definido pela RFC 3608). SIP define outros três métodos de pedido, como Info (definido pela RFC 2976), Refer (definido pela RFC 3515) e Update (definido pela RFC 3311). O método Invite é usado para iniciar uma sessão de chamada entre duas partes ou iniciar uma conference call. A mensagem criada por esse método, contém informações do remetente, do destinatário e o tipo de mídia a ser trocada. [3] O método ACK é usado para confirmar o recebimento de uma mensagem. [3] O método Bye pode ser usado para encerrar uma sessão. [3] O método Options pode ser usado para determinar se o usuário suporta um tipo de mídia específico. Em outras palavras, esse método pode ser usado para descobrir a capacidade do usuário. [3] O método Cancel pode ser usado para cancelar um pedido que se encontra pendente. Por exemplo, um Invite a espera de um ACK. [3] O método Register é usado para o registro de usuários em servidores SIP, facilitando a sua localização. [3] Um cliente pode ter seu registro em vários servidores e um usuário pode possuir múltiplos registros em um único servidor. Um usuário que possui múltiplos registros para um único número, pode receber uma chamada através de todos os destinos cadastrados. [3] O método SIP Info significa a transferência de informação no meio de uma chamada. Essa informação pode ser usada pelo usuário cliente, usuário servidor e pelo proxy. [3] 2.6 Respostas SIP O início de uma resposta SIP contém uma linha de status representado por 3 dígitos, esta linha indica o resultado da resposta de um pedido. Nesta linha também contêm um texto de resposta que é interpretado e lido pelo software cliente. O intervalo de numeração definido para representar o status no SIP é de 100 a 699, onde o primeiro dígito representa a classe de resposta. - 1XX – provisório (por exemplo, o status 181 indica que uma chamada está sendo enviada) 7 - 2XX – Sucesso (indica que um pedido foi aceito e executado) - 3XX – redirecionamento (um exemplo, é quando uma parte chamada não se encontra no endereço especificado no pedido e este endereço precisa ser editado para um novo endereço incluído na resposta) - 4XX – Falha (pode indicar que um pedido não foi aceito por causa da autorização, endereço não encontrado, a necessidade da autorização, entre outros) - 5XX – Falha no servidor (pode indicar que a versão do SIP não é suportada, mensagem muito grande, problema interno no servidor, tempo excedido, entre outros) - 6XX – Problema global (pode indicar que um usuário não existe, todos os lugares estão ocupados, e queda de uma rede) 2.7 Endereçamento SIP No SIP o endereço de pedido e resposta são conhecidos como SIP Uniform Resource Indicators (URIs). Esses endereços são similares com endereços de email, tem a forma de sip:user@host . Para que a rede SIP opere com a rede tradicional de telefonia (comutada por circuito), o SIP habilita a possibilidade de um número telefônico ser um endereço SIP. Assim, o endereço SIP pode ficar sip: [email protected]. O endereço SIP pode ser usado para criar um canal de comunicação a ser roteado entre um gateway e a telefonia fixa. [3] 2.8 Seqüência da Mensagem SIP Primeiro é feito o registro de um cliente, pelo envio do pedido REGISTER, este registro é necessário para informar o servidor, do endereço a ser usado numa sessão SIP. No pedido REGISTER contêm campos importantes, como: o endereço propriamente dito, o protocolo de transporte a ser usado, e o tempo que o registro deve ficar ativo. [3] Segundo, o pedido INVITE é usado para iniciar uma sessão. Neste pedido é incluso o endereço origem, o endereço destino, o tipo de mídia a ser usada. [3] Após o envio do pedido INVITE, o chamador recebe uma resposta que o usuário está sendo chamado. [3] 8 Subseqüentemente, o remetente pode receber uma outra mensagem de OK do usuário, subseqüentemente, o remetente emite um ACK para confirmar o recebimento da resposta. [3] E por final, ocorrer o encerramento de uma sessão, com a emissão de um pedido BYE por um dos usuários. [3] Um exemplo de seqüência de mensagem é mostrado na figura 2.3. Figura 2.3: seqüência de pedido SIP(estabelecimento e encerramento de uma chamada) [3] 9 3 ARQUITETURA IMS “Esta sessão tem como referência o livro dos autores Miika Poikselkä, Georg Mayer, Hisham Khartabil e Aki Niemi [The IMS – IP Multimedia Concepts and Services – 2a. edição] [5] e também o livro dos autores Gonzalo Camarillo e Miguel A. García - Martín [The 3G IP Multimedia Subsystem (IMS) – 2a. edição] [6]. Aqui encontra-se uma introdução a arquitetura IMS, os principais componentes da Arquitetura IMS, e os casos (registro de usuário, chamadas e serviços) que serão usados no estudo.“ No mundo móvel, o sistema de primeira geração (1G) foi introduzido em meados da década de 1980. Esta rede oferecia serviços básicos para os usuários. Em 1990, o sistema de segunda geração (2G) trouxe alguns serviços de dados e serviços mais sofisticados para o usuário. A rede de terceira geração (3G) permite altas taxas de transferência de dados e diversos serviços multimídia. [5] O tradicional Public Switched Telephone Network (PSTN) e a rede Integrated Services Digital Network (ISDN) dominaram a comunicação tradicional de voz e vídeo. Nos últimos anos, o acesso a conexão rápida e barata a Internet aumentou gradativamente, possibilitando a comunicação e jogos em tempo real. Esse acesso é disponibilizado pela tecnologia ADSL (Asymmetric Digital Subscriber Line), o qual permite transferência digital de dados e comunicação em alta velocidade via linha telefônica. Com o crescimento do número de dispositivos móveis, a convergência rápida de fixo e o mundo móvel estão acompanhando esse crescimento. Estes dispositivos móveis incluem câmera com alta resolução e qualidade, e diversos aplicativos de entretenimento. Numa comunicação entre aplicativos desses dispositivos baseados em IP (Internet Protocol) é necessário que o mesmo tenha o mecanismo que encontre o correspondente. Atualmente, a rede de telefonia fornece esta tarefa de estabelecer conexões em redes IP, porém, essa conectividade IP é oferecida apenas em ambientes isolados. Há a necessidade de um sistema global, a solução para isso é o IP Multimedia Subsystem (IMS). O IMS permite aplicações IP a estabelecer conexões par-a-par, facilmente e segura. [5] 10 A rede 3G funde os dois paradigmas mais bem sucedidos na comunicação: a rede de celular e a Internet. Para isso, foi desenvolvida a arquitetura IMS, que provê acesso a todos os serviços de internet numa taxa de transferência rápida. [5] As redes de comunicações existentes oferecem serviços de voz, vídeo e serviços de mensagem usando circuito comutado. O IMS torna a comunicação mais elevada, oferecendo um meio de comunicação mais enriquecida. Um usuário IMS é capaz de misturar e unir uma variedade de serviços IP, da maneira que desejar durante uma simples sessão de comunicação. Usuários podem integrar voz, vídeo e texto, compartilhar dados e podem adicionar ou excluir serviços. Por exemplo, durante uma sessão de voz entre duas pessoas, ambos podem adicionar outros aplicativos (vídeo, e-mail e jogos) durante a mesma sessão. [5] Além dessas vantagens mencionadas acima, a rede 3G com a arquitetura IMS oferece também: QoS (Quality of Service), cargas, e integração de diferentes serviços. Uma das razões da criação do IMS, foi oferecer QoS exigido e sessões multimídia em tempo real. Outra razão para a criação do IMS é ser capaz de carregar sessões multimídia apropriadamente. Numa videoconferência, geralmente uma grande massa de dados é transferida, com isso, é necessário o controle de transmissão de dados. Em uma sessão pode ser determinada a quantidade de bytes que cada mensagem deve ter para ser transmitida. [5] 3.1 QoS para serviços multimídia Na Internet, em algumas circunstâncias podem ocorrer atrasos, perdas ou entrega de pacotes fora da ordem. Este não é o caso do IMS. No início de uma sessão IMS, o equipamento do usuário (celular, notebook, PDA, etc) negocia alguns parâmetros de QoS a serem utilizados durante a sessão, tais como: sua capacidade de transferência via protoloco SIP (Session Initiation Protocol), o tipo de mídia, direção do tráfego, taxa de transferência, tamanho do pacote, uso do protocolo RTP e adaptação da largura de banda. Esses dados são essenciais para que o acesso à rede seja feito de maneira apropriado. Após ter criado uma comunicação com QoS fim-a-fim, o equipamento do usuário codifica e empacota dados com um protocolo apropriado e os transporta usando o protocolo da camada de transporte (ex. TCP ou UDP). [6] 11 3.2 Política IP – Uso correto dos recursos O IMS usa a política de controle IP para controlar e autorizar o uso do tráfego. A política de controle é dividida em três categorias: - O controle de política é responsável por verificar se os parâmetros negociados na sinalização SIP são os mesmos usados na ativação do trafego; - O controle de política é também capaz de identificar o status do tráfego entre as extremidades em uma sessão SIP no IMS; - E, por último, o controle de política é capaz de receber notificação caso o acesso ao serviço de rede tiver modificado, suspenso ou liberado o transporte de um usuário associado a uma sessão. Isto permite que o IMS libere uma sessão em progresso, caso o usuário não esteja mais na área de cobertura. [6] 3.3 Componentes da Arquitetura IMS A arquitetura IMS é a coleção de funções conectadas por interfaces padronizadas. Fica a critério do usuário combinar duas funções em um único nó, e vice-versa. [6] Um simples exemplo com as interfaces mais relevantes da arquitetura IMS, padronizadas pelo 3GPP é mostrado na figura 3.1. Figura 3.1: uma visão da arquitetura IMS [6] 12 No lado esquerdo há o terminal IMS ou UE (equipamento eletrônico pelo qual o usuário estará apto a receber e efetuar chamadas - podendo ser PDAs(Personal Digitals Assistants), computadores, ou telefonia móvel). O terminal IMS liga com a rede de pacote como uma rede GPRS (General Packet Radio Service) através de um link ou rádio. Outras alternativas de acessos são: via WLAN (Wireless Local Access Network) que é uma rede local sem fio, sua comunicação é feita via onda de rádios e tem como restrição à distância dos equipamentos com o ponto de acesso; ou via ADSL (Asymmetric Digital Subscriber Line), o qual permite transferência digital de dados e comunicação em alta velocidade via linha telefônica. No lado direito da figura são mostrados os nós conhecidos como núcleos do subsistema da rede Multimídia IP. Os nós são: - HSS’s (Home Subscriber Servers) banco de dados do usuário e SLFs (Subscriber Locations Functions); - CSCF’s (Call/Session Control Functions) servidores SIP; - AS’s (Applications Servers); - MRF’s(Media Resource Functions), divididos em MRFC (Media Resource Function Controllers) e MRFP (Media Resource Function Processors); - BGCF’s (Breakout Gateway Control Functions); - PSTN gateways, cada um decomposto em um SGW (Signaling Gateway), um MGCF (Media Gateway Controller Function), e um MGW (Media Gateway). Cada um desses componentes é explicado nas subseções seguinte. 3.4 O HSS e o SLF No HSS (Home Subscriber Server) são armazenados os dados do usuário usados para controlar uma sessão multimídia. Esses dados são: informação do local, segurança, informações do usuário e o S-CSCF alocado ao usuário, que age como um servidor SIP, controlando sessões dos usuários registrados nele. Nas redes que contêm mais de um HSS, é necessária a presença do componente SLF (Subscription Locator Function), responsável em selecionar o HSS que contêm as informações dos usuários. Para a seleção do HSS, o SLF utiliza o endereço do usuário que está contido no cabeçalho do pedido. 13 3.5 O CSCF O CSCF (Call/Session Control Function) é um servidor SIP e considerado um nó essencial para a arquitetura IMS. O CSCF processa sinais SIP no IMS. Há 3 tipos de CSCFs dependentes. - P-CSCF (Proxy-CSCF). - I-CSCF (Interrogating-CSCF). - S-CSCF (Serving-CSCF). 3.5.1 O P-CSCF O P-CSCF é o primeiro contato entre a rede IMS e o terminal IMS, é por ele que trafegam todos os pedidos SIP gerados pelo usuário, e as respostas SIP destinados ao usuário, isso significa que o P-CSCF age como um servidor proxy. O P-CSCF possui diversas funções, algumas relacionadas a segurança. Um exemplo, é a verificação da integridade de uma mensagem que pode ser feita através do número de segurança IPSec estabelecido durante o registro de um terminal IMS. [6] Um outro mecanismo importante do P-CSCF é a verificação dos pedidos SIP. Esta verificação é necessária para evitar a propagação de pedidos SIP fora do padrão. O P-CSCF também possui o mecanismo de compactar e descompactar mensagens SIP. As mensagens SIP transmitidas numa conexão banda larga pode ser considerada rápida, porém, a transmissão de uma mensagem SIP grande sobre um canal de banda estreita pode levar alguns segundos. Nesses casos, o mecanismo de compactar é útil para reduzir o tamanho da mensagem, e em conseqüência disso, o tempo de transmissão da mensagem também é reduzido. Uma mensagem que é compactada, a mesma é descompactada no outro extremo. O P-CSCF pode ser encontrado na rede local ou em redes visitadas.[6] 3.5.2 O I-CSCF O I-CSCF é um proxy SIP localizado na extremidade de um domínio administrativo. O DNS (Domain Name System) possui o endereço do I-CSCF. Esses endereços são usados pelo servidor SIP para encontrar o próximo salto SIP. [6] 14 O I-CSCF também possui a opção de criptografar mensagem SIP, o I-CSCF criptografa parte da mensagem onde contêm informações importantes, tais como o número de servidores no domínio, seus nomes DNS, ou suas capacidades. Esta funcionalidade é denominada como THIG (Topology Hiding Inter-network Gateway). [6] Uma rede incluirá tipicamente um número de I-CSCFs por motivo de escalabilidade e redundância. O I-CSCF geralmente é localizado na rede local, embora em algumas ocasiões especiais, tais como um I-CSCF(THIG), este possa ser localizado em redes visitadas também. 3.5.3 O S-CSCF O S-CSCF é o nó central do plano de sinalização. O S-CSCF é um servidor SIP, que executa o controle de sessão e também age como um registrador SIP. O SCSCF mantém uma ligação entre o usuário local e o endereço do registro do usuário SIP (também conhecido como uma Identidade de usuário público). [6] O S-CSCF se comunica com o HSS para: - O S-CSCF efetua o download do vetor de autenticação e o utiliza para a autenticação do usuário no IMS; - O S-CSCF usa o perfil de serviço incluído no perfil do usuário obtido do HSS para criar uma mensagem SIP a ser direcionada através de um ou mais servidor de aplicação; - Informar o HSS qual é o S-CSCF alocado para o usuário durante o registro. O S-CSCF tem a função de inspecionar todos os pedidos SIP que são enviados e recebidos pelo terminal IMS, com isso, o S-CSCF é capaz de determinar se o pedido SIP deve passar por um ou mais servidor de aplicação até cegar ao destino final. O serviço principal do S-CSCF é oferecer o serviço de roteamento SIP. No caso de um usuário discar um número através do SIP URI (Uniform Resource Identifier) o S-CSCF executa a tradução, baseado em DNS E.I64 tradução do número (como descrito em RFC 2916). [6] Por motivo de escalabilidade e redundância, uma rede pode conter números de S-CSCFs. Cada S-CSCF aulixia uma quantidade adequada de terminal IMS. O SCSCF está sempre alocado na rede local. [6] 15 3.6 O AS O AS (Application Server) é uma entidade SIP que hospeda e executa serviços Multimídia IP. Dependendo do atual serviço o AS pode operar no modo SIP proxy, modo SIP UA (User Agent) (ex. endpoint), ou modo B2BUA SIP (Back-to-Back User Agent) (ex. uma conexão de 2 SIP User Agents). O AS relaciona com o S-CSCF usando SIP. O AS está localizado na rede local ou na terceira parte de uma rede visitante, no qual um usuário mantém um serviço. O AS estando fora da rede local, este não faz interface com o HSS.[6] 3.7 O MRF O MRF (Media Resource Function) fornece os recursos de mídia, tais como: tocar anúncios, misturar fluxo, codificar/comunicar entre diferentes codecs, e análise de tipo de mídias. O MRF possui o nó de sinalização chamado MRFC (Media Resource Function Controller) e o nó de plano de mídia chamado MRFP (Media Resource Function Processor). O MRFC possui uma interface com o S-CSCF e é responsável em controla o recurso de mídia do MRFP. O MRFP é o responsável em implementar as funções multimídia, tais como tocar e trocar mídia.[6] O MRF sempre está localizado na rede local.[6] 3.8 O BGCF O BGCF é um servidor SIP que é acionado apenas em casos que é necessário selecionar uma rede apropriada, e rotear chamadas iniciadas de um terminal IMS à um usuário de uma rede de circuito-comutado, tais como o PSTN, ou o PLMN. 3.9 O PSTN/CS Gateway Os terminais IMS utilizam o serviço fornecido pelo PSTN gateway, para fazer e receber chamadas de uma rede de circuito comutado. Na figura 3.2 é mostrado um exemplo de interface do gateway PSTN com a rede PSTN. [6] 16 Figura 3.2: um exemplo do BGCF e um gateway PSTN que faz interface com a rede PSTN [6] 3.10 SGW O SGW se comunicar com a rede CS, e efetua a conversão de protocolos. O SGW pode pegar os dados que veio da rede CS pelo protocolo MTP e transportar esses dados com o SCTP (Stream Control Transmission Protocol) sobre IP. [6] 3.11 MGCF O MGCF é o nó central do gateway PSTN/CS, efetua a conversão de protocolos e também faz o mapeamento SIP a um outro ISUP sobre IP. Além disso, o MGCF é responsável também em controlar os recursos do MGW (Media Gateway), via protocolo H.248. [6] 3.12 MGW O MGW faz interface da rede PSTN ou CS com o plano de mídia. O MGW recebe e envia mídia IMS sobre o protocolo RTP (Real Time Protocol). E também decodifica codec’s que um terminal IMS recebe de uma rede CS. Isto ocorre quando o terminal IMS não suporta o codec que está sendo usado.[6] 3.13 Registro/Autenticação A arquitetura IMS possui diversos tipos de segurança. Duas delas são: a autenticação entre o usuário e a rede, e os ASs (Aplications Server) entre o UE e o P-CSCF. Estes procedimentos de autenticações são executados no momento do registro do usuário. A autenticação IMS é baseada num compartilhamento secreto e num número de seqüência (SQN), disponível apenas no HSS e no cartão de aplicação ISIM (cartão onde contêm os parâmetros de identificação e autenticação do usuário) do UE. O SCSCF é o responsável em executar o procedimento de autenticação e os parâmetros relacionados a segurança. [6] 17 Numa sessão IMS, a UE que deseja se autenticar usa o cabeçalho HTTP para transportar os dados de autenticação, dentro de um pedido REGISTER. Baseando em alguns dados armazenados dentro da aplicação ISIM, a UE inclui no cabeçalho de autenticação os principais dados: O campo username – onde é especificada a identidade privada do UE que está - se autenticando, esse dado é usado pelo S-CSCF e HSS selecionar um AV correspondente ao usuário; Os campos realm e URI, cujos identificam o domínio do usuário; - Os campos nonce e response, porém vazios. Esses campos são obrigatórios pelo HTTP Digest, mas não são usados no pedido REGISTER inicial. Figura 3.3: Fluxo de Autenticação e Registro no IMS Na figura 3.3 é mostrado o procedimento de registro e autenticação de um UE IMS, o UE emite um pedido REGISTER na rede, o P-CSCF recebe esse pedido e encaminha para o I-CSCF responsável em localizar um S-CSCF adequado para o UE. O S-CSCF baseado nos dados do pedido, efetua o download do AV do HSS. O S-CSCF então encaminha alguns dados do AV ao UE, numa resposta com status 401 (Unauthorized). A resposta percorre o mesmo caminho de ida para chegar até o UE. No AV há alguns parâmetros que habilitam o S-CSCF a executar a autenticação sem saber o SQN, esses parâmetros são: um desafio aleatório (RAND); o resultado esperado (XRES), o token de autenticação da rede (AUTN), uma chave de integridade (IK) e a chave de cálculo (CK). 18 Quando o P-CSCF recebe a resposta 401(Desautorizado), este remove dois parâmetros (CK e o IK) da resposta antes de enviar para o UE. O IK é usado para estabelecer uma comunicação entre o P-CSCF e o UE. Quando o UE recebe a resposta, este entrega os parâmetros recebidos para a aplicação ISIM, que: - Verifica o AUTN baseado no compartilhamento secreto e o SQN – caso a verificação do AUTN seja executada com sucesso, a rede é autenticada; - Efetua o cálculo do resultado (RES) baseado no parâmetro RAND recebido e no compartilhamento secreto; - Efetua o calculo do IK, o qual é compartilhado entre o P-CSCF e o UE e servirá como base para estabelecer o IPSec do SAs, por onde o UE enviará o segundo pedido REGISTER. Após o ISIM do UE ter executado esses três procedimentos com sucesso, o UE envia um outro pedido REGISTER para o S-CSCF com os campos anteriormente enviados, e mais um campo adicional, que contêm a resposta de autenticação (RES). O P-CSCF recebe o pedido, verifica a integridade, em caso de sucesso o PCSCF envia o pedido REGISTER para o I-CSCF. Ao receber o segundo pedido REGISTER, o S-CSCF compara o RES com o XRES. Caso essa comparação seja executada com sucesso, o S-CSCF irá executar o processo de registro do usuário, e retornará uma resposta 200 (OK) para o UE. A cada nó (UE, P-CSCF, I-CSCF e S-CSCF) que o pedido REGISTER visita, são adicionados novos campos com seus respectivos endereços. Isso facilita com que a resposta desse pedido faça o mesmo percurso. No retorno da resposta, os nós tiram os campos que possuem seus respectivos endereços. 3.14 Acesso Seguro – IPsec ASs Durante o processo de registro, dois pares de IPsec SAs (referidos como “jogo de SAs”) são estabelecidos entre o UE e o P-CSCF. Os pares de IPsec SAs são apenas associações lógicas entre o UE e o P-CSCF que permite a troca segura de mensagens SIP. 19 Figura 3.4: Estabelecimento de AS durante um registro inicial Conforme podemos ver na figura 3.4 os jogos de SAs necessitam de 4 portas: - A porta cliente protegida no UE (uc1); - A porta servidor protegida no UE (us1); - A porta cliente protegida no P-CSCF (pc1); - A porta servidor protegida no P-CSCF (ps1). Essas portas são negociadas durante o registro inicial, pelo UE e o P-CSCF, usando os cabeçalhos do Mecanismo de Serviço Seguro do SIP. Para o estabelecimento dessas portas o UE e o P-CSCF precisam de uma chave compartilhada. Conseqüentemente, o P-CSCF utiliza o parâmetro IK (Integrity - Key) recebido da resposta 401 (Desautorizado), como a chave compartilhada para obter o jogo de SAs, e o UE, baseado no desafio recebido na resposta 401 (Desautorizado) efetua o calculo do IK. Feito isto o UE usa o IK como a chave compartilhada para obter o jogo de SAs. Por meio do IK, o P-CSCF e o UE podem estabelecer o jogo de SAs entre as quatro portas que foram negociadas no pedido REGISTER inicial, resultando em: 20 - enviar pedido SIP do UE para o P-CSCF, entre uc1 e ps1; - enviar resposta do P-CSCF para o UE, entre uc1 e ps1; - enviar pedido SIP do P-CSCF para o UE, entre us1 e pc1; - enviar resposta SIP do UE para o P-CSCF, entre uc1 e ps1. Por meio do estabelecimento dos jogos de SAs, o UE enviará todas as respostas e pedidos subseqüentes, porém, o UE só poderá usar esse jogo de SAs após o procedimento de autenticação entre o UE e o P-CSCF estiver concluído. O procedimento de autenticação só é finalizado após o recebimento da resposta 200(OK) pelo UE. 3.15 Estabelecimento de uma sessão Figura 3.5: Estabelecimento de sessão na Arquitetura IMS Para o estabelecimento de uma sessão de chamada no IMS é necessário que os usuários estejam registrados no S-CSCF. Na figura 3.5 é mostrado a criação e o encerramento de uma sessão entre dois usuários de redes distintas. Para o usuário Marcio iniciar uma conversa com a Alice, o UE de Marcio emite um pedido INVITE com destino ao UE de Alice, este pedido primariamente passa pelo P-CSCF, que verifica se o pedido foi recebido sobre um IPsec AS válido, garantindo que sim, o P-CSCF envia o pedido INVITE para o S-CSCF. Ao receber o 21 pedido, o S-CSCF verifica o estado do registro e a autenticação da identidade do usuário. Feito isso, o S-CSCF cria rota para a rede de Alice. Para a criação de rota entre as redes, o S-CSCF envia o pedido para o I-CSCF, responsável em localizar e enviar o pedido para o S-CSCF onde o UE de Alice está registrado. Ao receber o pedido INVITE, o S-CSCF de Alice verifica a integridade do pedido e subseqüentemente encaminha o pedido para o P-CSCF de Alice. O PCSCF checa o pedido e o encaminha para o UE de Alice. Durante esse processo de envio do pedido entre os nós (UE, P-CSCF, S-CSCF, I-CSCF), cada nó na medida que recebem o pedido, encaminham o pedido para o nó seguinte e emite uma resposta com status (100) Trying para o nó anterior, cujo qual enviou o pedido. Esse processo também ocorre quando o UE de Alice recebe o pedido, o UE emite duas respostas, uma com status (180) Ringing e a outra com status (200) OK, com destino ao UE de Marcio. Estas respostas passam pelos mesmos nós que o pedido INVITE passou. Quando o UE de Marcio recebe a resposta (200) OK, o mesmo envia uma resposta ACK para o UE de Alice, finalizando a criação de uma sessão. Para encerrar a sessão um pedido BYE é emitido pelo UE de Marcio com destino ao UE de Alice. E por final UE de Alice responde com uma resposta de (200) OK, encerrando a sessão. 3.16 Serviços Durante o processo de registro do usuário, o S-CSCF efetua o download do perfil do usuário do HSS, onde contém a lista organizada por prioridade de serviços que o usuário tem acesso e os ASs adequados para executar cada serviço. Com base nessa lista, o S-CSCF ao receber uma solicitação de serviço em um pedido de criação de sessão (INVITE, OPTIONS, SUBSCRIBE, etc), seleciona e envia o pedido ao AS adequado a executar o serviço. Um exemplo de solicitação de serviço é mostrado na figura 3.6. Após o registro do usuário Marcio, um pedido INVITE é emitido. Este pedido passa primeiro pelo PCSCF que o encaminha para o I-CSCF, que seleciona o S-CSCF alocado para o usuário Marcio. Ao receber o pedido, o S-CSCF encaminha o pedido para o AS adequado. O AS, ao receber o pedido pode apenas executar o serviço e retornar uma resposta de OK para o S-CSCF, como também pode solicitar o serviço do MRFC. Neste exemplo o AS apenas executou o serviço e retornou a resposta 200 22 (OK) para o S-CSCF. A resposta 200(OK) passou pelos mesmos nós até chegar no UE do Marcio. Figura 3.6: Exemplo de solicitação e execução de serviço 3.17 Estudo Da arquitetura estudada nessa sessão, serão usados nos testes e nas análises do estudo: o registro de usuário, descrito no tópico 3.15; o estabelecimento de uma sessão, descrito no tópico 3.16; e a solicitação de serviço descrito no tópico 3.17. Para isso, é importante que haja o bom entendimento dos componentes da arquitetura IMS que farão parte do estudo, tais como: o UE, o S-CSCF, o DNS, o HSS e o AS, descrito na sessão 2.3. 23 4 ASTERISK O Asterisk é um software PABX de código aberto, que foi primariamente desenhado para rodar no Linux. O nome Asterisk veio da idéia do seu criador Mark Spencer em 1999. A idéia dele era que esse software se tornasse um coringa da telefonia, se baseando no símbolo que é muito usado em sistemas. [2] Além dos serviços (envio de mensagens, monitoramento, chamada em espera, música de espera, opção de conferencing call, etc) disponibilizados pelos PABX padrão, o Asterisk pode oferece recursos avançados com um custo menor comparando-se com os do PABX proprietários. Uma das vantagens do Asterisk sobre outros softwares é a forma de como foi desenhada a sua arquitetura, o Asterisk suporta a voz sobre IP em diversos protocolos, e também pode ser integrado com outras tecnologias, tornando-se uma poderosa plataforma convergente de telefonia flexível. O Asterisk pode se conectar com o mundo afora, via interfaces analógicas, circuitos digitais e via protocolos VoIP (SIP, H.323 e IAX). 4.1 Requisitos O software Asterisk pode ser instalado em plataformas Linux e em algumas plataformas não Linux. O requisito de uma máquina para operar com o Asterisk não depende de números de usuários, mas sim pelo número de canais a ser suportados simultaneamente. Em uma instalação grande em que envolva o Asterisk, é comum que haja mais de uma central para o processamento de chamadas e tarefas, com isso, quando um servidor Asterisk está de posse de diversos processamentos de chamas e tarefas periféricas, este servidor pode distribuir as tarefas para outros servidores presentes. 4.2 Configuração SIP O objetivo deste protocolo é ajudar no início, durante e no encerramento de uma chamada. Seguindo as mudanças (transferências de chamada) durante a chamada. O protocolo SIP é simplesmente um protocolo de sinal, no entanto ele não carrega mídias (voz). O transporte das mídias entre os pontos é feito pelo protocolo chamado Real-Time Transport Protocol (RTP). 24 4.2.1 SIP.CONF A configuração do SIP no Asterisk é feita no arquivo sip.conf. O arquivo sip.conf contêm parâmetros relacionados a configuração do acesso do cliente SIP ao servidor Asterisk. Os clientes precisam ser configurados aqui antes, para serem capazes de receber e fazer chamadas usando Asterisk. Abaixo um exemplo básico e funcional do arquivo sip.conf. [general] context=default ; bindaddr=192.168.0.1 [1000] type=friend context=test secret=password host=dynamic O arquivo sip.conf pode possuir n sessões, são nas sessões que são definidos, habilitados e configurados os serviços de cada ramal ou usuário. A primeira seção do arquivo sip.conf [general] vem definida como default, esta seção é usada para todos os clientes SIP e troncos. A segunda seção ou cliente, no nosso exemplo é nomeada como [1000]. Para a nomeação, pode-se usar qualquer tipo de nome. Nas duas seções há o parâmetro context, neste parâmetro é especificada a localização das instruções a serem usadas em chamadas recebidas. O nome definido aqui deve ser igual ao que é definido no arquivo (extensions.conf) que contém as instruções. No parâmetro bindaddr é especificado o endereço IP a ser esperado por uma conexão SIP. No parâmetro secret, é especificado uma senha para autenticação, uma segurança a mais. No parâmetro type é configurado se o cliente está apto a enviar e receber chamadas - se type definido como friend. Há também mais duas opções para esse parâmetro: user, é configurado para fazer chamadas através do servidor Asterisk ; e o peer é configurado para receber chamadas do servidor Asterisk. [2] 25 O parâmetro host é usado para definir a localização de um cliente na rede, quando o Asterisk precisa enviar uma chamada. Este parâmetro pode ter um endereço especificado ou pode estar como dynamic. Quando host está definido como dynamic, e o cliente está configurado para se registrar, o Asterisk receberá o sinal de REGISTER com o endereço IP que o cliente está usando. [4] 4.3 Configuração do Plano de discagem O plano de discagem é especificado no arquivo extension.conf. Neste arquivo contém as lógicas (canais com aplicações e serviços) inteligentes de roteamento de chamadas. O plano de discagem é formado por: contextos, extensões, prioridades e aplicações. 4.3.1 Contexto O plano de discagem é dividido em seções denominados contextos. Os contextos não se comunicam entre si, uma extensão definida em um contexto é completamente isolada das extensões de outros contextos, a menos que iterações sejam definidas. [2] O plano de discagem possui dois contextos especiais e padrões chamados [general] e [globals]. Nestes contextos contêm algumas definições de variáveis globais e uma lista de configurações do Asterisk, esses dados podem ser acessados por qualquer usuário que tenha acesso ao servidor Asterisk. A nomeação ou a definição de um contexto é colocada entre [], que pode ser feita por caracteres ou números. As instruções do contexto são colocadas logo abaixo de seu nome e elas só acabam quando é definido um próximo contexto ou em branco. [2] 4.3.2 Extensões Extensões definem uma série de etapas que o Asterisk deve seguir para completar uma chamada. Dentro de cada contexto pode ser definida inúmera extensão, conforme a necessidade. [general] ..... [teste] 26 ..... O parâmetro usado para definir extensões é exten. Uma extensão completa possui 3 partes: o nome ou número da extensão, a prioridade e a aplicação. No caso de aplicações que necessita de argumentos de entrada, um quarto componente é incluso na definição de uma extensão. Exemplo de extensão: exten => 999, 1, Answer() exten => 999, 2, Hangup() Veja que cada parte ou componente da extensão é separado por vírgulas. 4.3.3 Prioridades Conforme mencionado no tópico anterior, um contexto pode possuir várias extensões. Quando essas extensões fazem partes de um único ramal, ou, uma extensão possui várias etapas, essas precisam ser ordenadas por prioridades, para que o Asterisk reconheça qual extensão ele deve executar primeiro, e qual será a próxima a ser executada. Nas versões recentes do Asterisk, não há a necessidade de numerar as prioridades, basta colocar o caracter ‘n’ neste componente. Internamente o Asterisk calcula a próxima prioridade toda vez que encontrar o caracter ‘n’. Importante observar que apenas na primeira extensão de um contexto é necessário colocar o numero 1 no componente prioridade. Exemplo de prioridade exten => 999,1,Answer() exten => 999,n,do something exten => 999,n,Hangup() 4.3.4 Aplicação As aplicações são eventos executados no plano de discagem. Essas aplicações podem ser: tocar som, fazer uma chamada, atender uma chamada, espera, etc. As aplicações podem ser dependentes ou independentes de argumentos. Os argumentos são passados para a aplicação, no intuito de informar como a aplicação deve ser executada. Esses argumentos são passados entre parênteses, seguido de suas aplicações e separados por vírgula. Exemplo do uso da aplicação: exten => 999,1,Answer() 27 exten => 999,1,Playback(hello-world) Aplicações: Answer(),Hangup(), Playback(),Background(), WaitExten(),Goto() 4.4 O Gateway de Interface do Asterisk (AGI) O Gateway de Interface do Asterisk fornece uma interface padronizada para que programas externos possam se comunicar com o plano de discagem do Asterisk. Tornando fácil a implementação de lógicas avançadas, a comunicação com banco de dados externos (tais como MySQL) e iteração com outros servidores de aplicação. Os scripts AGI’s podem ser escritos em quase todas as linguagens de programação: Java, PHP, Perl, dentre outras. 4.4.1 Fundamentos da Comunicação AGI A comunicação do script AGI e o Asterisk é feito via canais de comunicação conhecidos como STDIN, STDOUT, e STDERR. STDIN, STDOUT, e STDERR são canais por onde informações são recebidas e enviadas de/para um programa externo. STDIN é usado em scripts AGI, para obter informações do Asterisk, via teclado ou programa. STDOUT é usado para enviar dados para o Asterisk. E para finalizar, o STDERR é usado para escrever mensagens de erro para o console do Asterisk. [2] 4.4.2 O modelo de comunicação AGI A comunicação entre o script AGI e o Asterisk segue um padrão predefinido. O script AGI recebe do Asterisk uma lista de variáveis e seus respectivos valores. As variáveis devem se parecer como segue abaixo: agi_request: test.py agi_channel: Zap/1-1 agi_language: en agi_callerid: agi_context: default agi_extension: 123 agi_priority: 2 Após o envio da ultima variável, o Asterisk envia uma linha em branco, para sinalizar ao script AGI que é a vez dele controlar o plano de discagem. A partir daí, o script AGI começa a escrever e enviar comandos para o Asterisk, no STDOUT. A cada comando recebido, o Asterisk envia uma resposta ao script AGI. Esta ação de envio e resposta pode ocorrer até o termino da execução do script AGI. 28 4.4.3 Chamando um script AGI do Plano de discagem Para usar um script AGI no plano de discagem, é necessário chamar o script AGI usando o aplicativo AGI(). Igual o exemplo abaixo: exten => 999,1,Answer( ) exten => 999,n,AGI(agi-test.agi) Geralmente, os scripts AGI’s são armazenados em um diretório padrão do Asterisk (/var/lib/asterisk/agi-bin), caso o script não esteja armazenado nesse diretório, é necessário especificar o endereço completo do script AGI, para que o plano de discagem possa encontrar. 4.5 Estudo Nesse capítulo foi estudado a arquitetura do Asterisk. Desse capítulo, para o nosso estudo, será usado a configuração do SIP e do Plano de discagem e o AGI, mostrado nos tópicos 4.2, 4.3 e 4.4 respectivamente. 29 5 TESTE / ANÁLISE O foco principal do teste foi comparar a comunicação e o desempenho do software Asterisk com a arquitetura IMS se comunicando via protocolo SIP. Para essa comparação foram definidos 3 casos de testes: registro do usuário, encaminhamento de chamadas e serviços. A comparação foi feita usando uma plataforma de referência, o SDS[7] e uma rede de teste montada como explicado a seguir. No primeiro ambiente de teste, foi montada uma conexão entre duas máquinas, onde cada uma possuía o sistema operacional Linux Fedora 9 e os softwares: Asterisk versão 1.4.22 [8], MySQL versão 5.0 [9], servidor web Apache versão 2.2.9 [10], linguagem PHP versão 5.2.6 [11], Wireshark versão 1.1.0 [12], e o X-Lite versão 3 [13]. No segundo ambiente, foi instalado o software SDS da Ericsson numa máquina com o sistema operacional Windows Vista. 5.1 Ambiente de Teste com Asterisk Para o teste deste ambiente, foi utilizada a arquitetura proposta no estudo do Marcelo Moraes, 2007 [17], onde ele propôs uma arquitetura com softwares de código aberto para implementar serviços em redes convergentes multimídia para controle de clientes SIP. Depois da instalação dos softwares, foi efetuada a configuração do Asterisk e do X-Lite, possibilitando uma comunicação entre eles. No lado do Asterisk, foi configurado o plano de discagem (/etc/asterisk/extension.conf – Anexo B), e o SIP (/etc/asterisk/sip.conf – Anexo A). E no lado do X-Lite foram configurados os números a serem chamados e também foi atribuído o IP do servidor Asterisk. Os números configurados no X-Lite foram os mesmos configurados no plano de discagem. Para o usuário Marcio foi atribuído o número 1000 e para Alice o número 1001. Antes de inserir serviços para o usuário no plano de discagem, foi efetuado um teste de comunicação simples entre os X-Lites para verificar se o Asterisk estava conseguindo fazer os dois se comunicarem. Um grande desafio encontrado aqui, foi 30 no momento da não comunicação, foi identificar se o problema estava no plano de discagem ou na configuração do X-Lite. Depois de ter conseguido uma comunicação entre o Asterisk e o X-Lite, o próximo passo dado no teste foi, a comunicação do Asterisk com o banco de dados MySQL, para isso, foi montado um script AGI e implementado-o no plano de discagem do Asterisk. O ambiente ficou igual a Figura 5.1. Figura 5.1: Comunicação entre dois usuários usando Asterisk Antes de efetuar um teste unitário do Apache com o MySQL e o PHP, foram efetuados testes desses softwares separadamente, para verificar se ambos estavam operando corretamente. Para isso, foram executados os testes básicos que as próprias fabricantes disponibilizam em seus sites. Efetuados os testes acima, foi dado início à configuração de serviços no plano de discagem dos usuários. 5.1.1 – Configuração de Serviço Os serviços configurados no plano de discagem dos usuários são partes do programa de um exemplo em PHP disponível em Meggelen, 2005[16]. Com base nesse exemplo, foram montados dois scripts AGIs em PHP (Anexos C e D). Um script que ativa e desativa o serviço “Não Perturbe” e o outro que verifica se o usuário está com o serviço ativado. O primeiro script foi configurado no plano de discagem para que ativasse ou desativasse o serviço não perturbe quando o usuário discasse o número 123. A ativação do serviço era efetuada com a atribuição do carácter “1” no campo flag do banco de dados. A desativação do serviço era efetuada ao retirar o carácter “1”. exten => 5769,n,AGI(ativa_servico.agi) 31 O segundo script foi configurado no plano de discagem para ser executado quando o Asterisk recebesse um pedido INVITE de início de sessão destinado ao um dos usuários. A função do script era verificar no banco de dados se o usuário chamado estava com o serviço de não perturbe ativado. Caso não estivesse era dado continuidade ao processo de início de sessão. exten => 5769,n,AGI(valida_servico.agi) O processo para executar os scripts é mostrado na Figura 5.2: Figura 5.2: Fluxo da execução de script AGI Nos testes de serviço, o grande desafio foi encontrar o problema encontrado na comunicação do Asterisk com o script AGI. O script AGI não executava e também não retornava erro. Nesse ponto, o problema era maior, por que já envolvia dois servidores e com vários softwares rodando, um dependendo do outro. O método adotado para encontrar esse problema foi testar as aplicações separadamente, e conforme ia obtendo sucesso nos teste, a arquitetura foi reconstruída até voltar a ser a arquitetura inicial ao teste. 5.1.2 – Resultados Após ter tido sucessos nos testes, os mesmos foram executados novamente, para que fosse possível a obtenção dos fluxos de mensagens SIP que ocorreram no início, durante e no encerramento de sessões. As capturas dos fluxos das mensagens foram feitas pelo software Wireshark, este software foi configurado para capturar apenas pacotes UDP, o protocolo de transporte que o Asterisk usa para transportas as mensagens SIP. Com o software Wireshark, foi possível obter dois tipos de resultados, o resultado em tela, que mostrou em tempo real o envio e o recebimento dos pacotes. Esse tipo 32 de resultado pode ser visto na Figura 5.3 e 5.4. Outas telas de resultado podem ser encontradas no Anexo E. Figura 5.3 : Pacotes UDP capturados no registro dos usuários e no início de uma sessão SIP 33 Figura 5.4: pacotes capturados após uma sessão SIP ter iniciado O outro tipo de resultado do Wireshark foi obtido em modo texto. No final da captura foi gerado um arquivo texto com todos os pedidos e respostas SIP. Abaixo é mostrado um trecho desse arquivo. O log inteiro do Wireshark pode ser encontrado no Anexo F. User Datagram Protocol, Src Port: 5060 (5060), Dst Port: 5060 (5060) Source port: 5060 (5060) Destination port: 5060 (5060) Length: 422 Checksum: 0x5746 [correct] Session Initiation Protocol Request-Line: REGISTER sip:192.168.0.3 SIP/2.0 Method: REGISTER Resent Packet: False Message Header Via: SIP/2.0/UDP 192.168.0.4:5060;rport;branch=z9hG4bK05B63B2DBDBF436E364113B320FA597A From: 1001 <sip:[email protected]>;tag=207460698 SIP Display info: 1001 SIP from address: sip:[email protected] SIP tag: 207460698 To: 1001 <sip:[email protected]> SIP Display info: 1001 SIP to address: sip:[email protected] Contact: "1001" <sip:[email protected]:5060> Contact Binding: "1001" <sip:[email protected]:5060> URI: "1001" <sip:[email protected]:5060> SIP Display info: "1001" SIP contact address: sip:[email protected]:5060 Call-ID: [email protected] CSeq: 55783 REGISTER 34 Expires: 1800 Max-Forwards: 70 User-Agent: X-Lite release 1105d Content-Length: 0 Neste trecho contêm o pedido REGISTER gerado e enviado pelo X-Lite do usuário 1001 ao 1000. Neste pedido contêm todos os cabeçalhos do pedido SIP que o Asterisk precisará para registrar o usuário. Com base no estudo teórico e nos fluxos de pedidos e respostas capturados pelo Wireshark, foi montado a Figura 5.5. Figura 5.5: fluxo de uma sessão entre dois usuários Conforme podemos observar na Figura 5.5, no momento em que os X-Lites conseguiram se conectar ao servidor PABX Asterisk, os X-Lites emitiram pedidos REGISTERs para o Asterisk. Com base nos dados dos pedidos REGISTER o Asterisk respondeu esses pedidos com o status “Trying” (nesse momento o Asterisk 35 verificou se os usuários estavam configurados no arquivo sip.conf ) e logo em seguida emitiu respostas de OK. A partir daí ambos já estavam aptos a executar chamadas entre eles. Após o registro, foi ativado o serviço de não perturbe para o terminal de Alice. Esse processo se iniciou ao digitar 123 e ao clicar no botão do X-Lite da Alice. Um pedido foi gerado e enviado para o servidor Asterisk, que ao receber, executou o script do plano de discagem da Alice. Alice não estava apta a receber chamadas, para verificar realmente se o serviço estava ativado, do terminal do Marcio foi discado o ramal de Alice e tentado iniciar uma chamada. Um pedido INVITE foi gerado e enviado para o servidor Asterisk, que ao receber, executou o script AGI do plano de discagem da Alice, que verificou se a Alice estava apta a receber ligações. Como o serviço “não perturbe” estava ativado para ela, o servidor Asterisk retornou uma resposta para o usuário Marcio. Após alguns segundos foi desativado o serviço de não perturbe da usuária Alice, depois de discado o número 123 e clicado no botão , um pedido foi gerado e enviado ao servidor do Asterisk, que executou o script AGI, desativando o serviço não perturbe. Para testar se o serviço tinha sido desabilitado, novamente foi tentado criar uma chamada do usuário Marcio para a Alice. No terminal do usuário Marcio, foi discado o ramal de Alice e clicado no botão chamar . Com essa ação, um pedido INVITE foi enviado para o usuário Alice. Este pedido, antes de chegar ao destinatário final, passou pelo servidor Asterisk, que ao receber o pedido, executou o script AGI, configurado no plano de discagem da Alice, verificando se o serviço de “não perturbe” estava ativado. Como o serviço não estava ativado, o servidor Asterisk encaminhou o pedido INVITE para o usuário Alice, que em conseqüência disso, enviou duas respostas para o usuário Marcio, uma com status RINGING e outra com status 200 (OK). E por final, uma resposta ACK foi enviada pelo terminal do Marcio após o recebimento da resposta 200 (OK). Ambas passaram pelo servidor Asterisk antes de chegar ao destinatário final. Nesse momento a sessão foi criada, e ambos ficaram aptos a conversar. Para finalizar a sessão, o usuário Marcio clicou no botão , que resultou no envio do pedido BYE para o usuário Alice, tendo que passar pelo servidor Asterisk. Ao receber esse pedido, o usuário Alice emitiu um pedido OK para o usuário Marcio, que o mesmo também passou pelo servidor Asterisk. 36 5.2 Ambiente de Teste com SDS Aqui é descrito o ambiente de teste utilizado para obter os resultados dos casos de testes na arquitetura IMS. Para o teste, foi utilizado o aplicativo “Start Test Agent” e o “Automated Testing Framework” do software SDS (Service Development Studio) versão 4.1 disponibilizado pela Ericsson [7] O SDS usa o Eclipse como ambiente de desenvolvimento e Java, versão JDK 1.5 [14] como linguagem de programação. Além dos softwares especificados acima, foi necessário a instalação e a configuração do servidor GlassFish versão 2 [15] no Eclipse. A instalação do SDS vem com todas as dependências prontas para serem instaladas, o que facilitou na hora da instalação. Restou apenas selecionar as quais seriam utilizados nos testes. A Figura 5.6 mostra essa tela inicial da instalação. Figura 5.6: Tela inicial de instalação SDS Depois de instalado e configurado o SDS, foi dado início à montagem do ambiente de teste no SDS. O passo seguinte foi configurar o DNS, os serviços e os proflies dos usuários (menu SDS -> Server -> Provisioning). A Figura 5.7 mostra o caminho seguido para efetuar essas configurações. 37 Figura 5.7: Caminho para iniciar o Provisioning O DNS foi configurado primeiro, comforme é apresentado na Figura 5.8. Aqui, foi configurado os DNSs que foram usados nos endereços públicos dos usuários. Figura 5.8: Tela configuração de DNS O próximo passo foi dado com a configuração e inclusão dos usuários no HSS. A tela de inclusão de usuários é mostrada na Figura 5.9. Um ponto importante que foi destacado é que o endereço DNS configurado na identidade pública do usuário precisa estar cadastrado na “aba DNS”, porém o SDS não mostrou uma mensagem de erro quando foi inserido um DNS que ainda não tinha sido cadastrado. 38 Figura 5.9: Tela de criação do Profile do usuário Na Figura 5.10 é mostrada a tela onde foram adicionados e atrelados os serviços dos usuários. Figura 5.10: Tela de cadastro de serviços Para evitar problemas futuros nos testes, foi necessário tomar alguns cuidados nessa etapa inicial. Os cuidados foram: cadastrar os DNSs que foram especificados na identidade pública dos usuários; cadastrar serviços corretamente somente para os usuários que já tinham sido cadastrados; e como foi a primeira experiência com o 39 software SDS, para efetuar as configurações e os testes, foi seguido o manual que o próprio desenvolvedor do SDS disponibiliza. Concluído a etapa de configuração, foi necessário iniciar o servidor CSCF, o DNS (menu SDS -> CSCF -> Start CSCF e SDS -> DNS -> Start DNS ) e o servidor GlassFish, para dar início aos três casos de testes. Na figura 5.6 é mostrado o ambiente de teste construído dentro do SDS, onde temos dois usuários se comunicando em uma mesma rede e no mesmo domínio usando arquitetura IMS. Figura 5.11: Comunicação entre dois usuários usando arquitetura IMS Depois de iniciado os servidores. Foi dado início aos testes. Para isso foi necessário iniciar o aplicativo “Start Test Agent”, conforme pode ser visto na Figura 5.12. Figura 5.12: Caminho para iniciar o “Start Test Agent” A Figura 5.13 mostra a construção do pedido REGISTER, essa construção tomou como base os dados que foram imputados nos campos de entrada localizados no lado esquerdo da figura. A criação do pedido foi finalizada ao clicar no botão “OK”. No lado esquerdo da Figura 5.14, podemos ver o pedido que foi gerado e enviado ao clicar no botão “Send Message”, no canto superior direito da figura é mostrado o 40 pedido que o servidor CSCF recebeu e na parte inferior é mostrado a resposta do servidor CSCF, nesse caso foi “200 OK”. Esse mecanismo de criação de pedidos e o retorno de respostas foi utilizado durante todo o teste até obter o resultado de todos os casos de testes. Figura 5.13: Construção de um pedido REGISTER no SDS Figura 5.14: Envio do pedido REGISTER e retorno de resposta 200 OK. 41 Na Figura 5.15, são mostrados os fluxos de pedidos e respostas obtidos nos casos de testes. Figura 5.15: fluxo de pedidos e respostas SIP usando IMS Conforme a figura 5.15, o primeiro passo para obter a comunicação entre os usuários, foi efetuado no registro e na autenticação dos usuários no servidor CSCF. Para isso, os usuários emitiram pedidos REGISTER ao servidor CSCF, que ao receber, fez a verificação da existência do domínio no servidor DNS. Após isso o servidor CSCF consultou o HSS se os usuários possuíam um Profile e se o mesmo estava autenticado, como os usuários não estavam autenticados, o CSCF enviou uma resposta de status “401 (Unauthorized)” com os parâmetros de autenticação. Os usuários ao receberem a resposta, estes efetuaram o cálculo de autenticação e enviaram um segundo pedido REGISTER com o resultado para o servidor CSCF. Ao receber este segundo pedido, o CSCF verificou a chave de autenticação e registrou e autenticou os usuários no servidor CSCF, conseqüentemente respostas 200 (OK) 42 foram enviadas para os usuários. O registro dos usuários no servidor possuía um tempo de expiração de 1 hora. Depois de efetuado o registro e a autenticação no CSCF, o próximo passo foi efetuar uma chamada (ou criar sessão) entre os usuários. O início a uma chamada se deu pelo envio de um pedido INVITE pelo usuário Márcio, com destino a Alice. Este pedido antes de chegar a Alice, passou pelo servidor CSCF. Ao receber o pedido INVITE, o CSCF emitiu uma resposta com status Trying para Marcio e também enviou o pedido INVITE para a Alice. Recebendo o pedido, Alice enviou uma mensagem com status Ringing para o usuário Marcio e após alguns milésimos de segundo, Alice emitiu uma outra mensagem com status 200 (OK) para o mesmo destinatário, autorizando a chamada. As duas mensagens passaram antes pelo servidor CSCF. O usuário Marcio ao receber esta mensagem, enviou uma outra mensagem com status ACK para Alice, neste momento a sessão foi estabelecida. Esta ultima mensagem também passou pelo servidor CSCF. Após a criação de uma sessão entre os usuários, foi possível efetuar o último caso de teste, o serviço na arquitetura IMS. O serviço aqui testado foi a troca de mensagens entre os usuários. Com a sessão criada, um canal direto entre os usuários foi formado, possibilitando a transmissão direta de mensagens entre os usuários, em outras palavras, as mensagens trafegaram diretamente para o usuário, sem ter que passar pelo servidor CSCF. A cada mensagem recebida pelo usuário, uma resposta de 200 (OK) foi emitida para o emissor. Para finalizar a sessão o usuário Marcio enviou um pedido BYE para Alice subseqüentemente Alice respondeu esse pedido com uma mensagem 200 (OK), finalizando a sessão. 5.3 Análise Com base nos resultados obtidos dos testes efetuados na arquitetura Asterisk e no SDS, foram destacadas algumas semelhanças e algumas diferenças. 5.3.1 Semelhanças Uma semelhança observada nos resultados dos dois ambientes foi que todos os pedidos e respostas de registros, início de sessão, termino de sessão, passaram 43 pelos servidores, e em nenhuma vez foram transmitidos diretos para o usuário final. Abaixo são descritas as semelhanças e as diferenças dos resultados. 5.3.1.1 Registro Foi destacado que as únicas semelhanças em um registro: é no momento em que o usuário envia um pedido de registro para os servidores (CSCF e Asterisk); e no momento em que o servidor envia a resposta confirmando que o usuário foi registrado. 5.3.1.2 Início de Sessão Em inícios de sessões os resultados quase que se igualaram, houve envios de pedidos e respostas, ambos passaram pelos servidores (CSCF e Asterisk) antes de chegarem aos destinos. 5.3.1.3 Encerramento de Sessão Nos encerramentos de sessões não foram observadas diferenças nos resultados, ambos se comportaram de forma parecida. O usuário enviou um pedido BYE que conseqüentemente recebeu uma resposta 200(OK). O pedido e resposta passaram pelos servidores (Asterisk e CSCF). 5.3.2 Diferenças 5.3.2.1 Registro No registro dos usuários, foi destacada uma grande diferença nos resultados obtidos dos testes. Na arquitetura IMS emulada pelo SDS, houve a necessidade do usuário se autenticar antes de efetuar o registro, diferente do registro no Asterisk. 5.3.2.2 Serviços Os serviços dos usuários da arquitetura IMS são armazenados em servidores de aplicação (AS), e os mesmos são solicitados via pedido SIP pelo servidor S-CSCF. No teste efetuado no Asterisk, os serviços foram executados de acordo com a configuração de cada usuário no plano de discagem, esses serviços estavam armazenados em um banco de dados. 44 5.4 Proposta de Mudanças De acordo com as análises obtidas dos casos de testes e com os estudos da arquitetura IMS, do Asterisk e do SIP, foi concluído que há semelhanças no modo do Asterisk e o controlador de sessão da arquitetura IMS operarem, porém, para que o Asterisk se comporte como um controlador IMS, algumas alterações precisam ser feitas, conforme é listado abaixo. No momento em que é feito o registro do usuário no servidor, é necessário acrescentar uma rotina de autenticação de usuário. Essa rotina se dá início com a resposta ao primeiro pedido SIP REGISTER com os parâmetros de autenticação. Com a autenticação é gerado um canal seguro entre o P-CSCF e o equipamento do usuário, cujo processo já se encontra na arquitetura IMS, independente do qual controlador de sessão é usado. Os serviços que o IMS dispõe aos usuários são armazenados nos servidores de aplicação (AS). As solicitações desses serviços ocorrem por meio de pedidos SIP. No Asterisk não há esse mecanismo de solicitação de serviços via pedido SIP, porém o Asterisk suporta AGI baseado em Java, com isso, para suprir essa necessidade, pode se criar um banco de dados para armazenar esses serviços e escrever um programa em Java para suprir essa necessidade, um fluxograma desse processo pode ser visto na Figura 5.16. Asterisk Plano de Discagem Script Java - ACK_RECIEVE - doOK - doACK Variáveis de controle. Alguns parâmetros que o script deve conter - doBYE Figura 5.16: Fluxograma simples do processo com o Script Java. 45 As mudanças propostas aqui se tornam possíveis, devido a possibilidade que o Asterisk tem, de iteragir com programs externos em seu plano de discagem. 6 CONCLUSÃO O protocolo SIP é uma boa alternativa ao H.323 por ser menos complexo e fácil de se implementar, em aplicações VoIP. O Asterisk é um software PABX de código aberto que vem ganhando espaço no mercado, devido o seu grande potencial e versatilidade. No Asterisk é possível implementar funções no plano de discagem, facilitando a inclusão de serviços para os usuários e a interface com programas esternos e banco de dados. O IMS surgiu com forças no mercado devido as suas grandes vantagens sobre a atual rede de telefonia, oferecendo mais benefícios e entretenimento aos usuários e também devido ao QoS que é oferecido para serviços multimídia. Um ponto em comum entre o Asterisk e a arquitetura IMS, e que facilitou o estudo. È o protocolo SIP que ambos utilizam na criação de sessão entre os equipamentos dos usuários e o servidor, a padronização e os nomes dados aos cabeçalhos nos pedidos e respostas, facilitaram a análise dos resultados obtidos. A arquitetura IMS possui o mecanismo de autenticação do usuário, que é feito no momento do registro do usuário. Essa autenticação gera um canal seguro entre o equipamento do usuário e o ponto de entrada da rede 3G. Esse mecanismo torna a comunicação mais segura. Independente se a arquitetura IMS está operando na rede local ou visitante, cada componente dessa arquitetura tem sua própria função, isso faz com que a arquitetura seja organizada e fácil de se entender. Os componentes são dependentes um do outro, as comunicações entre eles são efetuados via pedidos e respostas SIP. Há redes que podem possuir mais de um mesmo componente, esse é o caso dos servidores de aplicação, onde os servidores de aplicações são divididos por tipos de serviços a ser executado. O Asterisk possui um grande potencial para ser um controlador de sessão SIP da arquitetura IMS, porém, algumas melhorias precisam ser feitas, tais como: incluir o mecanismo de autenticação de usuário, subseqüente a autenticação, criar um canal entre o equipamento do usuário e o ponto de entrada da rede 3G e por final, acrescentar uma comunicação SIP entre o servidor de aplicação e o Asterisk. 46 6.1 Contribuições Esse estudo ajudou a entender o funcionamento e a selecionar os pontos em que o Asterisk deve melhorar para se tornar um controlador de sessão da arquitetura IMS. Com as alterações aqui sugeridas, o Asterisk pode se tornar um poderoso controlador de sessão da rede 3G. O Asterisk tornando-se um controlador de sessão da rede 3G é bastante significante para o próprio software como também para os usuários dessa rede. O fato de o Asterisk ser um software livre, com a aplicação desse software, o custo operacional é reduzido. Essa redução pode ser passada para os usuários ou aplicada em outros aspectos, beneficiando o usuário. 6.2 Trabalhos futuros Como trabalho futuro sugiro os seguintes tópicos: - Implementar as melhorias no Asterisk discutido nesse estudo, tais como: autenticação de usuário no momento do registro, conseqüentemente gerar um canal seguro entre o equipamento do usuário e o ponto de entrada da rede 3G (o P-CSCF) e também criar um script AGI em Java que faça a comunicação do banco de dados de serviço com o Asterisk, via pedidos SIP; - Analisar e testar se é possível implementar o “serviço de presença” da arquitetura IMS no Asterisk; - Analisar e testar se é possível implementar o “serviço Push to talk Over Cellular” da arquitetura IMS no Asterisk; - Após aplicação das melhorias discutidas nesse estudo no Asterisk, analisar essa nova arquitetura com um outro componente da arquitetura IMS, o componente MRF, responsável em fornecer recursos de mídia, quando solicitado pelo AS; Efetuar testes mais aprofundados usando outros componentes da arquitetura IMS (MRF, BGCF, SGW, MGCF e MGW); - Efetuar teste no trâmite de vídeo usando arquitetura IMS; 47 Anexo A – Sip.conf ; SIP Configuration for Asterisk ; Syntax for specifying a SIP device in extensions.conf is ; SIP/devicename where devicename is defined in a section below. ; You may also use ; SIP/username@domain to call any SIP user on the Internet ; (Don't forget to enable DNS SRV records if you want to use this) ; If you define a SIP proxy as a peer below, you may call ; SIP/proxyhostname/user or SIP/user@proxyhostname ; where the proxyhostname is defined in a section below ; Useful CLI commands to check peers/users: ; sip show peers Show all SIP peers (including friends) ; sip show users Show all SIP users (including friends) ; sip show registry Show status of hosts we register with ; ; sip debug Show all SIP messages ; ; reload chan_sip.so Reload configuration file ; Active SIP peers will not be reconfigured ; [general] type=friend secret=welcome context=phones host=dynamic disallow=all allow=ulaw allowoverlap=no ; Disable overlap dialing support. (Default is yes) bindport=5060 ; UDP Port to bind to (SIP standard port is 5060) ; bindport is the local UDP port that Asterisk will ;listen on bindaddr=0.0.0.0 ; IP address to bind to (0.0.0.0 binds to all) srvlookup=yes ; Enable DNS SRV lookups on outbound calls ; Note: Asterisk only uses the first host ; in SRV records [1000] username=Marcio type=friend host=dynamic context=phones secret=123 fromuser=Alice ; This allows a channel definition to ;with a name other than that used to authticate be referenced dtmfmode=rfc2833 [1001] username=Alice type=friend host=dynamic context=phones secret=123 fromuser=Marcio dtmfmode=rfc2833 48 Anexo B - Extensions.conf ; extensions.conf - the Asterisk dial plan ; Static extension configuration file, used by ; the pbx_config module. This is where you configure all your ; inbound and outbound calls in Asterisk. ; This configuration file is reloaded ; - With the "extensions reload" command in the CLI ; - With the "reload" command (that reloads everything) in the CLI ; The "General" category is for certain variables. [general] static=yes ; if static=yes and writeprotect=no, you can save dialplan by ; CLI command 'save dialplan' too writeprotect=no ; If autofallthrough is not set, then if an extension runs out of ; things to do, Asterisk will wait for a new extension to be dialed ; (this is the original behavior of Asterisk 1.0 and earlier). ;autofallthrough=no ; If clearglobalvars is not set, then global variables will persist ; through reloads, and even if deleted from the extensions.conf or ; one of its included files, will remain set to the previous value. clearglobalvars=no ; User context is where entries from users.conf are registered. The ; default value is 'default' userscontext=phones [globals] [default] [incoming_calls] [phones] include => internal include => remote [internal] exten => _2XXX,1,NoOp() exten => _2XXX,n,Dial(SIP/${EXTEN},30) exten => _2XXX,n,Playback(the-party-you-are-calling&is-curntly-unavail) exten => _2XXX,n,Hangup() [remote] exten => _1XXX,1,NoOp() exten => _1XXX,n,Dial(SIP/1001/${EXTEN}) exten => _1XXX,n,Hangup() [phones] include => 1000 include => 1001 [1000] exten => exten => exten => exten => exten => [1001] exten => exten => exten => exten => exten => 1000,1,AGI(valida_servico.agi) 1000,2,Dial(SIP/1000) 1000,3,Hangup() 123,1,Answer() 123,2,AGI(ativa_servico.agi) 1001,1,AGI(valida_servico.agi) 1001,1,Dial(SIP/1001) 1001,2,Hangup() 123,1,Answer() 123,2,AGI(ativa_servico.agi) 49 Anexo C – Script PHP ativa_servico.agi #!/usr/bin/php-cgi -q <?php #don't let this script run for more than 60 seconds set_time_limit(60); #turn off output buffering ob_implicit_flush(false); #turn off error reporting, as it will most likely interfere with the AGI interface error_reporting(0); #create file handles if needed if (!define('STDIN')){ define('STDIN', fopen ('php://stdin', 'r')); } if (!define('STDOUT')){ define('STDOUT', fopen ('php://stdout', 'w')); } if (!define('STDERR')){ define('STDERR', fopen ('php://stderr', 'w')); } #retrieve all AGI variables from Asterisk while (!feof(STDIN)){ $temp = trim(fgets(STDIN,4096)); if (($temp == "") || ($temp == "\n")) { break; } $s = split(":",$temp); $name = str_replace("agi_","",$s[0]); $agi[$name] = trim($s[1]); } #print all AGI variables for debugging purposes foreach($agi as $key=>$value){ fwrite(STDERR,"-- $key = $value\n"); fflush(STDERR); } #CONECTA $db_host $db_user $db_pass $db_base AO BANCO DE DADOS = "localhost"; = "Asterisk"; = "123456"; = "Asterisk"; $db_connection = mysql_connect($db_host,$db_user,$db_pass) or die(mysql_error()); #Open MySQL Connection $db_select = mysql_select_db($db_base,$db_connection) or die(mysql_error()); #Select database $ext = $agi[callerid]; #If connection to MySQL sucessfull, insert into table Servicos $insert="SELECT flag FROM Asterisk.Servicos where ext = '$ext'"; #Query MySQL command result $insert_result=mysql_query($insert); #Check if it's necessary to play "not available" record and hung up or do nothing and complete the call if ($insert_result == "1"){ fwrite(STDOUT,"STREAM FILE vm-nobodyavail.gsm \"\"\n"); fflush(STDOUT); fwrite(STDOUT,"EXEC HANGUP() \"\"\n"); fflush(STDOUT); } #Cleaning MySQL-resources mysql_free_result($insert_result); mysql_close($db_connection); ?> 50 Anexo D – Script PHP valida_servico.agi #!/usr/bin/php-cgi -q <?php #don't let this script run for more than 60 seconds set_time_limit(60); #turn off output buffering ob_implicit_flush(false); #turn off error reporting, as it will most likely interfere with the AGI interface error_reporting(0); #create file handles if needed if (!define('STDIN')){ define('STDIN', fopen ('php://stdin', 'r')); } if (!define('STDOUT')){ define('STDOUT', fopen ('php://stdout', 'w')); } if (!define('STDERR')){ define('STDERR', fopen ('php://stderr', 'w')); } #retrieve all AGI variables from Asterisk while (!feof(STDIN)){ $temp = trim(fgets(STDIN,4096)); if (($temp == "") || ($temp == "\n")) { break; } $s = split(":",$temp); $name = str_replace("agi_","",$s[0]); $agi[$name] = trim($s[1]); } #print all AGI variables for debugging purposes foreach($agi as $key=>$value){ fwrite(STDERR,"-- $key = $value\n"); fflush(STDERR); } #conecta $db_host $db_user $db_pass $db_base ao banco de dados = "localhost"; = "Asterisk"; = "123456"; = "Asterisk"; $db_connection = mysql_connect($db_host,$db_user,$db_pass) or die(mysql_error()); #Open MySQL Connection $db_select = mysql_select_db($db_base,$db_connection) or die(mysql_error()); #Select database $ext = $agi[callerid]; #If connection to MySQL sucessfull, insert into table $insert="REPLACE INTO Asterisk.Service VALUES ('$ext','1')"; #Query MySQL command result $insert_result=mysql_query($insert); #Cleaning MySQL-resources mysql_free_result($insert_result); mysql_close($db_connection); ?> 51 Anexo E – Teste de Resultado do Wireshark 52 53 Anexo F – Log do Wireshark No. Time Source 1 0.000000 192.168.0.4 Destination 192.168.0.3 Protocol Info SIP Request: REGISTER sip:192.168.0.3 Frame 1 (456 bytes on wire, 456 bytes captured) Arrival Time: Nov 16, 2008 08:32:59.467984000 Time delta from previous packet: 0.000000000 seconds Time since reference or first frame: 0.000000000 seconds Frame Number: 1 Packet Length: 456 bytes Capture Length: 456 bytes Protocols in frame: eth:ip:udp:sip Coloring Rule Name: UDP Coloring Rule String: udp Ethernet II, Src: 00:21:5a:f8:83:ed (00:21:5a:f8:83:ed), Dst: PlanetTe_5c:80:55 (00:30:4f:5c:80:55) Destination: PlanetTe_5c:80:55 (00:30:4f:5c:80:55) Address: PlanetTe_5c:80:55 (00:30:4f:5c:80:55) .... ...0 .... .... .... .... = Multicast: This is a UNICAST frame .... ..0. .... .... .... .... = Locally Administrated Address: This is a FACTORY DEFAULT address Source: 00:21:5a:f8:83:ed (00:21:5a:f8:83:ed) Address: 00:21:5a:f8:83:ed (00:21:5a:f8:83:ed) .... ...0 .... .... .... .... = Multicast: This is a UNICAST frame .... ..0. .... .... .... .... = Locally Administrated Address: This is a FACTORY DEFAULT address Type: IP (0x0800) Internet Protocol, Src: 192.168.0.4 (192.168.0.4), Dst: 192.168.0.3 (192.168.0.3) Version: 4 Header length: 20 bytes Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00) 0000 00.. = Differentiated Services Codepoint: Default (0x00) .... ..0. = ECN-Capable Transport (ECT): 0 .... ...0 = ECN-CE: 0 Total Length: 442 Identification: 0x0000 (0) Flags: 0x04 (Don't Fragment) 0... = Reserved bit: Not set .1.. = Don't fragment: Set ..0. = More fragments: Not set Fragment offset: 0 Time to live: 64 Protocol: UDP (0x11) Header checksum: 0xb7db [correct] Good: True Bad : False Source: 192.168.0.4 (192.168.0.4) Destination: 192.168.0.3 (192.168.0.3) User Datagram Protocol, Src Port: 5060 (5060), Dst Port: 5060 (5060) Source port: 5060 (5060) Destination port: 5060 (5060) Length: 422 Checksum: 0x5746 [correct] Session Initiation Protocol Request-Line: REGISTER sip:192.168.0.3 SIP/2.0 Method: REGISTER Resent Packet: False Message Header Via: SIP/2.0/UDP 192.168.0.4:5060;rport;branch=z9hG4bK05B63B2DBDBF436E364113B320FA597A From: 1001 <sip:[email protected]>;tag=207460698 SIP Display info: 1001 SIP from address: sip:[email protected] SIP tag: 207460698 To: 1001 <sip:[email protected]> SIP Display info: 1001 SIP to address: sip:[email protected] Contact: "1001" <sip:[email protected]:5060> Contact Binding: "1001" <sip:[email protected]:5060> URI: "1001" <sip:[email protected]:5060> SIP Display info: "1001" SIP contact address: sip:[email protected]:5060 Call-ID: [email protected] CSeq: 55783 REGISTER Expires: 1800 54 Max-Forwards: 70 User-Agent: X-Lite release 1105d Content-Length: 0 No. Time Source 2 0.000156 192.168.0.3 Destination 192.168.0.4 Protocol Info SIP Status: 100 Trying (1 bindings) Frame 2 (504 bytes on wire, 504 bytes captured) Arrival Time: Nov 16, 2008 08:32:59.468140000 Time delta from previous packet: 0.000156000 seconds Time since reference or first frame: 0.000156000 seconds Frame Number: 2 Packet Length: 504 bytes Capture Length: 504 bytes Protocols in frame: eth:ip:udp:sip Coloring Rule Name: Checksum Errors Coloring Rule String: edp.checksum_bad==1 || ip.checksum_bad==1 || tcp.checksum_bad || udp.checksum_bad Ethernet II, Src: PlanetTe_5c:80:55 (00:30:4f:5c:80:55), Dst: 00:21:5a:f8:83:ed (00:21:5a:f8:83:ed) Destination: 00:21:5a:f8:83:ed (00:21:5a:f8:83:ed) Address: 00:21:5a:f8:83:ed (00:21:5a:f8:83:ed) .... ...0 .... .... .... .... = Multicast: This is a UNICAST frame .... ..0. .... .... .... .... = Locally Administrated Address: This is a FACTORY DEFAULT address Source: PlanetTe_5c:80:55 (00:30:4f:5c:80:55) Address: PlanetTe_5c:80:55 (00:30:4f:5c:80:55) .... ...0 .... .... .... .... = Multicast: This is a UNICAST frame .... ..0. .... .... .... .... = Locally Administrated Address: This is a FACTORY DEFAULT address Type: IP (0x0800) Internet Protocol, Src: 192.168.0.3 (192.168.0.3), Dst: 192.168.0.4 (192.168.0.4) Version: 4 Header length: 20 bytes Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00) 0000 00.. = Differentiated Services Codepoint: Default (0x00) .... ..0. = ECN-Capable Transport (ECT): 0 .... ...0 = ECN-CE: 0 Total Length: 490 Identification: 0xdbf3 (56307) Flags: 0x00 0... = Reserved bit: Not set .0.. = Don't fragment: Not set ..0. = More fragments: Not set Fragment offset: 0 Time to live: 64 Protocol: UDP (0x11) Header checksum: 0x1bb8 [correct] Good: True Bad : False Source: 192.168.0.3 (192.168.0.3) Destination: 192.168.0.4 (192.168.0.4) User Datagram Protocol, Src Port: 5060 (5060), Dst Port: 5060 (5060) Source port: 5060 (5060) Destination port: 5060 (5060) Length: 470 Checksum: 0x833f [incorrect, should be 0x833e] Session Initiation Protocol Status-Line: SIP/2.0 100 Trying Status-Code: 100 Resent Packet: False Message Header Via: SIP/2.0/UDP 192.168.0.4:5060;branch=z9hG4bK05B63B2DBDBF436E364113B320FA597A;received=192.168.0.4;rport=5060 From: 1001 <sip:[email protected]>;tag=207460698 SIP Display info: 1001 SIP from address: sip:[email protected] SIP tag: 207460698 To: 1001 <sip:[email protected]> SIP Display info: 1001 SIP to address: sip:[email protected] Call-ID: [email protected] CSeq: 55783 REGISTER User-Agent: Asterisk PBX Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY Supported: replaces Contact: <sip:[email protected]> Contact Binding: <sip:[email protected]> URI: <sip:[email protected]> SIP contact address: sip:[email protected] 55 Content-Length: 0 No. Time Source 3 0.002296 192.168.0.3 Destination 192.168.0.4 Protocol Info SIP Status: 200 OK (1 bindings) Frame 3 (585 bytes on wire, 585 bytes captured) Arrival Time: Nov 16, 2008 08:32:59.470280000 Time delta from previous packet: 0.002140000 seconds Time since reference or first frame: 0.002296000 seconds Frame Number: 3 Packet Length: 585 bytes Capture Length: 585 bytes Protocols in frame: eth:ip:udp:sip Coloring Rule Name: Checksum Errors Coloring Rule String: edp.checksum_bad==1 || ip.checksum_bad==1 || tcp.checksum_bad || udp.checksum_bad Ethernet II, Src: PlanetTe_5c:80:55 (00:30:4f:5c:80:55), Dst: 00:21:5a:f8:83:ed (00:21:5a:f8:83:ed) Destination: 00:21:5a:f8:83:ed (00:21:5a:f8:83:ed) Address: 00:21:5a:f8:83:ed (00:21:5a:f8:83:ed) .... ...0 .... .... .... .... = Multicast: This is a UNICAST frame .... ..0. .... .... .... .... = Locally Administrated Address: This is a FACTORY DEFAULT address Source: PlanetTe_5c:80:55 (00:30:4f:5c:80:55) Address: PlanetTe_5c:80:55 (00:30:4f:5c:80:55) .... ...0 .... .... .... .... = Multicast: This is a UNICAST frame .... ..0. .... .... .... .... = Locally Administrated Address: This is a FACTORY DEFAULT address Type: IP (0x0800) Internet Protocol, Src: 192.168.0.3 (192.168.0.3), Dst: 192.168.0.4 (192.168.0.4) Version: 4 Header length: 20 bytes Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00) 0000 00.. = Differentiated Services Codepoint: Default (0x00) .... ..0. = ECN-Capable Transport (ECT): 0 .... ...0 = ECN-CE: 0 Total Length: 571 Identification: 0xdbf4 (56308) Flags: 0x00 0... = Reserved bit: Not set .0.. = Don't fragment: Not set ..0. = More fragments: Not set Fragment offset: 0 Time to live: 64 Protocol: UDP (0x11) Header checksum: 0x1b66 [correct] Good: True Bad : False Source: 192.168.0.3 (192.168.0.3) Destination: 192.168.0.4 (192.168.0.4) User Datagram Protocol, Src Port: 5060 (5060), Dst Port: 5060 (5060) Source port: 5060 (5060) Destination port: 5060 (5060) Length: 551 Checksum: 0x8390 [incorrect, should be 0xec2b] Session Initiation Protocol Status-Line: SIP/2.0 200 OK Status-Code: 200 Resent Packet: False Message Header Via: SIP/2.0/UDP 192.168.0.4:5060;branch=z9hG4bK05B63B2DBDBF436E364113B320FA597A;received=192.168.0.4;rport=5060 From: 1001 <sip:[email protected]>;tag=207460698 SIP Display info: 1001 SIP from address: sip:[email protected] SIP tag: 207460698 To: 1001 <sip:[email protected]>;tag=as627a972d SIP Display info: 1001 SIP to address: sip:[email protected] SIP tag: as627a972d Call-ID: [email protected] CSeq: 55783 REGISTER User-Agent: Asterisk PBX Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY Supported: replaces Expires: 1800 Contact: <sip:[email protected]:5060>;expires=1800 Contact Binding: <sip:[email protected]:5060>;expires=1800 URI: <sip:[email protected]:5060> SIP contact address: sip:[email protected]:5060 56 Date: Sun, 16 Nov 2008 10:32:59 GMT Content-Length: 0 No. Time Source 4 5.094910 192.168.0.4 Destination 192.168.0.3 Protocol Info UDP Source port: 5060 Destination port: 5060 Frame 4 (60 bytes on wire, 60 bytes captured) Arrival Time: Nov 16, 2008 08:33:04.562894000 Time delta from previous packet: 5.092614000 seconds Time since reference or first frame: 5.094910000 seconds Frame Number: 4 Packet Length: 60 bytes Capture Length: 60 bytes Protocols in frame: eth:ip:udp:data Coloring Rule Name: UDP Coloring Rule String: udp Ethernet II, Src: 00:21:5a:f8:83:ed (00:21:5a:f8:83:ed), Dst: PlanetTe_5c:80:55 (00:30:4f:5c:80:55) Destination: PlanetTe_5c:80:55 (00:30:4f:5c:80:55) Address: PlanetTe_5c:80:55 (00:30:4f:5c:80:55) .... ...0 .... .... .... .... = Multicast: This is a UNICAST frame .... ..0. .... .... .... .... = Locally Administrated Address: This is a FACTORY DEFAULT address Source: 00:21:5a:f8:83:ed (00:21:5a:f8:83:ed) Address: 00:21:5a:f8:83:ed (00:21:5a:f8:83:ed) .... ...0 .... .... .... .... = Multicast: This is a UNICAST frame .... ..0. .... .... .... .... = Locally Administrated Address: This is a FACTORY DEFAULT address Type: IP (0x0800) Trailer: 00000000000000000000000000000000 Internet Protocol, Src: 192.168.0.4 (192.168.0.4), Dst: 192.168.0.3 (192.168.0.3) Version: 4 Header length: 20 bytes Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00) 0000 00.. = Differentiated Services Codepoint: Default (0x00) .... ..0. = ECN-Capable Transport (ECT): 0 .... ...0 = ECN-CE: 0 Total Length: 30 Identification: 0x0000 (0) Flags: 0x04 (Don't Fragment) 0... = Reserved bit: Not set .1.. = Don't fragment: Set ..0. = More fragments: Not set Fragment offset: 0 Time to live: 64 Protocol: UDP (0x11) Header checksum: 0xb977 [correct] Good: True Bad : False Source: 192.168.0.4 (192.168.0.4) Destination: 192.168.0.3 (192.168.0.3) User Datagram Protocol, Src Port: 5060 (5060), Dst Port: 5060 (5060) Source port: 5060 (5060) Destination port: 5060 (5060) Length: 10 Checksum: 0x49f0 [correct] Data (2 bytes) 0000 0d 0a No. Time Source 5 7.344738 192.168.0.4 description .. Destination Protocol Info 192.168.0.3 SIP/SDP Request: INVITE sip:[email protected], with session Frame 5 (774 bytes on wire, 774 bytes captured) Arrival Time: Nov 16, 2008 08:33:06.812722000 Time delta from previous packet: 2.249828000 seconds Time since reference or first frame: 7.344738000 seconds Frame Number: 5 Packet Length: 774 bytes Capture Length: 774 bytes Protocols in frame: eth:ip:udp:sip:sdp Coloring Rule Name: UDP Coloring Rule String: udp Ethernet II, Src: 00:21:5a:f8:83:ed (00:21:5a:f8:83:ed), Dst: PlanetTe_5c:80:55 (00:30:4f:5c:80:55) Destination: PlanetTe_5c:80:55 (00:30:4f:5c:80:55) Address: PlanetTe_5c:80:55 (00:30:4f:5c:80:55) .... ...0 .... .... .... .... = Multicast: This is a UNICAST frame .... ..0. .... .... .... .... = Locally Administrated Address: This is a FACTORY DEFAULT address 57 Source: 00:21:5a:f8:83:ed (00:21:5a:f8:83:ed) Address: 00:21:5a:f8:83:ed (00:21:5a:f8:83:ed) .... ...0 .... .... .... .... = Multicast: This is a UNICAST frame .... ..0. .... .... .... .... = Locally Administrated Address: This is a FACTORY DEFAULT address Type: IP (0x0800) Internet Protocol, Src: 192.168.0.4 (192.168.0.4), Dst: 192.168.0.3 (192.168.0.3) Version: 4 Header length: 20 bytes Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00) 0000 00.. = Differentiated Services Codepoint: Default (0x00) .... ..0. = ECN-Capable Transport (ECT): 0 .... ...0 = ECN-CE: 0 Total Length: 760 Identification: 0x0000 (0) Flags: 0x04 (Don't Fragment) 0... = Reserved bit: Not set .1.. = Don't fragment: Set ..0. = More fragments: Not set Fragment offset: 0 Time to live: 64 Protocol: UDP (0x11) Header checksum: 0xb69d [correct] Good: True Bad : False Source: 192.168.0.4 (192.168.0.4) Destination: 192.168.0.3 (192.168.0.3) User Datagram Protocol, Src Port: 5060 (5060), Dst Port: 5060 (5060) Source port: 5060 (5060) Destination port: 5060 (5060) Length: 740 Checksum: 0xe032 [correct] Session Initiation Protocol Request-Line: INVITE sip:[email protected] SIP/2.0 Method: INVITE Resent Packet: False Message Header Via: SIP/2.0/UDP 192.168.0.4:5060;rport;branch=z9hG4bK008D428712CB2F2A2F9CCC82D093BB05 From: 1001 <sip:[email protected]>;tag=116251041 SIP Display info: 1001 SIP from address: sip:[email protected] SIP tag: 116251041 To: <sip:[email protected]> SIP to address: sip:[email protected] Contact: <sip:[email protected]:5060> Contact Binding: <sip:[email protected]:5060> URI: <sip:[email protected]:5060> SIP contact address: sip:[email protected]:5060 Call-ID: [email protected] CSeq: 46028 INVITE Max-Forwards: 70 Content-Type: application/sdp User-Agent: X-Lite release 1105d Content-Length: 307 Message body Session Description Protocol Session Description Protocol Version (v): 0 Owner/Creator, Session Id (o): 1001 2765897642 2765897651 IN IP4 192.168.0.4 Owner Username: 1001 Session ID: 2765897642 Session Version: 2765897651 Owner Network Type: IN Owner Address Type: IP4 Owner Address: 192.168.0.4 Session Name (s): X-Lite Connection Information (c): IN IP4 192.168.0.4 Connection Network Type: IN Connection Address Type: IP4 Connection Address: 192.168.0.4 Time Description, active time (t): 0 0 Session Start Time: 0 Session Stop Time: 0 Media Description, name and address (m): audio 8000 RTP/AVP 0 8 3 98 97 101 Media Type: audio Media Port: 8000 Media Proto: RTP/AVP Media Format: ITU-T G.711 PCMU 58 Media Format: ITU-T G.711 PCMA Media Format: GSM 06.10 Media Format: 98 Media Format: 97 Media Format: 101 Media Attribute (a): rtpmap:0 pcmu/8000 Media Attribute Fieldname: rtpmap Media Attribute Value: 0 pcmu/8000 Media Attribute (a): rtpmap:8 pcma/8000 Media Attribute Fieldname: rtpmap Media Attribute Value: 8 pcma/8000 Media Attribute (a): rtpmap:3 gsm/8000 Media Attribute Fieldname: rtpmap Media Attribute Value: 3 gsm/8000 Media Attribute (a): rtpmap:98 iLBC/8000 Media Attribute Fieldname: rtpmap Media Attribute Value: 98 iLBC/8000 Media Attribute (a): rtpmap:97 speex/8000 Media Attribute Fieldname: rtpmap Media Attribute Value: 97 speex/8000 Media Attribute (a): rtpmap:101 telephone-event/8000 Media Attribute Fieldname: rtpmap Media Attribute Value: 101 telephone-event/8000 Media Attribute (a): fmtp:101 0-15 Media Attribute Fieldname: fmtp Media Attribute Value: 101 0-15 Media Attribute (a): sendrecv No. Time Source 6 7.345283 192.168.0.3 Destination 192.168.0.4 Protocol Info SIP Status: 100 Trying Frame 6 (501 bytes on wire, 501 bytes captured) Arrival Time: Nov 16, 2008 08:33:06.813267000 Time delta from previous packet: 0.000545000 seconds Time since reference or first frame: 7.345283000 seconds Frame Number: 6 Packet Length: 501 bytes Capture Length: 501 bytes Protocols in frame: eth:ip:udp:sip Coloring Rule Name: Checksum Errors Coloring Rule String: edp.checksum_bad==1 || ip.checksum_bad==1 || tcp.checksum_bad || udp.checksum_bad Ethernet II, Src: PlanetTe_5c:80:55 (00:30:4f:5c:80:55), Dst: 00:21:5a:f8:83:ed (00:21:5a:f8:83:ed) Destination: 00:21:5a:f8:83:ed (00:21:5a:f8:83:ed) Address: 00:21:5a:f8:83:ed (00:21:5a:f8:83:ed) .... ...0 .... .... .... .... = Multicast: This is a UNICAST frame .... ..0. .... .... .... .... = Locally Administrated Address: This is a FACTORY DEFAULT address Source: PlanetTe_5c:80:55 (00:30:4f:5c:80:55) Address: PlanetTe_5c:80:55 (00:30:4f:5c:80:55) .... ...0 .... .... .... .... = Multicast: This is a UNICAST frame .... ..0. .... .... .... .... = Locally Administrated Address: This is a FACTORY DEFAULT address Type: IP (0x0800) Internet Protocol, Src: 192.168.0.3 (192.168.0.3), Dst: 192.168.0.4 (192.168.0.4) Version: 4 Header length: 20 bytes Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00) 0000 00.. = Differentiated Services Codepoint: Default (0x00) .... ..0. = ECN-Capable Transport (ECT): 0 .... ...0 = ECN-CE: 0 Total Length: 487 Identification: 0xdbf5 (56309) Flags: 0x00 0... = Reserved bit: Not set .0.. = Don't fragment: Not set ..0. = More fragments: Not set Fragment offset: 0 Time to live: 64 Protocol: UDP (0x11) Header checksum: 0x1bb9 [correct] Good: True Bad : False Source: 192.168.0.3 (192.168.0.3) Destination: 192.168.0.4 (192.168.0.4) User Datagram Protocol, Src Port: 5060 (5060), Dst Port: 5060 (5060) Source port: 5060 (5060) Destination port: 5060 (5060) Length: 467 59 Checksum: 0x833c [incorrect, should be 0xda0d] Session Initiation Protocol Status-Line: SIP/2.0 100 Trying Status-Code: 100 Resent Packet: False Message Header Via: SIP/2.0/UDP 192.168.0.4:5060;branch=z9hG4bK008D428712CB2F2A2F9CCC82D093BB05;received=192.168.0.4;rport=5060 From: 1001 <sip:[email protected]>;tag=116251041 SIP Display info: 1001 SIP from address: sip:[email protected] SIP tag: 116251041 To: <sip:[email protected]> SIP to address: sip:[email protected] Call-ID: [email protected] CSeq: 46028 INVITE User-Agent: Asterisk PBX Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY Supported: replaces Contact: <sip:[email protected]> Contact Binding: <sip:[email protected]> URI: <sip:[email protected]> SIP contact address: sip:[email protected] Content-Length: 0 No. Time Source 7 7.384454 192.168.0.3 Destination 192.168.0.4 Protocol Info SIP Status: 180 Ringing Frame 7 (517 bytes on wire, 517 bytes captured) Arrival Time: Nov 16, 2008 08:33:06.852438000 Time delta from previous packet: 0.039171000 seconds Time since reference or first frame: 7.384454000 seconds Frame Number: 7 Packet Length: 517 bytes Capture Length: 517 bytes Protocols in frame: eth:ip:udp:sip Coloring Rule Name: Checksum Errors Coloring Rule String: edp.checksum_bad==1 || ip.checksum_bad==1 || tcp.checksum_bad || udp.checksum_bad Ethernet II, Src: PlanetTe_5c:80:55 (00:30:4f:5c:80:55), Dst: 00:21:5a:f8:83:ed (00:21:5a:f8:83:ed) Destination: 00:21:5a:f8:83:ed (00:21:5a:f8:83:ed) Address: 00:21:5a:f8:83:ed (00:21:5a:f8:83:ed) .... ...0 .... .... .... .... = Multicast: This is a UNICAST frame .... ..0. .... .... .... .... = Locally Administrated Address: This is a FACTORY DEFAULT address Source: PlanetTe_5c:80:55 (00:30:4f:5c:80:55) Address: PlanetTe_5c:80:55 (00:30:4f:5c:80:55) .... ...0 .... .... .... .... = Multicast: This is a UNICAST frame .... ..0. .... .... .... .... = Locally Administrated Address: This is a FACTORY DEFAULT address Type: IP (0x0800) Internet Protocol, Src: 192.168.0.3 (192.168.0.3), Dst: 192.168.0.4 (192.168.0.4) Version: 4 Header length: 20 bytes Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00) 0000 00.. = Differentiated Services Codepoint: Default (0x00) .... ..0. = ECN-Capable Transport (ECT): 0 .... ...0 = ECN-CE: 0 Total Length: 503 Identification: 0xdbf6 (56310) Flags: 0x00 0... = Reserved bit: Not set .0.. = Don't fragment: Not set ..0. = More fragments: Not set Fragment offset: 0 Time to live: 64 Protocol: UDP (0x11) Header checksum: 0x1ba8 [correct] Good: True Bad : False Source: 192.168.0.3 (192.168.0.3) Destination: 192.168.0.4 (192.168.0.4) User Datagram Protocol, Src Port: 5060 (5060), Dst Port: 5060 (5060) Source port: 5060 (5060) Destination port: 5060 (5060) Length: 483 Checksum: 0x834c [incorrect, should be 0x44ce] Session Initiation Protocol Status-Line: SIP/2.0 180 Ringing 60 Status-Code: 180 Resent Packet: False Message Header Via: SIP/2.0/UDP 192.168.0.4:5060;branch=z9hG4bK008D428712CB2F2A2F9CCC82D093BB05;received=192.168.0.4;rport=5060 From: 1001 <sip:[email protected]>;tag=116251041 SIP Display info: 1001 SIP from address: sip:[email protected] SIP tag: 116251041 To: <sip:[email protected]>;tag=as0b318557 SIP to address: sip:[email protected] SIP tag: as0b318557 Call-ID: [email protected] CSeq: 46028 INVITE User-Agent: Asterisk PBX Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY Supported: replaces Contact: <sip:[email protected]> Contact Binding: <sip:[email protected]> URI: <sip:[email protected]> SIP contact address: sip:[email protected] Content-Length: 0 No. Time Source 8 13.286660 192.168.0.3 Destination 192.168.0.4 Protocol Info SIP/SDP Status: 200 OK, with session description Frame 8 (828 bytes on wire, 828 bytes captured) Arrival Time: Nov 16, 2008 08:33:12.754644000 Time delta from previous packet: 5.902206000 seconds Time since reference or first frame: 13.286660000 seconds Frame Number: 8 Packet Length: 828 bytes Capture Length: 828 bytes Protocols in frame: eth:ip:udp:sip:sdp Coloring Rule Name: Checksum Errors Coloring Rule String: edp.checksum_bad==1 || ip.checksum_bad==1 || tcp.checksum_bad || udp.checksum_bad Ethernet II, Src: PlanetTe_5c:80:55 (00:30:4f:5c:80:55), Dst: 00:21:5a:f8:83:ed (00:21:5a:f8:83:ed) Destination: 00:21:5a:f8:83:ed (00:21:5a:f8:83:ed) Address: 00:21:5a:f8:83:ed (00:21:5a:f8:83:ed) .... ...0 .... .... .... .... = Multicast: This is a UNICAST frame .... ..0. .... .... .... .... = Locally Administrated Address: This is a FACTORY DEFAULT address Source: PlanetTe_5c:80:55 (00:30:4f:5c:80:55) Address: PlanetTe_5c:80:55 (00:30:4f:5c:80:55) .... ...0 .... .... .... .... = Multicast: This is a UNICAST frame .... ..0. .... .... .... .... = Locally Administrated Address: This is a FACTORY DEFAULT address Type: IP (0x0800) Internet Protocol, Src: 192.168.0.3 (192.168.0.3), Dst: 192.168.0.4 (192.168.0.4) Version: 4 Header length: 20 bytes Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00) 0000 00.. = Differentiated Services Codepoint: Default (0x00) .... ..0. = ECN-Capable Transport (ECT): 0 .... ...0 = ECN-CE: 0 Total Length: 814 Identification: 0xdbf7 (56311) Flags: 0x00 0... = Reserved bit: Not set .0.. = Don't fragment: Not set ..0. = More fragments: Not set Fragment offset: 0 Time to live: 64 Protocol: UDP (0x11) Header checksum: 0x1a70 [correct] Good: True Bad : False Source: 192.168.0.3 (192.168.0.3) Destination: 192.168.0.4 (192.168.0.4) User Datagram Protocol, Src Port: 5060 (5060), Dst Port: 5060 (5060) Source port: 5060 (5060) Destination port: 5060 (5060) Length: 794 Checksum: 0x8483 [incorrect, should be 0xb738] Session Initiation Protocol Status-Line: SIP/2.0 200 OK Status-Code: 200 Resent Packet: False 61 Message Header Via: SIP/2.0/UDP 192.168.0.4:5060;branch=z9hG4bK008D428712CB2F2A2F9CCC82D093BB05;received=192.168.0.4;rport=5060 From: 1001 <sip:[email protected]>;tag=116251041 SIP Display info: 1001 SIP from address: sip:[email protected] SIP tag: 116251041 To: <sip:[email protected]>;tag=as0b318557 SIP to address: sip:[email protected] SIP tag: as0b318557 Call-ID: [email protected] CSeq: 46028 INVITE User-Agent: Asterisk PBX Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY Supported: replaces Contact: <sip:[email protected]> Contact Binding: <sip:[email protected]> URI: <sip:[email protected]> SIP contact address: sip:[email protected] Content-Type: application/sdp Content-Length: 283 Message body Session Description Protocol Session Description Protocol Version (v): 0 Owner/Creator, Session Id (o): root 3010 3010 IN IP4 192.168.0.3 Owner Username: root Session ID: 3010 Session Version: 3010 Owner Network Type: IN Owner Address Type: IP4 Owner Address: 192.168.0.3 Session Name (s): session Connection Information (c): IN IP4 192.168.0.3 Connection Network Type: IN Connection Address Type: IP4 Connection Address: 192.168.0.3 Time Description, active time (t): 0 0 Session Start Time: 0 Session Stop Time: 0 Media Description, name and address (m): audio 17708 RTP/AVP 3 0 8 101 Media Type: audio Media Port: 17708 Media Proto: RTP/AVP Media Format: GSM 06.10 Media Format: ITU-T G.711 PCMU Media Format: ITU-T G.711 PCMA Media Format: 101 Media Attribute (a): rtpmap:3 GSM/8000 Media Attribute Fieldname: rtpmap Media Attribute Value: 3 GSM/8000 Media Attribute (a): rtpmap:0 PCMU/8000 Media Attribute Fieldname: rtpmap Media Attribute Value: 0 PCMU/8000 Media Attribute (a): rtpmap:8 PCMA/8000 Media Attribute Fieldname: rtpmap Media Attribute Value: 8 PCMA/8000 Media Attribute (a): rtpmap:101 telephone-event/8000 Media Attribute Fieldname: rtpmap Media Attribute Value: 101 telephone-event/8000 Media Attribute (a): fmtp:101 0-16 Media Attribute Fieldname: fmtp Media Attribute Value: 101 0-16 Media Attribute (a): silenceSupp:off - - - Media Attribute Fieldname: silenceSupp Media Attribute Value: off - - - Media Attribute (a): ptime:20 Media Attribute Fieldname: ptime Media Attribute Value: 20 Media Attribute (a): sendrecv No. Time Source 9 13.295971 192.168.0.4 Destination 192.168.0.3 Protocol Info SIP Request: ACK sip:[email protected] Frame 9 (409 bytes on wire, 409 bytes captured) Arrival Time: Nov 16, 2008 08:33:12.763955000 Time delta from previous packet: 0.009311000 seconds 62 Time since reference or first frame: 13.295971000 seconds Frame Number: 9 Packet Length: 409 bytes Capture Length: 409 bytes Protocols in frame: eth:ip:udp:sip Coloring Rule Name: UDP Coloring Rule String: udp Ethernet II, Src: 00:21:5a:f8:83:ed (00:21:5a:f8:83:ed), Dst: PlanetTe_5c:80:55 (00:30:4f:5c:80:55) Destination: PlanetTe_5c:80:55 (00:30:4f:5c:80:55) Address: PlanetTe_5c:80:55 (00:30:4f:5c:80:55) .... ...0 .... .... .... .... = Multicast: This is a UNICAST frame .... ..0. .... .... .... .... = Locally Administrated Address: This is a FACTORY DEFAULT address Source: 00:21:5a:f8:83:ed (00:21:5a:f8:83:ed) Address: 00:21:5a:f8:83:ed (00:21:5a:f8:83:ed) .... ...0 .... .... .... .... = Multicast: This is a UNICAST frame .... ..0. .... .... .... .... = Locally Administrated Address: This is a FACTORY DEFAULT address Type: IP (0x0800) Internet Protocol, Src: 192.168.0.4 (192.168.0.4), Dst: 192.168.0.3 (192.168.0.3) Version: 4 Header length: 20 bytes Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00) 0000 00.. = Differentiated Services Codepoint: Default (0x00) .... ..0. = ECN-Capable Transport (ECT): 0 .... ...0 = ECN-CE: 0 Total Length: 395 Identification: 0x0000 (0) Flags: 0x04 (Don't Fragment) 0... = Reserved bit: Not set .1.. = Don't fragment: Set ..0. = More fragments: Not set Fragment offset: 0 Time to live: 64 Protocol: UDP (0x11) Header checksum: 0xb80a [correct] Good: True Bad : False Source: 192.168.0.4 (192.168.0.4) Destination: 192.168.0.3 (192.168.0.3) User Datagram Protocol, Src Port: 5060 (5060), Dst Port: 5060 (5060) Source port: 5060 (5060) Destination port: 5060 (5060) Length: 375 Checksum: 0xe972 [correct] Session Initiation Protocol Request-Line: ACK sip:[email protected] SIP/2.0 Method: ACK Resent Packet: False Message Header Via: SIP/2.0/UDP 192.168.0.4:5060;rport;branch=z9hG4bK5B9831A375E6E131D282FD5452900F57 From: 1001 <sip:[email protected]>;tag=116251041 SIP Display info: 1001 SIP from address: sip:[email protected] SIP tag: 116251041 To: <sip:[email protected]>;tag=as0b318557 SIP to address: sip:[email protected] SIP tag: as0b318557 Contact: <sip:[email protected]:5060> Contact Binding: <sip:[email protected]:5060> URI: <sip:[email protected]:5060> SIP contact address: sip:[email protected]:5060 Call-ID: [email protected] CSeq: 46028 ACK Max-Forwards: 70 Content-Length: 0 No. Time Source 10 13.296201 192.168.0.3 description Destination Protocol Info 192.168.0.4 SIP/SDP Request: INVITE sip:[email protected]:5060, with session Frame 10 (819 bytes on wire, 819 bytes captured) Arrival Time: Nov 16, 2008 08:33:12.764185000 Time delta from previous packet: 0.000230000 seconds Time since reference or first frame: 13.296201000 seconds Frame Number: 10 Packet Length: 819 bytes Capture Length: 819 bytes 63 Protocols in frame: eth:ip:udp:sip:sdp Coloring Rule Name: Checksum Errors Coloring Rule String: edp.checksum_bad==1 || ip.checksum_bad==1 || tcp.checksum_bad || udp.checksum_bad Ethernet II, Src: PlanetTe_5c:80:55 (00:30:4f:5c:80:55), Dst: 00:21:5a:f8:83:ed (00:21:5a:f8:83:ed) Destination: 00:21:5a:f8:83:ed (00:21:5a:f8:83:ed) Address: 00:21:5a:f8:83:ed (00:21:5a:f8:83:ed) .... ...0 .... .... .... .... = Multicast: This is a UNICAST frame .... ..0. .... .... .... .... = Locally Administrated Address: This is a FACTORY DEFAULT address Source: PlanetTe_5c:80:55 (00:30:4f:5c:80:55) Address: PlanetTe_5c:80:55 (00:30:4f:5c:80:55) .... ...0 .... .... .... .... = Multicast: This is a UNICAST frame .... ..0. .... .... .... .... = Locally Administrated Address: This is a FACTORY DEFAULT address Type: IP (0x0800) Internet Protocol, Src: 192.168.0.3 (192.168.0.3), Dst: 192.168.0.4 (192.168.0.4) Version: 4 Header length: 20 bytes Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00) 0000 00.. = Differentiated Services Codepoint: Default (0x00) .... ..0. = ECN-Capable Transport (ECT): 0 .... ...0 = ECN-CE: 0 Total Length: 805 Identification: 0xdbf8 (56312) Flags: 0x00 0... = Reserved bit: Not set .0.. = Don't fragment: Not set ..0. = More fragments: Not set Fragment offset: 0 Time to live: 64 Protocol: UDP (0x11) Header checksum: 0x1a78 [correct] Good: True Bad : False Source: 192.168.0.3 (192.168.0.3) Destination: 192.168.0.4 (192.168.0.4) User Datagram Protocol, Src Port: 5060 (5060), Dst Port: 5060 (5060) Source port: 5060 (5060) Destination port: 5060 (5060) Length: 785 Checksum: 0x847a [incorrect, should be 0x1128] Session Initiation Protocol Request-Line: INVITE sip:[email protected]:5060 SIP/2.0 Method: INVITE Resent Packet: False Message Header Via: SIP/2.0/UDP 192.168.0.3:5060;branch=z9hG4bK0d833950;rport From: <sip:[email protected]>;tag=as0b318557 SIP from address: sip:[email protected] SIP tag: as0b318557 To: 1001 <sip:[email protected]>;tag=116251041 SIP Display info: 1001 SIP to address: sip:[email protected] SIP tag: 116251041 Contact: <sip:[email protected]> Contact Binding: <sip:[email protected]> URI: <sip:[email protected]> SIP contact address: sip:[email protected] Call-ID: [email protected] CSeq: 102 INVITE User-Agent: Asterisk PBX Max-Forwards: 70 Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY Supported: replaces Content-Type: application/sdp Content-Length: 282 Message body Session Description Protocol Session Description Protocol Version (v): 0 Owner/Creator, Session Id (o): root 3010 3011 IN IP4 192.168.0.3 Owner Username: root Session ID: 3010 Session Version: 3011 Owner Network Type: IN Owner Address Type: IP4 Owner Address: 192.168.0.3 Session Name (s): session Connection Information (c): IN IP4 192.168.0.3 64 Connection Network Type: IN Connection Address Type: IP4 Connection Address: 192.168.0.3 Time Description, active time (t): 0 0 Session Start Time: 0 Session Stop Time: 0 Media Description, name and address (m): audio 8000 RTP/AVP 3 0 8 101 Media Type: audio Media Port: 8000 Media Proto: RTP/AVP Media Format: GSM 06.10 Media Format: ITU-T G.711 PCMU Media Format: ITU-T G.711 PCMA Media Format: 101 Media Attribute (a): rtpmap:3 GSM/8000 Media Attribute Fieldname: rtpmap Media Attribute Value: 3 GSM/8000 Media Attribute (a): rtpmap:0 PCMU/8000 Media Attribute Fieldname: rtpmap Media Attribute Value: 0 PCMU/8000 Media Attribute (a): rtpmap:8 PCMA/8000 Media Attribute Fieldname: rtpmap Media Attribute Value: 8 PCMA/8000 Media Attribute (a): rtpmap:101 telephone-event/8000 Media Attribute Fieldname: rtpmap Media Attribute Value: 101 telephone-event/8000 Media Attribute (a): fmtp:101 0-16 Media Attribute Fieldname: fmtp Media Attribute Value: 101 0-16 Media Attribute (a): silenceSupp:off - - - Media Attribute Fieldname: silenceSupp Media Attribute Value: off - - - Media Attribute (a): ptime:20 Media Attribute Fieldname: ptime Media Attribute Value: 20 Media Attribute (a): sendrecv No. Time Source 11 13.304532 192.168.0.4 Destination 192.168.0.3 Protocol Info SIP Status: 100 Trying Frame 11 (384 bytes on wire, 384 bytes captured) Arrival Time: Nov 16, 2008 08:33:12.772516000 Time delta from previous packet: 0.008331000 seconds Time since reference or first frame: 13.304532000 seconds Frame Number: 11 Packet Length: 384 bytes Capture Length: 384 bytes Protocols in frame: eth:ip:udp:sip Coloring Rule Name: UDP Coloring Rule String: udp Ethernet II, Src: 00:21:5a:f8:83:ed (00:21:5a:f8:83:ed), Dst: PlanetTe_5c:80:55 (00:30:4f:5c:80:55) Destination: PlanetTe_5c:80:55 (00:30:4f:5c:80:55) Address: PlanetTe_5c:80:55 (00:30:4f:5c:80:55) .... ...0 .... .... .... .... = Multicast: This is a UNICAST frame .... ..0. .... .... .... .... = Locally Administrated Address: This is a FACTORY DEFAULT address Source: 00:21:5a:f8:83:ed (00:21:5a:f8:83:ed) Address: 00:21:5a:f8:83:ed (00:21:5a:f8:83:ed) .... ...0 .... .... .... .... = Multicast: This is a UNICAST frame .... ..0. .... .... .... .... = Locally Administrated Address: This is a FACTORY DEFAULT address Type: IP (0x0800) Internet Protocol, Src: 192.168.0.4 (192.168.0.4), Dst: 192.168.0.3 (192.168.0.3) Version: 4 Header length: 20 bytes Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00) 0000 00.. = Differentiated Services Codepoint: Default (0x00) .... ..0. = ECN-Capable Transport (ECT): 0 .... ...0 = ECN-CE: 0 Total Length: 370 Identification: 0x0000 (0) Flags: 0x04 (Don't Fragment) 0... = Reserved bit: Not set .1.. = Don't fragment: Set ..0. = More fragments: Not set Fragment offset: 0 Time to live: 64 Protocol: UDP (0x11) 65 Header checksum: 0xb823 [correct] Good: True Bad : False Source: 192.168.0.4 (192.168.0.4) Destination: 192.168.0.3 (192.168.0.3) User Datagram Protocol, Src Port: 5060 (5060), Dst Port: 5060 (5060) Source port: 5060 (5060) Destination port: 5060 (5060) Length: 350 Checksum: 0xa233 [correct] Session Initiation Protocol Status-Line: SIP/2.0 100 Trying Status-Code: 100 Resent Packet: False Message Header Via: SIP/2.0/UDP 192.168.0.3:5060;branch=z9hG4bK0d833950;rport From: <sip:[email protected]>;tag=as0b318557 SIP from address: sip:[email protected] SIP tag: as0b318557 To: 1001 <sip:[email protected]>;tag=116251041 SIP Display info: 1001 SIP to address: sip:[email protected] SIP tag: 116251041 Contact: <sip:[email protected]:5060> Contact Binding: <sip:[email protected]:5060> URI: <sip:[email protected]:5060> SIP contact address: sip:[email protected]:5060 Call-ID: [email protected] CSeq: 102 INVITE Server: X-Lite release 1105d Content-Length: 0 No. Time Source 12 13.309167 192.168.0.4 Destination 192.168.0.3 Protocol Info SIP/SDP Status: 200 Ok, with session description Frame 12 (720 bytes on wire, 720 bytes captured) Arrival Time: Nov 16, 2008 08:33:12.777151000 Time delta from previous packet: 0.004635000 seconds Time since reference or first frame: 13.309167000 seconds Frame Number: 12 Packet Length: 720 bytes Capture Length: 720 bytes Protocols in frame: eth:ip:udp:sip:sdp Coloring Rule Name: UDP Coloring Rule String: udp Ethernet II, Src: 00:21:5a:f8:83:ed (00:21:5a:f8:83:ed), Dst: PlanetTe_5c:80:55 (00:30:4f:5c:80:55) Destination: PlanetTe_5c:80:55 (00:30:4f:5c:80:55) Address: PlanetTe_5c:80:55 (00:30:4f:5c:80:55) .... ...0 .... .... .... .... = Multicast: This is a UNICAST frame .... ..0. .... .... .... .... = Locally Administrated Address: This is a FACTORY DEFAULT address Source: 00:21:5a:f8:83:ed (00:21:5a:f8:83:ed) Address: 00:21:5a:f8:83:ed (00:21:5a:f8:83:ed) .... ...0 .... .... .... .... = Multicast: This is a UNICAST frame .... ..0. .... .... .... .... = Locally Administrated Address: This is a FACTORY DEFAULT address Type: IP (0x0800) Internet Protocol, Src: 192.168.0.4 (192.168.0.4), Dst: 192.168.0.3 (192.168.0.3) Version: 4 Header length: 20 bytes Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00) 0000 00.. = Differentiated Services Codepoint: Default (0x00) .... ..0. = ECN-Capable Transport (ECT): 0 .... ...0 = ECN-CE: 0 Total Length: 706 Identification: 0x0000 (0) Flags: 0x04 (Don't Fragment) 0... = Reserved bit: Not set .1.. = Don't fragment: Set ..0. = More fragments: Not set Fragment offset: 0 Time to live: 64 Protocol: UDP (0x11) Header checksum: 0xb6d3 [correct] Good: True Bad : False Source: 192.168.0.4 (192.168.0.4) Destination: 192.168.0.3 (192.168.0.3) 66 User Datagram Protocol, Src Port: 5060 (5060), Dst Port: 5060 (5060) Source port: 5060 (5060) Destination port: 5060 (5060) Length: 686 Checksum: 0x8378 [correct] Session Initiation Protocol Status-Line: SIP/2.0 200 Ok Status-Code: 200 Resent Packet: False Message Header Via: SIP/2.0/UDP 192.168.0.3:5060;branch=z9hG4bK0d833950;rport From: <sip:[email protected]>;tag=as0b318557 SIP from address: sip:[email protected] SIP tag: as0b318557 To: 1001 <sip:[email protected]>;tag=116251041 SIP Display info: 1001 SIP to address: sip:[email protected] SIP tag: 116251041 Contact: <sip:[email protected]:5060> Contact Binding: <sip:[email protected]:5060> URI: <sip:[email protected]:5060> SIP contact address: sip:[email protected]:5060 Call-ID: [email protected] CSeq: 102 INVITE Content-Type: application/sdp Server: X-Lite release 1105d Content-Length: 307 Message body Session Description Protocol Session Description Protocol Version (v): 0 Owner/Creator, Session Id (o): 1001 2765897642 2765903617 IN IP4 192.168.0.4 Owner Username: 1001 Session ID: 2765897642 Session Version: 2765903617 Owner Network Type: IN Owner Address Type: IP4 Owner Address: 192.168.0.4 Session Name (s): X-Lite Connection Information (c): IN IP4 192.168.0.4 Connection Network Type: IN Connection Address Type: IP4 Connection Address: 192.168.0.4 Time Description, active time (t): 0 0 Session Start Time: 0 Session Stop Time: 0 Media Description, name and address (m): audio 8000 RTP/AVP 3 0 8 98 97 101 Media Type: audio Media Port: 8000 Media Proto: RTP/AVP Media Format: GSM 06.10 Media Format: ITU-T G.711 PCMU Media Format: ITU-T G.711 PCMA Media Format: 98 Media Format: 97 Media Format: 101 Media Attribute (a): rtpmap:0 pcmu/8000 Media Attribute Fieldname: rtpmap Media Attribute Value: 0 pcmu/8000 Media Attribute (a): rtpmap:8 pcma/8000 Media Attribute Fieldname: rtpmap Media Attribute Value: 8 pcma/8000 Media Attribute (a): rtpmap:3 gsm/8000 Media Attribute Fieldname: rtpmap Media Attribute Value: 3 gsm/8000 Media Attribute (a): rtpmap:98 iLBC/8000 Media Attribute Fieldname: rtpmap Media Attribute Value: 98 iLBC/8000 Media Attribute (a): rtpmap:97 speex/8000 Media Attribute Fieldname: rtpmap Media Attribute Value: 97 speex/8000 Media Attribute (a): rtpmap:101 telephone-event/8000 Media Attribute Fieldname: rtpmap Media Attribute Value: 101 telephone-event/8000 Media Attribute (a): fmtp:101 0-15 Media Attribute Fieldname: fmtp Media Attribute Value: 101 0-15 67 Media Attribute (a): sendrecv No. Time Source 13 13.309396 192.168.0.3 Destination 192.168.0.4 Protocol Info SIP Request: ACK sip:[email protected]:5060 Frame 13 (409 bytes on wire, 409 bytes captured) Arrival Time: Nov 16, 2008 08:33:12.777380000 Time delta from previous packet: 0.000229000 seconds Time since reference or first frame: 13.309396000 seconds Frame Number: 13 Packet Length: 409 bytes Capture Length: 409 bytes Protocols in frame: eth:ip:udp:sip Coloring Rule Name: Checksum Errors Coloring Rule String: edp.checksum_bad==1 || ip.checksum_bad==1 || tcp.checksum_bad || udp.checksum_bad Ethernet II, Src: PlanetTe_5c:80:55 (00:30:4f:5c:80:55), Dst: 00:21:5a:f8:83:ed (00:21:5a:f8:83:ed) Destination: 00:21:5a:f8:83:ed (00:21:5a:f8:83:ed) Address: 00:21:5a:f8:83:ed (00:21:5a:f8:83:ed) .... ...0 .... .... .... .... = Multicast: This is a UNICAST frame .... ..0. .... .... .... .... = Locally Administrated Address: This is a FACTORY DEFAULT address Source: PlanetTe_5c:80:55 (00:30:4f:5c:80:55) Address: PlanetTe_5c:80:55 (00:30:4f:5c:80:55) .... ...0 .... .... .... .... = Multicast: This is a UNICAST frame .... ..0. .... .... .... .... = Locally Administrated Address: This is a FACTORY DEFAULT address Type: IP (0x0800) Internet Protocol, Src: 192.168.0.3 (192.168.0.3), Dst: 192.168.0.4 (192.168.0.4) Version: 4 Header length: 20 bytes Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00) 0000 00.. = Differentiated Services Codepoint: Default (0x00) .... ..0. = ECN-Capable Transport (ECT): 0 .... ...0 = ECN-CE: 0 Total Length: 395 Identification: 0xdbfa (56314) Flags: 0x00 0... = Reserved bit: Not set .0.. = Don't fragment: Not set ..0. = More fragments: Not set Fragment offset: 0 Time to live: 64 Protocol: UDP (0x11) Header checksum: 0x1c10 [correct] Good: True Bad : False Source: 192.168.0.3 (192.168.0.3) Destination: 192.168.0.4 (192.168.0.4) User Datagram Protocol, Src Port: 5060 (5060), Dst Port: 5060 (5060) Source port: 5060 (5060) Destination port: 5060 (5060) Length: 375 Checksum: 0x82e0 [incorrect, should be 0xef88] Session Initiation Protocol Request-Line: ACK sip:[email protected]:5060 SIP/2.0 Method: ACK Resent Packet: False Message Header Via: SIP/2.0/UDP 192.168.0.3:5060;branch=z9hG4bK375967c5;rport From: <sip:[email protected]>;tag=as0b318557 SIP from address: sip:[email protected] SIP tag: as0b318557 To: 1001 <sip:[email protected]>;tag=116251041 SIP Display info: 1001 SIP to address: sip:[email protected] SIP tag: 116251041 Contact: <sip:[email protected]> Contact Binding: <sip:[email protected]> URI: <sip:[email protected]> SIP contact address: sip:[email protected] Call-ID: [email protected] CSeq: 102 ACK User-Agent: Asterisk PBX Max-Forwards: 70 Content-Length: 0 No. Time Source 14 15.096360 192.168.0.4 Destination 192.168.0.3 Protocol Info UDP Source port: 5060 Destination port: 5060 68 Frame 14 (60 bytes on wire, 60 bytes captured) Arrival Time: Nov 16, 2008 08:33:14.564344000 Time delta from previous packet: 1.786964000 seconds Time since reference or first frame: 15.096360000 seconds Frame Number: 14 Packet Length: 60 bytes Capture Length: 60 bytes Protocols in frame: eth:ip:udp:data Coloring Rule Name: UDP Coloring Rule String: udp Ethernet II, Src: 00:21:5a:f8:83:ed (00:21:5a:f8:83:ed), Dst: PlanetTe_5c:80:55 (00:30:4f:5c:80:55) Destination: PlanetTe_5c:80:55 (00:30:4f:5c:80:55) Address: PlanetTe_5c:80:55 (00:30:4f:5c:80:55) .... ...0 .... .... .... .... = Multicast: This is a UNICAST frame .... ..0. .... .... .... .... = Locally Administrated Address: This is a FACTORY DEFAULT address Source: 00:21:5a:f8:83:ed (00:21:5a:f8:83:ed) Address: 00:21:5a:f8:83:ed (00:21:5a:f8:83:ed) .... ...0 .... .... .... .... = Multicast: This is a UNICAST frame .... ..0. .... .... .... .... = Locally Administrated Address: This is a FACTORY DEFAULT address Type: IP (0x0800) Trailer: 00000000000000000000000000000000 Internet Protocol, Src: 192.168.0.4 (192.168.0.4), Dst: 192.168.0.3 (192.168.0.3) Version: 4 Header length: 20 bytes Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00) 0000 00.. = Differentiated Services Codepoint: Default (0x00) .... ..0. = ECN-Capable Transport (ECT): 0 .... ...0 = ECN-CE: 0 Total Length: 30 Identification: 0x0000 (0) Flags: 0x04 (Don't Fragment) 0... = Reserved bit: Not set .1.. = Don't fragment: Set ..0. = More fragments: Not set Fragment offset: 0 Time to live: 64 Protocol: UDP (0x11) Header checksum: 0xb977 [correct] Good: True Bad : False Source: 192.168.0.4 (192.168.0.4) Destination: 192.168.0.3 (192.168.0.3) User Datagram Protocol, Src Port: 5060 (5060), Dst Port: 5060 (5060) Source port: 5060 (5060) Destination port: 5060 (5060) Length: 10 Checksum: 0x49f0 [correct] Data (2 bytes) 0000 0d 0a No. Time Source 15 19.885955 192.168.0.4 .. Destination 192.168.0.3 Protocol Info SIP Request: BYE sip:[email protected] Frame 15 (443 bytes on wire, 443 bytes captured) Arrival Time: Nov 16, 2008 08:33:19.353939000 Time delta from previous packet: 4.789595000 seconds Time since reference or first frame: 19.885955000 seconds Frame Number: 15 Packet Length: 443 bytes Capture Length: 443 bytes Protocols in frame: eth:ip:udp:sip Coloring Rule Name: UDP Coloring Rule String: udp Ethernet II, Src: 00:21:5a:f8:83:ed (00:21:5a:f8:83:ed), Dst: PlanetTe_5c:80:55 (00:30:4f:5c:80:55) Destination: PlanetTe_5c:80:55 (00:30:4f:5c:80:55) Address: PlanetTe_5c:80:55 (00:30:4f:5c:80:55) .... ...0 .... .... .... .... = Multicast: This is a UNICAST frame .... ..0. .... .... .... .... = Locally Administrated Address: This is a FACTORY DEFAULT address Source: 00:21:5a:f8:83:ed (00:21:5a:f8:83:ed) Address: 00:21:5a:f8:83:ed (00:21:5a:f8:83:ed) .... ...0 .... .... .... .... = Multicast: This is a UNICAST frame .... ..0. .... .... .... .... = Locally Administrated Address: This is a FACTORY DEFAULT address Type: IP (0x0800) Internet Protocol, Src: 192.168.0.4 (192.168.0.4), Dst: 192.168.0.3 (192.168.0.3) 69 Version: 4 Header length: 20 bytes Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00) 0000 00.. = Differentiated Services Codepoint: Default (0x00) .... ..0. = ECN-Capable Transport (ECT): 0 .... ...0 = ECN-CE: 0 Total Length: 429 Identification: 0x0000 (0) Flags: 0x04 (Don't Fragment) 0... = Reserved bit: Not set .1.. = Don't fragment: Set ..0. = More fragments: Not set Fragment offset: 0 Time to live: 64 Protocol: UDP (0x11) Header checksum: 0xb7e8 [correct] Good: True Bad : False Source: 192.168.0.4 (192.168.0.4) Destination: 192.168.0.3 (192.168.0.3) User Datagram Protocol, Src Port: 5060 (5060), Dst Port: 5060 (5060) Source port: 5060 (5060) Destination port: 5060 (5060) Length: 409 Checksum: 0xee38 [correct] Session Initiation Protocol Request-Line: BYE sip:[email protected] SIP/2.0 Method: BYE Resent Packet: False Message Header Via: SIP/2.0/UDP 192.168.0.4:5060;rport;branch=z9hG4bK26B127E4BB5B9EEA427B2E09DA2C0432 From: 1001 <sip:[email protected]>;tag=116251041 SIP Display info: 1001 SIP from address: sip:[email protected] SIP tag: 116251041 To: <sip:[email protected]>;tag=as0b318557 SIP to address: sip:[email protected] SIP tag: as0b318557 Contact: <sip:[email protected]:5060> Contact Binding: <sip:[email protected]:5060> URI: <sip:[email protected]:5060> SIP contact address: sip:[email protected]:5060 Call-ID: [email protected] CSeq: 46029 BYE Max-Forwards: 70 User-Agent: X-Lite release 1105d Content-Length: 0 No. Time Source 16 19.886145 192.168.0.3 Destination 192.168.0.4 Protocol Info SIP Status: 200 OK Frame 16 (509 bytes on wire, 509 bytes captured) Arrival Time: Nov 16, 2008 08:33:19.354129000 Time delta from previous packet: 0.000190000 seconds Time since reference or first frame: 19.886145000 seconds Frame Number: 16 Packet Length: 509 bytes Capture Length: 509 bytes Protocols in frame: eth:ip:udp:sip Coloring Rule Name: Checksum Errors Coloring Rule String: edp.checksum_bad==1 || ip.checksum_bad==1 || tcp.checksum_bad || udp.checksum_bad Ethernet II, Src: PlanetTe_5c:80:55 (00:30:4f:5c:80:55), Dst: 00:21:5a:f8:83:ed (00:21:5a:f8:83:ed) Destination: 00:21:5a:f8:83:ed (00:21:5a:f8:83:ed) Address: 00:21:5a:f8:83:ed (00:21:5a:f8:83:ed) .... ...0 .... .... .... .... = Multicast: This is a UNICAST frame .... ..0. .... .... .... .... = Locally Administrated Address: This is a FACTORY DEFAULT address Source: PlanetTe_5c:80:55 (00:30:4f:5c:80:55) Address: PlanetTe_5c:80:55 (00:30:4f:5c:80:55) .... ...0 .... .... .... .... = Multicast: This is a UNICAST frame .... ..0. .... .... .... .... = Locally Administrated Address: This is a FACTORY DEFAULT address Type: IP (0x0800) Internet Protocol, Src: 192.168.0.3 (192.168.0.3), Dst: 192.168.0.4 (192.168.0.4) Version: 4 Header length: 20 bytes Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00) 0000 00.. = Differentiated Services Codepoint: Default (0x00) 70 .... ..0. = ECN-Capable Transport (ECT): 0 .... ...0 = ECN-CE: 0 Total Length: 495 Identification: 0xdc06 (56326) Flags: 0x00 0... = Reserved bit: Not set .0.. = Don't fragment: Not set ..0. = More fragments: Not set Fragment offset: 0 Time to live: 64 Protocol: UDP (0x11) Header checksum: 0x1ba0 [correct] Good: True Bad : False Source: 192.168.0.3 (192.168.0.3) Destination: 192.168.0.4 (192.168.0.4) User Datagram Protocol, Src Port: 5060 (5060), Dst Port: 5060 (5060) Source port: 5060 (5060) Destination port: 5060 (5060) Length: 475 Checksum: 0x8344 [incorrect, should be 0x2f13] Session Initiation Protocol Status-Line: SIP/2.0 200 OK Status-Code: 200 Resent Packet: False Message Header Via: SIP/2.0/UDP 192.168.0.4:5060;branch=z9hG4bK26B127E4BB5B9EEA427B2E09DA2C0432;received=192.168.0.4;rport=5060 From: 1001 <sip:[email protected]>;tag=116251041 SIP Display info: 1001 SIP from address: sip:[email protected] SIP tag: 116251041 To: <sip:[email protected]>;tag=as0b318557 SIP to address: sip:[email protected] SIP tag: as0b318557 Call-ID: [email protected] CSeq: 46029 BYE User-Agent: Asterisk PBX Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY Supported: replaces Contact: <sip:[email protected]> Contact Binding: <sip:[email protected]> URI: <sip:[email protected]> SIP contact address: sip:[email protected] Content-Length: 0 No. Time Source 17 25.251105 192.168.0.4 Destination 192.168.0.3 Protocol Info UDP Source port: 5060 Destination port: 5060 Frame 17 (60 bytes on wire, 60 bytes captured) Arrival Time: Nov 16, 2008 08:33:24.719089000 Time delta from previous packet: 5.364960000 seconds Time since reference or first frame: 25.251105000 seconds Frame Number: 17 Packet Length: 60 bytes Capture Length: 60 bytes Protocols in frame: eth:ip:udp:data Coloring Rule Name: UDP Coloring Rule String: udp Ethernet II, Src: 00:21:5a:f8:83:ed (00:21:5a:f8:83:ed), Dst: PlanetTe_5c:80:55 (00:30:4f:5c:80:55) Destination: PlanetTe_5c:80:55 (00:30:4f:5c:80:55) Address: PlanetTe_5c:80:55 (00:30:4f:5c:80:55) .... ...0 .... .... .... .... = Multicast: This is a UNICAST frame .... ..0. .... .... .... .... = Locally Administrated Address: This is a FACTORY DEFAULT address Source: 00:21:5a:f8:83:ed (00:21:5a:f8:83:ed) Address: 00:21:5a:f8:83:ed (00:21:5a:f8:83:ed) .... ...0 .... .... .... .... = Multicast: This is a UNICAST frame .... ..0. .... .... .... .... = Locally Administrated Address: This is a FACTORY DEFAULT address Type: IP (0x0800) Trailer: 00000000000000000000000000000000 Internet Protocol, Src: 192.168.0.4 (192.168.0.4), Dst: 192.168.0.3 (192.168.0.3) Version: 4 Header length: 20 bytes Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00) 0000 00.. = Differentiated Services Codepoint: Default (0x00) .... ..0. = ECN-Capable Transport (ECT): 0 71 .... ...0 = ECN-CE: 0 Total Length: 30 Identification: 0x0000 (0) Flags: 0x04 (Don't Fragment) 0... = Reserved bit: Not set .1.. = Don't fragment: Set ..0. = More fragments: Not set Fragment offset: 0 Time to live: 64 Protocol: UDP (0x11) Header checksum: 0xb977 [correct] Good: True Bad : False Source: 192.168.0.4 (192.168.0.4) Destination: 192.168.0.3 (192.168.0.3) User Datagram Protocol, Src Port: 5060 (5060), Dst Port: 5060 (5060) Source port: 5060 (5060) Destination port: 5060 (5060) Length: 10 Checksum: 0x49f0 [correct] Data (2 bytes) 0000 0d 0a .. 72 REFERÊNCIAS BIBLIOGRÁFICAS [1] TELECO INFORMAÇÃO EM TELECOMUNICAÇÕES. Evolução das redes de telecomunicações: Arquitetura IMS. Disponível em http://www.teleco.com.br/tutoriais/tutorialims/pagina_2.asp. Acesso em Março, 2008. [2] [Asterisk] MEGGELEN, Jim, Van; SMITH Jared; SMITH, Leif Madsen. The future of telephony nd 2 . Ed. O’Reilly Media, Inc, 2007 [3] [Collins, 2003] COLLINS, Daniel. Carrier Grade Voice Over IP. Chapter 5: The Session nd Initiation Protocol (SIP). 2 ed. [s.l.]: McGraw-Hill, 2003. [4] [Kurose, 2003] KUROSE, James F.; ROSS, Keith W. Rede de Computadores e a Internet: uma nova abordagem. Tradução: Arlete Simille Marques; revisão técnica Wagner Luiz Zucchi. 1. ed. [s.l.]: Addison Wesley, 2003. [5] [The IMS] POIKSELKA, Miika; MAYER Georg; KHARTABIL, Hisham; NIEMI, Aki. IP Multimedia Concepts and Services 2nd. Ed. John Wiley & Sons, Ltd, 2006. [6] [The 3G IP Multimedia Subsystem (IMS)] CAMARILLA, Gonfalon; GARCIA-MARTIn, Miguel. nd Merging the Internet and the Cellular Worlds 2 . Ed. John Wiley & Sons, Ltd, 2006. [7] ERICSSON - THE WORLD-LEADING SUPPLIER IN TELECOMMUNICATIONS. http://www.ericsson.com. Acesso em Novembro, 2008. [8] ASTERISK – THE OPEN SOURCE PBX & TELEPHONY PLATFORM http:// www.asterisk.org. Acesso em Julho, 2008. [9] MYSQL 5.1 http://www.mysql.com. Acesso em Julho, 2008. [10] THE APACHE SOFTWARE FOUNDATION http://www.apache.org. Acesso em Julho, 2008. [11] PHP: HYPERTEXT PREPROCESSOR http://www.php.net. Acesso em Julho, 2008. 73 [12] WIRESHARK: GO DEEP http://www.wireshark.org. Acesso em Julho, 2008. [13] X-LITE – CNET DOWNLOAD.COM http://www.download.com/X-Lite/3000-2349_4-10547103.html. Acesso em Julho, 2008. [14] SUN MICROSYSTEM http://www.sun.com. Acesso em Julho, 2008. [15] SAILFIN: SAILFIN PROJECT https://sailfin.dev.java.net. Acesso em Novembro, 2008. [16] [Meggelen, 2005] MEGGELEN, Jim V.; SMITH, J.; MADSEN, L. Asterisk: The Future of Telephony. 1st ed. [s.l.]: O’Reilly, 2005. [17] MORAIS, M. C., Serviços em redes convergentes multimídia para controle de Clientes SIP. Trabalho de Conclusão de Curso. Universidade São Francisco, Campinas, 2007. 74