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

PlayAudio

Reproduza um arquivo de áudio em qualquer parte de uma chamada. O áudio pode ser repetido quantas vezes quiser. O áudio em andamento pode ser finalizado usando os dígitos DTMF definidos em PlaybackTerminators.

Atualmente, o SDK do Amazon Chime só oferece suporte à reprodução de arquivos de áudio do bucket do Amazon Simple Storage Service (Amazon 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. Isso pode ser feito usando o console do S3 ou a interface de linha de comandos (CLI).

O exemplo de código a seguir mostra uma política de bucket 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 de código a seguir mostra uma ação típica.

{ "Type": "PlayAudio", "Parameters": { "CallId": "call-id-1", "ParticipantTag": "LEG-A", "PlaybackTerminators": ["1", "8", "#"], "Repeat": "5", "AudioSource": { "Type": "S3", "BucketName": "valid-S3-bucket-name", "Key": "wave-file.wav" } } }
CallID

DescriçãoCallId do participante em CallDetails.

Valores permitidos: um ID de chamada válido.

Obrigatório – Não, se ParticipantTag estiver presente.

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, se CallId estiver presente.

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

PlaybackTerminator

Descrição – Encerra o áudio em andamento usando a entrada DTMF do usuário

Valores permitidos: uma matriz dos seguintes valores;“0”, ”1”, ”2”, ”3”, ”4”, ”5”, ”6”, ”7”, ”8”, ”9”, ”#”, ”*”

Obrigatório – Não

Valor-padrão: nenhum

Repeat

Descrição – Repete o áudio o número especificado de vezes

Valores permitidos: um número inteiro maior que zero

Obrigatório – Não

Valor-padrão: 1

AudioSource.Type

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

Valores permitidos: S3.

Obrigatório – Sim.

Valor-padrão: nenhum.

AudioSource.BucketName

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

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

Obrigatório – Sim.

Valor-padrão: nenhum.

AudioSource.key

Descrição – Para tipos de origem do S3, o nome do arquivo do bucket do S3 especificado no atributo AudioSource.BucketName.

Valores permitidos: um arquivo de áudio válido.

Obrigatório – Sim.

Valor-padrão: nenhum.

O aplicativo de mídia SIP tenta reproduzir o áudio do URL de origem. Você pode usar arquivos .wav PCM brutos e não compactados com tamanho não superior a 50 MB. O SDK do Amazon Chime recomenda 8 kHz mono.

Quando a última instrução em um plano de discagem é PlayAudio e o arquivo termina a reprodução, ou se um usuário interrompe a reprodução pressionando uma tecla, o aplicativo invoca a AWS Lambda função com o evento mostrado no exemplo a seguir.

{ "SchemaVersion": "1.0", "Sequence": INTEGER, "InvocationEventType": "ACTION_SUCCESSFUL", "ActionData": { "Type": "PlayAudio", "Parameters" : { "CallId": "call-id-1", "AudioSource": { "Type": "S3", "BucketName": "valid-S3-bucket-name", "Key": "wave-file.wav", } } }

Depois que um dígito final interromper o áudio, ele não será repetido.

Tratamento de erros

Quando o arquivo de validação contém erros ou ocorre um erro ao executar uma ação, o aplicativo de mídia SIP chama uma AWS Lambda função com o código de erro apropriado.

Erro Message Motivo

InvalidAudioSource

O 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 URL. Ou o arquivo de áudio pode falhar na validação devido ao formato, à duração, ao tamanho e assim por diante.

SystemException

Erro do sistema ao executar a ação.

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

InvalidActionParameter

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

A ação contém um parâmetro inválido.

O código do exemplo a seguir mostra uma falha de invocação típica.

{ "SchemaVersion": "1.0", "Sequence": 2, "InvocationEventType": "ACTION_FAILED", "ActionData": { "Type": "PlayAudio", "Parameters" : { "CallId": "call-id-1", "AudioSource": { "Type": "S3", "BucketName": "bucket-name", "Key": "audio-file.wav" }, }, "ErrorType": "InvalidAudioSource", "ErrorMessage": "Audio Source parameter value is invalid." } "CallDetails": { ... } }

Veja exemplos de trabalho em GitHub: