Home

VoViWLAN - Faculdade de Engenharia da Universidade do Porto

image

Contents

1. VoViWLAN Julho de 2007 Voip i a AddressForm i i l i J Sinaliza o mm l I l l L x A I Audio Video i l l 1 w l l l l DirectShowCapture l A A A sam AddressBook eXoSIP EMIPLIB Figura 16 Diagrama de Arquitectura F sica Pode se notar no diagrama que os pacotes est o organizados por camadas estando a azul os da interface gr fica a amarelo os do controlo de dados e mensagens e a branco os das bibliotecas Pode se afirmar que o pacote a verde faz parte das bibliotecas visto ser uma adi o ao EMIPLIB Tabela 4 Descri o dos pacotes do Diagrama de Arquitectura Fisica Pacote Descri o Voip Interface gr fica da aplica o principal AddressForm Interface gr fica do Livro de Endere os Sinaliza o Neste pacote est o incluidas todas as classes utilizadas para fazer a sinaliza o SIP Audio Pacote com classes que iniciam o dispositivo de captura de audio e fazem a transmiss o compress o reprodu o descompress o etc do v deo V deo Pacote com classes que iniciam o dispositivo de captura de v deo e fazem a transmiss o compress o recep o descompress o etc do v deo DirectShowCapture Adi o biblioteca EMIPLIB para poder capturar no formato 1420 AddressBook Bibliotec
2. 34 Figura 14 Maquina de estados de uma transac o n o INVITE num servidor 9 35 Figura 15 Diagrama da Arquitectura LO giao ceeeceeeccesceeeseeeeessnceeesneeenseceeeeees 44 Figura 16 Diagrama de Arquitectura F sica csccssscsesessesssecesesancseneccversceecanederscers 45 Figura 17 Captura de ecr da aplica o principal iii 46 Figura 18 Captura de ecr do livro de endere os ir 46 Figura 19 Captura de ecr do di logo de receber chamada ceeseeeeteeeeeteeeeenees 47 Figura 20 Captura de ecr do v deo proveniente de um utilizador 47 VoViWLAN Julho de 2007 Lista de Tabelas Tabela 1 Descri o dos casos de utiliza o do sistema principal 15 Tabela 2 Descri o dos casos de uso do Livro de Endere os ccccccceeeeeeesssteees 16 Tabela 3 Descri o dos pacotes do Diagrama de Arquitectura L gica 44 Tabela 4 Descri o dos pacotes do Diagrama de Arquitectura F sica 45 VoViWLAN Julho de 2007 Lista de Codigo C digo 1 Exemplo de uma classe que representa cadeias Chains 23 C digo 2 Exemplo da inicializa o dos componentes cccceessecceeeesteeeeeeeteeeeeees 23 C digo 3 Exemplo da liga o dos componentes numa cadeia Chain 24 C digo 4
3. SIP versus H 323 http www iptel org info trends sip html libeXoSIP2 Documentation http www antisip com documentation eXosip2 index html 53
4. Esta biblioteca implementa a sinaliza o SIP Corresponde a uma extens o de outra biblioteca chamada oS P tornando se muito mais facil de utilizar pois cont m uma camada acima do oS P Tem a vantagem de se poder utilizar fun es do oSIP para partes mais complexas e menos comuns da sinaliza o Para os requisitos desta aplica o esta biblioteca s n o suporta a negocia o SDP que feita atrav s do oSIP A informa o indicada nos pontos seguintes trata de aspectos mais t cnicos da biblioteca indicando exemplos b sicos de utiliza o 4 1 2 1 Inicializa o A primeira coisa a fazer no eXoSIP inicializ lo juntamente com o oS P e abrir um socket para receber pedidos O exemplo a seguir indica como deve ser feito 36 VoViWLAN Julho de 2007 include lt eXosip2 eXosip h gt LIE ILF TRACE INITIALIZE 6 stdout i eXosip_init Lic a 1 0 escudo ls i eXosip listen addr IPPROTO UDP NULL port AF INET 0 me a O eXosip_quit fprintf stderr could not initialize transport layer n return 1 C digo 4 Inicializa o do eXoSIP De seguida necess rio tratar dos eventos pedidos ou respostas recebidos eXosip event t Je Ler ap je eXosip_event_wait 0 50 eXosip_lock eXosip automatic action eXosip unlock Le jo NULL break 1f Je gt type EXOSIP CALL NEW else if je gt type EXOSIP_CALL_ACK it else if j
5. o para o Microsoft Visual Studio 6 por isso ao abrir este ficheiro com o Microsoft Visual Studio NET 2003 procedeu se sua convers o Para se compilar fez se da mesma forma como se compila os projectos no Visual Studio 3 6 4 ffmpeg Ffmpeg uma solu o para gravar converter udio e v deo O EMIPLIB apenas utiliza a libavformat libavcodec e libavutil pertencentes a esta solu o para comprimir o v deo em H 263 Na p gina desta solu o est indicado que deve ser usada sempre a vers o mais recente dispon vel pelo sistema de controlo de vers es SVN Logo foi descarregada a vers o de 5 de Abril de 2006 s 15 horas 32 minutos e 54 segundos atrav s do comando svn checkout svn svn mplavyerhg hu ffmpeg trunk ffmpeg Para compilar o ffmpeg necess rio ter instalado o MinGW e o MSYS que basicamente correspondem a uma shell m nima e a um sistema m nimo que simula o Linux Na shell deve se introduzir configure enable memalign hack disable static enable shared e quando terminar fazer make O EMIPLIB utiliza os ficheiros avcodec lib avformat libeavutil lib 3 6 5 Ot Ot um sistema de interfaces gr ficas multiplataforma O EMIPLIB usa o Ot para apresentar uma janela com o v deo recebido Como o EMIPLIB n o suporta a vers o 4 do Ot foi usada a vers o 3 3 5 dispon vel em 8 Para compilar o Qt deve se seguir a extensa lista de passos descritos no ficheiro INSTALL excepto no passo ond
6. Inicializa o do CXOSIP ee rrereeeeererreaaeeeereaaerereeanaeranaaa 37 C digo 5 Tratamento de eventos no eXoSIP usessasiiisaeiaresbia punto as guica sousa nad asajac nas a 37 C digo 6 Exemplo de envio de um INVITE ccccccccsccccssssseceeeesteeeeeeenneeeseesneeeeeees 38 C digo 7 Exemplo de resposta a um pedido ssssnsssoesessseeeessseeessssreesssererssseressssene 38 C digo 8 Exemplo de uma mensagem 200 OK 0 cccccccccesssseceeeesneeeeesesneeeeessneeeeeees 39 C digo 9 Exemplo de uma mensagem SDP isissscvcsissssnsacsasencnecaseeastscedsanscesdeansaciavaoase 41 C digo 10 Fun o que lista os contactos do Livro de Endere os do Windows 42 C digo 11 Exemplo de como criar um contacto no Livro de Endere os do Windows 43 VoViWLAN Julho de 2007 Glossario ALSA Advanced Linux Sound Architecture Componente do kernel do Linux que fornece drivers para os dispositivos de som API Application Programming Interface E uma interface que um programa ou biblioteca disponibilizam para outros programas poderem usar os servi os Codec Compressor Descompressor Programa capaz de comprimir e descomprimir Di logo Ver Sec o 4 1 1 2 DirectShow API para capturar e reproduzir m dia ESD Enlightened Sound Daemon Servidor de som para o Gnome e Enlightenment fps frames por segundo Numero de imagens por segundo H 263 Codec de v
7. alho RTP e os dados que o pacote transporta e RTP payload Os dados transportados pelo pacote RTP Existem v rios formatos de payload como o PCMU PCMA etc De seguida mostra se como o formato gen rico do cabe alho RTP 0 ft 2 3 01234567890123456789012345678901 v 2 P x cc M PT sequence number timestamp PSPSPSPSHSHStSpetepStaepataepStapatatatatatatataetataet atat atetatetat contributing source CSRC identifiers synchronization source SSRC identifier Figura 5 Cabe alho de um pacote RTP Os campos t m o seguinte significado e Version V vers o Indica a vers o do protocolo e Padding P Se bit estiver a 1 indica que o pacote tem um ou mais octetos que n o pertencem ao payload O n mero de octetos a mais est indicado no ltimo octeto e Extension X Extens o Indica que h uma extens o no header e CSRC count CC Indica o n mero de identificadores CSRC que est o a seguir ao cabe alho e Payload Type PT Tipo de payload Indica o formato do payload PCMU GSM etc 20 VoViWLAN Julho de 2007 Sequence number Numero de sequ ncia Este num
8. Address Book Library uma biblioteca muito simples para c digo ger nciado managed NET e facilita a integra o do livro de endere os do Windows numa aplica o O que se pretendia com esta biblioteca era adicionar remover ou editar contactos do livro de endere os do Windows A fun o seguinte mostra como se pode listar os contactos em C void GetAllContacts if WAB AddressBook addr new WAB AddressBook WAB WABObjectCollection col addr gt GetAl11ByObjectKind WAB WABObjectKind Contacts for int 1 0 i lt col gt get Count i WAB Contact contact WAB Contact col il Console WriteLine contact gt DisplayName C digo 10 Fun o que lista os contactos do Livro de Endere os do Windows Primeiro criado um objecto do tipo AddressBook e depois s o seleccionados todos os contactos inclu dos no livro de endere os com a fun o GetAl1ByObjectKind Seguidamente atribu do o contacto a contact e impressos na consola um de cada vez 42 VoViWLAN Julho de 2007 O c digo seguinte mostra como se pode criar contacto WAB AddressBook addr new WAB AddressBook WAB Contact c addr gt CreateContact c gt set FirstName Jose c gt set Surname Silva c gt Emai lAddresses gt Add jose www com c gt Save C digo 11 Exemplo de como criar um contacto no Livro de Endere os do Windows Primeiro criado o con
9. Reset A y Timer B fires INVITE sent or Transport Err inform TU Calling gt gt 2XX 1 ot 2xx to TU 1lxx 300 699 lxx to IU ACK sent resp to IU 1xx Vv l lxx to TU Proceeding gt gt 2xx 2xx to TU 300 699 I ACK sent resp to TUI NOTE 300 699 V ACK sent Transport Err transitions Inform TU labeled with Completed gt the event gt over the action to take Figura 11 Maquina de estados de uma transac o INVITE num cliente 9 Para protocolos de transporte sem confirma o como o caso do UDP os pedidos s o retransmitidos a cada T1 segundos que duplica depois de cada retransmiss o O valor por omiss o de T1 de 500ms Para os protocolos de transporte TCP fi veis n o h retransmiss o 32 VoViWLAN Julho de 2007 A maquina de estados de transac es INVITE num cliente Figura 11 entra no estado Calling quando iniciada uma nova transac o ou seja na cria o do pedido INVITE O timer A iniciado com T1 segundos e sempre que dispara feita a retransmiss o do INVITE reiniciando o timer com 2 T1 segundos Quando o timer B dispara e a tr
10. Sec o 3 3 1 de v deo e protocolo de transporte em tempo real Sec o 3 4 H tamb m uma introdu o biblioteca utilizada Sec es 3 5 e 3 6 O Cap tulo 4 descreve como feita a sinaliza o fazendo uma introdu o aos protocolos SIP Sec o 4 1 e SDP Sec o 4 2 Este cap tulo introduz tamb m a biblioteca utilizada nas Sec o 4 1 2 e 4 1 3 O Cap tulo 5 descreve como foi implementado o livro de endere os O Cap tulo 6 mostra a arquitectura da aplica o desenvolvida Sec o 6 1 e um pequeno manual de utiliza o Sec o 6 3 Finalmente o Cap tulo 7 apresenta as conclus es e sugest es para a poss vel prossecu o do trabalho 12 VoViWLAN Julho de 2007 2 Requisitos Gerais De acordo com a descri o do projecto foi necess rio determinar os requisitos tendo em conta o tipo de aplica o que se queria desenvolver Pretendia se uma aplica o de transmiss o de udio e v deo em tempo real e para isso uma parte vital bvia e cr tica seria a captura dos dados a transmitir nomeadamente o udio e v deo A partir desta parte vital foi necess rio proceder se a uma an lise de requisitos levando especifica o de requisitos mais detalhados Assim como par metros associados captura definiu se para o v deo uma taxa de refrescamento frame rate de 15 frames por segundo fps visto ser uma taxa standard suportada pelas webcams convencionais Foi definido como 10 o
11. UAC n o deve tentar o mesmo pedido sem o modificar o 400 Bad Request O pedido n o foi percebido devido sua sintaxe o 415 Unsupported Media Type Indica que os formatos sugeridos no pedido para in cio da sess o n o s o suportados Deve mandar em anexo os formatos suportados o 486 Busy Here Diz que consegui contactar o utilizador mas este n o pode ou n o quer receber mais chamadas 31 VoViWLAN Julho de 2007 e 5xx Resposta definitiva que indica falha no servidor o 501 Not Implemented O servidor n o suporta o pedido e 6xx E uma resposta definitiva e considerada uma falha global Indica que o pedido n o pode ser aceite em todos os servidores o 603 Decline O utilizador indica que n o quer aceitar a chamada 4 1 1 4 M quinas de Estado Uma transac o corresponde ao conjunto de um pedido com as respostas entre os UAs De acordo com o RFC 3261 9 para tratar das transac es obrigat rio o uso de m quinas de estado sendo necess rio a separa o entre as transac es que s o INVITE e as que n o s o visto que h uma import ncia acrescida na entrega da resposta 200 OK o protocolo UDP n o garante a entrega dos pacotes para que o UAC responda com um ACK e inicie a troca de dados Ao todo existem quatro m quinas de estado duas do lado do cliente e duas do lado do servidor IINVITE from TU I Timer D fires lt Timer A fires IINVITE sent
12. de media e codecs que transmitem e recebem Assim o SDP descreve Uma mensagem SDP constitu da por campos do tipo lt tipo gt lt valor gt O tipo de media udio v deo etc O protocolo de transporte RTP UDP IP H 320 etc Endere o e portas remotas para transmitir media existem campos que s o obrigat rios v vers o do protocolo o dono criador e identificador da sess o s nome da sess o t tempo que a sess o est activa m nome de media e endere o de transporte Relativamente aos campos n o obrigat rios temos i informa o sobre a sess o u URI das descri o e endere o e mail p n mero de telefone c informa o sobre a liga o b informa o sobre a largura de banda z ajustamentos de fuso hor rio k chave de encripta o a atributos da sess o r n mero de repeti es em que De seguida podemos ver como se constr i uma mensagem t pica SDP num telefone SIP 40 VoViWLAN Julho de 2007 char sdp 4096 snprintf sdp 4096 v 0 r n o voviwlan 0 0 IN IP4 s r n s conversation r n TSUN IP Rs ue aa TE 0 Oea m audio d RTP AVP 100 97 112 r n a rtmap 97 speex 8000 r n a rtmap 100 speex 16000 r n a rtmap 112 speex 32000 r n m video d RTP AVP 99 r n a rtpmap 99 H263 2000 9000 r n localip localip audioport videoport C digo 9 Exemplo de uma mensagem SDP Pode se ver
13. de uso para a aplica o Figura 1 e Figura 2 VoViWLAN extends Efectuar Chamada Receber V deo Transmitir V deo Utilizador Receber Chamada adicional P r Utilizador em Espera Transferir Ficheiro Enviar stream de Ficheiro WAV Livro de Endere os Figura 1 Diagrama de casos de uso da aplica o 14 VoViwWLAN Julho de 2007 Tabela 1 Descri o dos casos de utiliza o do sistema principal Casos de Utiliza o Descri o Efectuar Chamada O utilizador quando deseja fazer uma chamada deve colocar o endere o no local certo ou seleccionar de uma mini agenda e chamar esse utilizador A chamada terminada quando s estiverem dois utilizadores e um deles a terminar ou quando o utilizador receptor rejeita a chamada Receber V deo Os utilizadores podem ou n o receber v deo Podem receber v deo automaticamente ou decidem no momento que o emissor tenta enviar Transmitir V deo No caso do utilizador possuir uma webcam pode transmitir v deo Existem duas maneiras de o come ar a transmitir logo que come a uma chamada sendo para isso necess rio activar a op o para mandar automaticamente e durante uma chamada de udio Receber Chamada Adicional Durante uma chamada pode se receber uma chamada adicional Para isso o utilizador recebe um pedido para aceitar ou rejeitar a chamada Se aceitar a nov
14. deo ideal para videoconfer ncias H 323 Protocolo de sinaliza o de chamadas Host name Nome nico de um dispositivo ligado a uma rede IETF Internet Engineering Task Force Organismo da Internet que promove os standards da Internet IP Internet Protocol um protocolo que permite entregar pacotes de uma fonte a um destino atrav s de v rias redes interligadas IPv4 Vers o 4 do IP IPv6 Vers o 5 do IP ITU International Telecommunication Union Organiza o que respons vel pela estandardiza o e aloca o do espectro IYUV Formato de representa o da imagem Jack Servidor de som que corre no MAC OS X e no Linux Jitter Varia o indesejada das caracter sticas de um sinal Kbps Kilobits por segundo Taxa de transmiss o de bits normalmente associado a velocidade de transmiss o LAN Local Area Network Rede Local VoViWLAN Julho de 2007 NAT Network Address Translation T cnica que consiste em reescrever os endere os de IP de origem de um pacote Esta t cnica utilizada porque era previsto o fim dos endere os IP dispon veis para a Internet OSS Open Sound System Interface de som port til RTP Real time Transport Protocol Protocolo de transporte em tempo real SDP Session Description Protocol Protocolo de descri o de sess es SIMPLE Session Initiation Protocol for Instant Messaging and Presence Lev
15. estava a utilizar No entanto ela capturava num formato equivalente mais comum o 1420 Estes dois formatos t m um modo de representa o da cor YUV ou seja t m uma lumin ncia e duas cromin ncias Este modelo utilizado nos sistemas de televis o PAL e NTSC Y representa a lumin ncia e U e V a cromin ncia Estes componentes s o criados a partir dos valores vermelho R Verde G e Azul B Para corrigir este problema foi criada uma c pia desta classe e substitu do o formato 24 VoViWLAN Julho de 2007 3 6 Obten o e detalhes sobre o EMIPLIB Neste projecto foi utilizada a vers o 0 11 do EMIPLIB descarregada na p gina do projecto em 5 Para compilar em Windows esta biblioteca apenas disponibilizava um ficheiro de solu o para o Microsoft Visual Studio 2005 Como se estava a utilizar o Microsoft Visual Studio NET 2003 foi necess rio criar uma nova solu o com os mesmos ficheiros e propriedades do projecto par a vers o de 2005 Antes de se compilar deve se descomentar no ficheiro mipconfig win h a linha que diz define MIPCONFIG SUPPORT QT Para utilizar esta biblioteca era necess rio compilar outras bibliotecas que o EMIPLIB dependia tais como o JRTPLIB o JThread Speex ffmpeg e Qt As sec es seguintes mostram como se obt m e como compilar estas bibliotecas e sec o 3 6 1 JRTPLIB Esta biblioteca oferece suporte ao protocolo de transporte RTP Sec o 3 4 para Windows e Linux Foi util
16. na mensagem acima atrav s do campo c que se trata de uma liga o IPv4 onde o destino do udio e v deo localip para as portas audioport e videoport Os campos a indicam que os codecs aceites s o o Speex com diversos bitrates para a transmiss o de udio e o H263 para a transmiss o de v deo Quando este protocolo utilizado na sinaliza o normalmente o INVITE d uma lista dos codecs que podem ser utilizados na sess o Se este INVITE aceite ent o mandado em anexo da mensagem OK o SDP com um s codec para cada tipo de media 41 VoViWLAN Julho de 2007 5 Livro de Endere os Achou se que seria til incluir um livro de endere os na aplica o para que os utilizadores podessem organizar os seus contactos Assim foi decidido utilizar o livro de endere os do Windows mas com uma interface gr fica integrada com a aplica o Para isso utilizou se a biblioteca Enhanced Managed NET WAB Address Book Library O acesso ao livro de endere os implementado est feito de forma a se poder adicionar modificar e remover endere os Tamb m poss vel a utiliza o do endere o para realizar uma chamada A sec o seguinte faz uma introdu o a esta biblioteca dando alguns exemplos de fun es para fazer opera es com os contactos A sec o 5 2 mostra onde se obt m e como se compila esta biblioteca 5 1 Introdu o ao Enhanced Managed NET WAB Address Book Library A Enhanced Managed NET WAB
17. ncia onde se mostrariam os diapositivos que estavam a ser apresentados no projector juntamente com os v deos dos outros utilizadores Deveria haver uma interface especial no computador que apresenta de forma a poder mostrar os diapositivos no projector No ecr do computador n o s seria poss vel controlar os diapositivos mas tamb m mostrar o v deo proveniente dos outros utilizadores Converter a aplica o para Linux seria relativamente f cil sendo para isso apenas necess rio criar uma interface gr fica nova aplica o 49 VoViWLAN Julho de 2007 Em conclus o obteve se a aplica o prevista podendo se adicionar sempre cada vez mais componentes Esta aplica o poder ficar como uma base para desenvolver novas funcionalidades ou integr la com outros tipos de programas 50 VoViWLAN Julho de 2007 Refer ncias 1 ANACOM http www anacom pt 2 Speex http www speex org 3 MSDN Introduction to DirectShow Application Programming http msdn microsoft com library default asp url library en us directshow htm introductiontodirectshowapplicationprogramming asp 4 Schulzrinne H RTP A Transport Protocol for Real Time Applications http www ietf org rfe rfc3550 txt RFC3550 Julho de 2003 5 EMIPLIB http research edm luc ac be emiplib emiplib html 6 JRTPLIB http research edm luc ac be jori jrtplib jrtplib html 7 JThread http research edm lu
18. um erro na thread 22 VoViWLAN Julho de 2007 class MyChain public MIPComponentChain joulodLatre s MyChain const std string amp chainName MIPComponentChain chainName private void onThreadExit bool error const std string amp errorComponent const std string amp errorDescription if lerror return std cerr lt lt An error occured in the background thread lt lt std endl SEd ECET lt lt Component lt lt errorComponent lt lt std endl SAE cerr lt lt incor Claeecieijoicseme YW lt lt errorDescription lt lt std endl C digo 1 Exemplo de uma classe que representa cadeias Chains Depois deve se inicializar os componentes bool returnValue int samplingRate 16000 int numChannels 1 MIPWinMMInput sndCardInput new MIPWinMMInput returnValue sndCardInput gt open samplingRate numChannels interval checkError returnValue sndCardInput MIPWinMMInput sndCardOutput new MIPWinMMOutput returnValue sndCardOutput gt open samplingRate numChannels interval checkError returnValue sndCardOutput MyChain chain Sound file player C digo 2 Exemplo da inicializa o dos componentes A fun o checkError uma fun o que deve ser criada para verificar se ocorreram erros e em caso afirmativo imprime a mensagem de erro retornada Agora necess rio criar as cadeias Chains ligar os co
19. 9 pe mm em mm resp to IU V e ee ee ee Completed A Timer K heme cu em cm em e em em e e y NOTE p mei I transitions Terminated lt labeled with the event over the action to take Figura 12 Maquina de estados de uma transac o n o INVITE para um cliente 9 A grande diferen a entre as transac es INVITE e as n o INVITE o facto das n o INVITE n o usarem o ACK 33 VoViWLAN Julho de 2007 Tal como as transac es INVITE os pedidos tamb m s o retransmitidos num intervalo que come a em T1 segundos e vai duplicando at chegar T2 No entanto ao receber uma resposta provis ria os pedidos continuam a ser retransmitidos mas a um intervalo de T2 segundos Estas retransmiss es devem ser respondidas novamente pelo servidor com a mesma mensagem que mandou anteriormente Logo a m quina de estados Figura 12 iniciada com o estado Trying quando iniciada uma transac o atrav s de um pedido O timer F iniciado com 64 T1 segundos Ao utilizar UDP o timer E deve ser iniciado com T1 segundos e quando dispara deve sempre retransmitir o pedido O timer F deve fazer a m quina de estados transitar para o estado Terminated Quando recebida uma mensagem provis ria o diagrama deve transitar para Proceeding e quando recebe uma resposta com o c digo entre 200 e 699 deve passar para o estado
20. Completed Do estado Completed s deve passar para Terminated depois de disparar o timer K que iniciado com T4 segundos UDP ou 0 segundos TCP pois h a possibilidade de se receber retransmiss es de respostas T4 representa a quantidade de tempo que a rede demora a despachar as mensagens entre cliente e servidor sendo o seu valor por omiss o igual a 5 segundos INVITE lpass INV to TU INVITE V send 100 if TU won t in 200ms send response 101 199 from TU Proceeding send response gt lt Transport Err Inform TU gt 300 699 from TU 2xx from TU send response isend response gt INVITE Vv Timer G fires send response send response Completed gt lt ACK gt Timer H fires V or Transport Err Inform TU Confirmed Timer I fires y Terminated lt Figura 13 Maquina de estados de uma transac o INVITE num servidor 9 34 VoViWLAN Julho de 2007 Uma transac o INVITE num servidor come a quando este recebe um pedido INVITE Entra assim no estado Proceeding podendo ou n o mandar uma mensagem provis ria 100 Trying se souber que n o vai gerar uma men
21. VoViWLAN Aplica o de Transmiss o de udio e Video em Redes sem Fios Jo o Pedro Azevedo Soares Universidade do Porto Faculdade de Engenharia FEUP Faculdade de Engenharia da Universidade do Porto Departamento de Engenharia Electrot cnica e de Computadores Rua Roberto Frias s n 4200 465 Porto Portugal Julho de 2006 FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO VoViWLAN Joao Pedro Azevedo Soares Aluno do 5 ano da Licenciatura em Engenharia Electrot cnica e de Computadores pela Faculdade de Engenharia da Universidade do Porto Trabalho realizado no ambito do Projecto de Fim de curso na disciplina de PSTFC do 2 semestre do 5 ano da Licenciatura em Eng Electrot cnica e de Computadores da Faculdade de Engenharia da Universidade do Porto leccionada por Joao Jos Pinto Ferreira Projecto realizado sob a orienta o do Professor Doutor Jo o Canas Ferreira do Departamento de Engenharia Electrot cnica e de Computadores da Faculdade de Engenharia da Universidade do Porto e de Engenheiro Ant nio Almeida Mactek Porto Julho de 2006 VoViWLAN Julho de 2007 Resumo A transmiss o de voz sobre IP cada vez mais utilizada hoje em dia prevendo se que aumente ainda mais nos pr ximos anos Pretendia se desenvolver uma aplica o de voz e v deo orientada s redes sem fios Para transmitir udio e v deo necess rio captur los primeiro e comprimi los Utilizou se para isso bibliote
22. a chamada junta se antiga e iniciada uma confer ncia P r Utilizador em Espera Durante uma chamada pode ser necess rio colocar um utilizador em espera para por exemplo iniciar uma nova chamada etc P r uma chamada em espera significa deixar de mandar e receber dados de som e v deo se activo Enviar stream de Ficheiro WAV Durante uma chamada pode se tocar um ficheiro para o s outro s utilizadores ouvirem Transferir Ficheiro Ao seleccionar um utilizador pode se transferir um ficheiro seleccionado Livro de Endere os Este m dulo inclui os casos de uso para o livro de endere os Utilizador Livro de Endere os Adicionar utilizador Apagar Utilizador Editar Utilizador Utilizar endere o Figura 2 Diagrama de casos de uso para o pacote Livro de Endere os 15 VoViWLAN Julho de 2007 Tabela 2 Descri o dos casos de uso do Livro de Endere os Casos de Utiliza o Descri o Adicionar Utilizador Adiciona um utilizador ao livro de endere os Apagar Utilizador Apaga o utilizador seleccionado do livro de endere os Editar Utilizador Pode ser necess rio mudar o endere o dos utilizadores Utilizar Endere o Permite a aplica o utilizar o endere o para iniciar uma chamada Em conclus o foi definido que se faria a captura de udio Sec o 3 1 e v deo Sec o 3 2 comprimindo os respectivamente co
23. a para utilizar o Livro de Endere os do Windows eXoSIP Biblioteca de sinaliza o SIP EMIPLIB Biblioteca de captura transmiss o e reprodu o de udio e video 45 VoViWLAN Julho de 2007 6 2 Capturas de Ecr Mostra se de seguida uma captura de ecr da aplica o principal Es VoViWLAN 0060 File Tools Address AddressBook Call EndCalls Users Hold Send File Figura 17 Captura de ecr da aplica o principal O livro de endere os da aplica o a5 Addresses O O cm Reno Adresses Joao lt sip TEE Name teste lt sip gt Address Insert Call selected Figura 18 Captura de ecr do livro de endere os 46 VoViWLAN Julho de 2007 Di logo para receber chamada a3 Ring 8 Receive call from lt sip DD gt Figura 19 Captura de ecra do di logo de receber chamada Imagem de video proveniente de outro utilizador 30E51B2E D x Figura 20 Captura de ecr do v deo proveniente de um utilizador 6 3 Pequeno manual de utilizador Para iniciar uma chamada pode se introduzir um endere o SIP manualmente ou utilizar o livro de endere os Para utilizar o livro de endere os basta carregar em Address Book seleccionar o contacto desejado e carregar em Call selected Depois deve se fechar o livro de endere os e carregar em Call Sempre que se desejar adicionar mais utilizadores conversa repete se os passos anteriores Durante uma chamada pode
24. ansac o ainda se encontra no estado Calling quer dizer que ocorreu um timeout Assim o estado do diagrama passa para Terminated O timer B iniciado com um valor de 64 T1 segundos Se o cliente recebe uma resposta provis ria com o c digo 1xx enquanto est em Calling ent o o estado transita para Proceeding Neste estado j n o deve haver retransmiss o do pedido Ao receber uma resposta com o c digo entre 300 e 699 e se o diagrama de estados se encontrar nos estados Calling ou Proceeding ent o este deve passar para o estado Completed e mandar um ACK para o mesmo endere o e porta que mandou a resposta De seguida deve passar para o estado Terminated quando o timer D disparar Este timer iniciado com pelo menos 32 segundos no caso da utiliza o do UDP e 0 segundos se se usar o TCP Este timer corresponde ao tempo que a m quina de estados do Servidor Figura 13 permanece em Completed pois podem haver retransmiss es da resposta e necess rio mandar novamente o ACK Request from IU send request 7 Timer E y send request Trying Timer F foe mem gt or Transport Err pio eo inform TU 200 699 resp to IU lIxx Iresp to TU Timer E v Timer F send reg or Transport Err f 5 inform TU Proceeding gt gt 1xx A iresp to TU 200 69
25. bten o e detalhes sobre o EMIPLIB sss nnnssssssensneesssssssssseeesssssssorerresssss 25 3 6 1 JRTPLIB aresenencensonenesran e in T 25 3 6 2 BAN a anerian a E E A RE RP 25 3 6 3 DDECE E E EE E E 25 3 6 4 EAVES querer i e EEEE E EEE EE EEA 26 MM E EE OAE T E E E E E 26 3 6 6 Dep nd ncias do EMI LIA cicsssasshesiachanesapenvbayessvnesiceuvaustaebucauaseabiecine 26 4 Sinaliza cO en ea E E OA E a DS 28 Ae SPee a E es ee eee 28 Ad Arguitect ra eras ensi e E A E R 29 4 1 1 1 UAC GUAS arroari en n E RE EREET 31 4 1 1 2 DO COG A E E 31 4 1 1 3 Tipos de resposta sinsresiirisi iea E EEE 31 4 1 1 4 M quinas de Estado asa 32 4 1 1 5 Terminar Sesgi Geesseen E EE iai 36 4 1 2 Introdu o a0 ROSI asiera a EER O OER 36 4 1 2 1 MBO AAC A rriac nthe ide niarra E sadn a ATTE SENEE TETEE 36 4 1 2 2 Iniciar e terminar Chaimadass sicsnicssdiadivnedcodieavicedicawiaedicaeiaatieanientanens 38 4 1 3 Obten o e detalhes sobre o eXoSIP siscccscccsscasscaiacosecasccessvatevevncascieisvays 39 42 Protocolo SIP assess seat stncnduseienasiaestnahedtwanssaaenties ito A E AAEE 39 5 Livro de Endero Ss nas e AAA AEO 42 5 1 Introdu o ao Enhanced Managed NET WAB Address Book Library 42 5 2 Obten o e detalhes da Enhanced Managed NET WAB Address Book Library43 6 Aplica o Desenvolvida cpcecitearcatpecienennrcactepeenetean metas 44 OAs PADIS CAI da CU NEA a al 44 VoViWLAN Julho de 2007 6 2 Capt ras de Bora a cnet ta
26. c ac be jori jthread jthread html 8 Ot vers o 3 3 5 ftp ftp trolltech com qt source qt x1 1 free 3 3 5 tar gz 9 Rosenber J SIP Session Initiation Protocol http www ietf org rfc rfc3261 txt RFC 3261 Junho de 2002 10 eXoSIP http download savannah nongnu org releases exosip 11 oSIP http ftp gnu org gnu osip 12 Handley M Jacobson V SDP Session Description Protocol http www jetf org rfc rfc2327 txt RFC 2327 Abril de 1998 13 Enhanced Managed NET WAB Address Book Library http www sichbo ca DotNetCode 1204 51 VoViWLAN Julho de 2007 Anexo A Bibliografia 52 VoViWLAN Julho de 2007 Bibliografia Wikipedia Audio and Data Compression http en wikipedia org wiki Audio_data_compression MSDN DirectShow _ http msdn microsoft com library default asp url library en us directshow htm directshow asp MSDN Recording and Playing Sound with the Waveform Audio Interface http msdn microsoft com library default asp url library en us dnnetcomp html WavelnOut asp SIP http www voip info org wiki SIP Wikipedia Session Initiation Protocol http www voip info org wiki SIP Packetizer Inc H 323 versus SIP A Comparison http www packetizer com voip h323_vs_sip Cisco Systems Inc Overview of the Session Initiation Protocol http www cisco com univercd cc td doc product voice sipsols biggulp bgsipov htm
27. cas j existentes nomeadamente o EMIPLIB que por sua vez utiliza uma grande quantidade de bibliotecas Para desenvolver a aplica o utilizaram se protocolos considerados abertos como o SIP e o SDP Foi necess rio a utiliza o de bibliotecas j existentes para implementar estes protocolos As bibliotecas utilizadas foram o eXoSIP e o oSIP que mostraram ser capazes de implementar a sinaliza o sem grandes problemas Achou se importante adicionar algumas funcionalidades aplica o como a possibilidade de p r um utilizador em espera a implementa o de um livro de endere os etc Finalmente sugere se a continua o do desenvolvimento desta aplica o para melhorar alguns tipos de aspectos como o funcionamento por detr s de NATs VoViWLAN Julho de 2007 Summary Voice transmission is rising nowadays and predictions tell us that it will have a boom very soon With this project the intention was to develop a software application to transmit audio and video oriented to wireless networks It is required to capture and encode compress audio and video to transmit them So it was used already made libraries like EMIPLIB witch uses a big amount of other libraries To make the application it was used open protocols like SIP and SDP It was necessary to use libraries to implement these protocols The libraries used were eXoSIP and oSIP witch turned out to be capable of implementing signalization without any probl
28. e gt type EXOSIP CALL ANSWERED Suse meats eXosip event free je C digo 5 Tratamento de eventos no eXoS P Como se pode ver para cada tipo de mensagem deve haver um if Por exemplo EXOSIP CALL NEW corresponde ao c digo de um JNVITE A partir de um evento eXosip event t pode se extrair os cabe alhos da mensagem SIP tais como Call ID From etc 37 VoViWLAN Julho de 2007 4 1 2 2 Iniciar e terminar chamadas Para iniciar uma chamada necess rio construir uma mensagem JNVITE com todos os cabe alhos e no conte do a mensagem SDP O exemplo seguinte mostra como se faz osip message t invite Ie dg i eXosip call build initial invite amp invite lt sip to antisip com gt lt sip from antisip com gt NULL optional route header This is a call for a conversation e a T 0 il return 1 osip_message_set_supported invite 100rel char tmp 4096 char localip 128 eXosip_guess_localip AF_INET localip 128 snprintf tmp 4096 v 0 r n o josua 0 O IN IP4 s r n s conversation r n TSUN GPa Cosac tua Mes Neal m audio s RTP AVP 0 8 101 r n a rtpmap 0 PCMU 8000 r n a rtpmap 8 PCMA 8000 r n a rtpmap 101 telephone event 8000 r n a fmtp 101 O0 11 r n localip localip port osip message set body invite tmp strlen tmp osip message set content type invite application sdp eXosip_lock i eXosip call send initial invite in
29. e diz configure pois deve se substituir isto com configure platform win msvc net shared debug 3 6 6 Depend ncias do EMIPLIB Quando se utiliza esta biblioteca deve se utilizar no linker os seguintes ficheiros e Quartz lib e Strmiids lib e wsock32 lib e ws2_32 lib e Iphlpapilib e eXosip lib 26 VoViwWLAN Julho de 2007 osip2 lib osipparser2 lib jthread lib jrtplib lib libspeex lib avformat lib avcodec lib avutil lib qt mt3 lib O ficheiro gerado pela compila o do EMIPLIB ftol2 obj winmm lib 27 VoViWLAN Julho de 2007 4 Sinalizagao Para estabelecer uma chamada com um utilizador necess rio haver sinaliza o entre as chamadas para que os utilizadores possam aceitar rejeitar ou efectuar pedidos de chamadas Logo foi necess rio escolher um protocolo de sinaliza o tendo como possibilidades a cria o de um protocolo pr prio a utiliza o do protocolo H323 ou o SIP Criar um protocolo pr prio estava fora de quest o uma vez que era previs vel que um protocolo criado por uma s pessoa podia n o ser suficientemente est vel ou ter muitas falhas que dificultassem a realiza o do trabalho Tamb m dificilmente seria um protocolo compat vel com outras aplica es existentes Outra raz o importante era o tempo dispon vel para realizar o projecto que n o era suficiente se fosse necess rio criar este protocolo O H323 um protocolo criado pel
30. em Windows Windows CE Linux e Mac OS X tornando uma aplica o facilmente port vel para outro sistema operativo Esta biblioteca permite Capturar som atrav s de OSS WinMM ou Jack Tocar som atrav s de OSS ALSA ESD WinMM e Jack Entrada de ficheiros WAV atrav s de libsndfile libaudiofile ou de um leitor de WAV interno Sa da de ficheiros WAV atrav s de libsndfile Captura da webcam atrav s de Video4Linux e DirectShow 21 VoViwWLAN Julho de 2007 e Compress o Speex e Compress o H 263 atrav s de libavcodec e Mistura de udio recebido e Envio de tramas RTP e Sincroniza o de tramas RTP e Efeitos de som 3D O EMIPLIB est organizado em pequenos componentes que se ligam em cadeia Figura 7 Por exemplo um componente para capturar udio outro para comprimir e outro para transmitir Ao activar uma cadeia as mensagens s o distribu das entre componentes Pe Timer Soundfile Input Sample Enconder Soundcard Output RTP Audio Encoder RTP Component Figura 7 Exemplo de uma cadeia de componentes 3 5 1 C digo Exemplo No conjunto de c digo seguinte mostra se como criar uma simples aplica o cuja finalidade nica reproduzir o udio capturado pelo microfone Como as cadeias usam threads necess rio derivar a classe MIPComponentChain para o caso de ocorrer
31. ems It was important to add other functionalities to the application like the possibility to put a user on hold the implementation of an Address Book etc Finally it is suggested the continuation of the development of this application to enhance some aspects such as the working behind NATs VoViWLAN Julho de 2007 Indice MRS DUAN ace ca ete vee E AURA aetna 2 SUM ALY ces E EERE DECO RE E EA E E E RE 3 QE E acc O a 4 Lista d Figura SARA SR RR RS DR RR PO PODRE RO PR ON 6 Lista de TS a 7 DAS OO CR RD SR 8 LG ass AT 6 MARA ORE RPC RDNS SAR PRN RAR RR RR ERR DR RENA RUN RP 9 Mes OCA es a is nai eaanpesiawia eentdioatey 11 2 REQUISITOS Gerais ccceseuycucicenievecavanecececnevnccexeostansvucvetsveceececeeatansesetereeeenvectones 13 3 Captura de Dados e Transmiss o x scccxiesinteaticcutcadsuaricatiecateedivaricohieeeicebicainiesivaunaens 17 3 1 Captura de A dio cj sesssinscissiciscattadevcinatesaciatdcinsketteadiadicaaveaatasuceadidia dass 17 3L Compress o do AI 1g cpa sos ce ceedcatitece pega 17 3 2 Reprodu o de udio ceia 18 3 3 Captura de VADE sds da DRESS AE EEE ET EREE Sia 18 3 3 1 Compress o de Vid Ossrsiisnssersei rair esie EEE 19 34 Transmiss o RTP semi casi inss autos E E E EEEE 20 3 5 Introdu o ao EMIPLIB oasis pasnsadisasa aaa aaa O ad 21 3 5 1 C digo EXMP lO siriasi eieaa e arise a aa K E eai CaaS 22 3 3 2 Dificuldades na utiliza o da biblioteca eecceeessseeeeeeeeeesesssseees 24 3 6 O
32. eraging Extensions Protocolo que complementa o SIP para a utiliza o de mensagens instant neas SIP Session Initiantion Protocol Protocolo de sinaliza o de sess es Speex Codec de audio STUN Simple Traversal of UDP over NATs Protocolo de rede que permite a clientes por tras de NATs descobrir o seu endere o p blico de Internet Tranform coding Tipo de compress o de dados normalmente associado ao formato JPEG TU Transmission Unit Unidade de Transmiss o URI Uniform Resource Identifier Identificador Universal de Recursos Video4Linux API de captura de v deo para Linux WinMM API de captura de udio para Windows XCON Extens o do protocolo SIP que permite ter confer ncias centralizadas 10 VoViWLAN Julho de 2007 1 Introdu o Com o crescente aumento da largura de banda das liga es Internet tem se verificado um aumento de tr fego IP aproveitando a velocidade das liga es para transmiss o de dados em tempo real O volume de tr fego de dados j ultrapassou o volume de tr fego de voz Uma vez que transportar dados tem um menor custo que transportar voz h uma tend ncia para que o tr fego de dados aumente visto que poss vel e barato transportar voz como dados Nos ltimos anos tem havido um grande aumento de utilizadores de banda larga bastando para isso analisar os dados fornecidos pela ANACOM 1 no 1 trimestre de 2004 o n me
33. ero incrementado por cada pacote RTP que mandado E normalmente utilizado pelo receptor para ordenar os pacotes recebidos Timestamp Indica o instante de amostragem do primeiro octeto do pacote RTP Este campo serve para sincroniza o e c lculo do jitter A frequ ncia do rel gio para a gera o do timestamp depende do formato que se est a transmitir SSRC Identifica a fonte de sincroniza o Este valor deve ser escolhido aleatoriamente de forma que as duas fontes de sincroniza o da mesma sess o de RTP tenham o mesmo identificador SSRC CSRC Identifica a fontes que contribuem para o payload Mostra se de seguida um extracto de um pacote RTP que transmite udio com o formato GSM Real Time Transport Protocol Stream setup by SDP frame 10 Setup frame 10 Setup Method SDP 10 Version RFC 3550 Version 2 SOR RR e padding Paalse OR PR Cens Ton raso 0000 Contributing source identifiers count 0 ORE Marker False Payload type GSM 06 10 3 Sequence number 44497 Timestamp 958 Synchronization Source identifier 3801817858 Payload D9A28B19AB6D603 6D44DB6D2BDE03 8D375B71D6D200B1C91 Figura 6 Pacote RTP 3 5 Introdu o ao EMIPLIB Foi utilizada uma biblioteca que implementa o que descrito nas sec es anteriores Esta biblioteca chama se EMIPLIB e tem a grande vantagem de simplificar a captura e transmiss o dos dados Esta biblioteca pode ser utilizada
34. ht aa gia dE ad Ao doa esas dans a a 46 6 3 Pequeno manual de utilizador sus assess cosy cccs vidvcess ideias Eis ad da dani eves 47 ol SE OMCMIS OCS a O A E A EAA E EEE EEES 49 Referencias iiss Ae ee AS RS RR RU GS Oe GC a 51 ANEXO e OEE E E E E E E S 52 IDO STATA asas A aa a a a a a aa a 53 VoViWLAN Julho de 2007 Lista de Figuras Figura 1 Diagrama de casos de uso da aplica o 14 Figura 2 Diagrama de casos de uso para o pacote Livro de Endere os 15 Figura 3 Exemplo de um gr fico de filtros para tocar um ficheiro AVI 3 18 Figura 4 Gr fico de filtro para capturar v deo ccecccccceeeeseeeeeeeneeeeeeneeeeesenteeeeeees 19 Figura 5 Cabe alho de um pacote BU P ssescascssices snnsiseseausaneaepepasvsanenuousorsansuhesdaiariesens 20 Fig ra 6 Pacote RTP x scasacassccsevanayeincesevasncandnonsuas ivedaasacasnsaadvosecspacanavesaceveeaancaueaasacanns 21 Figura 7 Exemplo de uma cadeia de componentes 22 Figura 8 Cadeia de componentes aaa asas ala 24 Figura 9 Exemplo das mensagens SIP para o estabelecimento de uma sess o 29 Figura 10 Exemplo de um cabe alho de um pacote SIP 30 Figura 11 M quina de estados de uma transac o INVITE num cliente 9 32 Figura 12 Maquina de estados de uma transac o n o INVITE para um cliente 9 33 Figura 13 Maquina de estados de uma transac o INVITE num servidor 9
35. idade de comprimir o v deo de forma acrescida visto que preciso uma maior de quantidade de dados para representar uma imagem Para fazer a compress o utilizou se o codec H 263 Trata se de um codec feito para comunica es com baixo d bito pr prio para a Internet Este codec utiliza um algoritmo h brido de previs o entre cada imagem Tranform coding e compensa o do movimento e A previs o entre cada imagem remove a redund ncia temporal entre pixeis e Transform coding remove redund ncia espacial e Vectores de movimento ajudam a compensar o movimento Estes vectores t m a precis o de meio pixel 19 VoViWLAN Julho de 2007 3 4 Transmissao RTP O protocolo RTP documentado pelo RFC 3550 4 Este protocolo fornece transporte entre dois pontos para transporte em tempo real de dados como udio e v deo O RTP n o garante qualidade de servi o Este protocolo n o tem mecanismos que asseguram a entrega de pacotes nem a entrega de pacotes na ordem correcta mas tamb m n o assume que a rede entrega os na sequ ncia certa os n meros de sequ ncia ajudam ao receptor reconstruir a ordem certa de pacotes Os pacotes de udio e v deo s o transmitidos em separado em diferentes portas Isto serve para que o utilizador possa escolher receber apenas um tipo de m dia Para perceber como um pacote RTP necess rio introduzir alguns conceitos e Pacote RTP Um pacote de dados constitu do por um cabe
36. izada a vers o 3 5 0 dispon vel em 6 Eram disponibilizados ficheiros de solu o para o Microsoft Visual Studio 6 e para o Microsoft Visual Studio 2005 vers o 8 mas n o disponibilizava para a vers o que estava a ser utilizada o Mircrosoft Visual Studio NET 2003 vers o 7 1 Logo converteu se o projecto da vers o 6 para a 7 1 abrindo este ficheiro com a vers o do Visual Studio que se estava a utilizar Finalmente para se compilar utilizou se o mesmo m todo que nos projectos do Visual Studio 3 6 2 JThread Esta biblioteca disponibiliza classes para a cria o de Threads e Mutexes escondendo a forma como se criam threads em Windows ou Linux Foi utilizada a vers o 1 2 0 dispon vel em 7 Tal como na JRTPLIB eram tamb m disponibilizados ficheiros de solu o para o Microsoft Visual Studio 6 e para o Microsoft Visual Studio 2005 vers o 8 n o disponibilizando para a vers o que estava a ser utilizada o Mircrosoft Visual Studio NET 2003 vers o 7 1 Logo converteu se o projecto da vers o 6 para a 7 1 abrindo este ficheiro com a vers o do Visual Studio que se estava a utilizar Na compila o utilizou se o mesmo processo que nos projectos do Visual Studio 3 6 3 Speex O Speex Sec o 3 1 1 corresponde a um codec de udio necess rio para compilar o EMIPLIB Foi utilizada a vers o 1 0 5 dispon vel para descarregar em 2 25 VoViWLAN Julho de 2007 S era disponibilizado o ficheiro de solu
37. m Speex Sec o 3 1 1 e H 263 Sec o 3 3 1 bem como mandar estes dados usando o protocolo de transporte RTP Sec o 3 4 Para implementar isto utilizar se ia a biblioteca auxiliar EMIPLIB Sec o 3 5 Foi escolhida a sinaliza o SIP Sec o 4 1 com a utiliza o do protocolo SDP Sec o 4 2 para negociar os tipos de media fazendo uso da biblioteca eXoSIP Sec o 4 1 2 Por fim foram definidos poss veis incrementos aplica o tais como um livro de endere os Cap tulo 5 registo de chamadas streaming de ficheiros de som portabilidade etc 16 VoViWLAN Julho de 2007 3 Captura de Dados e Transmissao Para transmitir udio e video torna se obviamente necess rio fazer a sua captura Para isso utiliza se os recursos do PC O udio capturado pela placa de som que comum em quase todos os PCs e o v deo capturado por uma webcam que esteja ligada Nas sec es seguintes vamos falar da captura do udio Sec o 3 1 e sua compress o Sec o 3 1 1 reprodu o de udio Sec o 3 2 e captura Sec o 3 3 e compress o Sec o 3 3 1 de v deo Na sec o 3 4 vamos fazer uma introdu o ao protocolo de transporte RTP revelando os aspectos mais importantes Para terminar as sec es 3 5 e 3 6 descrevem alguns detalhes sobre biblioteca EMIPLIB e como a utilizar 3 1 Captura de udio A biblioteca EMIPLIB implementa a captura de udio utilizando o Interface de Progra
38. ma o de Aplicativos API Microsoft Win328 que permite adicionar a uma aplica o fun es multim dia atrav s do winMM A captura de udio feita de uma forma muito simples e Primeiro abre se o dispositivo de udio desejado atrav s da fun o waveIn0Open e Depois prepara se os buffers para o udio atrav s da fun o waveInPrepareHeader e Manda se os buffers para o dispositivo de udio atrav s da fun o wave lnAddBuf fer e Finalmente inicia se a captura com a fun o waveInStart Para terminar a captura usa se a fun o waveInStop 3 1 1 Compress o do udio Para transmitir o udio numa rede necess rio comprimi lo de forma a n o ocupar uma grande largura de banda Foi utilizado um codec com o nome Speex Trata se de um codec Open Source feito para comprimir udio de voz Fazendo uma tradu o livre do seu site 2 bem adaptado para aplica es de Internet e fornece caracter sticas teis que n o est o presentes noutros codecs 17 VoViWLAN Julho de 2007 Este codec foi feito para comprimir voz com bitrates a variar entre 2 e 44 kbps Da a possibilidade de comprimir em banda estreita Narrowband 8kHz banda larga Wideband 16kHz e banda ultra larga Ultra wideband 32kHz tem detec o de voz Voice Activity Detection VAD transmiss o descont nua DTX etc 3 2 Reprodu o de udio Tal como a captura do udio a biblioteca EMIPLIB utiliza o Interface de P
39. mponentes e come ar a trocar mensagens entre componentes 23 VoViWLAN Julho de 2007 MyChain chain Sound file player returnValue chain gt setChainStart sndCardiInput checkError returnValue chain returnValue chain gt addConnection sndCardInput sndCardOutput checkError returnValue chain returnValue chain gt start checkError returnValue chain C digo 3 Exemplo da liga o dos componentes numa cadeia Chain A Figura 8 mostra como s o ligados os componentes em cadeia sndCardInpr t sndCardOutp t mpi Figura 8 Cadeia de componentes 3 5 2 Dificuldades na utiliza o da biblioteca Esta biblioteca ainda se encontra numa vers o inicial 0 11 o que dificultou a sua utiliza o uma vez que depois de algumas experi ncias foram encontrados alguns erros os quais foram corrigidos Primeiro a biblioteca disponibilizava uma classe que implementava cadeias para transmitir e receber udio o que facilitava imenso a utiliza o Esta classe n o funcionava devido componente de RTP Por este motivo foi decidido criar outra classe manualmente O mesmo aconteceu com outra classe desta vez para a transmiss o e recep o de v deo Depois a classe que capturava v deo atrav s do DirectShow n o conseguia detectar a webcam visto que estava a tentar encontrar uma c mara que captasse com o formato IYUV Este formato n o era suportado pela webcam que se
40. n mero m ximo de utilizadores numa confer ncia uma vez que o tempo de processamento aumenta com o n mero de utilizadores e a largura de banda limitada e reduzida Foi necess rio tamb m especificar uma bitrate por omiss o para cada utilizador numa chamada Tendo em considera o que grande parte dos utilizadores de Internet de banda larga tem uma velocidade m xima de upload de 128 kbps definiu se este valor como o valor m ximo a atingir Para isso como seria de esperar foram utilizados codecs compressor descompressor que permitiam limitar as bitrates e Como codec de udio foi utilizado o Speex Sec o 3 1 1 que tem uma bitrate a variar entre 2 e 44 kbps e Para o v deo utilizou se a compress o H 263 que permite definir uma bitrate fixa Logo admitindo que o udio transmite com um bitrate maximo de 44 kbps foi definido para o v deo 84 kbps Os valores anteriores s o atribu dos por omiss o mas foi definido que os utilizadores da aplica o poderia modific los de forma a obter um maior controlo Para implementar a parte de captura e transmiss o de udio e v deo escolheu se uma biblioteca auxiliar chamada EMIPLIB Sec o 3 5 Esta biblioteca caracteriza se por simplificar bastante a captura compress o e transmiss o de udio e v deo Outra parte de extrema import ncia para o projecto seria a implementa o da sinaliza o de chamadas de forma a poder iniciar terminar e modificar sess es com ou
41. o ITU e considerado um protocolo pouco flex vel pois especifica um sistema total e nico ou seja um conjunto de protocolos fixos e obrigat rios para efectuar as suas fun es Tem uma codifica o bin ria que dificulta a detec o de erros durante a programa o Foi criado a pensar em LANs Ent o optou se pelo SIP por ser mais flex vel escal vel e acima de tudo simples A seguir faz se uma descri o do protocolo O SIP permite v rias fun es como a transfer ncia de chamadas a possibilidade de se poder ter v rios telefones com o mesmo endere o a possibilidade de se p r utilizadores em espera etc 4 1 SIP O SIP um protocolo proposto como standard para iniciar modificar e terminar sess es criado pelo IETF e descrito no RFC 3261 9 Uma sess o normalmente est associada a uma chamada ou seja corresponde liga o que se mant m entre utilizadores Este protocolo foi feito a pensar na Internet de forma a utilizar outros j existentes visto que n o um protocolo de descri o de sess es e n o faz controlo de confer ncias Para isso utilizado normalmente o SDP Sec o 4 2 Isto torna este protocolo muito flex vel e escal vel Normalmente est o associados ao SIP outros protocolos como o RTP Sec o 3 4 quando se quer transmitir dados em tempo real e o SDP Sec o 4 2 que negoceia os detalhes da sess o como por exemplo os tipos de media a transmitir os codecs endere os po
42. os de filtros Filter Graphs O diagrama seguinte mostra um gr fico de filtros para tocar um ficheiro de v deo AVI File Source AVI Splitter AVI Decompressor Video Renderer Async Default O DirectSound Device Hard drive Figura 3 Exemplo de um gr fico de filtros para tocar um ficheiro AVI 3 18 VoViWLAN Julho de 2007 O File Source l o ficheiro AVI do disco r gido depois separa o audio de video no AVI Splitter O AVI Decompressor descomprime o v deo e o Video Renderer desenha as frames no ecr O Default DirectSound Device toca o udio no dispositivo de som Todas as aplica es que usam o DirectShow devem criar um Filter Graph Manager e utiliz lo para criar e controlar filtros de gr ficos Os gr ficos de filtros que capturam dados chamam se gr ficos de captura capture graphs O DirectShow disponibiliza um construtor de gr ficos de captura que facilita a cria o deste tipo de gr ficos Assim para capturar v deo necess rio criar um gr fico do g nero da Figura 4 Capture Filter NullRenderer gt Sample Grabber T 53 Figura 4 Gr fico de filtro para capturar v deo O Capture Filter captura dados do dispositivo de v deo Webcam passa no Null Renderer e finalmente fica no Sample Grabber que fornece as amostras aplica o para depois serem comprimidas 3 3 1 Compress o de V deo Tal como o udio h a necess
43. quisi es e recebe respostas enquanto que o UAS ao receber estes pedidos gera as respostas de acordo com os dados que disp e 4 1 1 2 Di logos Um di logo corresponde a uma rela o entre dois UAs que permanece durante algum tempo criado quando um pedido recebe uma resposta com c digos ente 100 e 299 ou seja respostas provis rias ou respostas que aceitam o pedido 4 1 1 3 Tipos de resposta Uma requisi o pode ter v rios tipos de respostas sendo elas provis rias ou definitivas De seguida mostra se os tipos de respostas que se pode receber juntamente com exemplos das mais utilizadas e Ixx E uma resposta provis ria que indica que o UAS recebeu o pedido mas continua a process lo O UAC pode receber zero ou mais respostas deste tipo o 100 Trying Indica que o pedido foi recebido e que est o a ser tomadas ac es para esta chamada ter uma resposta definitiva o 180 Ringing Mostra que o UA que recebeu o INVITE est a tentar alertar o utilizador e 2xx Resposta definitiva e indica que o pedido foi recebido percebido e aceite o 200 OK Foi aceite o pedido e normalmente transporta em anexo mais detalhes e 3xx Indica que o utilizador tem outra localiza o indicando o s novo s endere o s Cabe ao UAC decidir se deve voltar a contactar e escolher outro endere o e 4xx Resposta definitiva e diz ao UAC que o pedido tem erros na sintaxe ou n o pode ser aceite no servidor O
44. ro de clientes de banda larga por 100 habitantes era de 5 5 passando no 1 trimestre de 2005 para 9 0 e no 1 trimestre de 2006 j era de 12 5 Para al m deste crescimento do n mero de acessos de banda larga a pr pria largura de banda tamb m tem aumentado significativamente passando dos tradicionais 512 Kbps para os 2 Mbps ou mesmo para os 16 Mbps Isto permite aos utilizadores aproveitarem a sua largura de banda para transmitir grandes quantidades de dados Com estas velocidades pode se transmitir v rios tipos de dados em tempo real tais como voz e v deo Logo o n mero de prestadores de servi os de voz sobre IP VoIP tem aumentado significativamente bem como o n mero de clientes Nos ltimos anos tem se assistido a um aumento da quantidade e da utiliza o de redes sem fios devido sobretudo evolu o das tecnologias existentes e redu o dos pre os podendo se cada vez mais transmitir a maiores velocidades Este projecto insere se no mbito da disciplina Projecto Semin rio ou Trabalho de Final de Curso e foi sugerido pela empresa Mactek Assim o projecto pretendia que se constru sse uma aplica o de transmiss o de voz e v deo sobre IP de forma a ser poss vel transmitir numa rede sem fios WLAN Os requisitos deste projecto eram pouco detalhados por isso foi necess rio a determina o destes requisitos tendo em conta que se pretendia a melhor solu o poss vel Para isso foi necess rio pesqui
45. rograma o de Aplicativos API Microsoft Win32 nomeadamente o winMM A reprodu o de udio semelhante captura embora seja um pouco mais complexo pois necess rio receber o udio e coloc lo nos buffers para ele ser reproduzido e O dispositivo de sa da de udio inicializado pela fun o waveOut Open e constru do um buffer com a estrutura WAVEHDR e Quando se recebe um pacote RTP de udio o conte do colocado no buffer e Prepara se os buffers para reprodu o e Finalmente utiliza se a fun o waveOutWrite para o dispositivo de som reproduzir os dados que foram recebidos 3 3 Captura de V deo A EMIPLIB j implementa a captura de v deo usando para isso no sistema operativo Microsoft Windows um Interface de Programa o de Aplicativos API chamado DirectShow Este API o largamente mais utilizado pelos programadores no Windows Foi criado pela Microsoft para os programadores fazerem opera es com ficheiros de m dia Para al m disso permite a captura a partir de dispositivos Multim dia como Webcams Um componente b sico do DirectShow os filtros filters que correspondem a um componente de software que faz algum tipo de opera o numa trama stream multim dia Por exemplo podem ler ficheiros descodificar formatos capturar v deo etc Os filtros t m entradas e sa das constituindo pinos que podem ser ligados a outros pinos de outros filtros que formam assim gr fic
46. rtas etc Existem algumas extens es que permitem expandir as funcionalidades do SIP como por exemplo 28 VoViWLAN Julho de 2007 e SIMPLE permite o suporte de mensagens instant neas e presen a notifica o de utilizadores se est o ligados ou desligados por exemplo definindo uma arquitectura para a implementa o de buddy lists mecanismos de confirma o de entrega de mensagens etc e XCON permite suportar confer ncias centralizadas Uma das caracter sticas deste protocolo a sua simplicidade pois baseado em texto similar ao HTTP e SMTP facilitando a extens o a depura o e o processamento De seguida aborda se os aspectos mais t cnicos deste protocolo que s o descritos no seu RFC 9 4 1 1 Arquitectura O SIP parecido com o HTTP pois tem um modelo de transac o de requisi o e resposta Uma requisi o representa um m todo ou uma fun o e tem sempre uma ou mais respostas A Figura 9 mostra um exemplo de uma sess o estabelecida entre dois utilizadores sem utiliza o de qualquer servidor interm dio mostrando as mensagens mais utilizadas neste protocolo INVITE 180 Ringing Figura 9 Exemplo das mensagens SIP para o estabelecimento de uma sess o Primeiro o Userl manda um INVITE para o User2 de forma a iniciar uma sess o O User2 pode responder a esta mensagem de v rias formas Neste caso est a responder com um Ringing e com um OK A men
47. sagem Ringing considerada uma resposta provis ria e avisa o Userl que o User2 foi alertado e que est espera que este aceite ou rejeite a chamada O OK uma mensagem definitiva e quer dizer que o User2 aceitou a chamada Estas mensagens podiam ser do tipo das que n o deixam estabelecer a sess o Sec o 4 1 1 3 tais como Falha de Requisi o Request Failure ou Falhas Globais Global Failure 29 VoViWLAN Julho de 2007 Antes de continuar necess rio introduzir o conceito de SIP URI Representa um endere o global de um utilizador e cont m informa o suficiente para iniciar e manter a uma sess o Normalmente tem um formato do g nero Sip user host Onde user representa um cliente do host e o host representa o endere o do prestador de servi os que normalmente sabe para onde mandar os pedidos e respostas Quando um cliente n o est associado a um prestador de servi os o host corresponde a um endere o IP INVITE sip user2 192 168 0 2 SIP 2 0 Via SIP 2 0 UDP 192 168 0 1 5060 branch z9hG4bK776asdhds Max Forwards 70 To User2 lt sip userl1 192 168 0 2 gt From Userl lt sip user1 192 168 0 1 gt tag 1928301774 Call ID a84b4c76e66710 192 168 0 1 CSeq 3174159 RENAL E Contact lt sip user1le192 168 0 1 gt Content Type application sdp Content Length 142 SDP Acima m todo do Userl n o mostrado Figura 10 Exemplo de um cabe alho de um pacote SIP mostra se a
48. sagem nos pr ximos 200 ms Enquanto a m quina de estados se encontrar em Proceeding podem ser enviadas um n mero infinito de respostas provis rias No caso do pedido ser aceite manda se uma mensagem do tipo 2xx passando o diagrama de estados imediatamente para Terminated Mas se o tipo de resposta for com o c digo compreendido entre 200 e 699 a m quina de estados passa para Completed O timer G dispara a T1 segundos para retransmitir a resposta no caso do protocolo de transporte ser UDP Quando se entra no estado Completed o timer H deve ser iniciado com 64 T1 segundos para qualquer tipo de transporte Este timer define quando o servidor deve parar de retransmitir a resposta indicando que houve falha na transmiss o Se for recebido um ACK enquanto a m quina de estados se encontrar no estado Completed deve haver uma transi o para o estado Confirmed que absorve qualquer ACK adicional enquanto o timer I n o disparar Este timer iniciado com T4 segundos para UDP ou 0 segundos para TCP Request received lpass to TU y Trying a Poe ae 1200 699 from TU send response lxx from TU send response Request V lxx from TU send response send response l Proceeding gt lt t Trnsprt Err 4 Inform TU 1200 699 from TU send response Req
49. sar e estudar protocolos existentes e tecnologias de compress o de dados em tempo real Utilizando o Microsoft Visual Studio NET 2003 foi desenvolvida a aplica o requisitada que permite transmitir e receber udio e v deo em tempo real Estes dados s o comprimidos podendo se controlar aspectos como a qualidade de udio e do v deo O controlo das chamadas tamb m foi implementado de forma a ser poss vel realizar chamadas em confer ncia e p r chamadas em espera Pode se tamb m fazer transfer ncias de ficheiros A aplica o cont m um livro de endere os para os utilizadores poderem organizar os seus contactos e regista as chamadas efectuadas e recebidas Por fim foi implementada 11 VoViWLAN Julho de 2007 a reprodu o de ficheiros de som durante uma chamada para que os utilizadores possam ouvir Com este relat rio pretende se mostrar os protocolos e tecnologias envolvidas nesta aplica o com uma descri o das bibliotecas utilizadas e apresenta o da arquitectura e da aplica o desenvolvida Este relat rio est dividido em 7 cap tulos O Cap tulo 1 este que e representa a Introdu o O Cap tulo 2 descreve os requisitos gerais determinados para a realiza o da aplica o O Cap tulo 3 descreve como feita a captura e transmiss o dos dados subdividindo em captura Sec o 3 1 compress o Sec o 3 1 1 e reprodu o Sec o 3 2 de udio captura Sec o 3 3 e compress o
50. ser necess rio p r um utilizador em espera Para faz lo basta seleccionar o utilizador desejado e carregar em Hold H a op o de terminar a chamada com todos os utilizadores ou apenas um Para todos deve se usar o bot o EndCalls e para apenas um deve se seleccionar o utilizador e carregar no bot o 47 VoViWLAN Julho de 2007 Relativamente ao livro de endere os pode se adicionar novos contactos carregando em Add e de seguida em Insert depois de preencher os dados Para editar um contacto necess rio seleccion lo e carregar em Edit e de seguida em OK depois de editar os dados No caso de se pretender eliminar um contacto deve se para isso seleccionar um contacto e carregar em Remove 48 VoViWLAN Julho de 2007 7 Conclus es Era esperado que se desenvolvesse uma aplica o que transmitisse voz e v deo numa rede sem fios Como os requisitos a partida eram muito pouco detalhados foi se em busca de requisitos para se desenvolver a aplica o Foi definido que se utilizaria a sinaliza o SIP que seria criado um livro de endere os um registo de chamadas efectuadas e recebidas a transfer ncia de ficheiros A partir dos requisitos anteriores obteve se uma aplica o de transmiss o de voz e video sobre IP com sinaliza o SIP Adicionou se aplica o a possibilidade de utilizar contactos do Livro de Endere os do Windows para realizar chamadas o registo de chamadas recebidas e efect
51. t pica mensagem SIP onde a primeira linha indica o nome do INVITE e as linhas seguintes mostram os cabe alhos obrigat rios em todas as mensagens SIP destacando Porque ent o c Via Representa o endere o onde o Userl est espera para receber a s resposta s a esta requisi o To Cont m o nome e endere o SIP URI do destinat rio da mensagem From Cont m o nome e endere o SIP URI do remetente da mensagem Cont m tamb m um campo tag usado para identifica o Call ID um identificador nico para esta chamada sess o gerado combinando uma string aleat ria com o endere o IP do utilizador ou o seu host name CSeg Cont m um n mero inteiro e o nome do m todo O n mero incrementado sempre que gerada uma requisi o dentro de um di logo Contact constitu do por um URI que representa a rota directa para o contacto Userl Content Type Descreve o tipo do corpo da mensagem o SIP n o descreve os detalhes da sess o como o tipo de m dia codecs etc olocado no seu conte do a mensagem SDP Sec o 4 2 que considerado um anexo assimilando se aos anexos transportados numa mensagem de correio electr nico 30 VoViWLAN Julho de 2007 4 1 1 1 UAC e UAS At agora tem se falado apenas de utilizadores mas agora torna se necess rio dividir esta defini o em cliente UAC e servidor UAS Basicamente o UAC a parte que gera os pedidos re
52. t ou um Unsupported Media Type se n o suportar o tipo de media ou o tipo de compress o propostos no INVITE 4 1 3 Obten o e detalhes sobre o eXoSIP O eXoSIP uma extens o do oSIP por isso necess rio ter as duas bibliotecas Foram utilizados vers es release para o eXoSIP a vers o 2 2 3 e para o oSIP a vers o 2 2 2 Pode se obter esta vers o do eXoSIP em 10 e o oSIP em 11 Para compilar em Windows o direct rio platform vsnet em qualquer uma das bibliotecas cont m um ficheiro de projecto do Microsoft Visual Studio NET 2003 vers o 7 1 que se pode compilar facilmente E necess rio ter em aten o e colocar o conte do da biblioteca oS P num direct rio com nome osip Este direct rio deve se encontrar no direct rio pai do do eXoSIP Para utilizar estas bibliotecas no projecto deve se especificar nas propriedades do projecto no Microsoft Visual Studio NET 2003 na parte dos direct rios de include adicionais o caminho para os direct rios de include do eXoSIP e do oSIP Tamb m se deve incluir na parte do Linker os ficheiros lib eXosip lib osip2 lib e osipparser2 1lib 4 2 Protocolo SDP Este protocolo documentado pelo RFC 2327 12 e descreve informa o necess ria para criar sess es Uma mensagem SDP deve ter informa o necess ria para se decidir se se pode ou n o participar numa sess o 39 VoViwWLAN Julho de 2007 E utilizado na sinaliza o para informar os utilizadores o tipo
53. tacto onde depois se introduz o primeiro e ltimo nome atrav s das fun es set FirstName e set Surname respectivamente De seguida introduz se o endere o de e mail e finalmente guarda se o contacto com a fun o Save A aplica o desenvolvida utiliza o campo do Telefone de casa para guardar o endere o SIP Para isso basta usar a fun o set HomePhone tal como as anteriores Para apagar um endere o basta usar a fun o Delete que pertence classe Contact 5 2 Obten o e detalhes da Enhanced Managed NET WAB Address Book Library Foi utilizada a vers o 2 0 desta biblioteca e pode se descarreg la no seu site em 13 Para a utilizar pode se compilar utilizando o ficheiro do projecto do Microsoft Visual Studio NET 2003 vers o 7 1 e obter um ficheiro dll para utilizar com as aplica es Pode se tamb m incluir os ficheiros da biblioteca na nossa aplica o visto que s o apenas 5 e t m um tamanho reduzido Foi a ltima op o que se escolheu para este projecto visto que simplificava a utiliza o desta biblioteca 43 VoViWLAN Julho de 2007 6 Aplica o Desenvolvida A aplica o constitu da por uma parte que utiliza a biblioteca EMIPLIB Sec o 3 5 que faz a captura transmiss o e reprodu o de dados de udio e v deo em tempo real e por uma parte que faz toda a sinaliza o das chamadas Existe tamb m m dulos adicionais como livro de endere os e transfer ncia de ficheiros q
54. tros utilizadores O protocolo SIP Sec o 4 1 foi o escolhido para fazer a sinaliza o Este protocolo serve se de outros protocolos existentes para controlar as sess es nomeadamente do SDP Sec o 4 2 e o RTP Sec o 3 4 O SDP serve para negociar o tipo de m dia e 13 VoViWLAN Julho de 2007 codecs a utilizar enquanto que o RTP serve para transmitir dados em tempo real tais como audio e video Para implementar a sinaliza o foi escolhida a biblioteca eXoSIP Sec o 4 1 2 uma biblioteca que foi especificamente constru da para a sinaliza o de chamadas de Voz sobre IP VoIP Passando para os requisitos de mais baixa prioridade pensou se que seria interessante manter um registo das chamadas efectuadas e recebidas para que os utilizadores pudessem controlar facilmente as suas chamadas Um livro de endere os tamb m seria interessante para manter os contactos organizados Os utilizadores muitas vezes sentem a necessidade de trocar ficheiros entre si por isso tamb m se sugeriu como requisito Decidiu se tamb m implementar o streaming de ficheiros de som visto que a biblioteca EMIPLIB permitia fazer isso e traria aplica o uma funcionalidade til que acrescenta valor J que se escolheu bibliotecas que funcionam em diversos sistemas operativos foi definido como um requisito poss vel a maximiza o da portabilidade para outros sistemas operativos Mostra se de seguida os diagramas de caso
55. uaras e a reprodu o de ficheiros de som durante uma chamada Durante o desenvolvimento da aplica o deparou se com alguns problemas ligados s bibliotecas que foram utilizadas principalmente com o EMIPLIB Para resolver estes problemas foi necess rio construir aplica es de baixa complexidade para fazer depura o e encontrar os erros na biblioteca Fazendo uma aprecia o cr tica aplica o implementada pode se dizer que relativamente sinaliza o fez se uma escolha acertada em rela o biblioteca visto que pelos testes efectuados n o se conseguiu encontrar erros A biblioteca encontra se ja em estado avan ado de desenvolvimento e parece ser muito est vel e r pida Relativamente biblioteca que gere o udio e o v deo EMIPLIB verificou se ser um pouco inst vel mas que independentemente dos erros implementa bem o que era necess rio tendo se revelado tamb m uma boa escolha Obviamente que dever o existir outra bibliotecas ou conjunto de bibliotecas que seriam mais apropriadas para este projecto Como poss veis melhoramentos da aplica o seria desej vel a introdu o de novos codecs nomeadamente os mais cl ssicos como o PCMA G 7 1 A law e o PCMU G 711 u law Seria tamb m desej vel o suporte de STUN para se poder realizar chamadas estando por detr s de uma NAT Poderia ser interessante acrescentar aplica o uma interface gr fica para se poder assistir a reuni es dist
56. ue foram adicionados aplica o 6 1 Arquitectura A partir dos requisitos obteve se uma aplica o com o diagrama de Arquitectura L gica representado na Figura 15 que mostra como as diferentes partes da aplica o se interligam sa Interface com o Utilizador GUI 7 Z N g pa A L gica de Neg cio Z E Livro de Sinaliza o Endere os da ie le Transfer nicia Processamento de Ficheiros de udio e V deo d Figura 15 Diagrama da Arquitectura L gica Tabela 3 Descri o dos pacotes do Diagrama de Arquitectura L gica Pacotes Descri o GUI Interface gr fica Nesta parte o utilizador ter todos os controlos para os casos de uso Livro de Endere os Controla a utiliza o do livro de endere os Sinaliza o Respons vel pela sinaliza o das chamadas Ex Iniciar chamada terminar chamada etc Transfer ncia de Respons vel pela transfer ncia dos ficheiros indicando o seu Ficheiros progresso e possiveis erros Processamento de Captura comprime transmite recebe e descomprime os dados udio e V deo de udio e v deo A figura seguinte mostra a Arquitectura fisica da aplica o desenvolvida 44
57. uest Vv send response Te Completed lt gt lt Trnsprt Err aa a Inform TU l Figura 14 Maquina de estados de uma transac o n o INVITE num servidor 9 35 VoViWLAN Julho de 2007 A m quina de estados para pedidos nao JNVITE num servidor iniciada no estado Trying descartando quaisquer outras retransmiss es do mesmo pedido Se o servidor passar mensagens provis rias a m quina deve entrar no estado Proceeding Se for recebida alguma retransmiss o do pedido neste estado deve ser mandada a ltima resposta provis ria Quando passada uma resposta final o estado deve mudar para Completed e deve se iniciar o timer J com 64 T1 segundos para UDP ou 0 segundos para TCP Depois do timer disparar o diagrama passa para o estado Terminated 4 1 1 5 Terminar Sess o Para terminar uma sess o necess rio ter em aten o o estado dos pedidos aplicando as seguintes regras e Quando um di logo j est criado a sess o deve ser terminada com um BYE e Um UA nunca pode mandar um BYE fora de um di logo e O utilizador que inicia a sess o pode mandar BYE em di logos confirmados e n o confirmados mas o utilizador que chamado s pode mandar BYEs em di logos confirmados ou seja depois de receber o ACK do utilizador que chama e Para cancelar um pedido que ainda n o recebeu resposta deve se mandar um CANCEL 4 1 2 Introdu o ao eXoSIP
58. vite ae a 0 eXosip call set reference i reference eXosip_unlock return i C digo 6 Exemplo de envio de um INVITE O INVITE constru do com a fun o eXosip call build initial invite e depois anexada uma string com a mensagem SDP Finalmente a fun o eXosip call send initial invite envia o convite eXosip lock eXosip call send answer ca gt tid 180 NULL eXosip unlock C digo 7 Exemplo de resposta a um pedido Esta uma forma gen rica de enviar uma resposta Neste caso est a mandar um RINGING visto que indica o c digo 180 Para mandar outros tipos de mensagens 38 VoViWLAN Julho de 2007 substitui se o numero pelo correspondente 4 mensagem desejada Por exemplo um 400 manda um Bad Request Sec o 4 1 1 3 No entanto para uma mensagem de OK necessario anexar a mensagem SDP por isso deve se fazer da seguinte forma osip_message_t answer NULL eXosip_lock i eXosip_call_build_answer ca gt tid 200 amp answer ae a 0 eXosip_call_send_answer ca gt tid 400 NULL else 1 sdp complete 2000k ca gt did answer wie a Je 0 osip_message_free answer eXosip_call_send_answer ca gt tid 415 NULL else eXosip call send answer ca gt tid 200 answer eXosip_unlock C digo 8 Exemplo de uma mensagem 200 OK Neste caso se n o conseguir construir as mensagens manda um Bad Reques

Download Pdf Manuals

image

Related Search

Related Contents

Philips Softone Low consumption bulb 872790082667800  Coast Vanity Collection 2438 User's Manual  Intel I925XE User's Manual  2510 Controller  “理系”になるためのヒント それは“発見”  Ficha Técnica  Avant la première utilisation Préparation du Café  Brodit ProClip  PDF:1675KB  Mise en ligne d`outils pédagogiques : une panacée pour l  

Copyright © All rights reserved.
Failed to retrieve file