Client-Initiated要求關閉通話
如果用戶端正在關閉多方仍連線的多點呼叫,它必須先呼叫 NdisClDropParty ,才能卸載通話 ( (看到 從多點 通話卸載合作物件) 。
用戶端會使用 NdisCloseCall起始呼叫的關閉。 下圖顯示透過呼叫管理員起始呼叫關閉的用戶端。
下圖顯示透過 MCM 驅動程式起始呼叫關閉的用戶端。
連線導向用戶端通常會在下列任一情況下呼叫 NdisCloseCall :
若要關閉已建立的撥出或連入電話。
從 ProtocolClIncomingCloseCall 函式卸載已建立的呼叫, (請參閱 連入要求以關閉呼叫) 。
如果遠端合作物件提議的 QoS 變更無法接受,則從 ProtocolClIncomingCallQoSChange 函式終止已建立的呼叫, (請參閱連 入要求以變更呼叫參數) 。
如果用戶端建議的 QoS 變更無法接受遠端合作物件,請從 ProtocolClModifyCallQoSComplete 函式終止已建立的呼叫, (請參閱 用戶端起始的變更呼叫參數) 。
用戶端對 NdisCloseCall 的呼叫會導致 NDIS 呼叫呼叫管理員的 或 MCM 驅動程式的 ProtocolCmCloseCall 函式 。 ProtocolCmCloseCall 必須與網路控制裝置通訊,以終止本機節點與遠端節點之間的連線。
如果 ProtocolCmCloseCall 傳遞明確的 CallMgrPartyCoNtext,則終止的呼叫是多點呼叫。 呼叫管理員或 MCM 驅動程式必須視其媒體類型適當地與其網路硬體執行任何必要的網路通訊,以結束通話做為多點呼叫。
NDIS 可以將 ProtocolCmCloseCall 指標傳遞至緩衝區,其中包含用戶端在 NdisClose呼叫中提供的資料。 此資料可以是診斷資料,指出呼叫為何已關閉,或訊號通訊協定所需的任何其他資料。 ProtocolCmCloseCall 必須先在網路上傳送任何這類資料,才能完成呼叫終止。 如果不支援與終止連線同時傳送資料,則呼叫管理員或 MCM 驅動程式應該傳回NDIS_STATUS_INVALID_DATA。
ProtocolCmCloseCall可以在 MCM) 驅動程式) 或NdisMCmCloseCallComplete (的情況下,以非同步方式使用NdisCmCloseCallComplete (完成。 呼叫 Ndis (M) CmCloseCallComplete 會導致 NDIS 呼叫用戶端的 ProtocolCloseCallComplete 函式。
接著,呼叫管理員或 MCM 驅動程式必須分別呼叫 NdisCmDeactivateVc 或 NdisMCmDeactivateVc 來起始用於呼叫的 VC 停用 (請參閱 停用 VC) 。 VC (用戶端、呼叫管理員或 MCM 驅動程式的建立者) 接著可以選擇性地起始刪除 VC (請參閱 刪除 VC) 。