Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Integración de las videollamadas y la pantalla compartida en el escritorio personalizado del agente mediante Amazon Connect Streams JS
Este tema va dirigido a los desarrolladores. Para los escritorios personalizados de los agentes, debe realizar cambios para admitir las videollamadas y la pantalla compartida. Los siguientes son pasos de alto nivel.
nota
Si incrusta el CCP directamente en su aplicación de agente personalizado, asegúrese de que allowFramedVideoCall
esté establecido en true cuando inicie el CCP con Amazon Connect Streams JS
-
Utilice Amazon Connect Streams JS
para comprobar si el contacto entrante es un contacto de WebRTC. Utilice el subtipo de contacto de "connect:WebRTC"
tal y como se muestra en el ejemplo siguiente:contact.getContactSubtype() === "connect:WebRTC"
-
Puede recuperar el nombre mostrado del cliente utilizando el campo de nombre de
contact contact.getName()
.
Agregación de soporte para video
Complete los siguientes pasos para añadir compatibilidad con la gestión de video cuando sus clientes la tengan activada.
-
Para comprobar si un contacto tiene capacidad de vídeo:
// 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()
-
Para comprobar si el agente tiene permiso de vídeo para gestionar una videollamada:
agent.getPermissions().includes('videoContact');
-
Para aceptar una videollamada, el contacto debe poder recibir vídeo y el agente debe tener permiso para ver vídeo.
function shouldRenderVideoUI() { return contact.getContactSubtype() === "connect:WebRTC" && contact.hasVideoRTCCapabilities() && agent.getPermissions().includes('videoContact'); }
-
Para unirse a una sesión de vídeo, llame a
getVideoConnectionInfo
:if (shouldRenderVideoUI()) { const response = await contact.getAgentConnection().getVideoConnectionInfo(); }
-
Para crear una interfaz de usuario de vídeo y unirse a una sesión de videoconferencia, consulte:
-
Amazon Chime SDK para JavaScript
uno GitHub -
Amazon Chime Biblioteca de componentes de React del SDK
en GitHub
-
-
Para simplificar, en los siguientes fragmentos de código se utilizan ejemplos de la biblioteca de componentes de React del 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(); } }
-
Para renderizar la cuadrícula de vídeo, usa la biblioteca de componentes VideoTileGrid
de React del Amazon Chime SDK o personaliza el comportamiento de la interfaz de usuario mediante. RemoteVideoTileProvider -
Para renderizar una vista previa de vídeo, puedes usar CameraSelection
los componentes VideoPreview y. Para elegir o cambiar el vídeo de una cámara, puede utilizar meetingManager.selectVideoInputDevice
omeetingManager.startVideoInput
si la reunión está en curso.const meetingManager = useMeetingManager(); const { isVideoEnabled } = useLocalVideo(); if (isVideoEnabled) { await meetingManager.startVideoInputDevice(current); } else { meetingManager.selectVideoInputDevice(current); }
-
Para implementar el desenfoque de fondo, consulte useBackgroundBlur
. -
Para ver un ejemplo de código sobre cómo crear una experiencia de vídeo personalizada, consulte este ejemplo del SDK de Amazon Chime : demostración de Amazon Chime React Meeting
.
Agregación de compatibilidad con la pantalla compartida
nota
Si usa el out-of-box CCP directamente en su aplicación de agente personalizado, asegúrese de que allowFramedScreenSharingPopUp
estén allowFramedScreenSharing
configurados en true cuando inicie el CCP con Amazon Connect Streams JS
Si allowFramedScreenSharing
se establece en true, se habilita el botón para compartir pantalla solo en un CCP de una ventana o pestaña. Si allowFramedScreenSharingPopUp
se establece en true, se inicia la aplicación para compartir pantalla en una ventana independiente cuando el agente selecciona el botón para compartir pantalla. Para obtener más información, consulte la documentación de Amazon Connect Streams JS
Complete los siguientes pasos para habilitar la pantalla compartida en los escritorios personalizados de los agentes.
-
Compruebe si un contacto puede compartir la pantalla.
// 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()
-
Compruebe si el agente tiene permiso de video.
agent.getPermissions().includes('videoContact');
-
Compruebe si el agente puede iniciar una sesión de pantalla compartida para el contacto que cumpla los requisitos.
fun canStartScreenSharingSession() { return contactgetContactSubtype() === "connect:WebRTC" && contact.hasScreenShareCapability() && agent.getPermissions().includes('videoContact'); }
-
Llame a
startScreenSharing
para iniciar la sesión de pantalla compartida. Esto añadeScreenSharingActivated
al contacto, lo que le permite buscarlo en el registro de contactos.contact.startScreenSharing();
-
Llame a
getVideoConnectionInfo
para unirse a la sesión. Puede omitir este paso si el agente se ha unido a la sesión de video para gestionar el video.if (canStartScreenSharingSession) { contact.startScreenSharing(); const response = await contact.getAgentConnection().getVideoConnectionInfo(); }
-
Únase a la sesión mediante React Components Library de Amazon Chime SDK. Para ver un fragmento de código, consulte el paso 6 de Agregación de soporte para video.
-
Use lo mismo VideoTileGrid
de los componentes de React del SDK de Amazon Chime para renderizar el mosaico de vídeo para compartir pantalla. Para obtener más información, consulte useContentShareEstado y controles useContentShare -
Llame a
stopScreenSharing
cuando finalice la sesión.contact.stopScreenSharing();
-
Puede recibir eventos para la actividad de pantalla compartida suscribiéndose a las siguientes devoluciones de llamadas:
initScreenSharingListeners() { this.contact.onScreenSharingStarted(() => { // Screen sharing session started }); this.contact.onScreenSharingStopped(() => { // Screen sharing session ended }); this.contact.onScreenSharingError((error) => { // Screen sharing session error occurred }); } }