Amazon Connect Streams JS を使用して、ビデオ通話と画面共有をカスタムエージェントデスクトップに統合する - Amazon Connect

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

Amazon Connect Streams JS を使用して、ビデオ通話と画面共有をカスタムエージェントデスクトップに統合する

このトピックはデベロッパーを対象としています。カスタムエージェントデスクトップの場合、ビデオ通話と画面共有をサポートするように変更を加える必要があります。高レベルのステップは、次のとおりです。

注記

をカスタムエージェントアプリケーションCCPに直接埋め込む場合は、Amazon Connect Streams JS CCPを使用して を開始するときに allowFramedVideoCallが true に設定されていることを確認します。

  1. Amazon Connect Streams JS を使用して、受信コンタクトがウェブRTCコンタクトかどうかを確認します。次のコード例のとおり "connect:WebRTC" コンタクトサブタイプを使用します。

    contact.getContactSubtype() === "connect:WebRTC"

  2. 顧客の表示名は、 contact contact.getName() の名前フィールドを使用して取得できます。

ビデオのサポートを追加する

カスタマーがビデオ処理を有効にしている場合、以下のステップを実行して、ビデオ処理のサポートを追加します。

  1. コンタクトに動画機能があるかを確認するには、次を行います。

    // Return true if any connection has video send capability contact.hasVideoRTCCapabilities() // Return true if the agent connection has video send capability contact.canAgentSendVideo() // Return true if other non-agent connection has video send capability contact.canAgentReceiveVideo()
  2. エージェントがビデオ通話を処理する動画アクセス権限を持っているかを確認するには、次を行います。

    agent.getPermissions().includes('videoContact');

  3. ビデオ通話を受け入れるには、コンタクトが動画機能を備えている必要があり、エージェントには動画アクセス権限が必要です。

    function shouldRenderVideoUI() { return contact.getContactSubtype() === "connect:WebRTC" && contact.hasVideoRTCCapabilities() && agent.getPermissions().includes('videoContact'); }
  4. 動画セッションに参加するには、getVideoConnectionInfo を呼び出します。

    if (shouldRenderVideoUI()) { const response = await contact.getAgentConnection().getVideoConnectionInfo(); }
  5. 動画 UI を作成してビデオ会議セッションに参加するには、次を参照してください。

  6. 簡単にするために、次のコードスニペットでは、React Components Library の例 Amazon Chime SDKを使用しています。

    import { MeetingSessionConfiguration } from "amazon-chime-sdk-js"; import { useMeetingStatus, useMeetingManager, MeetingStatus, DeviceLabels, useLocalAudioOutput } from 'amazon-chime-sdk-component-library-react'; const App = () => ( <MeetingProvider> <MyVideoManager /> </MeetingProvider> ); const MyVideoManager = () => { const meetingManager = useMeetingManager(); if (shouldRenderVideoUI()) { const response = await contact.getAgentConnection().getVideoConnectionInfo(); const configuration = new MeetingSessionConfiguration( response.meeting, response.attendee); await meetingManager.join(configuration, { deviceLabels: DeviceLabels.Video }); await meetingManager.start(); } function endContact() { meetingManager.leave(); } }
  7. ビデオグリッドをレンダリングするには、React Components Library VideoTileGridの Amazon Chime SDK を使用するか、 を使用して UI の動作をカスタマイズしますRemoteVideoTileProvider

  8. ビデオプレビューをレンダリングするには、 VideoPreviewおよび CameraSelectionコンポーネントを使用できます。会議中にカメラビデオを選択したり変更したりするには、meetingManager.selectVideoInputDevice または meetingManager.startVideoInput を使用できます。

    const meetingManager = useMeetingManager(); const { isVideoEnabled } = useLocalVideo(); if (isVideoEnabled) { await meetingManager.startVideoInputDevice(current); } else { meetingManager.selectVideoInputDevice(current); }
  9. バックグラウンドぼかしを実装するには、「」を参照してくださいuseBackgroundBlur

  10. カスタムビデオエクスペリエンスの構築方法のサンプルコードについては、 Amazon Chime SDK「Amazon Chime React Meeting demo」を参照してください。

画面共有のサポートを追加する

注記

カスタムエージェントアプリケーションで CCP を直接使用する場合 out-of-boxallowFramedScreenSharingPopUpは、Amazon Connect Streams JS CCPを使用して を開始するときに allowFramedScreenSharing と が true に設定されていることを確認します。

true allowFramedScreenSharingに設定すると、1 つのウィンドウまたはタブCCPに 1 つのみ画面共有ボタンが有効になります。true allowFramedScreenSharingPopUpに設定すると、エージェントが画面共有ボタンを選択すると、画面共有アプリが別のウィンドウで起動します。詳細については、Amazon Connect Streams JS ドキュメントを参照してください。

カスタムエージェントデスクトップで画面共有を有効にするには、次の手順を実行します。

  1. 連絡先に画面共有機能があるかどうかを確認します。

    // Return true if any connection has screen sharing send capability contact.hasScreenShareCapability() // Return true if the agent connection has screen sharing send capability contact.canAgentSendScreenShare() // Return true if customer connection has screen sharing send capability contact.canCustomerSendScreenShare()
  2. エージェントにビデオアクセス許可があるかどうかを確認します。

    agent.getPermissions().includes('videoContact');
  3. エージェントが対象となる問い合わせの画面共有セッションを開始できるかどうかを確認します。

    fun canStartScreenSharingSession() { return contactgetContactSubtype() === "connect:WebRTC" && contact.hasScreenShareCapability() && agent.getPermissions().includes('videoContact'); }
  4. を呼び出しstartScreenSharingて画面共有セッションを開始します。これにより、 が問い合わせScreenSharingActivatedに追加され、問い合わせレコード で検索できるようになります。

    contact.startScreenSharing();
  5. を呼び出しgetVideoConnectionInfoてセッションに参加します。エージェントがビデオセッションに参加してビデオを処理している場合は、ステップをスキップできます。

    if (canStartScreenSharingSession) { contact.startScreenSharing(); const response = await contact.getAgentConnection().getVideoConnectionInfo(); }
  6. Amazon Chime SDK React コンポーネントライブラリを使用してセッションに参加します。コードスニペットについては、「」の「ステップ 6」を参照してくださいビデオのサポートを追加する

  7. Amazon Chime SDK React コンポーネントVideoTileGridから同じ を使用して、画面共有ビデオタイルをレンダリングします。詳細については、useContentShare「 状態useContentShareコントロール」を参照してください。

  8. セッションが終了したstopScreenSharingら を呼び出します。

    contact.stopScreenSharing();
  9. 次のコールバックをサブスクライブすることで、画面共有アクティビティのイベントを受信できます。

    initScreenSharingListeners() { this.contact.onScreenSharingStarted(() => { // Screen sharing session started }); this.contact.onScreenSharingStopped(() => { // Screen sharing session ended }); this.contact.onScreenSharingError((error) => { // Screen sharing session error occurred }); } }