Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Pokud se aplikace pokusí provést odchozí hovor, musí nejprve otevřít linku. Řádek se otevře, když aplikace zavolá funkci TAPI lineOpen. Chcete-li uskutečnit telefonní hovor na dříve otevřenou linku, aplikace zavolá funkci TAPI lineMakeCall a předá ukazatel na cílovou adresu. Pokud se požadují jiné než výchozí parametry nastavení volání, aplikace také předá ukazatel na strukturu LINECALLPARAMS. Pokud aplikace používá výchozí parametry nastavení volání, lineMakeCall poskytuje tyto parametry ve struktuře LINECALLPARAMS. Členové této struktury určují, jak má být telefonní hovor nastaven.
Tato volání funkce TAPI způsobí, že ovladač NDPROXY nejprve vytvoří virtuální připojení (VC) s ovladačem miniportu CoNDIS WAN a potom zapouzdří parametry TAPI ve strukturách NDIS, aby bylo možné provést odchozí hovor. Ovladač miniportu použije tyto parametry TAPI k nastavení odchozího hovoru. Následující článek popisuje, jak je odchozí hovor připojený, nastavený a provedený:
NDPROXY volá NdisCoCreateVc , aby zahájil vytvoření VC s ovladačem miniportu. Jakmile NDPROXY volá NdisCoCreateVc, NDIS volá jako synchronní operaci funkci ProtocolCoCreateVc správce volání integrovaného do ovladače miniportu. NDIS předává ProtocolCoCreateVc popisovač, který představuje VC. Pokud je volání NdisCoCreateVc úspěšné, NDIS vyplní a vrátí popisovač VC. ProtocolCoCreateVc provádí veškeré nezbytné přidělení dynamických prostředků a struktur, které ovladač správce volání miniportu (MCM) vyžaduje k provedení následných operací na VC, které se později aktivují. Mezi tyto prostředky patří, ale nejsou omezeny, vyrovnávací paměti, datové struktury, události a další podobné prostředky.
NDPROXY určuje parametry TAPI pro odchozí volání ve struktuře CO_AF_TAPI_MAKE_CALL_PARAMETERS . Funkce NDPROXY vyplní členy této struktury následujícími informacemi, které byly předány ve funkci TAPI lineMakeCall :
- Cílová adresa člena DestAddress
- Identifikátor otevřeného řádku v členu ulLineID
- Struktura LINECALLPARAMS ve členu LineCallParams
NDPROXY překrývá strukturu CO_AF_TAPI_MAKE_CALL_PARAMETERS na členu Parametry struktury CO_SPECIFIC_PARAMETERS a nastaví členu Délky CO_SPECIFIC_PARAMETERS na velikost CO_AF_TAPI_MAKE_CALL_PARAMETERS.
NDPROXY nastaví strukturu CO_SPECIFIC_PARAMETERS na člen MediaSpecific struktury CO_MEDIA_PARAMETERS.
NDPROXY nastaví ukazatel na strukturu CO_MEDIA_PARAMETERS na člen MediaParameters struktury CO_CALL_PARAMETERS.
Jakmile funkce NDPROXY zapouzdřuje parametry TAPI, volá funkce NDPROXY funkci NdisClMakeCall , která zahájí odchozí volání. Při tomto volání funkce NDPROXY předá ukazatel na strukturu CO_CALL_PARAMETERS, která je vyplněná. NDIS zase volá funkci ProtocolCmMakeCall správce volání ovladače miniportu CoNDIS WAN. Ovladač miniportu by měl zkoumat pouze strukturu CO_AF_TAPI_MAKE_CALL_PARAMETERS vloženou do CO_CALL_PARAMETERS. V tomto případě nejsou smysluplné žádné další parametry volání. Pokud ovladač miniportu následně aktivuje VC pro odchozí volání, ovladač miniportu zavolá funkci NdisMCmActivateVc a předá ukazatel na vyplněný CO_CALL_PARAMETERS.
Jakmile ovladač miniportu vyjednal se sítí, aby vytvořil parametry volání telefonie pro VC a nastavil síťový adaptér pro tyto parametry volání, ovladač miniportu volá funkci NdisMCmMakeCallComplete , aby indikoval, že je připraven provádět přenosy dat ve VC. V tomto volání musí ovladač miniportu předat popisovač virtuálnímu počítači a změny parametrů telefonního volání.
Ovladač miniportu musí upravit člen CallMgrParameters struktury CO_CALL_PARAMETERS pro to, aby byla určena kvalita služby (QoS), například šířka pásma, při přenosu paketů. Chcete-li nastavit tento člen CallMgrParameters, ovladač miniportu vyplní členy struktury CO_CALL_MANAGER_PARAMETERS a nastaví tuto strukturu na CallMgrParameters. Pokud chcete například určit rychlosti přenosu a příjmu v bajtech za sekundu pro VC, musí ovladač miniportu nastavit členy PeakBandwidth v rámci Transmit a Receive členů CO_CALL_MANAGER_PARAMETERS. Členy Transmit a Receive jsou struktury FLOWPEC. Další informace o struktuře FLOWPEC naleznete v sadě Microsoft Windows SDK.
Pokud ovladač miniportu upravil parametry telefonního volání, musí nastavit člen Flags ve struktuře CO_CALL_PARAMETERS s CALL_PARAMETERS_CHANGED. V důsledku volání NdisMCmMakeCallComplete ovladače miniport volá NDIS funkci ProtocolClMakeCallComplete NDPROXY k dokončení asynchronních operací, které byly inicializovány pomocí NdisClMakeCall.
Jakmile ovladač miniportu úspěšně dokončí odchozí hovor, NDPROXY upozorní aplikaci TAPI, že je hovor připojený. Tato aplikace TAPI potom zavolá funkci TAPI lineGetID , která informuje NDPROXY o vyhledání příslušného klienta CoNDIS. V tomto lineGetID volání poskytuje aplikace TAPI řetězec pro konkrétní třídu zařízení TAPI, k níž aplikace potřebuje handle. NDPROXY používá tento řetězec k vyhledání klienta CoNDIS, který dříve zaregistroval SAP pro konkrétní třídu zařízení TAPI. Pokud je klient CoNDIS NDISWAN, řetězec je NDIS. Pokud NDPROXY vyhledá SAP s řetězcem, který odpovídá řetězci předaným aplikací TAPI, NDPROXY volá NdisMCmCreateVc , aby nastavil koncový bod připojení s NDISWAN, na kterém může odesílat oznámení o odchozím volání, které bylo provedeno. NDIS volá funkci NDISWAN ProtocolCoCreateVc a předá jí popisovač, který představuje VC.
Jakmile NDPROXY nastaví koncový bod připojení s NDISWAN, zavolá funkci NdisCmDispatchIncomingCall , která upozorní NDISWAN na odchozí volání. V tomto volání NDPROXY předá zapouzdřenou CO_AF_TAPI_MAKE_CALL_PARAMETERS strukturu, která obsahuje parametry odchozího volání. NDIS zase volá funkci NDISWAN ProtocolClIncomingCall, ve které NDISWAN přijímá nebo odmítá požadované připojení. Pokud NDISWAN změní parametry volání, které jsou mu předány, musí nastavit člen Flags ve struktuře CO_CALL_PARAMETERS na CALL_PARAMETERS_CHANGED.
Po rozhodnutí, zda přijmout připojení a po případné změně parametrů volání, NDISWAN volá NdisClIncomingCallComplete funkce. NDIS zase volá funkci ovladače miniportu ProtocolCmIncomingCallComplete. V závislosti na tom, zda NDISWAN přijal odchozí volání a zda ovladač miniportu přijme nebo odmítne navrhované změny parametrů volání NDISWAN, miniport ovladač volá buď NdisCmDispatchCallConnected nebo NdisCmDispatchIncomingCloseCall funkce. NdisCmDispatchCallConnected upozorní NDISWAN, že přenosy dat mohou začít na virtuálním počítači, který NDPROXY vytvořil pro odchozí volání. NdisCmDispatchIncomingCloseCall informuje NDISWAN a NDPROXY o odstranění navrhovaného odchozího volání.
Jakmile NDISWAN přijme odchozí volání, NDPROXY volá funkci NdisCoGetTapiCallId k načtení řetězce, který identifikuje kontext NDISWAN pro VC. NDPROXY předá tento řetězec zpět do aplikace TAPI. Aplikace TAPI používá tento kontextový řetězec VC k dokončení volání lineGetID.