翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
アプリ内通話、ウェブ通話、ビデオ通話、および画面共有をアプリケーションにネイティブに統合する
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 API を使用して、参加者を追加できます。
はじめに
開始するための高レベルのステップは、次のとおりです。
-
StartWebRTCContact API を使用してコンタクトを作成します。この API は、Amazon Chime SDK クライアントが通話に参加するのに必要な詳細を返します。
-
StartWebRTCContact が返した設定を使用して、Amazon Chime SDK クライアントの
MeetingSessionConfigurationオブジェクトをインスタンス化します。 -
クライアントの会議セッションを作成するためにステップ 2 で作成した
MeetingSessionConfigurationを使用して、Amazon Chime SDK クライアントのDefaultMeetingSessionをインスタンス化します。-
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 API が必要となります。
注記
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