PlayAudio - Amazon Chime SDK

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

PlayAudio

Reproduzca un archivo de audio en cualquier parte de una llamada. El audio se puede repetir tantas veces como se desee. El audio en curso se puede terminar utilizando los dígitos DTMF configurados en PlaybackTerminators.

En la actualidad, Amazon Chime SDK solo habilita a reproducir archivos de audio del bucket de Amazon Simple Storage Service (Amazon S3). El bucket de S3 debe pertenecer a la misma AWS cuenta que la aplicación multimedia SIP. Además, debe conceder el permiso s3:GetObject a la entidad principal del servicio Amazon Chime SDK Voice Connector. Para ello, puede usar la consola de S3 o la interfaz de la línea de comandos (CLI).

El siguiente ejemplo de código muestra una 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" } } } ] }

El servicio de audio lee y escribe en su bucket de S3 en nombre de su aplicación multimedia Sip. Para evitar el problema de adjunto confuso, puede restringir el acceso al bucket de S3 a una única aplicación multimedia 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" } } } ] }

El siguiente ejemplo de código muestra una acción 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

Descripción: la CallId del participante en los CallDetails.

Valores permitidos: un identificador de llamada válido.

Obligatorio: no, si ParticipantTag está presente.

Valor predeterminado: ninguno.

ParticipantTag

Descripción: la ParticipantTag de uno de los participantes conectados en los CallDetails.

Valores permitidos: LEG-A o LEG-B.

Obligatorio: no, si CallId está presente.

Valor predeterminado: ParticipantTag del callLeg invocado. Se omite si se especifica CallId.

PlaybackTerminator

Descripción: finaliza el audio en curso mediante la entrada DTMF del usuario

Valores permitidos: matriz de los siguientes valores: «0», «1», «2», «3», «4», «5», «6», «7», «8», «9», «#», «*»

Obligatorio: no

Valor predeterminado: ninguno

Repeat

Descripción: repite el audio el número de veces especificado

Valores permitidos: un número entero mayor que cero

Obligatorio: no

Valor predeterminado: 1

AudioSource.Type

Descripción: tipo de fuente del archivo de audio.

Valores permitidos: S3.

Obligatorio: sí.

Valor predeterminado: ninguno.

AudioSource.BucketName

Descripción: para los tipos de fuentes S3, el bucket S3 debe pertenecer a la misma AWS cuenta que la aplicación SIP. El bucket debe tener acceso a la entidad principal de Amazon Chime SDK Voice Connector, que es voiceconnector.chime.amazonaws.com.

Valores permitidos: un bucket de S3 válido para el que Amazon Chime SDK tiene acceso a la acción de s3:GetObject.

Obligatorio: sí.

Valor predeterminado: ninguno.

AudioSource.key

Descripción: para los tipos de fuentes de S3, el nombre del archivo del bucket de S3 especificado en el atributo AudioSource.BucketName.

Valores permitidos: un archivo de audio válido.

Obligatorio: sí.

Valor predeterminado: ninguno.

La aplicación multimedia SIP intenta reproducir el audio desde la URL de origen. Puede utilizar archivos.wav PCM sin procesar y sin comprimir de un tamaño no superior a 50 MB. Amazon Chime SDK recomienda 8 kHz en mono.

Cuando la última instrucción de un plan de marcado es PlayAudio y el archivo termina de reproducirse, o si un usuario detiene la reproducción pulsando una tecla, la aplicación invoca la AWS Lambda función con el evento que se muestra en el siguiente ejemplo.

{ "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", } } }

Cuando un dígito final detenga el audio, no se repetirá.

Control de errores

Cuando el archivo de validación contiene errores o se produce un error al ejecutar una acción, la aplicación multimedia SIP llama a una AWS Lambda función con el código de error correspondiente.

Error Mensaje Motivo

InvalidAudioSource

El parámetro de la fuente de audio no es válido.

Este error puede producirse por varios motivos. Por ejemplo, la aplicación multimedia SIP no puede acceder al archivo debido a problemas con los permisos o con la URL. O bien, es posible que el archivo de audio no pase la validación debido al formato, la duración, el tamaño, etc.

SystemException

Error del sistema al ejecutar la acción.

Se ha producido otro error del sistema al ejecutar la acción.

InvalidActionParameter

CallId o ParticipantTag el parámetro de acción no es válido.

La acción contiene un parámetro no válido.

El siguiente ejemplo de código muestra un error de invocación típico.

{ "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": { ... } }

Consulte los ejemplos prácticos en GitHub: