

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# マルチユーザーのアプリ内通話、ウェブ通話、ビデオ通話を有効にする
<a name="enable-multiuser-inapp"></a>

Amazon Connect は、既存の通話でアプリ内通話、ウェブ通話、ビデオ通話に参加するためのユーザーの追加をサポートしています。進行中またはスケジュールされたアプリ内通話、ウェブ通話、またはビデオ通話には、最大 4 人のユーザーを追加できます。つまり、合計 6 人 (エージェント、最初のユーザー、および他の 4 人の参加者 (ユーザーまたはエージェント)) が参加可能となります。

## マルチユーザーの通話に参加者を追加する方法
<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)が返されます。このトークンは、`Type` が `WEBRTC_CONNECTION` に設定された [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) が含まれており、これを使用して、作成された追加の参加者を [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) は Bad Request エラーを返します。エージェントが接続される前にユーザーの参加が可能なビジネスアプリケーションについては、「[同時ユーザー参加の処理](#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. 追加のユーザー接続ごとに、 は新しい問い合わせと[問い合わせレコード](ctr-data-model.md) Amazon Connect を作成します。元のコンタクトを追跡するために、すべての追加のコンタクトでは、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` で指定された表示名が含まれます。エージェント情報は、追加ユーザーのコンタクトには含まれません。これは、エージェント情報の重複を避けるためです。

   次の図は、複数の参加者とエージェントがウェブ通話、アプリ内通話、またはビデオ通話に追加されるシナリオで、前後のコンタクト ID がどのようにマッピングされるかを示しています。  
![\[マルチパーティ WebRTC コール中にコンタクト ID がどのようにマッピングされるかを示す図。\]](http://docs.aws.amazon.com/ja_jp/connect/latest/adminguide/images/multiparty-webrtc-contact-mapping.png)

## 同時ユーザー参加の処理
<a name="handling-concurrent-joins"></a>

ユーザーがいつでも任意の順序で参加できるアプリケーションを必要とする企業もあります。例えば、スケジュールされた時間に通話に参加するための外部予約 ID のリンクを、アプリケーションから複数のユーザーに E メールで送信する場合です。この動作を実現するには、ビジネスバックエンドで以下の動作が行われるようにします。
+ 最初の参加ユーザーが StartWebRTCContact リクエストをトリガーする。
+ 追加ユーザーはすべて CreateParticipant と CreateParticipantConnection を使用する (ただし、**最初のユーザーがエージェントに接続した後にのみ**)。

このセクションでは、スケジュールされた予約に関するメタデータを保持できるストア (DynamoDB など) がビジネスバックエンドにあるものと仮定して、可能な実装について説明します。スケジュールされた予約は、 の機能ではなく Amazon Connect、実装例の機能であることに注意してください。

ユーザーがページに移動したら、バックエンドにリクエストを送信する必要があります。バックエンドで以下がチェックされます。
+ ユーザーが予約を開始できるかどうか、およびそれが正しい時間であるかどうか。
+ [StartWebRTCContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartWebRTCContact.html) を呼び出して Amazon Connect コンタクトが既に作成されているかどうか。

**コンタクトがまだ作成されていない場合**、顧客はカスタム[フロー](connect-contact-flows.md)と、通話への参加が予定されている該当エージェントのエージェントキューを示す[属性](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartWebRTCContact.html#connect-StartWebRTCContact-request-Attributes)を使用して、[StartWebRTCContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartWebRTCContact.html) API を呼び出します。フローには、属性で指定されたエージェントキューを使用するように設定した [[作業キューの設定]](set-working-queue.md) ブロックが含まれている必要があります。その後、フローは [[キューへ転送]](transfer-to-queue.md) ブロックで終了します。API が呼び出される前に、バックエンドがストアをアトミックに更新して、通話を「なし」状態から「作成中」状態に移行し、同時変更の例外を処理します。

[StartWebRTCContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartWebRTCContact.html) から認証情報が顧客に返され、顧客はすぐに通話に参加します。コンタクトは、ビジネスストアでコンタクト ID とともに「作成済み」としてマークされます。**このビジネス API は、参加予定のすべての参加者の間で同期されます**。これは、DB が提供するアトミックオペレーションを使用して実行されます。

**コンタクトが作成中の状態**の場合、追加のユーザーにこの状態が返され、関連情報が表示されます。追加のユーザーはしばらく待ってから再試行する必要があります。

**コンタクトが作成済みの場合**: 顧客はコンタクト 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/ja_jp/connect/latest/adminguide/images/multiparty-backend-flow.png)


実装については、GitHub の [amazon-connect-in-app-calling-examples](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 とコミュニケーションウィジェットを構築します。

詳細については、「[アプリ内通話、ウェブ通話、ビデオ通話、および画面共有をアプリケーションにネイティブに統合する](config-com-widget2.md)」を参照してください。

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

アプリ内通話、ウェブ通話、ビデオ通話、および画面共有の追加の参加者を作成する場合、次の制限が適用されます。
+ 元のコンタクトが顧客のビデオ機能を **[なし]** に設定して作成された場合、追加の参加者がビデオ機能を **[送信]** に設定することはできません。