翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
アプリケーション内、ウェブ、ビデオ通話、画面共有をアプリケーションにネイティブに統合する
Amazon Connect のアプリ内通話、ウェブ通話、ビデオ通話、画面共有をアプリケーションと統合するには:
-
Amazon Connect StartWebRTCContact API を使用して問い合わせを作成します。
-
次に、API 呼び出しによって返された詳細を使用して、iOS
、Android 、または JavaScript 用の Amazon Chime クライアントライブラリを使用して呼び出しに参加します。
追加の参加者の作成については、「」を参照してくださいマルチユーザーアプリ内通話、ウェブ通話、ビデオ通話を有効にする。
サンプルアプリケーションについては、次の Github リポジトリを参照してください: amazon-connect-in-app-calling-examples
クライアントデバイスでアプリ内通話またはウェブ通話を開始する方法
次の図は、クライアントデバイス (モバイルアプリケーションまたはブラウザ) がアプリ内通話またはウェブ通話を開始するためのイベントの順序を示しています。

-
顧客はクライアントアプリケーション (ウェブサイトまたはアプリケーション) を使用してアプリ内通話またはウェブ通話を開始します。
-
クライアントアプリケーション (ウェブサイトまたはモバイルアプリケーション) またはウェブサーバーは Amazon Connect StartWebRTCContact API を使用してコンタクトを開始し、 Amazon Connectに属性やコンテキストを渡します。
-
クライアントアプリケーションは、ステップ 2 で StartWebRTCContact から返された詳細を使用して通話に参加します。
-
(オプション) クライアントは CreateParticipantConnection API を使用して、SendMessage API を介して DTMF を送信するために
ConnectionToken
を受け取ります。 -
コンタクトがフローに到達し、フローに基づいてルーティングされ、キューに入れられます。
-
エージェントがコンタクトを受け入れます。
-
(オプション) 顧客とエージェントに対してビデオを有効にしている場合、顧客ととエージェントはビデオを開始できます。
-
(オプション - 図には表示されません) CreateParticipant API と CreateParticipantConnection APIs を使用して、追加の参加者を追加できます。
はじめに
開始するための高レベルのステップは、次のとおりです。
-
StartWebRTCContact API を使用してコンタクトを作成します。API は、Amazon Chime SDK クライアントが通話に参加するために必要な詳細を返します。
-
StartWebRTCContact によって返される設定を使用して、Amazon Chime SDK クライアント
MeetingSessionConfiguration
オブジェクトをインスタンス化します。 -
ステップ 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 );
-
-
WebRTC コンタクトに音声で参加するには、
meetingSession.audioVideo.start()
メソッドを使用します。-
iOS/Android
meetingSession.audioVideo.start()
-
JavaScript
await meetingSession.audioVideo.start();
-
-
WebRTC コンタクトの接続を解除するには、
meetingSession.audioVideo.stop()
メソッドを使用します。-
iOS/Android
meetingSession.audioVideo.stop()
-
JavaScript
meetingSession.audioVideo.stop();
-
オプションのステップ
追加のオペレーションと包括的な API ドキュメントについては、プラットフォーム固有の API 概要ガイドを参照してください。
DTMF トーンを送信する
DTMF を呼び出しに送信するには、CreateParticipantConnection と SendMessage の 2 つの Amazon Connect Participant Service APIs が必要です。
注記
SendMessage API の contentType
は、audio/dtmf
である必要があります。
-
CreateParticipantConnection を呼び出して、
ConnectionToken
を取得します(この API を呼び出すには、ParticipantToken
が必要です。これは、StartWebRTCContact で見つかります)。 -
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