Integre o aplicativo, a web, a videochamada e o compartilhamento de tela de forma nativa em seu aplicativo - Amazon Connect

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Integre o aplicativo, a web, a videochamada e o compartilhamento de tela de forma nativa em seu aplicativo

Para integrar o Amazon Connect no aplicativo, na web, nas videochamadas e no compartilhamento de tela com seu aplicativo:

  1. Use a StartWebRTCContactAPI Amazon Connect para criar o contato.

  2. Em seguida, use os detalhes retornados pela chamada de API para participar da chamada usando a biblioteca Amazon Chime cliente para iOS, Android ou JavaScript.

Para obter informações sobre a criação de participantes adicionais, consulteHabilite chamadas multiusuário no aplicativo, pela web e por vídeo.

Consulte o seguinte repositório do Github para exemplos de aplicativos: amazon-connect-in-app -calling-examples.

Como um dispositivo cliente inicia uma chamada na aplicação ou na web

O diagrama a seguir mostra a sequência de eventos de um dispositivo cliente (aplicativo móvel ou navegador) para iniciar uma chamada na aplicação ou pela web.

Um diagrama conceitual que mostra como um dispositivo cliente inicia uma chamada.
  1. O cliente usa a aplicação cliente (site ou aplicação) para iniciar uma chamada na aplicação ou na web.

  2. O aplicativo cliente (site ou aplicativo móvel) ou servidor da web usa a Amazon Connect StartWebRTCContactAPI para iniciar o contato, passando quaisquer atributos ou contexto para Amazon Connect o.

  3. O aplicativo cliente ingressa na chamada usando os detalhes retornados StartWebRTCContactna etapa 2.

  4. (Opcional) O cliente usa a CreateParticipantConnectionAPI para receber uma ConnectionToken que é usada para enviar DTMF por meio da API. SendMessage

  5. O contato atinge o fluxo é encaminhado com base no fluxo e colocado na fila.

  6. O atendente aceita o contato.

  7. (Opcional) Se o vídeo estiver habilitado para o cliente e o atendente, eles poderão iniciar o vídeo.

  8. (Opcional - não mostrado no diagrama) Participantes adicionais podem ser adicionados usando o CreateParticipantCreateParticipantConnection APIse.

Conceitos básicos

Estas são as etapas de alto nível para começar:

  1. Use a StartWebRTCContactAPI para criar o contato. A API retorna os detalhes necessários para que o cliente Amazon Chime SDK participe da chamada.

  2. Instancie o objeto MeetingSessionConfiguration cliente do Amazon Chime SDK usando as configurações retornadas por. StartWebRTCContact

  3. Instancie o DefaultMeetingSession cliente Amazon Chime SDK MeetingSessionConfiguration com, que foi criado na etapa 2 para criar uma sessão de reunião com o 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. Use o método meetingSession.audioVideo.start() para unir o contato WebRTC ao áudio.

    • iOS/Android

      meetingSession.audioVideo.start()
    • JavaScript

      await meetingSession.audioVideo.start();
  5. Use o método meetingSession.audioVideo.stop() para desligar o contato WebRTC.

    • iOS/Android

      meetingSession.audioVideo.stop()
    • JavaScript

      meetingSession.audioVideo.stop();

Etapas opcionais

Para operações adicionais e documentação abrangente da API, consulte os guias de visão geral da API específicos da plataforma:

Enviar tons DTMF

Para enviar o DTMF para a chamada, APIs são necessários dois Amazon Connect Participant Service: CreateParticipantConnectione respectivamente. SendMessage

nota

contentTypepara a SendMessage API deve seraudio/dtmf.

  1. Invoque CreateParticipantConnectionpara recuperarConnectionToken. (ParticipantTokené necessário para chamar essa API. Você pode encontrá-la na StartWebRTCContactresposta.)

  2. Com oConnectionToken, ligue SendMessagepara enviar dígitos DTMF.

Selecione dispositivos de áudio

Para selecionar o input/output dispositivo de áudio, você pode usar os métodos do cliente Amazon Chime SDK para Android e iOS ou os recursos nativos do iOS para 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);

Silenciar e ativar o áudio

Para ativar e desativar o som, use meetingSession.audioVideo.realtimeLocalMute() e meetingSession.audioVideo.realtimeLocalUnmute().

iOS/Android

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

JavaScript

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

Iniciar vídeo próprio

Para iniciar o vídeo pessoal, use meetingSession.audioVideo.startLocalVideo() o. Consulte os guias da API da biblioteca cliente para obter mais informações sobre como enumerar e escolher dispositivos específicos.

iOS/Android

meetingSession.audioVideo.startLocalVideo()

JavaScript

meetingSession.audioVideo.startLocalVideoTile();

Pare o vídeo pessoal

Para interromper o vídeo automático, use meetingSession.audioVideo.stopLocalVideo() o.

iOS/Android

meetingSession.audioVideo.stopLocalVideo()

JavaScript

meetingSession.audioVideo.stopLocalVideoTile();

Ativar vídeo do agente

Para permitir o recebimento e o carregamento de vídeo do agente dentro do aplicativo, use meetingSession.audioVideo.startRemoteVideo() o. Você também precisará implementar observadores de blocos de vídeo e vincular blocos de vídeo para exibir visualizações.

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

Consulte os guias de SDK específicos da plataforma para obter detalhes completos da implementação do mosaico de vídeo.

Desativar vídeo do agente

Para impedir o recebimento e o carregamento de vídeo do agente dentro do aplicativo, use o. meetingSession.audioVideo.stopRemoteVideo()

iOS/Android

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

JavaScript

meetingSession.audioVideo.unbindVideoElement(tileId);

Use mensagens de dados

Você pode usar mensagens de dados se precisar enviar qualquer status do lado do agente para o usuário final. Por exemplo, quando os clientes estão em espera, você pode enviar uma mensagem de dados ao aplicativo do cliente para exibir uma mensagem informando que eles estão em espera e que o video/screen compartilhamento ainda está sendo enviado, ou você pode desativar o video/screen compartilhamento.

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

Ouça os principais eventos

Você pode ouvir os eventos quando a participação de um contato termina por meio do audioVideoDidStop observador. Os códigos de status específicos podem variar de acordo com a plataforma.

A chamada atinge a capacidade

Quando mais de 6 pessoas tentarem participar da chamada, outros participantes receberão o seguinte erro e não poderão participar até que outros saiam.

  • iOS: MeetingSessionStatusCode.audioCallAtCapacity ou MeetingSessionStatusCode.audioAuthenticationRejected

  • Android: MeetingSessionStatusCode.AudioCallAtCapacity ou MeetingSessionStatusCode.AudioAuthenticationRejected

  • JavaScript: MeetingSessionStatusCode.AudioCallAtCapacity ou MeetingSessionStatusCode.AudioAuthenticationRejected

Participante removido da chamada

Quando um participante é removido da chamada pelo agente, mas o contato continua para outros participantes, ele receberá o seguinte código de status. Observe que, se a remoção do participante levar ao término do contato, ele receberá esse status ou o status de término do contato.

  • iOS: MeetingSessionStatusCode.audioServerHungup ou MeetingSessionStatusCode.audioAuthenticationRejected

  • Android: MeetingSessionStatusCode.AudioServerHungup ou MeetingSessionStatusCode.AudioAuthenticationRejected

  • JavaScript: MeetingSessionStatusCode.AudioAttendeeRemoved ou MeetingSessionStatusCode.AudioAuthenticationRejected

O contato termina

Quando o contato real terminar completamente para todos os participantes, eles receberão o seguinte código de status.

  • iOS: MeetingSessionStatusCode.audioCallEnded

  • Android: MeetingSessionStatusCode.AudioCallEnded

  • JavaScript: MeetingSessionStatusCode.AudioCallEnded