Integrar chamadas na aplicação, pela web, por vídeo e compartilhamento de tela de maneira nativa à sua aplicação - 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á.

Integrar chamadas na aplicação, pela web, por vídeo e compartilhamento de tela de maneira nativa à sua aplicação

Para integrar chamadas na aplicação, pela web, por vídeo e compartilhamento de tela do Amazon Connect à sua aplicação:

  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 acessar informações sobre a criação de participantes adicionais, consulte Habilitar chamadas na aplicação, pela web e por vídeo com vários usuários.

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 exibe os detalhes necessários para que o SDK do Amazon Chime participe da chamada.

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

  3. Instancie DefaultMeetingSession cliente do SDK do Amazon Chime com MeetingSessionConfiguration, 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 de APIs específicas 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.

Selecionar 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 próprio, use o meetingSession.audioVideo.startLocalVideo(). Consulte os guias de APIs da biblioteca cliente para acessar mais informações sobre como enumerar e escolher dispositivos específicos.

iOS/Android

meetingSession.audioVideo.startLocalVideo()

JavaScript

meetingSession.audioVideo.startLocalVideoTile();

Parar vídeo próprio

Para interromper o vídeo próprio, use o meetingSession.audioVideo.stopLocalVideo().

iOS/Android

meetingSession.audioVideo.stopLocalVideo()

JavaScript

meetingSession.audioVideo.stopLocalVideoTile();

Habilitar vídeo do atendente

Para permitir o recebimento e o carregamento de vídeo do atendente dentro da aplicação móvel, use meetingSession.audioVideo.startRemoteVideo(). 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 SDKs específicos da plataforma para ver detalhes completos da implementação do bloco de vídeos.

Desabilitar vídeo do atendente

Para não permitir o recebimento e o carregamento de vídeo do atendente dentro da aplicação móvel, use meetingSession.audioVideo.stopRemoteVideo().

iOS/Android

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

JavaScript

meetingSession.audioVideo.unbindVideoElement(tileId);

Usar mensagens de dados

Você poderá usar mensagens de dados se precisar enviar qualquer status do lado do atendente 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);

Ouvir eventos interrompidos

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

A chamada atinge a capacidade

Quando mais de seis pessoas tentarem participar da chamada, outros participantes receberão o erro a seguir 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 atendente, mas o contato continua para outros participantes, ele recebe o código de status a seguir. Observe que, se a remoção do participante causar o 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

Fim do contato

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

  • iOS: MeetingSessionStatusCode.audioCallEnded

  • Android: MeetingSessionStatusCode.AudioCallEnded

  • JavaScript: MeetingSessionStatusCode.AudioCallEnded