Partilhar via


Adicionando uma parte a uma chamada de vários pontos

Um cliente solicita adicionar uma parte a uma chamada de vários pontos com NdisClAddParty. Um cliente pode adicionar uma parte somente a uma chamada multiponto existente, ou seja, uma chamada para a qual o cliente forneceu um ProtocolPartyContext para NdisClMakeCall (consulte Fazendo uma chamada).

A figura a seguir mostra um cliente de um gerenciador de chamadas solicitando adicionar uma parte a uma chamada de vários pontos.

Diagrama mostrando um cliente de um gerenciador de chamadas solicitando adicionar uma parte a uma chamada de vários pontos.

A figura a seguir mostra um cliente de um driver MCM solicitando adicionar uma parte à chamada de vários pontos.

Diagrama ilustrando um cliente de um driver MCM solicitando adicionar uma parte a uma chamada de vários pontos.

Antes de chamar NdisClAddParty, um cliente deve alocar e inicializar sua área de contexto para que a parte seja adicionada. Os clientes geralmente passam um ponteiro para uma área de contexto como ProtocolPartyContext e um ponteiro para uma variável dentro dessa área de contexto como os parâmetros NdisPartyHandle quando chamam NdisClAddParty.

Além de um NdisVcHandle e um ProtocolPartyContext, o cliente passa parâmetros de chamada (uma estrutura de CO_CALL_PARAMETERS em buffer) para NdisClAddParty. O meio de rede subjacente determina se um cliente pode especificar parâmetros de tráfego por parte de uma VC de vários pontos.

A chamada para NdisClAddParty faz com que o NDIS encaminhe essa solicitação para a função ProtocolCmAddParty do gerenciador de chamadas ou driver MCM com o qual o cliente compartilha o NdisVcHandle fornecido. O NDIS passa o seguinte para o ProtocolCmAddParty:

  • Um CallMgrVcContext que indica a VC para a chamada.

  • Um ponteiro para uma estrutura CO_CALL_PARAMETERS que contém os parâmetros de chamada que o cliente passa para NdisClAddParty.

  • Um NdisPartyHandle que identifica a parte a ser adicionada.

ProtocolCmAddParty aloca e inicializa todos os recursos dinâmicos necessários para a parte que está sendo adicionada à chamada. Em ProtocolCmAddParty, um gerenciador de chamadas ou driver MCM se comunica com dispositivos de controle de rede ou outros agentes específicos de mídia, conforme necessário, para adicionar a parte especificada à chamada de vários pontos.

Se o cliente passou parâmetros de chamada que não correspondem aos já estabelecidos para a VC de vários pontos, o gerenciador de chamadas ou o driver MCM podem, por exemplo:

  • Configure os parâmetros de tráfego por parte se a mídia de rede subjacente der suporte a esse recurso em VCs de vários pontos.

  • Redefina os parâmetros de tráfego fornecidos pelo cliente para aqueles originalmente estabelecidos para a VC.

  • Altere os parâmetros de chamada para a VC e para cada parte atualmente conectada a ela.

  • Falha na tentativa do cliente de adicionar uma parte.

ProtocolCmAddParty pode ser concluído de forma síncrona ou, provavelmente, de forma assíncrona com NdisCmAddPartyComplete, no caso de um gerenciador de chamadas, ou NdisMCmAddPartyComplete, no caso de um driver MCM. Se o gerenciador de chamadas ou o driver MCM conclui a operação de forma síncrona ou assíncrona, ele passa os parâmetros de chamada em buffer para o NDIS.

A chamada para Ndis(M)CmAddPartyComplete faz com que o NDIS chame a função ProtocolClAddPartyComplete do cliente. Se a solicitação do cliente para adicionar a parte tiver êxito e se o protocolo de sinalização permitir que o gerenciador de chamadas ou o driver MCM modifique os parâmetros de chamada, ProtocolClAddPartyComplete deverá testar o sinalizador CALL_PARAMETERS_CHANGED na estrutura de CO_CALL_PARAMETERS em buffer para determinar se os parâmetros de chamada foram modificados. O protocolo de sinalização determina o que o cliente pode fazer se achar as modificações para CO_CALL_PARAMETERS inaceitáveis. Normalmente, um cliente chama NdisClDropParty nesse caso (consulte Removendo uma parte de uma chamada de vários pontos).