Integrare le chiamate in-app, web e video e la condivisione dello schermo in modo nativo in un’applicazione - Amazon Connect

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Integrare le chiamate in-app, web e video e la condivisione dello schermo in modo nativo in un’applicazione

Come integrare le chiamate in-app, web e video e la condivisione dello schermo di Amazon Connect in un’applicazione

  1. Usa l'StartWebRTCContactAPI Amazon Connect per creare il contatto.

  2. Utilizza quindi i dettagli restituiti dalla chiamata API per partecipare alla chiamata utilizzando la libreria Amazon Chime client per iOS, Android o JavaScript.

Per ulteriori informazioni sulla creazione di partecipanti aggiuntivi, consulta Abilitare le chiamate multiutente in-app, web e video.

Vedi il seguente repository Github per applicazioni di esempio: -calling-examples. amazon-connect-in-app

In che modo un dispositivo client avvia una chiamata in-app o web

Il diagramma seguente mostra la sequenza di eventi necessari per avviare una chiamata in-app o web da un dispositivo client (applicazione per dispositivi mobili o browser).

Un diagramma concettuale che mostra in che modo un dispositivo client avvia una chiamata.
  1. Il cliente utilizza l'applicazione client (sito web o applicazione) per avviare una chiamata in-app o web.

  2. L'applicazione client (sito Web o applicazione mobile) o il server Web utilizza l' Amazon Connect StartWebRTCContactAPI per avviare il contatto a cui passa qualsiasi attributo o contesto. Amazon Connect

  3. L'applicazione client si unisce alla chiamata utilizzando i dettagli restituiti dal StartWebRTCContactpassaggio 2.

  4. (Facoltativo) Il client utilizza l'CreateParticipantConnectionAPI per ricevere un ConnectionToken messaggio utilizzato per inviare DTMF tramite l'API. SendMessage

  5. Il contatto raggiunge il flusso, viene instradato in base al flusso e messo in coda.

  6. L'agente accetta il contatto.

  7. (Facoltativo) Se il video è abilitato per il cliente e l'agente, questi possono avviare il video.

  8. (Facoltativo, non mostrato nel diagramma) È possibile aggiungere altri partecipanti utilizzando e. CreateParticipantCreateParticipantConnection APIs

Nozioni di base

Di seguito sono riportati i passaggi di alto livello per iniziare:

  1. Utilizza l'StartWebRTCContactAPI per creare il contatto. L’API restituisce i dettagli necessari per il client dell’SDK di Amazon Chime per partecipare alla chiamata.

  2. Crea un'istanza dell'oggetto MeetingSessionConfiguration client Amazon Chime SDK utilizzando le configurazioni restituite da. StartWebRTCContact

  3. Crea un’istanza di DefaultMeetingSession del client dell’SDK di Amazon Chime con MeetingSessionConfiguration, che è stata creata nel passaggio 2 per creare una sessione di riunione con il cliente.

    • 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 );
  4. Usa il metodo meetingSession.audioVideo.start() per partecipare alla chiamata con il contatto WebRTC con l'audio.

    • iOS/Android

      meetingSession.audioVideo.start()
    • JavaScript

      await meetingSession.audioVideo.start();
  5. Usa il metodo meetingSession.audioVideo.stop() per riagganciare la chiamata con il contatto WebRTC.

    • iOS/Android

      meetingSession.audioVideo.stop()
    • JavaScript

      meetingSession.audioVideo.stop();

Passaggi facoltativi

Per ulteriori operazioni e una documentazione completa sulle API, consulta le guide generali sulle API specifiche della piattaforma:

Inviare toni DTMF

Per inviare DTMF alla chiamata, APIs sono necessari due Amazon Connect Participant Service: e rispettivamente. CreateParticipantConnectionSendMessage

Nota

contentTypeperché l'API deve essere. SendMessage audio/dtmf

  1. CreateParticipantConnectionInvoca per recuperareConnectionToken. (ParticipantTokenè necessario per chiamare questa API. Puoi trovarlo nella StartWebRTCContactrisposta.)

  2. ConConnectionToken, chiama SendMessageper l'invio di cifre DTMF.

Selezionare i dispositivi audio

Per selezionare il input/output dispositivo audio, puoi utilizzare i metodi del client Amazon Chime SDK per Android e iOS o le funzionalità iOS native per 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);

Disattivare e riattivare l’audio

Per disattivare e riattivare l'audio, usa meetingSession.audioVideo.realtimeLocalMute() e meetingSession.audioVideo.realtimeLocalUnmute().

iOS/Android

meetingSession.audioVideo.realtimeLocalMute() meetingSession.audioVideo.realtimeLocalUnmute()

JavaScript

meetingSession.audioVideo.realtimeMuteLocalAudio(); meetingSession.audioVideo.realtimeUnmuteLocalAudio();

Avviare il video dell’utente

Per avviare un video di te stesso o te stessa, utilizza meetingSession.audioVideo.startLocalVideo(). Consulta le guide alle API della libreria client per ulteriori informazioni su come enumerare e scegliere dispositivi specifici.

iOS/Android

meetingSession.audioVideo.startLocalVideo()

JavaScript

meetingSession.audioVideo.startLocalVideoTile();

Interrompere il video dell’utente

Per interrompere la riproduzione del video di te stesso o te stessa, utilizza meetingSession.audioVideo.stopLocalVideo().

iOS/Android

meetingSession.audioVideo.stopLocalVideo()

JavaScript

meetingSession.audioVideo.stopLocalVideoTile();

Abilitare il video dell’agente

Per consentire la ricezione e il caricamento di video dell’agente all’interno dell’applicazione, utilizza meetingSession.audioVideo.startRemoteVideo(). Dovrai inoltre implementare gli osservatori di riquadri video e associare i riquadri video alle visualizzazioni.

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);

Consulta le guide agli SDK specifiche della piattaforma per i dettagli completi sull’implementazione dei riquadri video.

Disabilitare il video dell’agente

Per interrompere la ricezione e il caricamento di video dell’agente all’interno dell’applicazione, utilizza meetingSession.audioVideo.stopRemoteVideo().

iOS/Android

meetingSession.audioVideo.stopRemoteVideo() meetingSession.audioVideo.unbindVideoView(tileId)

JavaScript

meetingSession.audioVideo.unbindVideoElement(tileId);

Utilizzare i messaggi di dati

Puoi utilizzare messaggi di dati se devi inviare qualsiasi stato dal lato agente all’utente finale. Ad esempio, quando i clienti sono in attesa, puoi inviare un messaggio di dati all'applicazione del cliente per visualizzare un messaggio per informarli che sono in attesa e che la video/screen condivisione è ancora in corso di invio, oppure puoi disattivare la condivisione. video/screen

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);

Ascoltare gli eventi di arresto

Puoi ascoltare gli eventi quando la partecipazione di un contatto termina tramite l’osservatore audioVideoDidStop. I codici di stato specifici possono variare in base alla piattaforma.

Limite di capacità raggiunto per una chiamata

Quando più di sei persone tentano di partecipare alla chiamata, i partecipanti aggiuntivi riceveranno il seguente messaggio di errore e non potranno partecipare finché qualche persona non avrà abbandonato la chiamata.

  • iOS: MeetingSessionStatusCode.audioCallAtCapacity o MeetingSessionStatusCode.audioAuthenticationRejected

  • Android: MeetingSessionStatusCode.AudioCallAtCapacity o MeetingSessionStatusCode.AudioAuthenticationRejected

  • JavaScript: MeetingSessionStatusCode.AudioCallAtCapacity o MeetingSessionStatusCode.AudioAuthenticationRejected

Partecipante rimosso da una chiamata

Quando un partecipante viene rimosso dalla chiamata dall’agente ma il contatto continua per gli altri partecipanti, il partecipante rimosso riceverà il seguente codice di stato. Tieni presente che se la rimozione del partecipante comporta la fine del contatto, il partecipante riceverà questo stato o lo stato di fine contatto.

  • iOS: MeetingSessionStatusCode.audioServerHungup o MeetingSessionStatusCode.audioAuthenticationRejected

  • Android: MeetingSessionStatusCode.AudioServerHungup o MeetingSessionStatusCode.AudioAuthenticationRejected

  • JavaScript: MeetingSessionStatusCode.AudioAttendeeRemoved o MeetingSessionStatusCode.AudioAuthenticationRejected

Termine di un contatto

Quando il contatto effettivo termina completamente per tutti i partecipanti, questi riceveranno il seguente codice di stato.

  • iOS: MeetingSessionStatusCode.audioCallEnded

  • Android: MeetingSessionStatusCode.AudioCallEnded

  • JavaScript: MeetingSessionStatusCode.AudioCallEnded