共用方式為


指出來電

呼叫管理員或 MCM 驅動程式會透過發出來自網路的訊息發出訊號,向來電發出警示。 從這些訊號訊息中,呼叫管理員或 MCM 驅動程式會擷取呼叫的呼叫參數,包括要定址撥入電話的 SAP。

下圖顯示指出來電的 MCM 驅動程式。

此圖顯示指出來電的 MCM 驅動程式。

下圖顯示指出來電的通話管理員。

說明通話管理員的圖表,指出來電。

如果來電管理員或 MCM 驅動程式無法接受連入呼叫參數,如果訊號通訊協定允許這類交涉,就會嘗試與遠端合作物件交涉這些參數的變更。 或者,導向撥入電話的用戶端可能會在從呼叫管理員或 MCM 驅動程式收到呼叫指示之後嘗試交涉呼叫參數, (請參閱 用戶端起始的要求以變更呼叫參數) 。 如果呼叫管理員或 MCM 驅動程式無法交涉與遠端合作物件的可接受呼叫參數,它可能會拒絕通話。 訊號通訊協定會決定這類情況下可能的情況。

在指示對用戶端的撥入電話之前,呼叫管理員或 MCM 驅動程式必須識別導向呼叫的 SAP。 SAP 先前必須由用戶端 註冊 。 呼叫管理員或 MCM 驅動程式也必須起始 VC 的建立 ,並起始 此 VC 的啟用

接著,呼叫管理員或 MCM 驅動程式會指出對用戶端的來電,該用戶端註冊了撥入電話導向的 SAP。 通話管理員指出有 NdisCmDispatchIncomingCall的來電。 MCM 驅動程式表示有 NdisMCmDispatchIncomingCall的來電。

呼叫 Ndis (M) CmDispatchIncomingCall 中,呼叫管理員或 MCM 驅動程式會傳遞下列專案:

  • NdisSapHandle,可識別撥入電話的 SAP 位址。

  • 識別來電虛擬線路的 NdisVcHandle

  • 別CO_CALL_PARAMETERS結構的指標,其中包含呼叫的呼叫參數。

呼叫 Ndis (M) CmDispatchIncomingCall 會導致 NDIS呼叫用戶端的ProtocolClIncomingCall函式,用戶端在其中接受或拒絕要求的連線。 ProtocolClIncomingCall 應該驗證 SAP、VC 和呼叫參數。

ProtocolClIncomingCall 可以同步完成,也可以傳回NDIS_STATUS_PENDING,並使用 NdisClIncomingCallComplete以非同步方式完成。 呼叫 NdisClIncomingCallComplete 會導致 NDIS 呼叫呼叫管理員的 或 MCM 驅動程式的 ProtocolCmIncomingCallComplete 函式。

由同步完成 ProtocolClIncomingCall 或提供給 NdisClIncomingCallComplete 的NDIS_STATUS程式碼,表示用戶端接受或拒絕來電。 用戶端也會傳回緩衝CO_CALL_PARAMETERS結構中呼叫的呼叫參數。 如果用戶端發現無法接受的呼叫參數,則如果訊號通訊協定允許,請在具有CALL_PARAMETERS_CHANGED的 CO_CALL_PARAMETERS 結構中設定 Flags 成員,並在緩衝CO_CALL_PARAMETERS結構中提供修訂的呼叫參數,來要求呼叫參數的變更。

如果用戶端接受來電,呼叫管理員或 MCM 驅動程式應該傳送訊號訊息,向呼叫實體指出已接受呼叫。 否則,呼叫管理員或 MCM 驅動程式應該傳送訊號訊息,以指出呼叫已被拒絕。 如果用戶端要求呼叫參數的變更,呼叫管理員或 MCM 驅動程式會傳送訊號訊息來要求呼叫參數的變更。

如果用戶端接受呼叫,或遠端合作物件已接受用戶端要求的呼叫參數變更,則呼叫管理員會呼叫 NdisCmDispatchCallConnected,而 MCM 驅動程式會呼叫 NdisMCmDispatchCallConnected呼叫 Ndis (M) CmDispatchCallConnected會導致 NDIS 呼叫用戶端的ProtocolClCallConnected函式。

如果用戶端拒絕呼叫,而且呼叫管理員或 MCM 驅動程式已經啟動連入通話的 VC,則呼叫管理員或 MCM 驅動程式會呼叫 Ndis (M) CmDeactivateVc ,以在啟用 VC 時停用 VC。 接著,呼叫管理員或 MCM 驅動程式可以藉由在 MCM 驅動程式的呼叫管理員或NdisMCmDeleteVc的情況下呼叫NdisCoDeleteVc來起始刪除 VC

如果用戶端已接受呼叫,但未成功建立端對端連線 (,例如,遠端合作物件卸載呼叫) ,呼叫管理員或 MCM 驅動程式將不會呼叫 Ndis (M) CmDispatchCallConnected。 相反地,它會呼叫 Ndis (M) CmDispatchIncomingCloseCall,這會導致 NDIS 呼叫用戶端的 ProtocolClIncomingCloseCall 函式。 然後,用戶端必須呼叫 NdisCloseCall ,才能完成呼叫的終止。 接著,呼叫管理員或 MCM 驅動程式會 呼叫 Ndis (M) CmDeactivateVC ,以停用為撥入電話建立的 VC 。 接著,呼叫管理員或 MCM 驅動程式可以藉由在 MCM 驅動程式的呼叫管理員或NdisMCmDeleteVc的情況下呼叫NdisCoDeleteVc來起始刪除 VC