アプリケーション内、ウェブ、ビデオ通話、画面共有をアプリケーションにネイティブに統合する - Amazon Connect

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

アプリケーション内、ウェブ、ビデオ通話、画面共有をアプリケーションにネイティブに統合する

Amazon Connect のアプリ内通話、ウェブ通話、ビデオ通話、画面共有をアプリケーションと統合するには:

  1. Amazon Connect StartWebRTCContact API を使用して問い合わせを作成します。

  2. 次に、API 呼び出しによって返された詳細を使用して、iOSAndroid、または JavaScript 用の Amazon Chime クライアントライブラリを使用して呼び出しに参加します。

追加の参加者の作成については、「」を参照してくださいマルチユーザーアプリ内通話、ウェブ通話、ビデオ通話を有効にする

サンプルアプリケーションについては、次の Github リポジトリを参照してください: amazon-connect-in-app-calling-examples

クライアントデバイスでアプリ内通話またはウェブ通話を開始する方法

次の図は、クライアントデバイス (モバイルアプリケーションまたはブラウザ) がアプリ内通話またはウェブ通話を開始するためのイベントの順序を示しています。

クライアントデバイスの通話開始方法を示す概念図
  1. 顧客はクライアントアプリケーション (ウェブサイトまたはアプリケーション) を使用してアプリ内通話またはウェブ通話を開始します。

  2. クライアントアプリケーション (ウェブサイトまたはモバイルアプリケーション) またはウェブサーバーは Amazon Connect StartWebRTCContact API を使用してコンタクトを開始し、 Amazon Connectに属性やコンテキストを渡します。

  3. クライアントアプリケーションは、ステップ 2 で StartWebRTCContact から返された詳細を使用して通話に参加します。

  4. (オプション) クライアントは CreateParticipantConnection API を使用して、SendMessage API を介して DTMF を送信するために ConnectionToken を受け取ります。

  5. コンタクトがフローに到達し、フローに基づいてルーティングされ、キューに入れられます。

  6. エージェントがコンタクトを受け入れます。

  7. (オプション) 顧客とエージェントに対してビデオを有効にしている場合、顧客ととエージェントはビデオを開始できます。

  8. (オプション - 図には表示されません) CreateParticipant API と CreateParticipantConnection APIs を使用して、追加の参加者を追加できます。

はじめに

開始するための高レベルのステップは、次のとおりです。

  1. StartWebRTCContact API を使用してコンタクトを作成します。API は、Amazon Chime SDK クライアントが通話に参加するために必要な詳細を返します。

  2. StartWebRTCContact によって返される設定を使用して、Amazon Chime SDK クライアントMeetingSessionConfigurationオブジェクトをインスタンス化します。

  3. ステップ 2 で作成した DefaultMeetingSessionを使用して Amazon Chime SDK クライアントをインスタンス化しMeetingSessionConfiguration、クライアント会議セッションを作成します。

    • iOS

      let logger = ConsoleLogger(name: "logger") let meetingSession = DefaultMeetingSession( configuration: meetingSessionConfig, logger: logger )
    • Android

      val logger = ConsoleLogger() val meetingSession = DefaultMeetingSession( configuration = meetingSessionConfig, logger = logger, context = applicationContext )
    • JavaScript

      const logger = new ConsoleLogger('MeetingLogs', LogLevel.INFO); const deviceController = new DefaultDeviceController(logger); const configuration = new MeetingSessionConfiguration( meetingResponse, attendeeResponse ); const meetingSession = new DefaultMeetingSession( configuration, logger, deviceController );
  4. WebRTC コンタクトに音声で参加するには、meetingSession.audioVideo.start() メソッドを使用します。

    • iOS/Android

      meetingSession.audioVideo.start()
    • JavaScript

      await meetingSession.audioVideo.start();
  5. WebRTC コンタクトの接続を解除するには、meetingSession.audioVideo.stop() メソッドを使用します。

    • iOS/Android

      meetingSession.audioVideo.stop()
    • JavaScript

      meetingSession.audioVideo.stop();

オプションのステップ

追加のオペレーションと包括的な API ドキュメントについては、プラットフォーム固有の API 概要ガイドを参照してください。

DTMF トーンを送信する

DTMF を呼び出しに送信するには、CreateParticipantConnectionSendMessage の 2 つの Amazon Connect Participant Service APIs が必要です。

注記

SendMessage API の contentType は、audio/dtmf である必要があります。

  1. CreateParticipantConnection を呼び出して、ConnectionToken を取得します(この API を呼び出すには、ParticipantToken が必要です。これは、StartWebRTCContact で見つかります)。

  2. ConnectionToken を使用する場合は、SendMessage を呼び出して DTMF 数値を送信します。

オーディオデバイスを選択する

オーディオ入出力デバイスを選択するには、Android および iOS 用の Amazon Chime SDK クライアントまたは iOS 用のネイティブ iOS 機能からメソッドを使用できます。

iOS/Android

meetingSession.audioVideo.listAudioDevices() meetingSession.audioVideo.chooseAudioDevice(mediaDevice)

JavaScript

await meetingSession.audioVideo.listAudioInputDevices(); await meetingSession.audioVideo.listAudioOutputDevices(); await meetingSession.audioVideo.startAudioInput(device); await meetingSession.audioVideo.chooseAudioOutput(deviceId);

音声のミュートとミュート解除

ミュートしたりミュートを解除したりするには、meetingSession.audioVideo.realtimeLocalMute()meetingSession.audioVideo.realtimeLocalUnmute() を使用します。

iOS/Android

meetingSession.audioVideo.realtimeLocalMute() meetingSession.audioVideo.realtimeLocalUnmute()

JavaScript

meetingSession.audioVideo.realtimeMuteLocalAudio(); meetingSession.audioVideo.realtimeUnmuteLocalAudio();

セルフビデオの開始

セルフビデオを開始するには、 を使用しますmeetingSession.audioVideo.startLocalVideo()。特定のデバイスを列挙して選択する方法については、クライアントライブラリ API ガイドを参照してください。

iOS/Android

meetingSession.audioVideo.startLocalVideo()

JavaScript

meetingSession.audioVideo.startLocalVideoTile();

セルフビデオを停止する

セルフビデオを停止するには、 を使用しますmeetingSession.audioVideo.stopLocalVideo()

iOS/Android

meetingSession.audioVideo.stopLocalVideo()

JavaScript

meetingSession.audioVideo.stopLocalVideoTile();

エージェントビデオを有効にする

アプリケーション内でエージェントのビデオの受信とロードを許可するには、 を使用しますmeetingSession.audioVideo.startRemoteVideo()。また、動画タイルオブザーバーを実装し、動画タイルをバインドしてビューを表示する必要があります。

iOS/Android

meetingSession.audioVideo.startRemoteVideo() // Implement VideoTileObserver to handle video tiles meetingSession.audioVideo.addVideoTileObserver(observer) // In videoTileDidAdd callback: meetingSession.audioVideo.bindVideoView(videoView, tileId: tileState.tileId)

JavaScript

// Remote video is received automatically when available // Implement AudioVideoObserver to handle video tiles meetingSession.audioVideo.addObserver(observer); // In videoTileDidUpdate callback: meetingSession.audioVideo.bindVideoElement(tileId, videoElement);

動画タイルの実装の詳細については、プラットフォーム固有の SDK ガイドを参照してください。

エージェントビデオを無効にする

アプリケーション内でエージェントのビデオの受信とロードを禁止するには、 を使用しますmeetingSession.audioVideo.stopRemoteVideo()

iOS/Android

meetingSession.audioVideo.stopRemoteVideo() meetingSession.audioVideo.unbindVideoView(tileId)

JavaScript

meetingSession.audioVideo.unbindVideoElement(tileId);

データメッセージを使用する

エージェント側からエンドユーザーにステータスを送信する必要がある場合は、データメッセージを使用できます。例えば、顧客が保留中の場合、顧客のアプリケーションにデータメッセージを送信して、保留中でビデオ/画面共有がまだ送信中であることを知らせるメッセージを表示したり、ビデオ/画面共有をオフにしたりできます。

iOS/Android

meetingSession.audioVideo.realtimeSendDataMessage(topic, data, lifetimeMs) meetingSession.audioVideo.addRealtimeDataMessageObserver(topic, observer)

JavaScript

meetingSession.audioVideo.realtimeSendDataMessage(topic, data, lifetimeMs); meetingSession.audioVideo.realtimeSubscribeToReceiveDataMessage(topic, callback);

停止イベントをリッスンする

audioVideoDidStop オブザーバーを通じて問い合わせの参加が終了したときにイベントをリッスンできます。特定のステータスコードはプラットフォームによって異なる場合があります。

呼び出しが容量に達する

6 人以上のユーザーが通話に参加しようとすると、追加の参加者は次のエラーを受け取り、他の参加者が退出するまで参加できません。

  • iOS: MeetingSessionStatusCode.audioCallAtCapacityまたは MeetingSessionStatusCode.audioAuthenticationRejected

  • Android: MeetingSessionStatusCode.AudioCallAtCapacityまたは MeetingSessionStatusCode.AudioAuthenticationRejected

  • JavaScript: MeetingSessionStatusCode.AudioCallAtCapacityまたは MeetingSessionStatusCode.AudioAuthenticationRejected

通話から削除された参加者

参加者がエージェントによって通話から削除されても、他の参加者の問い合わせが続行されると、次のステータスコードを受け取ります。参加者を削除すると、問い合わせが終了すると、このステータスまたは問い合わせの終了ステータスのいずれかを受け取ることに注意してください。

  • iOS: MeetingSessionStatusCode.audioServerHungupまたは MeetingSessionStatusCode.audioAuthenticationRejected

  • Android: MeetingSessionStatusCode.AudioServerHungupまたは MeetingSessionStatusCode.AudioAuthenticationRejected

  • JavaScript: MeetingSessionStatusCode.AudioAttendeeRemovedまたは MeetingSessionStatusCode.AudioAuthenticationRejected

問い合わせの終了

すべての参加者の実際の問い合わせが完全に終了すると、次のステータスコードが表示されます。

  • iOS: MeetingSessionStatusCode.audioCallEnded

  • Android: MeetingSessionStatusCode.AudioCallEnded

  • JavaScript: MeetingSessionStatusCode.AudioCallEnded