Partilhar via


Adicionando um Participante a uma chamada multiponto

Um cliente solicita adicionar um participante a uma chamada de conferência multiponto com NdisClAddParty. Um cliente pode adicionar um participante somente a uma chamada multiponto existente - ou seja, uma chamada para a qual o cliente forneceu um ProtocolPartyContext para NdisClMakeCall(consulte Fazer uma Chamada).

A figura a seguir mostra um cliente de um gestor de chamadas a solicitar adicionar um participante a uma chamada multiponto.

Diagrama que mostra um cliente de um gestor de chamadas a solicitar a adição de um participante numa chamada multiponto.

A figura a seguir mostra um cliente de um driver MCM a solicitar adicionar um participante à chamada multiponto.

Diagrama que representa um cliente de um driver MCM solicitando adicionar um participante a uma chamada multiponto.

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

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

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

  • Um CallMgrVcContext que indica o VC para a chamada.

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

  • Um NdisPartyHandle que identifica o partido a ser adicionado.

ProtocolCmAddParty aloca e inicializa todos os recursos dinâmicos necessários para a parte que está a ser adicionada à chamada. A partir do ProtocolCmAddParty, um gestor de chamadas ou controlador MCM comunica-se com dispositivos de controlo de rede ou outros agentes específicos de mídia, conforme necessário, para adicionar o participante especificado à chamada multiponto.

Se o cliente passou parâmetros de chamada que não correspondem aos já estabelecidos para o VC multiponto, o gestor de chamadas ou controlador MCM pode, por exemplo:

  • Configure os parâmetros de tráfego por participante se o meio de rede de base suportar esta funcionalidade em circuitos virtuais multiponto.

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

  • Altere os parâmetros de chamada para o VC e para todas as partes atualmente conectadas nele.

  • Falha na tentativa do cliente de adicionar uma parte.

ProtocolCmAddParty pode ser concluída de forma síncrona ou, mais provavelmente, assíncrona com NdisCmAddPartyComplete, no caso de um gestor de chamadas, ou NdisMCmAddPartyComplete, no caso de um driver MCM. Se o gerenciador de chamadas ou o driver MCM concluir 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 for bem-sucedida e se o protocolo de sinalização permitir que o gerenciador de chamadas ou o driver MCM modifique os parâmetros de chamada, ProtocolClAddPartyComplete deve testar o sinalizador de 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 considerar as modificações CO_CALL_PARAMETERS inaceitáveis. Normalmente, um cliente chama NdisClDropParty neste caso (consulte Removendo um Participante de uma Chamada Multiponto).