Professional Documents
Culture Documents
Curitiba - PR
2008
GERSON TAKASHI WATANABE
Curitiba - PR
2008
2
PARECER DE APROVAÇÃO
MONOGRAFIA DE ESPECIALIZAÇÃO EM INFORMÁTICA
ÊNFASE EM GERÊNCIA DE REDES DE COMPUTADORES
PROGRAMA DE PÓS-GRADUAÇÃO EM INFORMÁTICA/UFPR
NOME DO ORIENTADOR
Professor Dr. Luciano Silva
Universidade Federal do Paraná
Setor de Ciências Exatas
Departamento de Informática
Caixa Postal 19081
CEP 81531-990 - Curitiba-PR
3
RESUMO
4
ABSTRACT
The objective of this work is to make a comparison of SIP (IETF) and H.323 (ITU-
T) multimedia signaling protocols. First of all, a theoretical approach is made with
each one of the protocols and then a comparison showing the deficiencies and virtues
of each one.
5
SUMÁRIO
1. INTRODUÇÃO .....................................................................................................12
1.1. ITU-T E IETF .........................................................................................12
1.2. OBJETIVO .............................................................................................13
1.3. ESTRUTURA DO TRABALHO ...........................................................13
2. PROTOCOLO H.323 (ITU-T)...............................................................................14
2.1. INTRODUÇÃO ......................................................................................14
2.2. ELEMENTOS DO H.323 .......................................................................14
2.2.1. Fluxos de Informação .............................................................................14
2.2.2. Terminal..................................................................................................15
2.2.2.1 Características de vídeo ..........................................................................16
2.2.2.2 Características de áudio ..........................................................................17
2.2.2.3 Canal de dados ........................................................................................18
2.2.2.4 Função de controle H.245.......................................................................19
2.2.2.5 Negociação de capabilidade....................................................................21
2.2.2.6 Sinalização de canal lógico.....................................................................22
2.2.2.7 Determinação de mestre-escravo ............................................................22
2.2.2.8 Fluxo multiplexado de transmissão sobre um canal lógico simples.......23
2.2.2.9 Sinalização RAS .....................................................................................24
2.2.2.10 Função de sinalização de chamada .........................................................24
2.2.3. Gateway ..................................................................................................25
2.2.3.1 Decomposição lógica de um gateway.....................................................26
2.2.3.2 Decomposição física de um gateway......................................................27
2.2.3.3 Trunking e Access Gateways ..................................................................28
2.2.3.4 Exemplos de Utilização de Trunking e Access Gateways ......................30
2.2.4. Gatekeeper ..............................................................................................31
2.2.5. Características de Conferência Multiponto.............................................32
2.3. SINALIZAÇÃO DE CHAMADAS .......................................................34
2.3.1. Endereçamento........................................................................................34
2.3.2. Canal RAS (Registro, Admissão e Estado) ............................................35
2.3.3. Canal de Sinalização de Chamada ..........................................................36
2.3.4. Valor de Referência de Chamada ...........................................................36
2.3.5. Identificação de Chamada.......................................................................37
2.3.6. Identificação de Conferência e Objetivo de Conferência .......................37
2.3.7. Capacidade de Chamada de Terminal ....................................................37
2.3.8. Serviços de Identificação de Chamador..................................................38
2.4. PROCEDIMENTOS DE SINALIZAÇÃO DE CHAMADAS ..............38
2.4.1. Fase A – Call Setup ................................................................................38
2.4.2. Fase B – Comunicação Inicial e Troca de Capabilidade ........................42
2.4.3. Fase C – Estabelecimento de Comunicação Áudio Visual.....................43
2.4.4. Fase D – Serviços de Chamadas .............................................................43
2.4.5. Fase E – Finalização de Chamada ..........................................................45
3. PROTOCOLO SIP (IETF).....................................................................................46
3.1. INTRODUÇÃO ......................................................................................46
3.2. ESTRUTURA.........................................................................................47
3.3. DEFINIÇÕES .........................................................................................47
3.4. MENSAGENS SIP .................................................................................50
6
3.4.1. Requisições .............................................................................................50
3.4.2. Respostas ................................................................................................51
3.5. COMPORTAMENTO GERAL DO USER AGENT ..............................51
3.5.1. Comportamento do UAC ........................................................................52
3.5.2. Comportamento do UAS ........................................................................53
3.5.3. Comportamento do UAS stateless..........................................................54
3.6. CANCELANDO UM REQUEST ...........................................................55
3.7. REGISTROS...........................................................................................55
3.8. INFORMAÇÕES DE CAPABILIDADE...............................................56
3.9. DIÁLOGOS ............................................................................................57
3.10. SESSÃO..................................................................................................58
3.11. PROXY ....................................................................................................59
3.11.1. Stateful proxy ..........................................................................................59
3.11.2. Stateless proxy ........................................................................................61
3.12. TRANSAÇÕES ......................................................................................61
3.13. TRANSPORTE.......................................................................................62
3.14. CAMPOS DE CABEÇALHO ................................................................63
3.15. CÓDIGOS DE RESPOSTA ...................................................................65
3.15.1. Respostas provisórias 1xx.......................................................................66
3.15.2. Resposta de sucesso 2xx .........................................................................66
3.15.3. Respostas de redireção 3xx.....................................................................66
3.15.4. Resposta de falha 4xx .............................................................................67
3.15.5. Resposta de falha de servidor 5xx ..........................................................69
3.15.6. Respostas de falha global 6xx.................................................................70
3.16. USO DE AUTENTICAÇÃO HTTP.......................................................70
4. ANÁLISE COMPARATIVA ENTRE H.323 E SIP .............................................72
4.1. COMPLEXIDADE.................................................................................72
4.2. EXTENSIBILIDADE E MODULARIDADE........................................73
4.3. ESCALABILIDADE ..............................................................................74
4.4. SERVIÇOS .............................................................................................75
4.5. SEGURANÇA ........................................................................................75
5. CONCLUSÃO .......................................................................................................77
6. REFERÊNCIAS BIBLIOGRÁFICAS...................................................................79
7
LISTA DE TABELAS
8
LISTA DE FIGURAS
9
LISTA DE ABREVIATURAS E SIGLAS
10
MP Multipoint Processor
NAT Network Address Translation
NFAS Non-Facility Associated Signaling
NNI Network-to-Network Interface
PABX Private Automatic Branch Exchange
PGP Pretty Good Privacy
PRI Primary Rate Interface
PSTN Public Switched Telephone Network
QCIF Quarter Common Intermediate Format
QoS Quality Of Service
QSIG Signaling Between the Q Reference points
RAS Registration, Admission, Status
RFC Request For Comments
RTCP Real Time Control Protocol
RTP Real Time Protocol
RTSP Real Time Streaming Protocol
S/MIME Secure / Multipurpose Internet Mail Extensions
SCM Selected Communications Mode
SCN Switched Circuit Network
SCTP Stream Control Transmission Protocol
SDP Session Description Protocol
S-HTTP Secure Hypertext Transfer Protocol
SIP Session Initiation Protocol
SIPS Session Initiation Protocol Secure
SPX Sequential Protocol Exchange
SRTP Secure Real Time Transport Protocol
SS7 Signaling System n. 7
SSH Secure Shell
SSL Secure Sockets Layer
ST Server Transaction
TCP Transport Control Protocol
TLS Transport Layer Security
TSAP Transport layer Service Access Point
TU Transaction User
UA User Agent
UAC User Agent Client
UAS User Agent Server
UDP User Datagram Protocol
URI Uniform Resource Identifier
URL Uniform Resource Locator
WWW World Wide Web
11
1. INTRODUÇÃO
12
crescimento exponencial da Internet, diversos indivíduos e instituições de outros
países se envolveram com a entidade em prol de um objetivo comum, que é o
desenvolvimento da arquitetura da Internet e sua correta operação [2], o que tornou a
entidade mais internacional do que norte-americana.
1.2. OBJETIVO
13
2. PROTOCOLO H.323 (ITU-T)
2.1. INTRODUÇÃO
As informações contidas neste capítulo sobre H.323, quando não citado outro autor,
são baseadas em [1].
14
• Vídeo: contêm vídeo animado digitalizado e codificado, sendo transmitido a
uma taxa não maior que a selecionada, resultado da troca de informações de
capabilidade.
• Dados: inclui figuras, fax, documentos, arquivos diversos de computador e
outros fluxos de dados.
• Sinais de controle de comunicação: passam dados de controle entre elementos
“remotos” e são usados para negociação de capabilidade, abertura e
fechamento de canais lógicos, controles de modo e outras funções que fazem
parte do controle de comunicação.
• Sinais de controle de chamada: utilizados para estabelecimento, desconexão e
outras funções de controle de chamada.
2.2.2. Terminal
15
uma unidade de controle de sistema, uma camada H.225.0, uma interface de rede e
uma unidade de codec de áudio. Opcionalmente o terminal pode possuir uma unidade
de codec de vídeo e aplicações de dados de usuário.
• Serviço fim a fim confiável (TCP, SPX, etc.): obrigatório para o canal de
controle H.245, canais de dados, canal de sinalização de chamada.
• Serviço fim a fim não-confiável (UDP, IPX, etc.): obrigatório para os canais
de áudio, canais de vídeo e o canal RAS.
Uma vez que algum terminal possua capabilidade de vídeo (que é opcional), é
mandatório que o mesmo seja capaz de codificar e decodificar vídeo de acordo com a
recomendação H.261 QCIF, que é o codec de vídeo com taxa de 30 quadros por
segundo, sendo que cada um destes quadros possui as dimensões de 144 linhas e 176
pixels por linha. Este formato, como o próprio nome sugere, equivale a um quarto da
resolução total do formato CIF [4]. Opcionalmente, o terminal pode ter suporte a
outros modos do H.261 (CIF, por exemplo) e também outros codec’s como H.263 ou
H.264, que possuem algoritmos aperfeiçoados e desempenho superior.
16
decodificador, durante a negociação de capabilidade. Além disso, os terminais H.323
têm a opção de operação em diferentes taxas de bit ou taxas de quadros. Por
exemplo, um terminal pode transmitir QCIF enquanto recebe CIF.
É obrigatório que um terminal H.323 possua o codec de áudio G.711 e seja capaz de
transmitir e receber nos modos A-law e µ-law. Opcionalmente outros codec's podem
ser utilizados sem problemas, uma vez que sejam sinalizados pelo canal H.245. Isso
ocorre durante a troca de capabilidade entre as entidades envolvidas (codificador e
decodificador). Similarmente à característica de vídeo, o áudio tem a possibilidade de
operação assimétrica, ou seja, um terminal pode, por exemplo, enviar áudio em
G.711 e receber em G.723, desde que codificador e decodificador tenham
capabilidade de ambos os codec's.
17
transmitir a mensagem “h2250MaximumSkewIndication” para indicar a diferença
máxima de tempo entre os sinais de áudio e vídeo, para serem entregues a rede de
transporte. Esta mensagem deverá ser enviada para cada par de canais lógicos de
áudio e vídeo associados. Esse procedimento não é necessário em conexões
exclusivas de áudio.
Uma conexão T.120 é estabelecida durante uma chamada H.323, sendo uma parte
essencial desta chamada. Depois da troca de capabilidades, um canal lógico
bidirecional deve ser aberto para a conexão T.120, através da mensagem
“openLogicalChannel”. Se o terminal que está sendo convidado, aceitar a abertura
de canal, então este enviará a mensagem “openLogicalChannelAck”. Nesta
mensagem, o terminal convidado deve incluir seu endereço de transporte, mesmo
esperando que o terminal chamador inicie a chamada. Em todos os casos, o endereço
de transporte deve estar presente no parâmetro “separateStack” e deve permanecer
válido pelo tempo da duração da conexão do canal lógico T.120.
18
Em ambas as mensagens “openLogicalChannel” e “openLogicalChannelAck”, a
alternativa “t120SetupProcedure”, da estrutura “NetworkAccessParameters” indica
à parte oposta (chamador ou recebedor) como a chamada será estabelecida. A opção
“originateCall” diz ao emissor da mensagem para iniciar a chamada. Já a opção
“waitForCall” significa que o emissor da mensagem irá receber a chamada.
No caso de conferência, que inclui áudio, vídeo e dados T.120, quando um terminal
tiver a intenção de iniciar uma, o canal de controle H.245 precisa ser estabelecido
antes que a conexão T.120 seja realizada. Isso se aplica a criação de conferência,
entrada em conferência estabelecida e convite/ações de um MC de uma conferência.
Os procedimentos de call setup devem ser utilizados para se estabelecer o MC ativo
(se existir), antes da conexão T.120.
A função de controle utiliza o canal H.245 para enviar mensagens de controle fim a
fim, gerenciando a operação de entidades H.323, incluindo negociação de
capabilidade, abertura e fechamento de canais lógicos, requisições de preferência de
modo, mensagens de controle de fluxo e comandos genéricos.
19
Esta sinalização pode ser estabelecida entre:
• Dois terminais;
• Um terminal e um MC;
• Um terminal e um gatekeeper
Para cada chamada H.323 que um terminal estabeleça, haverá somente um canal
lógico de controle H.245 aberto. É importante salientar que terminais, MCU’s,
gateways ou gatekeepers podem (e devem) suportar mais de uma chamada ao mesmo
tempo e, conseqüentemente, um canal de controle para cada uma destas chamadas. O
canal de controle H.245 deve ser transportando pelo canal lógico zero.
• Determinação de mestre/escravo.
• Negociação de capabilidade.
• Sinalização de canal lógico.
• Sinalização bidirecional de canal lógico.
• Fechamento de canal lógico de sinalização.
• Requisição de modo.
• Determinação de Round Trip Delay.
• Sinalização de loop de manutenção.
• Requisição (request).
• Resposta (response).
• Comando (command).
20
• Indicação (indication).
21
2.2.2.6 Sinalização de canal lógico
22
(controlador multiponto) de uma conferência ou entre dois terminais tentando abrir
um canal lógico bidirecional. Neste procedimento, dois terminais trocam números
aleatórios em uma mensagem H.245 “masterSlaveDetermination”, para determinar
quem é mestre e quem é escravo.
Múltiplos fluxos de mídia podem ser multiplexados sobre um único canal lógico,
utilizando-se os protocolos H.222 ou H.223. Multiplexando um fluxo de mídia, um
terminal se aproveita de alguns benefícios como a utilização mais eficiente de banda,
sincronização precisa de mídia e baixo atraso em transmissões multimídia.
23
A outra forma de se controlar fluxos multiplexados é através de mensagens H.245
enviadas de maneira normal, como em um fluxo não multiplexado. A diferença é que
na abertura de canal lógico de sinalização, este possuirá parâmetros relativos à mídia
multiplexada.
24
2.2.3. Gateway
O princípio dos gateways é trabalhar como uma interface de tradução entre uma rede
de dados (IP, por exemplo) e uma rede de circuito comutado (sistema telefônico
convencional), provendo tradução apropriada entre formatos de transmissão
diferentes.
Terminal
Terminal H.323
H.323
Gateway Gateway
(funções de (funções de
conversão) conversão)
Terminal da Terminal da
SCN SCN
25
2.2.3.1 Decomposição lógica de um gateway
Esta seção identifica um grupo de interfaces e funções, a ser utilizado para decompor
gateways H.323. Este grupo endereça cada interface e seu protocolo resultante, mas
certas implementações de gateways devem escolher em agrupar dois ou mais
componentes funcionais dentro de um único dispositivo físico. Por esta razão,
interfaces podem prover a capabilidade de transparentemente transportar outros
protocolos.
26
controlador. Esta decomposição provê a flexibilidade de conservar pontos de código
SS7 e permite que o comutador SS7 sirva múltiplos Gateway Controllers
decompostos.
As funções do MG são:
27
Figura 4 - Decomposição de gateway SS7 (fonte: ITU-T)
Os termos trunking e access gateways são utilizados tanto no H.323 como no H.248,
assim como fazem parte da terminologia utilizada em comutação por circuito, onde
são aplicadas para funções tandem e de comutador de acesso.
No H.323, trunking gateways são entidades com uma verdadeira função tandem,
sendo que a transparência de protocolos convertidos é essencial, ou seja, se por uma
das interfaces o protocolo utilizado é o QSIG, este deve ser “invisível” a outro
trunking gateway, por exemplo. Esta transparência é possível devido ao tunelamento
baseado na negociação de protocolo H.225.0 e Anexo M do mesmo. A figura abaixo
exemplifica bem esta questão da transparência.
28
Figura 5 - Relacionamento entre gateways H.323, SCN e H.248 (fonte: ITU-T)
29
2.2.3.4 Exemplos de Utilização de Trunking e Access Gateways
Figura 7 - Trunking Gateways decompostos entre dois provedores de serviço (fonte: ITU-T)
30
2.2.4. Gatekeeper
Existem também outros serviços que podem ser implementados em gatekeepers, mas
não obrigatórios estarem presentes de acordo com a recomendação H.323:
31
• Sinalização de Controle de Chamada: O gatekeeper pode escolher a
completar a sinalização de chamada com os terminais e pode processar a
sinalização de chamada propriamente dita. De modo alternativo, o gatekeeper
pode direcionar os terminais a conectar o canal de sinalização de chamada
diretamente entre eles, fazendo com que o gatekeeper não precise realizar a
sinalização de controle de chamada H.225.
• Autorização de chamada: Através do uso da sinalização H.225, o gatekeeper
pode rejeitar chamadas de um terminal em virtude de falha de autorização. As
razões para rejeição podem incluir acesso restrito para/de terminais
particulares ou gateways, e acesso restrito durante certos períodos de tempo.
• Administração de largura de banda: Controle do número de terminais H.323
permitidos a acessar simultaneamente a rede. Através da sinalização H.225.0
o gatekeeper pode rejeitar chamadas de um terminal devido a limitações de
largura de banda. Isso ocorre quando o gatekeeper determina que não há
largura de banda suficiente para suportar uma ligação.
• Administração de chamadas: O gatekeeper pode manter uma lista de
chamadas em curso, pois esta informação pode ser necessária para indicar se
um terminal está ocupado e também para prover informação pertinente à
administração de largura de banda disponível.
• Modificação de endereço de alias: O gatekeeper pode retornar um endereço
de alias modificado. Se o gatekeeper retorna um endereço de alias em um
ACF, o terminal deverá utilizar o endereço de alias para estabelecer a
conexão.
32
controlador multiponto deve negociar e administrar as capabilidades que cada
terminal possui e que pode utilizar em uma conferência. Desta forma o MC
determina o SCM (modo de comunicações selecionado) para a conferência, que
deverá ser comum a todos os terminais envolvidos na conferência.
33
dados dos terminais envolvidos em uma conferência centralizada ou híbrida. O MP
processa estes fluxos de mídia e retorna-os aos terminais.
2.3.1. Endereçamento
É mandatório que o terminal possua pelo menos um endereço de rede (IP, por
exemplo), que vai identificar o mesmo na rede onde está localizado. Para cada
endereço de rede, cada terminal H.323 pode ter vários identificadores TSAP,
possibilitando a multiplexação de vários canais, compartilhando o mesmo endereço
de rede.
34
alias associados a ele. O alias representa o terminal propriamente dito ou
conferências que o terminal está hospedando no momento, e é uma forma alternativa
de identificar um terminal. A representação de alias inclui dialledDigits,
partyNumber e H.323 ID (nomes alfanuméricos ou parecidos com endereço de
correio eletrônico).
35
Neste momento, ao se registrar em um servidor, o terminal se junta à uma “Zona” e
informa ao gatekeeper seu endereço de transporte e alias. Assim, quando outros
terminais desejarem iniciar uma chamada, todos saberão a localização deste terminal
registrado.
Toda chamada deve conter um CRV (Call Reference Value) ou valor de referência de
chamada, um para o canal RAS e outro independente para o canal de sinalização de
chamada. O CRV deve estar presente nas mensagens trocadas entre duas entidades
(terminal-terminal ou terminal-gatekeeper) relacionadas à mesma chamada. Quando
um terminal convida uma terceira entidade a participar da mesma conferência, este
canal de sinalização deve conter um novo CRV.
36
2.3.5. Identificação de Chamada
O CID (Conference ID) é um valor diferente de zero criado pelo terminal chamador e
passado em várias mensagens H.225.0. O CID identifica qual a conferência na qual
as mensagens estão envolvidas. Assim, todas as mensagens pertencentes à mesma
conferência possuirão o mesmo CID.
37
tipo de chamada que um terminal deverá suportar (voz, dados T.120, H.320, etc.).
Um terminal pode reportar sua capacidade de chamada por meio de várias
mensagens H.225.0, para auxiliar o gatekeeper a rotear chamadas. Já um gateway
reporta sua informação de capacidade de chamada para auxiliar um gatekeeper a
realizar balanceamento de carga através de gateways e para diminuir o número de
tentativas de chamadas falhas.
• Número do chamador.
• Número conectado.
• Número chamado.
• Número ocupado.
O call setup ocorre antes do fluxo da chamada ser estabelecido entre duas partes. É
realizado através de mensagens de controle de chamada definidas na recomendação
H.225.0 e pode acontecer de várias maneiras, de acordo com o cenário utilizado,
explicado a seguir.
38
(endpoint 2). O terminal chamado responde com as mensagens de call proceeding
(2), alerting (3) e connect (4), ilustrados na figura 10.
Com dois terminais registrados no mesmo gatekeeper existem duas formas dos
mesmos realizarem a troca de sinalização. A primeira é quando os terminais se
comunicam diretamente, ou seja, as mensagens de sinalização de chamada são
enviadas de um terminal diretamente ao outro terminal, sem intermediação do
gatekeeper. Desta forma, somente as mensagens iniciais ARQ (Admission Request,
mensagem de requisição para especificação da largura de banda), ACF (Admission
Confirm, mensagem de confirmação) e ARJ (Admission Reject, mensagem de
refeição), todas elas mensagens RAS, serão trocadas diretamente com o gatekeeper.
Figura 11 - Terminais registrados no mesmo gatekeeper, com sinalização direta (fonte: ITU-T)
39
Quando o gatekeeper age como intermediador de toda sinalização, todas as
mensagens serão roteadas pelo gatekeeper, antes de chegar ao terminal chamado.
Figura 12 - Terminais registrados no mesmo gatekeeper, com sinalização roteada (fonte: ITU-T)
40
terminal chamado.
Na sinalização direta, o terminal 1 (endpoint 1), que não está registrado em nenhum
gatekeeper, envia a mensagem de setup (1) diretamente ao terminal 2 (endpoint 2),
este sim registrado em um gatekeeper. Como o terminal 2 aceitou a chamada, ele
envia a mensagem call proceeding (2) e em seguida inicia a troca de mensagens RAS
com o gatekeeper no qual está registrado. Na seqüência as mensagens alerting (5) e
connect (6) finalizam a sinalização.
41
estivesse em uma chamada terminal-terminal. O gateway deverá agir como um
terminal, realizando toda conversão necessária para que o terminal externo faça
corretamente a sinalização com o terminal da rede.
42
Quando não existe a necessidade de se enviar mensagens H.225.0 e uma mensagem
H.245 precisa ser enviada, então é enviada a mensagem H.225.0 Facility, com o
parâmetro reason contendo transportedInformation.
Existem seis tipos de serviços diferentes que podem ser utilizados durante o
transcorrer de uma chamada qualquer. São eles:
43
e aprovada pelo gatekeeper durante as sinalizações de admissão. Depois de
iniciada a troca de fluxo de informação, qualquer um dos terminais ou o
próprio gatekeeper, mesmo em uma conferência a três ou mais participantes,
pode solicitar a alteração de largura de banda. Recomenda-se este tipo de
alteração quando um terminal for utilizar a largura de banda reduzida por um
longo período de tempo, liberando desta forma largura de banda para outras
chamadas concomitantes.
• Estado: utilizado pelo gatekeeper para determinar se um determinado
terminal está ativo ou não, ou ainda se entrou em estado de falha. Através de
uma seqüência de mensagens IRQ e IRR (H.225.0) enviada aos terminais
(intervalo determinado pelos fabricantes dos terminais) é possível saber o
estado em que cada terminal conhecido se encontra no momento.
• Expansão de conferência ad hoc: este procedimento é opcional para terminais
e gateways, mas obrigatório para um MC. Através deste procedimento é
possível expandir uma conferência ponto a ponto para uma multiponto ad
hoc, onde um dos terminais no mínimo precisa conter um MC.
• Serviços suplementares: os serviços suplementares foram criados
originalmente para centrais telefônicas privadas baseadas em comutação de
circuito. Na série de recomendações H.450.x do ITU-T, um quantidade
considerável destes serviços foi especificada como serviços básicos,
implementados agora em redes baseadas em comutação de pacotes [6].
Alguns destes serviços são: transferência, redireção, retenção de chamada,
estacionamento de chamada, chamada em espera, etc.
• Cascateamento multiponto: o cascateamento acontece quando duas
conferências distintas são conectadas uma a outra, através do MC de cada
uma delas. Desta forma uma delas é determinada como MC mestre e a outra
como escrava. Uma vez estabelecida uma conferência cascateada, tanto o
terminal mestre como o escravo poderão convidar outro MC para participar
da conferência, mas somente poderá existir um MC mestre para cada
conferência cascateada.
• Pausa e re-roteamento por uma terceira parte: é um procedimento que permite
rotear ligações independentemente se o terminal possui suporte a serviço
44
suplementar. É utilizado para facilitar anúncios de pré-conexão e também
para atrasar o estabelecimento de mídia H.245 quando o recurso de
localização de usuário por gatekeeper estiver sendo utilizado. Na pausa, o
terminal recebe uma mensagem H.245 onde ele ficará em estado de espera e
com todos os canais lógicos fechados, até que o terminal remoto envie outra
mensagem para terminar a pausa. Isso pode auxiliar uma entidade
anunciadora, por exemplo, a enviar fluxo de informação e não receber nada
do terminal em pausa.
Uma chamada pode ser finalizada de duas maneiras: intermediada por um gatekeeper
ou simplesmente por sinalização entre dois terminais em comunicação direta.
45
3. PROTOCOLO SIP (IETF)
3.1. INTRODUÇÃO
46
3.2. ESTRUTURA
3.3. DEFINIÇÕES
Para uma melhor compreensão da arquitetura SIP, os seguintes termos são de suma
importância ser conhecidos:
47
como o endereço público do usuário.
• Back-To-Back User Agent: entidade lógica que recebe uma requisição e a
processa como um UAS. Para saber como uma mensagem de requisição deve
ser respondida ele age como um UAC e gera requisições. Ao contrário do
servidor Proxy, ele mantêm o estado de diálogo e deve participar de todas as
requisições enviadas nos diálogos que se estabeleceram.
• Call Stateful: Um proxy é call stateful se ele retêm o estado para um diálogo
da requisição INVITE iniciadora até o BYE finalizador.
• Core: designa as funções específicas de um tipo particular de entidade SIP.
• Diálogo: Um diálogo é o relacionamento SIP ponto a ponto entre dois UAs
que persiste por algum tempo. Um diálogo é estabelecido por mensagens SIP,
como a resposta 2xx para uma requisição INVITE. Um diálogo é identificado
por um identificador de chamada, tag local e tag remoto.
• Downstream: É a direção de encaminhamento de mensagem de requisição
que vai do UAC ao UAS.
• Home Domain: é o domínio provendo serviços para um usuário SIP.
Tipicamente, este é o domínio presente no URI do AOR de um registro.
• Outbound Proxy: é um proxy que recebe requisições de um cliente, embora
este possa não ser o servidor resolvido pelo request-URI. Normalmente um
UA tem seu outbound proxy configurado manualmente, ou pode aprender a
localização de algum através de algum protocolo de descoberta.
• Proxy Server: entidade intermediária que atua tanto como servidor como
cliente (quando se propõem a fazer requisições em nome de outros clientes).
A função primordial do Proxy Server é roteamento, seu trabalho é garantir
que a requisição é enviada para outra entidade o mais próximo possível do
usuário alvo. Eles são úteis também para políticas de segurança (por exemplo,
para garantir que um usuário tenha ou não permissão para realizar
determinada chamada). Um Proxy interpreta e, se necessário, reescreve partes
específicas de uma mensagem de requisição, antes de encaminhar ela.
• Redirect Server: é um UAS que gera respostas 3xx para as requisições que
recebe, direcionando o cliente a contatar uma série de URIs alternativas.
• Registrar: é o servidor que aceita as requisições de REGISTER e armazena as
48
informações que recebe no serviço de localização no domínio em que ele
atua.
• Sessão: Da especificação SDP: “Uma sessão multimídia é uma série de
remetentes e destinatários multimídia e os fluxos de dados que vão dos
remetentes aos destinatários. Uma conferência multimídia é um exemplo de
uma sessão multimídia” [7]. Como definido, a parte chamada pode ser
convidada diversas vezes, por diferentes chamadas, para uma mesma sessão.
Se o SDP for usado, uma sessão é definida pela concatenação dos nomes de
usuário, ID de sessão, tipo de rede, tipo de endereço e elementos do endereço
no campo origem.
• SIP Transaction: ocorre entre um cliente e um servidor e compreende todas
as mensagens da primeira requisição enviadas pelo cliente ao servidor, até
uma resposta final (1xx) enviada do servidor para o cliente. Se a requisição é
INVITE e a resposta final é diferente de 2xx, a transação também inclui um
ACK para a resposta. Um ACK para uma resposta 2xx a uma requisição
INVITE é uma transação separada.
• Stateful Proxy: entidade lógica que mantêm os mecanismos de estado de
transação do cliente e servidor, durante o processo de requisição, também
conhecido como transaction stateful proxy.
• Stateless Proxy: entidade lógica que não mantêm os mecanismos de estado de
transação do cliente e servidor. Um stateless Proxy encaminha qualquer
requisição que recebe de forma downstream e toda resposta que recebe de
forma upstream.
• Upstream: É a direção de encaminhamento de mensagem de resposta que vai
do UAS ao UAC.
• User Agent Client (UAC): entidade lógica que cria uma nova requisição e
então utiliza o mecanismo de estado de transação cliente para enviá-la. O
papel de UAC dura somente pela duração da transação. Em outras palavras,
se uma parte do software inicia uma requisição, ele atua como UAC pelo
tempo da duração daquela transação. Se receber uma requisição mais tarde,
ele assume o papel de UAS para o processo da transação.
• User Agent Server (UAS): entidade lógica que gera respostas a requisições
49
SIP. Este tipo de resposta aceita, rejeita ou redireciona requisições. Este papel
dura apenas pelo tempo desta transação. Em outras palavras, se um pedaço de
software responde a uma requisição, ele atua como UAS pelo tempo da
duração daquela transação. Se ele gerar uma requisição mais tarde, ele
assume o papel de UAC para o processo desta transação.
• User Agent (UA): entidade lógica que pode atuar tanto como cliente como
servidor.
[Linha inicial]
[Cabeçalho da mensagem]
[CRFL (carriage-return line-feed)]
[Corpo da mensagem]
3.4.1. Requisições
50
requisição, constando o nome do método, o URI requisitado e a versão de protocolo.
3.4.2. Respostas
O conceito de user agent é definido como sendo um sistema final formado por um
51
UAC, que gera requisições e um UAS que responde estas requisições. O UAC é
capaz de gerar requisições baseado em estímulo externo (clique do mouse ou um
sinal vindo da PSTN) e também processar respostas recebidas. O UAS é capaz de
receber as requisições e gerar as respostas baseado na entrada de dados do usuário,
estímulo externo, o resultado da execução de um programa ou algum outro
mecanismo.
Uma requisição SIP válida formulada por um UAC deve conter no mínimo os
seguintes parâmetros:
52
Uma vez computada a requisição, os procedimentos de DNS devem ser aplicados
para determinação do destino, a não ser que contrariem alguma política local.
Quando uma requisição fora de um diálogo é processada por um UAS, existe uma
série de regras de processamento que são seguidas, independentemente do método
utilizado.
Se uma requisição for aceita, todas as mudanças de estado associadas com ela devem
ser realizadas. Se a requisição for rejeitada, as mudanças de estado não devem ser
realizadas.
53
Após a checagem inicial descrita acima, o processamento no UAS torna-se
dependente de método (REGISTER, OPTIONS, INVITE, BYE). A partir deste
momento inicia-se a geração da resposta por parte do UAS.
Um UAS stateless é aquele que não mantêm estado de transação. Ele responde às
requisições normalmente, mas descarta qualquer tipo de estado que possa ter sido
retido depois de uma resposta ter sido enviada. Quando um UAS stateless recebe
uma retransmissão de requisição, ele gera uma resposta como se estivesse
respondendo a primeira instância da requisição (esse comportamento exclui um
stateless registrar).
54
3.6. CANCELANDO UM REQUEST
3.7. REGISTROS
Quando um usuário quer iniciar uma sessão com outro usuário, o SIP deverá
descobrir em qual host este usuário está alcançável. Para que isso ocorra, os
elementos do SIP consultam um serviço abstrato chamado location service, que
provê bindings de endereços de um determinado domínio. Esses bindings de
endereço mapeiam um SIP URI recebido, apontando para um ou mais URIs, que de
alguma forma estão mais próximos do usuário final.
55
service, assim como um servidor de proxy ou de redireção deve poder ler os mesmos
dados.
56
Figura 18 - Exemplo de resposta OPTIONS (fonte: IETF)
3.9. DIÁLOGOS
Um diálogo pode ser definido como uma relação SIP ponto a ponto entre dois UAs,
que persiste por um determinado tempo. Esse tipo de relação colabora com o
seqüenciamento de mensagens entre UAs e o correto roteamento de requisições e
respostas entre os pontos.
57
• ID de diálogo
• Número de seqüência local
• Número de seqüência remota
• URI local
• URI remoto
• Target remoto
• Um flag booleano chamado “secure”
• Route Set (lista de URIs ordenadas, que são servidores que necessitam serem
transversos para enviar uma requisição a um ponto)
3.10. SESSÃO
Uma sessão (áudio, vídeo ou jogo) é estabelecida depois que um UA gera uma
requisição INVITE para um servidor. A requisição pode ser encaminhada por algum
proxy, eventualmente chegando a um ou mais UAS’s que podem potencialmente
aceitar o convite. Estes UAS’s podem aceitar o convite depois de algum tempo
(significando que a sessão está para ser estabelecida) com o envio de mensagens de
resposta 2xx. Se o convite não foi aceito, mensagens 3xx, 4xx, 5xx e 6xx serão
enviadas ao UAC, dependendo da razão da rejeição. Depois de enviar a resposta
final, o UAS pode ainda enviar mensagens provisórias do tipo 1xx para advertir o
UAC do progresso de contato com a parte chamada.
Devido ao tempo prolongado que um UAC possa demorar a receber uma mensagem
final, os mecanismos de confiabilidade para as transações INVITE diferem de outras
requisições como OPTIONS. Para cada resposta final recebida, o UAC deve enviar
um ACK. Quando a resposta final é entre 300 e 699, o processamento do ACK é
realizado na camada de transação e segue uma série de regras. Para respostas 2xx, o
ACK é gerado pelo core do UAC.
Uma resposta 2xx para um INVITE estabelece uma sessão e também cria um diálogo
entre os UA’s. Quando diversas respostas 2xx são recebidas de diferentes UA’s
remotos, cada mensagem 2xx estabelece um diálogo diferente, que serão parte da
58
mesma chamada.
Um sessão pode ser alterada também, o que envolve mudança de endereço ou porta,
adição ou remoção de fluxo de mídia, entre outras. Isso ocorre quando um novo
INVITE é enviado no mesmo diálogo que estabeleceu a sessão, este procedimento é
também conhecido como re-INVITE.
Para terminar uma sessão existem três maneiras, a primeira através do recebimento
de qualquer mensagem de resposta que não seja 2xx, a segunda maneira é pelo envio
da requisição BYE e a terceira pelo envio da requisição CANCEL, que pode ocorrer
quando determinado UAS tome muito tempo para enviar uma resposta final ao UAC.
3.11. PROXY
Um proxy SIP é um elemento que roteia requisições para UAS’s e respostas para
UAC’s. Uma requisição, por exemplo, pode passar por diversos servidores proxy em
sua trajetória até o UAS. Cada um destes servidores realizarão decisões de
roteamento, modificando a requisição antes de encaminhá-la para o próximo servidor
proxy. As respostas virão no mesmo caminho inverso, passando por todos os
servidores da ida.
59
proxy de camada superior, conhecido como proxy core.
Um proxy stateful precisa realizar as seguintes tarefas para todas as requisições que
receber:
• Validar a requisição
• Pré-processar informações de roteamento
• Determinar para onde vai a requisição
• Encaminhar a requisição para cada local determinado
• Processar todas as respostas
60
3.11.2. Stateless proxy
Um stateless proxy não têm noção nenhuma de transação. Ele coleta as mensagens
diretamente da camada de transporte e, como resultado, não retransmite mensagens
por conta própria. Ele pode somente encaminhar todas as retransmissões que recebe
apenas, pois este tipo de proxy não terá a capacidade de discernir um retransmissão
de uma mensagem original. Agindo de forma stateless ele também não pode enviar
nenhuma mensagem provisória como um TRYING (100), ao contrário do proxy
stateful.
3.12. TRANSAÇÕES
61
Figura 20 - Relacionamento de transações (fonte: IETF)
3.13. TRANSPORTE
Note que, sendo o número de porta fonte efêmero ou selecionado por procedimentos,
conexões aceitas pela camada de transporte não serão reutilizadas, na maioria das
vezes. O resultado é que duas entidades proxy em uma relação ponto a ponto,
utilizando-se de transporte orientado à conexão, freqüentemente terão duas conexões
em curso, uma para cada direção nas transações.
62
3.14. CAMPOS DE CABEÇALHO
• Accept: especifica certos tipos de mídia que são aceitáveis para uma resposta
[8]. Em caso de ausência, o servidor deve assumir o valor padrão
“application/sdp”. Em caso de parâmetro vazio, isso significa que nenhum
formato é aceitável.
• Accept-Encoding: similar ao accept, mas restringe a codificação de conteúdo
aceitável na resposta.
• Accept-Language: indica o idioma preferido nas frases de razão, descrições
de seção ou respostas de estado, carregadas como corpo de mensagem na
resposta.
• Alert-Info: em mensagens de INVITE, representa um tom de ring alternativo
para o UAS. Nas mensagens 180 (RINGING), representa um ringback
alternativo para o UAC.
• Allow: lista a série de métodos suportados pelo UA gerador da mensagem.
• Authentication-Info: provê autenticação mútua com HTTP digest.
• Authorization: contêm as credenciais de autenticação de um UA.
• Call-ID: identifica um convite particular único ou todos os registros de um
cliente em particular.
• Call-Info: provê informações adicionais sobre o chamador ou a parte
chamada. O parâmetro purpose determina a finalidade da informação.
• Contact: Provê o URI cujo significado depende da mensagem de requisição
ou resposta envolvida. Este campo pode conter o nome de exibição, uma URI
com todos os parâmetros URI e parâmetros de cabeçalho.
• Content-Disposition: descreve como o corpo da mensagem deve ser
interpretado.
• Content-Encoding: indica quais codificações de conteúdo foram aplicadas ao
63
corpo da mensagem e quais mecanismos decodificadores devem ser
aplicados.
• Content-Language: idioma do conteúdo
• Content-Length: tamanho do corpo da mensagem, em número de bytes.
• Content-Type: indica o tipo de mídia do corpo da mensagem enviado ao
destinatário.
• CSeq: formado por um número decimal e o método utilizado, serve para
ordenar transações dentro de um diálogo.
• Date: contêm data e hora
• Error-Info: provê um ponteiro para informação adicional sobre a resposta de
estado de erro.
• Expires: tempo relativo expresso em segundos na qual a mensagem expirará.
• From: indica o iniciador da requisição, contendo o endereço do chamador.
• In-Reply-To: Enumera os Call-IDs que determinada chamada referencia ou
retorna.
• Max-Forwards: utilizado por qualquer método SIP para limitar o número de
proxies ou gateways que podem encaminhar a requisição para um próximo
servidor. O valor recomendado inicial é 70 (vai sendo decrementado).
• Min-Expires: convenciona o intervalo mínimo de atualização suportado pelos
elementos de estado de software gerenciados pelo servidor.
• MIME-Version: versão MIME
• Organization: nome da organização a qual o elemento SIP pertence.
• Priority: indica a urgência da requisição percebida pelo cliente.
• Proxy-Authenticate: contêm um desafio de autenticação (no sentido de
criptografia e autorização).
• Proxy-Authorization: permite ao cliente se identificar perante um proxy que
requer autenticação.
• Proxy-Require: indica recursos sensíveis aos proxies que precisam ser
suportados pelo proxy.
• Record-Route: inserido por proxies em requisições para forçar futuras
requisições em um diálogo a serem roteadas pelo proxy.
• Reply-To: este campo contêm um URI lógico de retorno que pode ser
64
diferente do campo From de cabeçalho.
• Require: utilizado por UACs para avisar UASs sobre as opções que o UAC
espera que o UAS suporte, para processamento da requisição.
• Retry-After: valor em segundos utilizado em mensagens de resposta para
indicar quanto tempo o serviço é esperado permanecer indisponível para o
cliente requisitante.
• Route: força o roteamento de uma requisição para uma lista de proxies.
• Server: informação sobre o software utilizado pelo UAS para manusear a
requisição
• Subject: provê um sumário ou indica a natureza da ligação, permitindo
filtragem de ligação sem ter que analisar a descrição de sessão.
• Supported: enumera todas as extensões suportadas pelo UAC ou UAS.
• Timestamp: descreve quando um UAC enviou a requisição para o UAS.
• To: especifica o destinatário lógico da requisição.
• Unsupported: lista os recursos não suportados pelo UAS.
• User-Agent: contêm informações sobre o UAC originador da requisição.
• Via: indica o caminho tomado pela requisição até então e o caminho que deve
ser seguido no roteamento das respostas. O parâmetro Branch ID no valor de
cabeçalho do Via serve como um identificador de transação, utilizado pelos
proxies para detecção de loops.
• Warning: utilizado para carregar informações adicionais sobre o estado de
uma resposta. São enviados em mensagens de resposta e contêm um código
de três dígitos decimais, um host name e um texto de warning.
• WWW-Authenticate: contêm um desafio de autenticação.
65
3.15.1. Respostas provisórias 1xx
66
retorna diversas alternativas para o UAC selecionar sua preferida.
• 301 MOVED PERMANENTLY: o usuário requisitado não existe mais no
URI solicitado e deve tentar novamente através de um novo endereço dado
pelo campo de cabeçalho contact.
• 302 MOVED TEMPORARILY: equivalente ao 301, mas com prazo de
validade limitado, podendo ter seu tempo indicado por uma mensagem
EXPIRES ou o parâmetro expires no campo de cabeçalho contact.
• 305 USE PROXY: o recurso requisitado deve ser acessado por um proxy
dado pelo campo contact.
• 380 ALTERNATIVE SERVICE: a chamada não teve sucesso, mas existem
alternativas possíveis. A padronização desta mensagem é assunto para futura
discussão.
67
somente capazes de gerar entidades de resposta que possuam características
de conteúdo não aceitáveis de acordo com o campo de cabeçalho accept,
enviado na requisição.
• 407 PROXY AUTHENTICATION REQUIRED: similar ao 401, porém
indica que o cliente necessita autenticar a si mesmo com o proxy.
• 408 REQUEST TIMEOUT: o servidor não conseguiu produzir uma resposta
em determinado intervalo de tempo.
• 410 GONE: o recurso requisitado não está mais disponível e nenhum
endereço de encaminhamento é conhecido.
• 413 REQUEST ENTITY TOO LARGE: o servidor está recusando-se a
aceitar a requisição porque o corpo da mensagem de requisição é maior do
que o servidor pode processar.
• 414 REQUEST-URI TOO LONG: o request-URI é muito longo para ser
interpretado pelo servidor.
• 415 UNSUPPORTED MEDIA TYPE: o servidor está negando a requisição
porque o formato do corpo da mensagem está em um formato não suportado
pelo servidor, pelo método requisitado.
• 416 UNSUPPORTED URI SCHEME: o esquema da URI é desconhecido ao
servidor.
• 420 BAD EXTENSION: o servidor não entende a extensão de protocolo
especificado em um campo de cabeçalho proxy-require ou require.
• 421 EXTENSION REQUIRED: o UAS necessita de uma extensão em
particular para processar a requisição, mas esta não está listada no campo de
cabeçalho supported da requisição.
• 423 INTERVAL TOO BRIEF: o servidor está negando a requisição por que o
tempo de expiração do recurso é muito curto.
• 480 TEMPORARILY UNAVAILABLE: o sistema final da parte chamada foi
contata com sucesso, mas a parte chamada não está disponível no momento
(não está autenticada, por exemplo).
• 481 CALL TRANSACTION DOES NOT EXIST: a requisição recebida não
pertence a nenhuma transação ou diálogo.
• 482 LOOP DETECTED: o servidor detectou um loop.
68
• 483 TOO MANY HOPS: requisição recebida com o parâmetro Max-forwards
igual a zero.
• 484 ADDRESS INCOMPLETE: o request-URI foi recebido incompleto.
• 485 AMBIGUOUS: o URI requisitado é ambíguo e uma lista de URIs
possivelmente não ambíguas pode ser enviada no parâmetro contact.
• 486 BUSY HERE: o contato foi realizado com sucesso, mas a parte chamada
não pode ou não quer receber uma ligação adicional.
• 487 REQUEST TERMINATED: a requisição foi terminada por um BYE ou
CANCEL.
• 488 NOT ACCEPTABLE HERE: têm o mesmo significado da mensagem
606, mas somente se aplica ao recurso endereçado especificamente pelo
request-URI.
• 491 REQUEST PENDING: a requisição foi recebida pelo UAS que possui
uma requisição pendente dentro do mesmo diálogo.
• 493 UNDECIPHERABLE: a requisição recebida pelo UAS contêm o corpo
MIME criptografado e não possui a chave para decifrá-lo.
Estas respostas são enviadas pelo servidor quando o próprio cometeu um erro.
69
de um servidor externo, para completar o processamento da requisição.
• 505 VERSION NOT SUPPORTED: o servidor não suporta, ou recusa-se a
suportar a versão do protocolo SIP que foi utilizada na requisição.
• 513 MESSAGE TOO LARGE: o tamanho da mensagem de requisição
excedeu as capacidades do servidor.
As resposta 6xx indicam que o servidor possui uma informação definitiva sobre um
usuário em particular, não somente uma instância em particular indicada no request-
URI.
70
O mecanismo de autenticação digest provê autenticação de mensagem e proteção de
resposta somente, sem garantir a integridade ou confidencialidade da mensagem.
Medidas de proteção devem ser tomadas em níveis superiores de autenticação para
prevenir ataques ativos que possam modificar requisições e respostas SIP.
71
4. ANÁLISE COMPARATIVA ENTRE H.323 E SIP
O SIP foi desenvolvido pelo grupo de trabalho MMUSIC do IETF e possui uma
visão diferente do ITU-T, direcionada ao ambiente da Internet. Muitos dos campos
de cabeçalho, regras de codificação, códigos de erro e mecanismos de autenticação
são oriundos do HTTP. O SIP têm o objetivo de prover serviços equivalentes ao
H.323, mas com uma abordagem mais simplificada, baseada em serviços da web.
4.1. COMPLEXIDADE
72
algumas dezenas de cabeçalhos, cada um com menos parâmetros, porém contendo
mais informação. Uma simples interação SIP funciona com apenas quatro cabeçalhos
(To, From, Call-ID e CSeq) e três tipos de requisição (INVITE, ACK e BYE) [9].
73
anteriores. O H.323 por outro lado requer compatibilidade total de versões anteriores
com as novas versões, o que resulta em um código extenso para implementação [11].
4.3. ESCALABILIDADE
74
protocolos operam em modo stateful e stateless, sendo que o H.323 possui a maioria
das funcionalidades em modo stateful. O SIP utiliza em sua maior parte operações no
modo stateless, que teoricamente geram carga menor de processamento ao servidor,
mas como mencionado, é relativo e depende do tipo de aplicação e implementação.
O tipo de operação influencia na escalabilidade do protocolo, visto que quanto mais
estados uma entidade guardar, menor será a escalabilidade em vista da maior
complexidade envolvida [11].
4.4. SERVIÇOS
4.5. SEGURANÇA
75
• H.235.2 - H.323 security framework: Signature security profile
• H.235.8 - H.323 security: Key exchange for SRTP using secure signaling
channels
76
5. CONCLUSÃO
O início do H.323 e SIP, como mencionado várias vezes neste trabalho, foram
distintos. O SIP surgiu com o intuito de ser uma versão ponto a ponto do protocolo
SAP (session announcement protocol) e o H.323 como um protocolo multimídia para
operação somente em segmentos de LAN [12]. Com a crescente demanda de novos
serviços e diferentes tipos de ambientes, as evoluções foram acontecendo
naturalmente, percorrendo caminhos diferentes até chegarem às versões atuais (que
continuam recebendo novos aperfeiçoamentos constantemente nos dois protocolos).
No meio acadêmico, o que se nota é que não há meio termo. Existem defensores para
cada um dos protocolos, porém poucos que aceitam os dois como protocolos
equivalentes. Em se tratando de mercado corporativo (principal foco dos dois
protocolos) nota-se um crescente número de fabricantes e desenvolvedores SIP.
Originalmente a maior parte das implementações corporativas era H.323. O SIP criou
uma espécie de marketing “pessoal” no mercado, enfatizando sua fácil
implementação e desenvolvimento. O que aconteceu na verdade é que o H.323
sofreu com a idéia de operar sobre redes distintas e domínios diversos durante muito
tempo. A dificuldade de transposição sobre firewalls e NAT limitou a utilização do
H.323 em redes com grande capilaridade de topologias. A demanda por serviços de
voz sobre IP trafegando em ambiente de Internet cresceu muito, chegando até mesmo
a usuários residenciais e o SIP preencheu esta lacuna, inicialmente com serviços
simples e eficientes.
77
fácil de desenvolvimento e implementação por parte de fabricantes.
• Nota-se um crescente número de terminais SIP sendo comercializados por
custos menores que terminais H.323, popularizando ainda mais aplicações em
SIP, como a plataforma open-source Asterisk.
• A maioria esmagadora de fabricantes de equipamentos de videoconferência
utiliza a pilha de protocolos do H.323, sendo o SIP um protocolo ainda pouco
utilizado para tal aplicação.
78
6. REFERÊNCIAS BIBLIOGRÁFICAS
[2] IETF, Request for Comments 3261: session initiation protocol. 2002.
[5] PACKETIZER, T.120: a primer on the t.120 series standard. 2007. Disponível
em <http://www.packetizer.com/conf/t120/primer/>. Acesso em 8 junho 2007.
[7] IETF, Request for Comments 4566: session description protocol. 2006.
[8] IETF, Request for Comments 2616: hypertext transfer protocol – HTTP/1.1.
1999.
79
[11] PAPAGEORGIOU, Pavlos. A comparison of H.323 vs SIP. University of
Maryland at College Park, EUA. 2001.
80