本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
將應用程式內、Web、視訊通話和螢幕共用原生整合到您的應用程式中
若要將 Amazon Connect 應用程式內、Web、視訊通話和螢幕共用與您的應用程式整合:
-
使用 Amazon Connect StartWebRTCContact API 建立聯絡人。
-
然後使用 API 呼叫傳回的詳細資訊,使用 iOS
、Android 或 JavaScript 的 Amazon Chime 用戶端程式庫來加入呼叫。
如需建立其他參與者的詳細資訊,請參閱 啟用多使用者應用程式內、Web 和視訊通話。
如需範例應用程式,請參閱下列 Github 儲存庫:amazon-connect-in-app-calling-examples
用戶端裝置如何啟動應用程式內或網路通話
下圖顯示用戶端裝置 (行動應用程式或瀏覽器) 啟動應用程式內或網路通話的事件順序。

-
您的客戶使用用戶端應用程式 (網站或應用程式) 來啟動應用程式內或網路通話。
-
客戶端應用程式 (網站或行動應用程式) 或 網路伺服器使用 Amazon Connect StartWebRtcContact API 以啟動傳遞任何屬性或背景到 Amazon Connect的聯絡人。
-
用戶端應用程式會使用步驟 2 中 StartWebRTCContact 傳回的詳細資訊來加入通話。
-
(可選) 用戶端使用 CreateParticipantConnection API 以接收用來透過 SendMessage API 傳送 DTMF 的
ConnectionToken
。 -
聯絡人到達流程,並根據流程進行轉接,並放置在佇列中。
-
客服人員接受聯絡案例。
-
(可選) 如果客戶和客服人員已啟用視訊,他們就可以開始視訊。
-
(選用 - 圖中未顯示) 可以使用 CreateParticipant 和 CreateParticipantConnection APIs 新增其他參與者。
開始使用
以下是要開始使用的高等級步驟:
-
使用 StartWebRTCContact API 以建立聯絡人。API 會傳回 Amazon Chime SDK 用戶端加入通話所需的詳細資訊。
-
使用 StartWebRTCContact 傳回的組態來執行個體化 Amazon Chime SDK 用戶端
MeetingSessionConfiguration
物件。 -
DefaultMeetingSession
使用 執行個體化 Amazon Chime SDK 用戶端MeetingSessionConfiguration
,該用戶端是在步驟 2 中建立的,以建立用戶端會議工作階段。-
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 );
-
-
使用
meetingSession.audioVideo.start()
方法透過音訊加入 WebRTC 聯絡人。-
iOS/Android
meetingSession.audioVideo.start()
-
JavaScript
await meetingSession.audioVideo.start();
-
-
使用
meetingSession.audioVideo.stop()
方法掛斷 WebRTC 聯絡人。-
iOS/Android
meetingSession.audioVideo.stop()
-
JavaScript
meetingSession.audioVideo.stop();
-
選項步驟
如需其他操作和完整的 API 文件,請參閱平台特定的 API 概觀指南:
傳送 DTMF 音調
若要將 DTMF 傳送至呼叫,需要兩個 Amazon Connect 參與者服務 APIs:CreateParticipantConnection 和 SendMessage。
注意
SendMessage API 的 contentType
必須是 audio/dtmf
。
-
調用 CreateParticipantConnection 以擷取
ConnectionToken
。(需要ParticipantToken
呼叫此 API。您可以在 StartWebRTCContact 回應中找到。) -
使用
ConnectionToken
,呼叫 SendMessage 以傳送 DT以傳送 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