11.4 H.323 H.323 é o protocolo de sinalização para VoIP especificado pela ITU-T. A primeira versão apareceu em 1996. A versão 7 de 12/2009 é a mais recente. H.323 especifica uma arquitectura global para comunicações multimédia em IP. Entidades Terminais; Gateways; Gatekeepers; Multipoint Control Units (MCUs). Protocolos H225.0; H.245; RTP/RTCP; Codecs de Áudio/Vídeo. 173
Arquitectura H.323 174
Âmbito do H.323 Terminal H.323 Terminal H.323 Terminal H.323 Rede IP Terminal H.323 Gatekeeper H.323 Gateway H.323 PSTN ISDN B-ISDN 175
O objectivo de H.323 é permitir transmitir media streams entre pontos terminais H.323. Ponto Terminal H.323 pode ser: Terminal, Gateway ou MCU. Terminal H.323: ponto terminal que permite comunicações de tempo-real com outros pontos terminais H.323. Suporta tipicamente um ou mais codecs de áudio e vídeo. Gateway H.323: fornece serviços de adaptação entre H.323 e outra rede. MCU (Multipoint Control Unit) H.323: ponto terminal que gere conferências multi-ponto entre três ou mais terminais e gateways. Gatekeeper: entidade opcional em H.323. Controla um conjunto de terminais, gateways e MCU numa dada zona. Autoriza ou nega acesso à rede a pontos terminais. Pode controlar a largura de banda dos pontos terminais com impacto na QoS da rede. Pode oferecer tradução de nomes/endereços na rede. 176
Exemplo de uma zona H.323 terminal terminal gatekeeper terminal gateway MCU router router terminal terminal 177
Terminais Ponto de terminação numa LAN Suporta comunicação bidireccional em tempo real com outra entidade H.323 Suporta: Codecs de audio e voz Sinalização Video (opcional) Dados (opcional). 178
Terminal H.323 Microfone/ Altifalante Codec de Audio G.711, G.722, G.723.1, G.728, G.729 Câmara/Display Codec de Video H.261, H.263 Interface de dados Controlo do Sistema Camada H.225.0 Interface LAN Controlo do Sistema Interface do Utilizador H.245 Control Call Control H.225 (Q.931) RAS Control (Gatekeeper) 179
Gateways Interface entre a LAN e a rede de comutação de circuitos. Funcionalidades obrigatórias: - Mudança no formato de transmissão - Mudança do procedimento de comunicação - Estabelecimento e quebra da chamada em ambos os lados. Funcionalidade opcional: Mudança de tipo de media Exemplo: Gateway IP/PSTN (Public Switched Telephone Network). 180
Função do Gateway LAN H.323 Terminal Function Translation (transmission formats/ Communications procedures SCN Terminal Function SCN (Switched Circuit Network) Gateway IP/PSTN H.323 Terminal Function Protocol and Transmission Translation SCN Terminal Function PSTN 181
Gatekeepers Opcional Gere uma zona (conjunto de dispositivos H.323). Geralmente usa-se um gatekeeper por zona. Pode existir um gatekeeper adicional para back-up e equilíbrio de carga. É tipicamente uma aplicação de software. Corre num PC, mas pode ser integrada num gateway ou terminal. 182
Funcionalidades obrigatórias: - Tradução de endereços (routing) - Controlo de admissão - Controlo de largura de banda mínima - Gestão da zona. Funcionalidades opcionais: - Sinalização para controlo de chamadas - Autorização de chamadas e gestão de largura de banda - Serviços de directório. 183
Multipoint Control Unit (MCU) Ponto terminal que suporta conferência entre 3 ou mais pontos terminais. Pode ser um dispositivo independente ou estar integrado num gateway, gatekeeper ou terminal. Tipicamente consiste num Controlador Multi-ponto (MC) e num Processador Multi-ponto (MP). O Controlador tem a seu cargo o controlo e a sinalização para suporte da conferência O Processador recebe streams de informação de pontos terminais, processa-os e reenvia-os para os pontos terminais da conferência. 184
Conferência Centralizada MCU inclui MC e MP MCU (MC+MP) media stream (unicast) control message Terminal Terminal Terminal 185
Conferência Distribuída MCU só processa sinalização MCU (MC) media stream (multicast) control message media stream (multicast) control message Terminal media stream (multicast) Terminal 186
Conferência Híbrida MCU inclui MC e MP. Terminal audio stream (unicast) control message MCU video stream (multicast) video stream (multicast) (MC+MP) audio stream (unicast) control message audio stream (unicast) control message Terminal video stream (multicast) Terminal 187
Conferência Mista Terminal Distribuído Centralizado Terminal Terminal MCU (MC+MP) Terminal Terminal Terminal áudio e vídeo multicast áudio e vídeo unicast 188
Pilha de protocolos H.323 Aplicação Áudio/Vídeo Controlo de Aplicação ou Terminal Codecs Áudio/Vídeo RTP RTCP H225.0 RAS Sig. H225.0 Call Sig. H.245 Control Sig. UDP TCP Rede (IP) Ligação de Dados Físico 189
Os protocolos H.225.0 e H.245 definem as mensagens que são trocadas entre os pontos terminais H.323. São protocolos genéricos que poderiam ser usados noutra arquitectura. H.225.0 tem duas partes: RAS (Registration, Admission and Status) signalling e Call signalling. Call signalling é uma variante de Q.931 (RDIS-camada 3). Estabelece e quebra conexões entre pontos terminais H.323. RAS Signalling é usada entre pontos terminais e gatekeepers, permitindo ao gatekeeper gerir a zona. Exemplo: um ponto terminal usa sinalização RAS para se registar com um gatekeeper e um gatekeeper usa sinalização RAS para dar acesso à rede a um ponto terminal. As mensagens de RAS signalling são sempre transportadas em UDP. As mensagens de Call signalling são transportados em UDP ou TCP. 190
H.245 é um protocolo de controlo usado entre dois ou mais pontos terminais. H.245 gere os media streams entre os participantes de sessões H.323. A ordem típica de geração de mensagens é: 1. RAS para obter autorização de um gatekeeper. 2. Call signalling (Q.931) para estabelecer comunicação com o outro ponto terminal. 3. H.245 para negociar parâmetros referentes ao tipo de media utilizado. 4. Os streams de mensagens circulam nos canais lógicos estabelecidos. 191
Endereçamento H.323 Entidade na rede H.323 Endereço IP de rede URL E.g. ras://gk1@somedomain TSAP GK UDP Discovery Port = 1718 GK UDP Reg and Status Port = 1719 Call-signalling TCP Port = 1720 192
Terminais e Gateways Um ou mais aliases Número E.164 Codecs Codec de vídeo é opcional H.261 QCIF, mínimo caso seja suportado G.711 é obrigatório 193
RAS Signalling Usado entre um GK e pontos terminais na sua zona. Definido em H.225.0 GK Discovery Registration Registration cancellation Endpoint Location: GK (address translation) Admission Bandwidth Change Disengage Status Resource Availability: GW GK Non-standard 194
Gatekeeper Discovery Encontrar um GK adequado GRQ: GK request Enviado para endereços conhecidos ou em multicast para o porto 224.0.1.41:1718 Se o parâmentro GK id estiver vazio, está a indicar que aceita qualquer GK disponível. GCF: GK confirm Opcionalmente indica um ou mais GKs a tentar. Só um GK pode ser escolhido. GRJ: GK reject Razão para rejeição é indicada (e.g. Falta de recursos). 195
196
Registration e Registration Cancellation Para um ponto terminal passar a ser controlado por um GK. RRQ: Registration Request Porto de RAS signalling: 1719 Inclui: Um endereço para mensagens RAS Um endereço para mensagens de call signalling Um alias Um ou mais endereços redundantes e aliases TTL opcional. 197
RRJ: Registration Reject RCF: Registration Confirm URQ: Unregistration Request UCF: Unregistration Confirm URJ: Unregistration Reject Para um ponto terminal que não está registado. 198
Endpoint Location Serviço que permite a um ponto terminal ou GK pedir um endereço real a partir de um alias. LRQ: Location Request mensagem enviada para um GK ou multicast para o endereço 224.0.1.41 Um GK pode também enviar LRQ. LCF: Location Confirm Entre outros parâmetros contém um endereço call signalling e um endereço RAS signalling. LRJ: Location Reject Se o ponto terminal não estiver registado no GK. 199
Admission Pede autorização a um GK para participar numa chamada. ARQ: Admission Request Tipo de chamada Id dos pontos terminais Identificador da chamada Valor da referência da chamada Informação sobre o outro utilizador Largura de banda Opção da reserva ser feita pelo ponto terminal ou GK. 200
ACF: Admission Confirm Muitos dos mesmos parâmetros de ARQ callmodel opcional em ARQ e obrigatório em ACF indica se a sinalização deve passar pelo GK ou ir directamente para o destinatário ARJ: Admission Reject Razão para a rejeição. 201
Direct call signaling Protocolo RAS RAS Q.931+H.225.0 RAS RAS Q.931+H.225.0 202
GK-routed call signaling 203
Pre-granted Admission para minimizar o tempo de call set-up. um GK dá autorização de admissão a um ponto terminal antecipadamente. RCF inclui o parâmetro pregrantedarq. 204
Bandwidth Change Pede uma mudança na largura de banda atribuída. BRQ: Bandwidth Request BCF: Bandwidth Confirmation BRJ: Bandwidth Reject O GK pode também pedir a um ponto terminal para mudar a largura de banda. Fortemente ligado a sinalização H.245 (para canais lógicos). 205
206
Status Um GK é informado sobre o estado de um ponto terminal. Por exemplo, para saber se está a funcionar, se está numa chamada, etc. IRR: Information Request Response IRQ: Information Request IACK: Info Request Ack INACK: Info Request NAK 207
Disengage Mensagem enviada por um ponto terminal ao seu GK para finalizar a chamada. DRQ: Disengage Request DCF: Disengage Confirm DRJ: Disengage Reject O GK pode emitir DRQ para um ponto terminal. 208
Resource Availability RAI: Resource Available Indicate Enviada por um GW para um GK. Informa sobre a capacidade para chamadas e largura de banda actuais para cada protocolo suportado pelo GW. Parâmetro almost out of resources. RAC: Resource Available Confirm. 209
Service Control Estas mensagens iniciam uma sessão entre duas entidades H.323 com o propósito de proporcionar serviços avançados. SCI: Service Control Indication SCR: Service Control Response. Request in Progress Indica que um dado pedido pode demorar mais do que o esperado. RIP: Request in Progress atraso expectável e razão. 210
Call Signaling Sinalização entre pontos terminais para estabelecer e finalizar chamadas. Q.931 modificado por H.225.0 Reutiliza algumas mensagens com pequenas modificações Especifica um número de regras respeitantes ao uso dos elementos de informação definidos em Q.931. E.g. Não há Transit Network Selection Novo uso do elemento de informação User-to-user Transporta toda a informação extra necessária em H.323 211
Setup A primeira mensagem de call-signaling Q.931 Protocol Discriminator Call reference Bearer Capability Informação RTP, e.g. payload type Um gateway efectua o mapeamento Elemento de informação User-to-User Obrigatório: Call id, call type, conference id, the caller information Opcional: source alias, destination alias, H.245 address, destination call-signaling address 212
Call Proceeding Opcional Procedimentos de estabelecimento da chamada Obrigatório Alerting Protocol discriminator, call reference, and message type, user-to-user User-to-user: semelhante à mensagem de setup Utilizador chamado está a ser alertado Mesmos parâmetros de Call Proceeding 213
Progress Enviado por um gateway chamado Cause information in-band tones User-to-User info. mesma como em Call-Proceeding Connect O chamado aceitou a chamada. Deve ser enviado para a chamada ser completada Call Proceeding e Alerting são opcionais User-to-User information Mesmo como em Call Proceeding Mais Conference Identifier Mesmo como em Setup 214
Release Complete Termina uma chamada Não há mensagem de Release. Em RDIS, Release e Release Complete Cause information element, opcional Facility (Q.932) Usado quando uma chamada é re-direccionada Também usado para serviços suplementares. User-to-User contém o parâmetro reason E.g., routecalltogatekeeper 215
Interacção entre Call Signaling e H.245 Call signaling: call establishment e tear-down H.245: negociação e estabelecimento de media streams Quando começar a troca de mensagens H.245? Entre as mensagens de Setup e Connect Depende do equipamento. 216
Chamada básica sem GKs. Transporte fiável 217
Chamada com GKs e Direct-Endpoint Call Signaling 218
Gatekeeper routed/direct-endpoint call signaling 219
Caso em que o Gatekeeper do destinatário quer ficar no caminho da sinalização 220
Caso em que o Gatekeeper do chamador não sabe o endereço do destinatário 221
H.245 Control Signalling Para estabelecer e controlar media streams Acordar na largura de banda e formato dos media streams Multiplexar múltiplos media streams H.245 é um protocolo genérico para controlar media streams. Como é que funciona em H.323? 222
H.245 Message Groupings Requests Pede ao receptor para executar uma acção ou resposta Response Em resposta a Requests Commands Pede ao receptor para efectuar uma acção, mas não é necessário resposta. Indications Só de natureza informativa. 223
Conceito de Canais lógicos Canal lógico Um caminho unidireccional. Tem um endereço IP e um nº de porto Tem um número Conversação bi-direccional Requer dois canais lógicos potencialmente com formatos diferentes ou um canal bi-direccional consistindo de dois canais unidireccionais. Um ponto terminal emite Open Logical Channel O outro ponto terminal responde com Open Logical Channel Ack As mensagens circulam sobre um canal de controlo H.245 (canal 0) sempre aberto. 224
Procedimentos H.245 Capabilities Exchange Partilha informação sobre as capabilities de recepção e emissão. Indica uma preferência. TerminalCapabilitySet message Uma mensagem de request Nº de sequência mais os tipos de formato áudio e vídeo. TerminalCapabilitySetAck Nº de sequência TerminalCapabilitySetReject Razão para rejeição. 225
TerminalCapabilitySetRelease Se não houver resposta antes do timeout. SendTerminalCapabilitySet Pede para o terminal para indicar todas as suas capacidades Ou pede confirmação sobre capacidades específicas 226
Determinação sobre o master e o slave Um dos pontos terminais precisa de ser o master Importante para uma conferência com vários intervenientes. Compara dois tipos de informação em cada entidade Tipo de terminal Terminal sem MC: 50 Gateway sem MC: 60 MCU para áudio, vídeo: 190 MCU gerindo uma conferência: 240 Um número aleatório (1..16,777,215) em caso de empate Mensagem de Master-Slave Determination Master-Slave Determination Ack (master or slave ind) 227
Open Unidirectional Logical Channel H.245 H.245 RTP 228
Open Bidirectional Logical Channels 229
Close a Logical Channel 230
A Slow Start Plus Capability exchange Master-slave determination 231
Fast-connect Procedure Setup A faststart element OpenLogicalChannel requests No H.245 control channel 232
Encapsulamento de uma mensagem H.245 Encapsulada em mensagens Q.931 Coloca o elemento h245tunneling verdadeiro na primeira mensagem Q.931 O elemento h245control contém os dados encapsulados Conflito com o elemento faststart Usar mensagem Facility Quando não pode ser utilizada uma mensagem Q.931 Para iniciar um canal de controlo H.245 separado 233
SIP Interworking with H.323 RFC 4123 SIP-H.323 interworking gateway 234
235
236
11.5 ARQUITECTURA SOFTSWITCH VoIP e comutação de circuitos vão co-existir. Interoperação necessária Gateways fazem com que a rede VoIP apareça à rede de comutação de circuitos como uma rede nativa de comutação de circuitos e vice-versa. Os caminhos de sinalização e de dados são distintos em sistemas VoIP. Dados (directamente end-to-end) Sinalização (através de gatekeepers H.323 ou proxies SIP). No SS7 também existe uma separação entre sinalização e dados. 237
Um gateway tem duas funções associadas, mas distintas: Conversão de sinalização Conversão de dados (media) Implica a separação dos planos de controlo e de dados. * Referência D. Collins 238
Vantagens da separação: Conversão de dados perto da fonte de tráfego e do destino Centralização das funções de controlo da chamada Um agente da chamada (Media Gateway Controller MGC) pode controlar vários gateways Existem dois protocolos possíveis para a comunicação entre o controlo de chamadas e a conversão de dados no gateway: MGCP, Media Gateway Control Protocol definido no IETF MEGACO/ H.248 definido no IETF e na ITU-T, posteriormente actualizado só no ITU-T. 239
Arquitectura Softswitch * Referência D. Collins 240
As funções de comutação são implementadas em software. Apresenta uma arquitectura distribuída As operadoras de comunicações podem utilizar diferentes componentes de rede de diferentes fornecedores. Os fabricantes de equipamento podem-se focalizar numa determinada área. O protocolo SIP é normalmente utilizado como o protocolo de sinalização entre os MGCs. 241
* Referência D. Collins 242
Funções suportadas pelo MGC Definidas em RFC 2895 (Media Gateway Control Protocol Architecture and Requirements). Criação, modificação e eliminação de media streams, incluindo a capacidade de negociar os formatos de media. Especificação das transformações a aplicar aos media streams. Solicitar ao MG para reportar a ocorrência de determinados eventos nos media streams e as acções correspondentes. Solicitar ao MG para introduzir tons ou anúncios. Criar media streams com determinada qualidade de serviço. 243
Reportar qualidade de serviço e estatísticas de facturação do MG para o MGC. Gerir as associações entre um MG e um MGC. Capacidade de um MGC poder controlar vários MGs. Facilitar a evolução independente de MGs e MGCs. O primeiro protocolo de comunicação entre MGC e MG foi o MGCP. Definido em RFC 3435. Um protocolo mais recente é o MEGACO/H.248. Definido em RFC 3525/H.248. Posteriormente actualizado apenas em H.248. 244
Bibliografia Daniel Collins, Carrier Grade Voice over IP, McGraw-Hill Networking, 2003. J. Rosenberg et al, SIP: Session Initiation Protocol, IETF, RFC 3261, 2002. F. Andreasen and B. Foster, Media Gateway Control Protocol (MGCP) Version 1.0, IETF, RFC 3435, 2003. C. Groves et al, Gateway Control Protocol Version 1, IETF, RFC 3525, 2003. 245