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á.
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 Amazon Chime SDK recomenda 8 mono. KHz
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.
Gerenciamento 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 | Mensagem | 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: