Ajout d’une partie à un appel multipoint
Un client demande à ajouter une partie à un appel multipoint avec NdisClAddParty. Un client peut ajouter une partie uniquement à un appel multipoint existant, c’est-à-dire un appel pour lequel le client a fourni un ProtocolePartyContext à NdisClMakeCall (voir Effectuer un appel).
La figure suivante montre un client d’un gestionnaire d’appels demandant à ajouter un tiers à un appel multipoint.
La figure suivante montre un client d’un pilote MCM demandant d’ajouter un tiers à un appel multipoint.
Avant d’appeler NdisClAddParty, un client doit allouer et initialiser sa zone de contexte pour que la partie soit ajoutée. Les clients passent généralement un pointeur vers une zone de contexte telle que ProtocolPartyContext et un pointeur vers une variable dans cette zone de contexte en tant que paramètres NdisPartyHandle lorsqu’ils appellent NdisClAddParty.
En plus d’un NdisVcHandle et d’un ProtocolPartyContext, le client transmet les paramètres d’appel (structure CO_CALL_PARAMETERS mise en mémoire tampon) à NdisClAddParty. Le support réseau sous-jacent détermine si un client peut spécifier des paramètres de trafic par partie sur un vc multipoint.
L’appel à NdisClAddParty amène NDIS à transférer cette requête à la fonction ProtocolCmAddParty du gestionnaire d’appels ou du pilote MCM avec lequel le client partage le NdisVcHandle donné. NDIS transmet les éléments suivants à ProtocolCmAddParty :
CallMgrVcContext qui indique le vc pour l’appel.
Pointeur vers une structure CO_CALL_PARAMETERS qui contient les paramètres d’appel que le client passe à NdisClAddParty.
NdisPartyHandle qui identifie la partie à ajouter.
ProtocolCmAddParty alloue et initialise toutes les ressources dynamiques nécessaires à la partie ajoutée à l’appel. À partir de ProtocolCmAddParty, un gestionnaire d’appels ou un pilote MCM communique avec les périphériques de contrôle réseau ou d’autres agents spécifiques aux médias, si nécessaire, pour ajouter la partie spécifiée à l’appel multipoint.
Si le client a transmis des paramètres d’appel qui ne correspondent pas à ceux déjà établis pour le vc multipoint, le gestionnaire d’appels ou le pilote MCM peut, par exemple :
Configurez les paramètres de trafic par partie si le support réseau sous-jacent prend en charge cette fonctionnalité sur les machines virtuelles multipoints.
Réinitialisez les paramètres de trafic fournis par le client à ceux initialement établis pour le vc.
Modifiez les paramètres d’appel pour le vc et pour chaque partie actuellement connectée à celui-ci.
Échec de la tentative d’ajout d’un tiers par le client.
ProtocolCmAddParty peut se terminer de manière synchrone ou, plus probablement, de manière asynchrone avec NdisCmAddPartyComplete, dans le cas d’un gestionnaire d’appels, ou NdisMCmAddPartyComplete, dans le cas d’un pilote MCM. Que le gestionnaire d’appels ou le pilote MCM termine l’opération de manière synchrone ou asynchrone, il transmet les paramètres d’appel mis en mémoire tampon à NDIS.
L’appel à Ndis(M)CmAddPartyComplete amène NDIS à appeler la fonction ProtocolClAddPartyComplete du client. Si la demande du client d’ajouter la partie a réussi et si le protocole de signalisation permet au gestionnaire d’appels ou au pilote MCM de modifier les paramètres d’appel, ProtocolClAddPartyComplete doit tester l’indicateur de CALL_PARAMETERS_CHANGED dans la structure de CO_CALL_PARAMETERS mise en mémoire tampon pour déterminer si les paramètres d’appel ont été modifiés. Le protocole de signalisation détermine ce que le client peut faire s’il trouve les modifications apportées à CO_CALL_PARAMETERS inacceptables. En règle générale, un client appelle NdisClDropParty dans ce cas (voir Suppression d’une partie à partir d’un appel multipoint).