H323 : serviços suplementares Paulo Aguiar Tel. (0xx21) 2598-3165 e-mail: aguiar@nce.ufrj.br Núcleo de Computação Eletrônica e Departamento de Computação /IM da UFRJ
Serviços Suplementares (SS) Estabelece a sinalização entre terminais para implementar serviços do tipo de PBX Chamada em espera, transferência, siga-me, siga-me se ocupado, etc. Ações ocorrem entre pontos terminais (clientes, gatekeepers, gateways, etc.) Serviços mais complexos são implementados a partir da composição de serviços básicos Interoperabilidade em ambientes heterogêneos, como RTFC (rede de telefonia pública comutada) e H.323, depende das capacidades do gateway para suportar estes serviços Definidos nas recomendações H.450.x 2
H.450.x H.450.1 H.450.2 H.450.3 H.450.4 H.450.5 H.450.6 H.450.7 H.450.8 H.450.9 H.450.10 H.450.11 H.450.12 Define APDUs enviadas nas mensagens de sinalização Q.931 ou Facility Call Transfer (transferência de chamada) Call Diversion (redirecionamento de chamada) Call Hold (chamada em espera) Call Park and Pickup (do mesmo ou de outro terminal) Call Waiting (chamada em espera) Message Waiting Indication (indicação de mensagem em espera) Name Indication (permite ser alertado ou avisado por outro usuário) Call Completion (completar chamada sem nova discagem, se anterior não atendida ou ocupada) Call Offer (avisa de chamada entrante se ocupado) Call Intrusion (força a interrupção de uma chamada ativa) Common Information Additional Network Feature (ANF-CMN) 3
APDU H450.1 Transferidas em mensagens Q.931 (Alerting, Proceeding, Connect, Setup, Release Complete, Progress) ou mensagem Facility Estrutura Network Facility Extension (NFE), que contém endereços da fonte e do destino da APDU (opcional, permitindo que APDUs sejam roteadas) Descrição do que fazer com mensagens não reconhecidas Estrutura com a operação sendo solicitada (invoked) 4
H.450 em H.323 5
Call Transfer H.450.2 A (usuário transferindo) em chamada com B (chamada primária), repassa a chamada para C (usuário transferido) Chamada tem que ser atendida antes de ser transferida Procedimento geral A envia para B endereço de C e eventual informação de chamada secundária que tenha estabelecido com C para avisar da transferência B abre chamada com C, C disconecta a chamada secundária com A, e B, ao receber a confirmação de C, disconecta a chamada primária com A. 6
Outras Transferências Transferência forçada Neste tipo, A não checa se C está disponível Enquanto A e B estão em chamada, A envia Facility para B com CallTransferInvoke (CallTransferInitiate) com endereço de C A termina a chamada com B B inicia a chamada para C Transferência segura Nesta situação, se B não pode conectar com C, A deseja manter a chamada com B A envia Facility para B com CallTransferInvoke (CallTransferInitiate) com endereço de C, mas não disconecta imediatamente A espera que B envie Facility com o resultado da transferência (CallTransferResult = success ou failure) Dependendo da resposta, A termina ou mantém a chamada com B 7
Outras Transferências Transferência com consulta: A está falando com B e quer transferir para C, após consulta A precisa checar se C está disponível ou ocupado A pode simplesmente parar de mandar mídia para B, ou enviar música pré-gravada ou usar H.450.4 Hold A chama C Detalhes da chamada secundária são obtidos pelas msgs abaixo Facility (ctidentity.invoke) Facility (ctidentity. ReturnResult) Assim que tiver a permissão de C, A pode fazer a transferência forçada ou a transferência segura 8
Transferência com Consulta É um serviço suplementar composto que envolve Chamada em Espera (Call Hold) Transferência supervisionada (Supervised Call Transfer) Sinalização básica H.323 9
H.450.2 com consulta retorna referência da chamada secundária Facility inclui rerouteing # e callidentityvalue retornado pela Facility anterior 10
Complexidade de H.450.2 Terminais com pouca memória podem optar por não suportar H.450.2 Todavia, numa chamada entre dois pontos A e B, A sendo um telefone mais sofisticado de uma secretária (que processa H.450.2), e B um terminal simples, a transferência para outro terminal C simples pode ocorrer com o GK (como PROXY) atuando nas APDUs H.450.2 em prol de B e C 11
H.450.2 sem consulta e GK Proxy No exemplo GK opera como PROXY A está em chamada com B (primária) e quer transferir para C O processo ocorrerá sem que B perca a chamada Ao receber uma msg Facility indicando que A quer transferir a chamada (A B) para C, GK envia SETUP para C (com ctsetup.inv APDU) 12
H.450.2 sem consulta e GK Proxy (1) (2) (1) Ao receber o CONNECT ou ALERTING de C com a APDU apropriada, GK envia Facility para A e B com capacidade zero, causando o fechamento dos canais lógicos destes terminais (mas não o fechamento da chamada) Ao receber uma capacidade diferente de zero, retorna para o estado logo após o estabelecimento da conexão H.245, preservando os canais lógicos já abertos (2) GK coloca C em estado de pausa (transmitter side paused) com o envio também de uma Facility com capacidade zero Esse estado permite abertura e fechamento de canais lógicos pelo lado remoto e evita o terminal de tentar iniciar a abertura de canais lógicos 13
H.450.2 sem consulta e GK Proxy (3) Ao receber capacidades de C, GK envia informação a B (4) B reinicializa o estado H.245 e inicia procedimento mestre/escravo para estabelecer canais lógicos B envia OpenLogicalChannel no canal H.245 que é interceptado pelo GK e enviado para C (5) B recebe OpenLogicalChannelAck com o endereço de C e o canal lógico de B para C é aberto C também abre um canal lógico para B GK então fecha a chamada com o ponto A (6) (6) (3) (4) (5) 14
H.450.2 com consulta e GK Proxy GK retorna referência da chamada secundária Facility inclui rerouteing # e callidentityvalue retornado pela Facility anterior GK suspende o áudio da chamada c2 GK avisa B e C que chamada foi transferida 15
Redirecionamento de Chamada H.450.3 siga-me, siga-me se ocupado, siga-me se não atender Outras condições especiais: siga-me se mais de um certo número de chamadas está em espera, etc Pode ser feito pelo GK ou pelo terminal É possível consultar se o redirecionamento está habilitado e para quais endereços Usuário que recebe a chamada é notificado de que se trata de uma chamada redirecionada Chamador pode também ser opcionalmente notificado se a chamada foi redirecionada e para qual destino Redirecionamento só pode ser feito enquanto a chamada ainda não foi atendida 16
Redirecionamento de Chamada Facilmente implementada no GK Durante ARQ/ACF, para siga-me incondicional No processamento do SETUP, nas outras situações Como programar ou invocar este serviço CallRerouting invoke APDU (vários campos) Rerouting Reason IE DiversionCounter (evitar loops) LastRerouting Nr com o endereço do último ponto que efetuou redirecionamento subscriptionoptions: quer informar ao chamador? Original CallingNumber: qualquer endereço H.323 CallingInfo, redirectinginfo, etc 17
Siga-me (Call Forward) 18
Fluxo do Siga-me Rerouting address retornado no Facility é usado como calledpartynumber Outros campos copiados: callingnumber, diversioncounter, reroutingreason, originalreroutingreason, lastreroutingnr, redirectinginfo, originalcallednr, originalcalledinfo 19