RecordAudio - SDK do Amazon Chime

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á.

RecordAudio

Permite que o aplicativo de mídia SIP grave mídia de um determinado ID de chamada. Por exemplo, um aplicativo de correio de voz e anúncios dos participantes da reunião. O aplicativo grava até atingir a duração que você definiu, ou quando um usuário pressiona um dos RecordingTerminators, ou quando o aplicativo detecta o silêncio. Nesses casos, a ação instrui seu aplicativo a colocar o arquivo de mídia resultante no bucket S3 especificado. O bucket do S3 deve pertencer à mesma AWS conta do aplicativo de mídia SIP. Além disso, a ação deve conceder s3:PutObject s3:PutObjectAcl permissão ao diretor do serviço Amazon Chime SDK Voice Connector, responsável pelo serviço Amazon Chime SDK Voice Connector. voiceconnector.chime.amazonaws.com

nota

As gravações feitas usando esse atributo podem estar sujeitas a leis ou regulamentos relacionados à gravação de comunicações eletrônicas. É responsabilidade sua e de seus usuários finais cumprir todas as leis aplicáveis em relação à gravação, incluindo notificar adequadamente todos os participantes de uma sessão ou comunicação gravada de que a sessão ou comunicação está sendo gravada e obter o consentimento deles.

O exemplo a seguir dá permissão s3:PutObject e s3:PutObjectAcl à entidade principal responsável pelo serviço de conector de voz do SDK do Amazon Chime.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "SMARead", "Effect": "Allow", "Principal": { "Service": "voiceconnector.chime.amazonaws.com" }, "Action": [ "s3:PutObject", "s3:PutObjectAcl" ], "Resource": "arn:aws:s3:::bucket-name/*" } ] }

O exemplo a seguir interrompe a gravação quando o chamador pressiona a tecla de tecla jogo-da-velha (#), ou 10 segundos se passam sem atividade, ou o chamador permanece em silêncio por 3 segundos e grava o arquivo de mídia resultante no local definido pelo parâmetro RecordingDestination.

nota

Este exemplo usa o parâmetro CallId. Você pode usar o parâmetro ParticipantTag em vez disso, mas não pode usar os dois.

{ "Type": "RecordAudio", "Parameters": { "CallId": "call-id-1", "DurationInSeconds": "10", "SilenceDurationInSeconds": 3, "SilenceThreshold": 100, "RecordingTerminators": [ "#" ], "RecordingDestination": { "Type": "S3", "BucketName": "valid-bucket-name", "Prefix": "valid-prefix-name" } } }
CallId

DescriçãoCallId do participante na CallDetails invocação da AWS Lambda função

Valores permitidos: um ID de chamada válido

Obrigatório – Não

Valor-padrão: nenhum

ParticipantTag

DescriçãoParticipantTag de um dos participantes conectados no CallDetails

Valores permitidos: LEG-A ou LEG-B

Obrigatório – Não

Valor-padrão: ParticipantTag do callLeg invocado ignorado se você especificar CallId

RecordingDestination.Type

Descrição – Tipo de destino. Somente S3.

Valores permitidos: S3

Obrigatório – Sim

Valor-padrão: nenhum

RecordingDestination.BucketName

Descrição – Um nome de bucket S3 válido. O bucket deve ter acesso à entidade principal responsável pelo serviço de conector de voz do SDK do Amazon Chime, voiceconnector.chime.amazonaws.com.

Valores permitidos: um bucket S3 válido para o qual o SDK do Amazon Chime tem acesso às ações s3:PutObject e s3:PutObjectAcl.

Obrigatório – Sim

Valor-padrão: nenhum

RecordingDestination.Prefix

Descrição – prefixo S3 do arquivo de gravação

Valores permitidos: um nome de prefixo válido contendo até 979 caracteres seguros. Para obter mais informações sobre caracteres seguros, consulte Caracteres seguros no Guia do usuário do Amazon Simple Storage Service.

Obrigatório – Não

Padrão – Nenhum. Se não for especificada, a gravação será salva na raiz do bucket do S3.

DurationInSeconds

Descrição – A duração da gravação, em segundos

Valores permitidos: >0

Obrigatório – Não

Valor-padrão: nenhum

SilenceDurationInSeconds

Descrição – A duração do silêncio, em segundos, após a qual a gravação é paralisada. Se não for especificado, a detecção de silêncio será desabilitada.

Valores permitidos: [1; 1000]

Obrigatório – Não

Valor-padrão: 200

SilenceThreshold

Descrição – Nível de ruído considerado "silêncio". Se você não especificar um valor para SilenceDurationInSeconds, este parâmetro será ignorado.

Valores de referência (níveis de ruído e limites para tratar o ruído como silêncio):
  • 1—30dB ou menos, como uma sala silenciosa

  • 100—40-50 dB, como um sussurro ou um escritório silencioso

  • 200—60dB, como um escritório lotado

  • 1000—75 dB, como uma pessoa barulhenta ou música

Valores permitidos: [1; 1000]

Obrigatório – Não

Valor-padrão: 200

RecordingTerminators

Descrição – Lista todos os terminadores de gravação disponíveis.

Valores permitidos: uma matriz de dígitos e símbolos únicos de [123456789*0#]

Obrigatório – Sim

Valor-padrão: nenhum

Como tratar eventos ACTION_SUCCESSFUL

Quando a gravação termina, o aplicativo de mídia SIP do Amazon Chime SDK chama a AWS Lambda função e passa para ela o evento ACTION_SUCCESSFUL, junto com os resultados da invocação.

{ "SchemaVersion": "1.0", "Sequence": INTEGER, "InvocationEventType": "ACTION_SUCCESSFUL", "ActionData": { "Type" : "RecordAudio", "Parameters": { ... }, "RecordingDestination": { "Type": "S3", "BucketName": "valid-bucket-name", "Key": "valid-S3-key" }, "RecordingTerminatorUsed":"#" }, "CallDetails": { ... } }

O evento ACTION_SUCCESSFUL contém ActionData, que contém os seguintes campos:

Type

Descrição – O tipo da ação, RecordAudio.

Parameters

Descrição – Os parâmetros da ação.

RecordingDestination.Type

Descrição – Tipo de destino. Somente S3.

RecordingDestination.BucketName

Descrição – O bucket do S3 que contém o arquivo de gravação.

RecordingDestination.Key

Descrição – A chave S3 do arquivo de gravação.

RecordingTerminatorUsed

Descrição – O terminador usado para parar a gravação – um dos terminadores passados no parâmetro RecordingTerminators. Se a gravação parar após atingir a duração máxima (DurationInSeconds) ou devido ao silêncio (SilenceDurationInSeconds), esse par de valores-chave não será incluído na saída.

Tratamento de erros

Para erros de validação, o aplicativo de mídia SIP chama a AWS Lambda função com a mensagem de erro apropriada. A seguinte tabela lista as mensagens de erro possíveis.

Erro Message Motivo

InvalidActionParameter

O parâmetro CallId ou ParticipantTag para a ação é inválido.

O valor do parâmetro DurationInSeconds é inválido.

O valor do parâmetro SilenceDurationInSeconds é inválido.

O valor do parâmetro SilenceThreshold é inválido.

O valor do parâmetro RecordingDestination é inválido.

Ocorreu um erro ao fazer o upload da gravação para o bucket do S3.

Qualquer parâmetro é inválido.

SystemException

Erro do sistema ao executar uma ação.

Ocorreu outro tipo de erro do sistema na execução de uma ação.

Manipulando ACTION_FAILED eventos

Quando a ação falha ao gravar a mídia em um trecho de chamada, o aplicativo de mídia SIP invoca uma AWS Lambda função com o ACTION_FAILED tipo de evento. Veja o exemplo a seguir.

{ "SchemaVersion": "1.0", "Sequence": 5, "InvocationEventType": "ACTION_FAILED", "ActionData": { "Type" : "RecordAudio", "Parameters": { ... }, "ErrorType": "InvalidActionParameter", "ErrorMessage": "RecordingDestination parameter value is invalid." }, "CallDetails": { ... } }

Veja um exemplo prático em GitHub: https://github.com/aws-samples/ amazon-chime-sma-bridging