共用方式為


新增參與者至多點通話

客戶要求使用 NdisClAddParty 將參與方新增至多點通話。 客戶端只能將合作者新增到現有的多點通話,即指客戶端已向NdisClMakeCall提供ProtocolPartyContext的通話(請參閱撥打電話)。

下圖顯示呼叫控制器的客戶端,要求將一位參與者新增至多點通話。

此圖顯示呼叫管理員的客戶端,請求將參與方新增到多點通話。

下圖顯示 MCM 驅動程式的客戶端要求將一個方新增至多點呼叫。

此圖描述 MCM 驅動程式的用戶端請求將一方新增至多點呼叫。

在呼叫 NdisClAddParty 之前,客戶端必須配置並初始化其上下文區域,才能新增參加方。 用戶端通常會在呼叫 NdisClAddParty 時,將指標傳遞至這類內容區域作為 ProtocolPartyContext,並將該內容區域內變數的指標作為 NdisPartyHandle 參數。

除了 NdisVcHandleProtocolPartyContext 之外,用戶端也會將呼叫參數(緩衝 CO_CALL_PARAMETERS 結構)傳遞至 NdisClAddParty。 基礎網路媒體會決定用戶端是否可以在多點 VC 上指定每一方流量參數。

對 NdisClAddParty 的呼叫會導致 NDIS 將此要求轉送給呼叫管理員或 MCM 驅動程式的 ProtocolCmAddParty 函式,用戶端會與其共用指定的 NdisVcHandle 。 NDIS 會將下列項目傳遞至 ProtocolCmAddParty

  • CallMgrVcContext,表示呼叫的 VC。

  • 指向 CO_CALL_PARAMETERS 結構的指標,其中包含客戶端傳遞至 NdisClAddParty 的呼叫參數。

  • NdisPartyHandle,可識別要加入的一方。

ProtocolCmAddParty 會配置並初始化新增至通話的參與方所需的任何動態資源。 從 ProtocolCmAddParty,通話管理員或 MCM 驅動程式會與網路控制裝置或其他特定媒介代理通訊,以將指定的參與者新增至多點通話。

如果客戶端傳入的呼叫參數不符合為多點 VC 建立的參數,呼叫管理員或 MCM 驅動程式可以,例如:

  • 如果基礎網路媒介在多點虛擬電路上支援此功能,請設定每方流量參數。

  • 將用戶端提供的流量參數重設為原本為 VC 建立的流量參數。

  • 更改 VC 及所有目前連接的方的呼叫參數。

  • 用戶端嘗試新增合作對象失敗。

ProtocolCmAddParty 可以同步完成,但更可能的是在呼叫管理員的情況下以 NdisCmAddPartyComplete 或在 MCM 驅動程序的情況下以 NdisMCmAddPartyComplete 以異步方式完成。 無論呼叫管理員或 MCM 驅動程式是以同步或異步方式完成作業,都會將緩衝呼叫參數傳遞至 NDIS。

對 Ndis(M)CmAddPartyComplete 的呼叫會導致 NDIS 呼叫用戶端的 ProtocolClAddPartyComplete 函式。 如果用戶端要求新增合作物件成功,而且訊號通訊協定允許呼叫管理員或 MCM 驅動程式修改呼叫參數, ProtocolClAddPartyComplete 應該測試緩衝CO_CALL_PARAMETERS結構中的CALL_PARAMETERS_CHANGED旗標,以判斷是否已修改呼叫參數。 訊號協議會判斷如果用戶端發現對CO_CALL_PARAMETERS的修改無法接受,該怎麼處理。 通常,客戶端會在此案例中呼叫 NdisClDropParty (請參閱 從多點呼叫移除合作對象)。