

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 啟用多使用者應用程式內、Web 和視訊通話
<a name="enable-multiuser-inapp"></a>

Amazon Connect 支援新增其他使用者，以在現有呼叫中加入應用程式內、Web 和視訊通話。您最多可以將四個額外的使用者新增至進行中或排程的應用程式內、Web 或視訊通話，總共六個參與者：客服、第一個使用者，以及四個其他參與者 (使用者或客服)。

## 如何將參與者新增至多方通話
<a name="how-to-add-participants"></a>

1. 若要啟用多使用者呼叫，您需要從 Amazon Connect 主控台啟用[增強型多方聯絡監控](monitor-conversations.md)。

1. 完成此動作後，您可以利用現有的 Amazon Connect [StartWebRTCContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartWebRTCContact.html) API 來建立聯絡人，並將此聯絡人轉接給客服。

1. 若要新增其他參與者，請先建立一個參與者，將 `ContactId` 從 [StartWebRTCContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartWebRTCContact.html) API 回應傳入 [CreateParticipant](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateParticipant.html) API。[CreateParticipant](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateParticipant.html) 在原始來電者接通客服之前將不會成功。參與者的視訊和螢幕共用功能可在 `ParticipantDetails.ParticipantCapabilities` 欄位中設定。

1. 當 [CreateParticipant](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateParticipant.html) 成功完成時，它會傳回[參與者字符](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateParticipant.html#connect-CreateParticipant-response-ParticipantCredentials)。此字符可以用於對 [CreateParticipantConnection](https://docs.aws.amazon.com/connect/latest/APIReference/API_connect-participant_CreateParticipantConnection.html) 提出請求，`Type` 設定為 `WEBRTC_CONNECTION`。回應包含 [ConnectionData](https://docs.aws.amazon.com/connect/latest/APIReference/API_ConnectionData.html#connect-Type-ConnectionData-Meeting)，其可以用來加入會議，方法為將 [Amazon Chime SDK 用戶端程式庫](https://docs.aws.amazon.com/chime-sdk/latest/dg/mtgs-sdk-client-lib.html)用於建立的額外參與者。遵循[整合指示](config-com-widget2.md)，以允許您的應用程式最終使用者加入會議。
**注意**  
如果客服尚未接通聯絡人，[CreateParticipant](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateParticipant.html) 會傳回「錯誤的請求」錯誤。如需使用者在客服接通之前可能嘗試加入的商業應用程式，請參閱[處理並行使用者加入](#handling-concurrent-joins)。

1. 額外客戶可以在 [CreateParticipantConnection](https://docs.aws.amazon.com/connect/latest/APIReference/API_connect-participant_CreateParticipantConnection.html) 傳回之後隨時接通。參與者加入後，[所有額外語音和錄音行為都與多方功能類似](multi-party-calls.md)。如果新參與者的功能已在 [CreateParticipant](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateParticipant.html) 請求中啟用，則這些參與者可以啟用其視訊和螢幕共用。
**注意**  
總共只有 6 個參與者 (客戶和客服) 可以隨時加入作用中的通話。Amazon Chime SDK 用戶端程式庫會傳回狀態碼，指出在會議加入期間採取動作以新增超出限制的額外參與者時，通話已達容量。

1. 在參與者接通電話，然後正常掛斷，或在預先設定的時間非正常掛斷之後，其參與者登入資料將不再有效。如果用戶端程式庫 `onAudioVideoDidStop` 觀察者收到狀態碼，指出出席者不再有效，則應用程式可以從您的企業後端觸發對 [CreateParticipant](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateParticipant.html) 和 [CreateParticipantConnection](https://docs.aws.amazon.com/connect/latest/APIReference/API_connect-participant_CreateParticipantConnection.html) 的新通話，以重新加入通話。

1. 對於每個額外的使用者連線， Amazon Connect 會建立新的聯絡人和[聯絡人記錄](ctr-data-model.md)。所有額外聯絡人都已將 PreviousContactId 設定為 InitialContactId (即 [StartWebRTCContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartWebRTCContact.html) API 建立的聯絡人)，以便將其追蹤至原始聯絡人。每筆聯絡人記錄：
   + 具有 **"InitiationMethod": "WEBRTC\$1API"**
   + 具有下列區段屬性：

     ```
        "SegmentAttributes": {
           "connect:Subtype": {
             "ValueString": "connect:WebRTC"
           }
         },
     ```

   此外，每筆聯絡人記錄都有 `CreateParticipant` 中提供的顯示名稱。不會填入客服資訊進行任何額外的使用者聯絡。這是為了避免客服資訊的重複。

   下圖說明在 Web、應用程式內或視訊通話中新增多個參與者和客服的情況下，如何對應上一個和下一個聯絡人 ID。  
![\[此圖顯示如何對應多方 WebRTC 通話的聯絡人 ID\]](http://docs.aws.amazon.com/zh_tw/connect/latest/adminguide/images/multiparty-webrtc-contact-mapping.png)

## 處理並行使用者加入
<a name="handling-concurrent-joins"></a>

企業可能想要建立使用者可在其中隨時以任何順序加入的應用程式。例如，您的應用程式可能會將具有外部預約 ID 的連結透過電子郵件傳送給多個使用者，這些使用者應該用來在排程時間加入通話。若要實現此行為，企業後端必須確保：
+ 第一個加入的使用者會觸發 StartWebRTCContact 請求。
+ 所有額外使用者都會使用 CreateParticipant 和 CreateParticipantConnection，但**僅在第一個使用者接通了客服之後**。

本節描述可能的實作，假設您的企業後端包含一個存放區 (例如 DynamoDB)，其中可以保存有關排程預約的中繼資料。請注意，排程預約不是 的功能 Amazon Connect，而是範例實作的功能。

當使用者導覽至頁面時，他們應該會將請求傳送至後端。後端檢查：
+ 使用者是否能夠開始預約，以及其是否為正確的時間。
+ 聯絡案例 Amazon Connect 是否已透過呼叫 [StartWebRTCContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartWebRTCContact.html) 建立。

**如果尚未建立聯絡人**，客戶應該呼叫 [StartWebRTCContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartWebRTCContact.html) API，其中具有自訂[流程](connect-contact-flows.md)以及[屬性](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartWebRTCContact.html#connect-StartWebRTCContact-request-Attributes)，此屬性表示應加入通話之對應客服的客服佇列。流程應包含[設定工作佇列](set-working-queue.md)區塊，該區塊設定為使用屬性中提供的客服佇列。然後，流程應以[轉接至佇列](transfer-to-queue.md)區塊終止。在呼叫 API 之前，後端應以原子方式更新存放區，將通話從「無」移至「建立中」狀態，並處理任何並行修改例外狀況。

來自 [StartWebRTCContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartWebRTCContact.html) 的憑證應傳回給客戶，而且他們應該立即加入通話。聯絡人應在企業存放區中與聯絡人 ID 一起標記為「已建立」。**此企業 API 需要在所有可能加入的出席者之間同步**。這可以透過使用資料庫提供的原子操作來完成。

**如果聯絡人處於建立中狀態**，則應將此狀態傳回給額外使用者、顯示相關資訊，並在短暫等待後再試一次。

**如果已建立聯絡人**：他們應該擷取聯絡人 ID，並呼叫 [DescribeContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_DescribeContact.html) API。企業後端應該尋找 **`Contact.AgentInfo.ConnectedToAgentTimestamp`** 欄位。如果不存在，則第一個使用者尚未接通客服，而且額外使用者應顯示相關資訊，並在短暫等待後再試一次。

如果欄位存在，後端應呼叫 [CreateParticipant](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateParticipant.html)，然後呼叫 [CreateParticipantConnection](https://docs.aws.amazon.com/connect/latest/APIReference/API_connect-participant_CreateParticipantConnection.html) 以取得 [ConnectionData](https://docs.aws.amazon.com/connect/latest/APIReference/API_ConnectionData.html#connect-Type-ConnectionData-Meeting)，如前幾節所述。

後端流程應如下所示。

![\[用於處理並行使用者加入的後端流程圖\]](http://docs.aws.amazon.com/zh_tw/connect/latest/adminguide/images/multiparty-backend-flow.png)


您可以參考 GitHub 上的 [Amazon Connect 應用程式內呼叫範例](https://github.com/amazon-connect/amazon-connect-in-app-calling-examples/tree/main/Web)進行實作。

**客服不會使用相同的網站加入**。客服應在[聯絡人控制台](launch-ccp.md)中將其狀態設定為**可用**。當第一個客戶加入時，會自動與客服通話。

## 帳單
<a name="multiuser-billing"></a>

額外參與者的帳單相當於初始客戶和通話中任何客服的現有帳單。音訊、視訊和螢幕共用都會產生自己的參與者特定費用。

## 保留行為
<a name="multiuser-hold-behavior"></a>

在視訊通話或螢幕共用工作階段期間，即使客戶保留通話，客服人員也能查看客戶的視訊或螢幕共用。參與者有責任相應地處理 PII。如果使用原生 CCP 應用程式，則會在任何非客服參與者保留通話時停用客服視訊。如果您想要變更此行為，可以建置自訂 CCP 和通訊小工具。

如需詳細資訊，請參閱[將應用程式內、Web、視訊通話和螢幕共用原生整合至您的應用程式](config-com-widget2.md)。

## 限制
<a name="multiuser-limitations"></a>

建立額外應用程式內、Web、視訊通話和螢幕共用參與者時，存在下列限制：
+ 如果原始聯絡人建立時客戶視訊功能設定為**無**，則額外參與者無法將視訊功能設定為**傳送**。