Delen via


Bellen

In de volgende afbeelding ziet u een client die een uitgaande oproep maakt via een gespreksmanager.

Diagram van een client die een uitgaande oproep maakt via een gespreksmanager.

In de volgende afbeelding ziet u een client die een uitgaande oproep maakt via een MCM-stuurprogramma.

Diagram met een client die een uitgaande oproep maakt met behulp van een MCM-stuurprogramma.

Voordat je een uitgaande oproep maakt, moet een verbinding-georiënteerde client:

  • Initialiseer aanroepparameters in een structuur van het type CO_CALL_PARAMETERS. Het oproepbeheer- of MCM-stuurprogramma gebruikt doorgaans de oproepparameters die de client opgeeft om de oproep in te stellen en mediaparameters af te leiden voor gebruik door het minipoortstuurprogramma.

  • Start het maken van een VC met NdisCoCreateVc.

Bij het succesvol retourneren van NdisCoCreateVc roept de client NdisClMakeCall aan om de aanroep te initiëren (zie de twee cijfers in deze sectie).

In de aanroep van NdisClMakeCall geeft de client een aanwijzer door aan de CO_CALL_PARAMETERS structuur die eerder is geïnitialiseerd. De client geeft ook een NdisVcHandle (geretourneerd door NdisCoCreateVc) door die de VC identificeert waarop de client gegevens verzendt (en mogelijk ontvangt) voor de oproep. Als de client een multipointoproep maakt (een aanroep naar meer dan één externe partij), wordt ook een protocolpartycontext doorgegeven die een verwijzing aangeeft naar een door de client toegewezen contextgebied waarin de client de status per partij voor de eerste partij op de multipoint VC behoudt.

De aanroep van NdisClMakeCall zorgt ervoor dat NDIS deze aanvraag doorstuurt naar de functie ProtocolCmMakeCall van de oproepmanager of het MCM-stuurprogramma waarmee de client de opgegeven NdisVcHandle deelt. ProtocolCmMakeCall moet de parameters voor de invoeraanroep valideren die door de client zijn ingesteld.

ProtocolCmMakeCall communiceert (signaleringsberichten uitwisselt) met netwerkbesturingsapparaten om verbinding te maken. Een oproepbeheerder roept NdisCoSendNetBufferLists aan om een dergelijke uitwisseling te initiëren (zie Verzenden NET_BUFFER Structuren van CoNDIS-stuurprogramma's). Een MCM-stuurprogramma roept nooit NdisCoSendNetBufferLists aan. In plaats daarvan worden de gegevens rechtstreeks via het netwerk verzonden.

Het oproepbeheer- of MCM-stuurprogramma kan de door de client geleverde oproepparameters wijzigen terwijl er wordt onderhandeld met relevante netwerkonderdelen en kan verschillende verkeersparameters retourneren dan de client oorspronkelijk aan NdisClMakeCall (zie Inkomende aanvraag om oproepparameters te wijzigen).

Een expliciete NdisPartyHandle die wordt doorgegeven aan ProtocolCmMakeCall geeft aan dat de VC die door de client is gemaakt, wordt gebruikt voor een multipoint-aanroep. Het oproepbeheer- of MCM-stuurprogramma moet alle benodigde resources toewijzen en initialiseren die nodig zijn voor het onderhouden van statusgegevens per partij en het beheren van de multipoint-aanroep.

Nadat een oproepmanager alle benodigde communicatie met de netwerkhardware heeft uitgevoerd zoals vereist voor het medium, moet het NdisCmActivateVc aanroepen om de activering van de VC te starten waarop oproepgegevens worden verzonden en mogelijk ontvangen. Een MCM-stuurprogramma moet NdisMCmActivateVc aanroepen.

Wanneer het onderliggende minipoortstuurprogramma gereed is om gegevensoverdrachten te maken op de VC (dat wil gezegd, nadat de VC is geactiveerd), roept een oproepmanager NdisCmMakeCallComplete aan en roept een MCM-stuurprogramma NdisMCmMakeCallComplete aan. Op dit moment moet de oproepmanager of het MCM-stuurprogramma hebben onderhandeld met het netwerk om oproepparameters voor de VC vast te stellen en moet het onderliggende minipoortstuurprogramma de activering van de VC hebben voltooid.

In de aanroep naar Ndis(M)CmMakeCallComplete geeft het oproepbeheer- of MCM-stuurprogramma de oproepparameters voor de VC door als aanwijzer naar een structuur van het type CO_CALL_PARAMETERS. Als de oproepbeheerder de oproepparameters heeft gewijzigd zoals oorspronkelijk opgegeven door de client, kan deze de client op de hoogte stellen door de CALL_PARAMETERS_CHANGED vlag in de CO_CALL_PARAMETERS structuur in te stellen.

Een aanroep naar Ndis(M)CmMakeCallComplete zorgt ervoor dat NDIS de functie ProtocolClMakeCallComplete van de client aanroept die de uitgaande oproep heeft gestart. Een aanroep van ProtocolClMakeCallComplete geeft aan dat de oproepbeheerder de aanvraag van de client heeft verwerkt om een virtuele verbinding tot stand te brengen met NdisClMakeCall.

Als de poging van de client om een uitgaande aanroep tot stand te brengen is geslaagd, moet ProtocolClMakeCallComplete de vlag CALL_PARAMETERS_CHANGED controleren om te bepalen of de aanroepparameters die oorspronkelijk door de client zijn opgegeven, zijn gewijzigd. Als de vlag is ingesteld, waarmee wordt aangegeven dat de aanroepparameters zijn gewijzigd, moet ProtocolClMakeCallComplete de geretourneerde aanroepparameters onderzoeken om te bepalen of ze acceptabel zijn voor deze verbinding.

Als de aanroepparameters acceptabel zijn, retourneert ProtocolClMakeCallComplete gewoonweg de controle. Als de oproepparameters niet acceptabel zijn en als het signaleringsprotocol op dit moment heronderhandeling toestaat, kan de client NdisClModifyCallQoS aanroepen om een wijziging in oproepparameters aan te vragen (zie Client-Initiated Aanvraag om een oproep te sluiten). Als het signaleringsprotocol geen heronderhandeling van onaanvaardbare oproepparameters toestaat, moet ProtocolClMakeCallComplete de oproep afbreken met NdisClCloseCall(zie Client-Initiated Aanvraag om een oproep te sluiten).