PlayAudioAndGetDigits - Amazon Chime SDK

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

PlayAudioAndGetDigits

Reproduz áudio e reúne dígitos DTMF. Se ocorrer uma falha, como um usuário não digitar o número correto de dígitos DTMF, a ação reproduz o áudio de "falha" e, em seguida, reproduz o áudio principal até que o aplicativo de mídia SIP esgote o número de tentativas definido no parâmetro Repeat.

Você deve reproduzir arquivos de áudio do bucket do S3. O bucket do S3 deve pertencer à mesma AWS conta do aplicativo de mídia SIP. Além disso, você deve dar a permissão s3:GetObject à entidade principal responsável pelo serviço de conector de voz do SDK do Amazon Chime, voiceconnector.chime.amazonaws.com. Você pode usar o console S3 ou a CLI para fazer isso.

O exemplo de código a seguir mostra uma política de bucket do S3 típica.

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

O serviço de áudio lê e grava no seu bucket do S3 em nome do seu aplicativo de mídia Sip. Para evitar o problema do substituto confuso, você pode restringir o acesso ao bucket do S3 a um único aplicativo de mídia SIP.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "SMARead", "Effect": "Allow", "Principal": { "Service": "voiceconnector.chime.amazonaws.com" }, "Action": [ "s3:GetObject" ], "Resource": "arn:aws:s3:::bucket-name/*", "Condition": { "StringEquals": { "aws:SourceAccount": "aws-account-id", "aws:SourceArn": "arn:aws:chime:region:aws-account-id:sma/sip-media-application-id" } } } ] }

O exemplo a seguir mostra uma ação PlayAudioAndGetDigits típica.

{ "Type" : "PlayAudioAndGetDigits", "Parameters" : { "CallId": "call-id-1", "ParticipantTag": "LEG-A" "InputDigitsRegex": "^\d{2}#$", "AudioSource": { "Type": "S3", "BucketName": "bucket-name", "Key": "audio-file-1.wav" }, "FailureAudioSource": { "Type": "S3", "BucketName": "bucket-name", "Key": "audio-file-failure.wav" }, "MinNumberOfDigits": 3, "MaxNumberOfDigits": 5, "TerminatorDigits": ["#"], "InBetweenDigitsDurationInMilliseconds": 5000, "Repeat": 3, "RepeatDurationInMilliseconds": 10000 } }
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

InputDigitsRegex

Descrição – Um padrão de expressão regular

Valores permitidos: um padrão de expressão regular válido

Obrigatório – Não

Valor-padrão: nenhum

AudioSource.Type

Descrição – Tipo de fonte para o tipo de arquivo de áudio

Valores permitidos: um bucket S3

Obrigatório – Sim

Valor-padrão: "S3"

AudioSource.BucketName

Descrição — Para AudioSource.Type valores do S3, o bucket do S3 deve pertencer à mesma AWS conta do aplicativo de mídia SIP. O bucket S3 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:GetObject.

Obrigatório – Sim

Valor-padrão: nenhum

AudioSource.Key

Descrição – O nome da chave do objeto de áudio no bucket do S3 AudioSource.BucketName.

Valores permitidos: arquivos de áudio válidos

Obrigatório – Sim

Valor-padrão: nenhum

FailureAudioSource.Type

Descrição – O nome da chave do objeto de áudio no bucket do S3 FailureAudioSource.BucketName.

Valores permitidos: S3

Obrigatório – Sim

Valor-padrão: nenhum

FailureAudioSource.BucketName

Descrição — Para tipos de origem do S3, o bucket do S3 deve pertencer à mesma AWS conta do aplicativo de mídia SIP. A entidade principal responsável pelo serviço de conector de voz do SDK do Amazon Chime, voiceconnector.chime.amazonaws.com, deve ter acesso ao bucket do S3.

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

Obrigatório – Sim

Valor-padrão: nenhum

FailureAudioSource.Key

Descrição – O nome da chave do objeto de áudio no bucket do S3 FailureAudioSource.BucketName.

Valores permitidos: arquivos de áudio válidos

Obrigatório – Sim

Valor-padrão: nenhum

MinNumberOfDigits

Descrição – O número mínimo de dígitos a serem capturados antes de atingir o tempo limite ou reproduzir o áudio de "falha na chamada".

Valores permitidos: >=0

Obrigatório – Não

Valor-padrão: 0

MaxNumberOfDigits

Descrição – O número máximo de dígitos a serem capturados antes de parar sem um dígito final.

Valores permitidos: >MinNumberOfDigits

Obrigatório – Não

Valor-padrão: 128

TerminatorDigits

Descrição – Dígitos usados para finalizar a entrada se o usuário digitar menos do que MaxNumberOfDigits

Valores permitidos: qualquer um desses dígitos: 0123456789#*

Obrigatório – Não

Valor-padrão: #

InBetweenDigitsDurationInMilliseconds

Descrição – O tempo de espera em milissegundos entre as entradas de dígitos antes de reproduzir o FailureAudio.

Valores permitidos: >0

Obrigatório – Não

Valor-padrão: se não for especificado, o valor assumirá RepeatDurationInMilliseconds como padrão.

Repeat

Descrição – Número total de tentativas de obter dígitos

Valores permitidos: >0

Obrigatório – Não

Valor-padrão: 1

RepeatDurationInMilliseconds

Descrição – Tempo de espera em milissegundos entre as Repeat tentativas

Valores permitidos: >0

Obrigatório – Sim

Valor-padrão: nenhum

O aplicativo de mídia SIP sempre invoca sua AWS Lambda função após executar a PlayAudioAndGetDigits ação, com um tipo de evento de ACTION_FAILED invocação ACTION_SUCCESSFUL ou. Quando o aplicativo coleta dígitos com sucesso, ele define o valor ReceivedDigits no objeto ActionData. O exemplo a seguir mostra a estrutura do evento de invocação dessa AWS Lambda função.

{ "SchemaVersion": "1.0", "Sequence": 3, "InvocationEventType": "ACTION_SUCCESSFUL", "ActionData": { "Type": "PlayAudioAndGetDigits", "Parameters" : { "CallId": "call-id-1", "ParticipantTag": "LEG-A", "InputDigitsRegex": "^\d{2}#$", "AudioSource": { "Type": "S3", "BucketName": "bucket-name", "Key": "audio-file-1.wav" }, "FailureAudioSource": { "Type": "S3", "BucketName": "bucket-name", "Key": "audio-file-failure.wav" }, "MinNumberOfDigits": 3, "MaxNumberOfDigits": 5, "TerminatorDigits": ["#"], "InBetweenDigitsDurationInMilliseconds": 5000, "Repeat": 3, "RepeatDurationInMilliseconds": 10000 }, "ErrorType": "InvalidAudioSource", "ErrorMessage": "Audio Source parameter value is invalid." }, "ReceivedDigits": "1234" }, "CallDetails": { ... } }
Tratamento de erros

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

Erro Message Motivo

InvalidAudioSource

O valor do parâmetro da fonte de áudio é inválido.

Esse erro pode ocorrer por vários motivos. Por exemplo, o aplicativo de mídia SIP não pode acessar o arquivo devido a problemas de permissão ou problemas com o bucket do S3. Ou o arquivo de áudio pode falhar na validação devido à duração, tamanho ou formato não suportado.

InvalidActionParameter

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

Um parâmetro CallId, ParticipantTag, ou outro não é válido.

SystemException

Erro do sistema ao executar a ação.

Ocorreu um erro do sistema na execução da ação.

Quando a ação falha em coletar o número de dígitos especificados devido a um tempo limite ou a muitas tentativas, o aplicativo de mídia SIP invoca a AWS Lambda função com o tipo de evento de invocação. ACTION_FAILED

{ "SchemaVersion": "1.0", "Sequence": 4, "InvocationEventType": "ACTION_FAILED", "ActionData": { "Type": "PlayAudioAndGetDigits", "Parameters" : { "CallId": "call-id-1", "ParticipantTag": "LEG-A", "InputDigitsRegex": "^\d{2}#$", "AudioSource": { "Type": "S3", "BucketName": "bucket-name", "Key": "audio-file-1.wav" }, "FailureAudioSource": { "Type": "S3", "BucketName": "bucket-name", "Key": "audio-file-failure.wav" }, "MinNumberOfDigits": 3, "MaxNumberOfDigits": 5, "TerminatorDigits": ["#"], "InBetweenDigitsDurationInMilliseconds": 5000, "Repeat": 3, "RepeatDurationInMilliseconds": 10000 }, "ErrorType": "InvalidAudioSource", "ErrorMessage": "Audio Source parameter value is invalid." } "CallDetails": { ... } }

Veja exemplos de trabalho em GitHub: