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ção –
CallId
do participante emCallDetails
.Valores permitidos: um ID de chamada válido.
Obrigatório – Não, se
ParticipantTag
estiver presente.Valor-padrão: nenhum.
- ParticipantTag
-
Descrição –
ParticipantTag
de um dos participantes conectados noCallDetails
.Valores permitidos:
LEG-A
ouLEG-B
.Obrigatório – Não, se
CallId
estiver presente.Valor-padrão:
ParticipantTag
docallLeg
invocado. Ignorado se você especificarCallId
. - 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 |
---|---|---|
|
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. |
|
Erro do sistema ao executar a ação. |
Ocorreu outro erro do sistema na execução da ação. |
|
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: