Telefone VoIP WiFi baseado em Windows Mobile Trabalho realizado pelos alunos: Grupo 17
Índice A Introdução...3 B Objectivos...3 C Especificações, Desenvolvimento e Testes...3 C.1 Especificações...3 C.2 Desenvolvimento...4 C.3 Testes...4 C.4 Instalação e Execução...5 F Glossário...5 D Funcionalidade Adicional...6 E Conclusão...6 F Glossário...6 2 / 6
A Introdução Este relatório incide no desenvolvimento de uma aplicação VoIP, que permite a comunicação entre aplicações de forma directa, no caso de o endereço IP do destinatário da chamada ser conhecido, mas também através do uso de um PBX, no qual ambos os clientes se registam, podendo a partir desse momento efectuar chamadas para outras aplicações que estejam registadas no mesmo PBX, assim como para telefones que também se encontrem registados no mesmo PBX. B Objectivos Os objectivos deste trabalho, tal como referido na introdução, consistiam em desenvolver uma aplicação que suportasse VoIP, permitindo efectuar e receber chamadas para/de outra aplicação SIP localizada em qualquer ponto da rede, assim como para telefones SIP que se encontrassem na mesma rede. Deveria ser possível estabelecer chamadas através de um Servidor SIP ou directamente, caso o endereço IP do destinatário seja conhecido. Como requisito base da aplicação a desenvolver, os codecs obrigatoriamente disponíveis seriam G.711 ulaw/alaw, no entanto esta seria valorizada no caso de também implementar codecs adicionais como o DVI4, GSM, ilbc ou Speex. Da mesma forma, seria atribuída valorização ao trabalho na presença de funcionalidades adicionais, face aos requisitos mínimos da aplicação a desenvolver, ficando estas a cargo dos alunos. C Especificações, Desenvolvimento e Testes C.1 Especificações A linguagem de programação escolhida para o desenvolvimento da aplicação foi o Java (http://java.sun.com/), pela vasta quantidade de informação disponível na Internet de forma gratuita, à qual pudemos aceder sempre que necessário. Como ambiente de programação, optámos por trabalhar em NetBeans (http://www.netbeans.org/), devido à possibilidade de trabalhar com formulários em Java. 3 / 6
C.2 Desenvolvimento Em virtude de se ter escolhido o Java como linguagem de programação, foram criadas várias classes, tendo cada uma função específica. Para possibilitar o envio e recepção de voz em simultâneo, optámos por um sistema de threads Java, onde existe uma encarregue de capturar som do microfone e enviar para um socket previamente criado. Paralelamente existe outra thread responsável por receber dados do socket e enviar essa informação para as colunas. Existe também uma thread responsável pelo envio e recepção de mensagens SIP, a qual verifica se é recebido algo no porto SIP definido pelo utilizador no inicio da execução da aplicação, agindo em conformidade. Existem mais duas threads, uma para efectuar chamada e outra para terminar chamada, iniciando cada uma delas os procedimentos adequados para realizar as suas tarefas, como o envio de mensagens SIP adequadas à situação em causa. Por fim, existe uma thread que permite o envio e recepção de mensagens de texto entre dois utilizadores, desde que os endereços IP sejam conhecidos. C.3 Testes Como ambiente de teste foi utilizado o laboratório 1.28, do qual foram usados alguns equipamentos disponíveis. Os equipamentos utilizados foram: o PBX (Asterisk), dois PC s, 3 telefones e auriculares. Os testes consistiram em realizar chamadas entre 2 PC s e entre PC e telefone. Para o primeiro caso, poderia ser usado o PBX como intermediário, onde previamente as aplicações deveriam registar-se, ou directamente, caso o endereço do destinatário fosse conhecido. Um exemplo da arquitectura utilizada para os testes, está representado na figura seguinte: Figura 1 Arquitectura do ambiente de teste 4 / 6
C.4 Instalação e Execução Para iniciar a aplicação, deve dar o seguinte comando na pasta /dist do projecto: Exemplo: E:\ProjRA\dist>java -jar ProjRA.jar Para execução correcta da aplicação, devem inicialmente ser preenchidos os campos pertencentes ao SIP Público e SIP Directo, seguido do Guardar e do Registar. Caso se pretenda efectuar uma chamada, devem ser preenchidos os campos associados ao Destinatário para a realização de chamada, os quais consistem no Nick, no IP (Publico ou Directo) e no porto SIP onde este se à escuta, seguido do Efectuar Chamada. Para terminar uma chamada, basta carregar no botão Desligar Chamada. Para proceder ao envio de mensagens para outras aplicações, basta preencher os campos correspondentes ao Destinatário para o envio de mensagens, os quais consistem no endereço IP do destinatário, no porto onde este se encontra à escuta e na mensagem a enviar, seguidamente deve ser carregado o botão Enviar Mensagem. Para que seja possível receber mensagens, dever ser carregado o botão Activar Recepção. A interface da aplicação é mostrada na figura seguinte: F IP PBX VoIP Glossário Internet Protocol Private Branch Exchange Voice Over IP Figura 2 Interface da Aplicação VoIP 5 / 6
D Funcionalidade Adicional Como funcionalidade adicional foi implementado um serviço de envio e recepção de mensagens entre aplicações. Para a utilização deste serviço é necessário saber o endereço IP do destinatário, assim como o porto onde este se encontra à escuta. E Conclusão Com a realização deste projecto, concluiu-se que o VoIP pode ser utilizado de diversas maneiras, como por exemplo chamadas entre 2 PC s, chamadas de vídeo-conferência ou chamadas entre vários utilizadores. Para além do VoIP, verificámos as potencialidades que existem ao nível do desenvolvimento de aplicações que integrem vários serviços, sendo que cada um deles funciona de forma transparente para o utilizador. F IP PBX PC SIP VoIP Glossário Internet Protocol Private Branch Exchange Personal Computer Session Initiation Protocol Voice Over IP 6 / 6