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

PlayAudioAndGetDigits

Reproduce audio y recopila dígitos DTMF. Si se produce un error, por ejemplo, si el usuario no introduce el número correcto de dígitos del DTMF, la acción reproduce el audio “defectuoso” y, a continuación, reproduce el audio principal hasta que la aplicación multimedia SIP agote el número de intentos definido en el parámetro Repeat.

Debe reproducir archivos de audio del bucket de S3. El bucket 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, voiceconnector.chime.amazonaws.com. Para ello, puede utilizar la consola de S3 o la CLI.

La política de bucket de S3 típica se muestra en el ejemplo de código siguiente.

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

A continuación se muestra una acción típica de PlayAudioAndGetDigits.

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

Descripción: CallId del participante en la invocación CallDetails de la AWS Lambda función

Valores permitidos: un identificador de llamada válido

Obligatorio: no

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

Valor predeterminado: ParticipantTag del callLeg invocado ignorado si se especifica el CallId

InputDigitsRegex

Descripción: patrón de expresión regular

Valores permitidos: un patrón de expresión regular válido

Obligatorio: no

Valor predeterminado: ninguno

AudioSource.Type

Descripción: tipo de fuente para el tipo de archivo de audio

Valores permitidos: un bucket S3

Obligatorio: sí

Valor predeterminado: - "S3"

AudioSource.BucketName

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

Valores permitidos: un bucket de S3 válido al que Amazon Chime SDK tiene acceso a las acciones de s3:GetObject.

Obligatorio: sí

Valor predeterminado: ninguno

AudioSource.Key

Descripción: el nombre clave del objeto de audio del AudioSource.BucketName del bucket de S3.

Valores permitidos: archivos de audio válidos

Obligatorio: sí

Valor predeterminado: ninguno

FailureAudioSource.Type

Descripción: el nombre clave del objeto de audio del FailureAudioSource.BucketName del bucket de S3.

Valores permitidos: S3

Obligatorio: sí

Valor predeterminado: ninguno

FailureAudioSource.BucketName

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

Valores permitidos: un bucket de S3 válido al que Amazon Chime SDK tiene acceso a las acciones de s3:GetObject.

Obligatorio: sí

Valor predeterminado: ninguno

FailureAudioSource.Key

Descripción: el nombre clave del objeto de audio del FailureAudioSource.BucketName del bucket de S3.

Valores permitidos: archivos de audio válidos

Obligatorio: sí

Valor predeterminado: ninguno

MinNumberOfDigits

Descripción: el número mínimo de dígitos que se deben capturar antes de que se agote el tiempo de espera o se reproduzca el audio de “llamada fallida”.

Valores permitidos: – >=0

Obligatorio: no

Valor predeterminado: 0

MaxNumberOfDigits

Descripción: el número máximo de dígitos que se deben capturar antes de detenerse sin un dígito final.

Valores permitidos: – >MinNumberOfDigits

Obligatorio: no

Valor predeterminado: 128

TerminatorDigits

Descripción: dígitos que se utilizan para finalizar la entrada si el usuario introduce un número inferior al MaxNumberOfDigits

Valores permitidos: cualquiera de estos dígitos: 0123456789#*

Obligatorio: no

Valor predeterminado: #

InBetweenDigitsDurationInMilliseconds

Descripción: el tiempo de espera en milisegundos entre las entradas de dígitos antes de la reproducción de FailureAudio.

Valores permitidos: >0

Obligatorio: no

Valor predeterminado: si no se especifica, el valor predeterminado es RepeatDurationInMilliseconds.

Repeat

Descripción: número total de intentos de obtener dígitos

Valores permitidos: >0

Obligatorio: no

Valor predeterminado: 1

RepeatDurationInMilliseconds

Descripción: tiempo de espera en milisegundos entre intentos de Repeat

Valores permitidos: >0

Obligatorio: sí

Valor predeterminado: ninguno

La aplicación multimedia SIP siempre invoca su AWS Lambda función después de ejecutar la PlayAudioAndGetDigits acción, con un tipo de evento de ACTION_FAILED invocación ACTION_SUCCESSFUL o. Cuando la aplicación recopila dígitos correctamente, establece el valor ReceivedDigits del objeto ActionData. El siguiente ejemplo muestra la estructura de eventos de invocación de esa función. AWS Lambda

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

Cuando se produce un error de validación, la aplicación multimedia SIP llama a la función AWS Lambda con el mensaje de error correspondiente. En la siguiente tabla se enumeran los posibles mensajes de error.

Error Mensaje Motivo

InvalidAudioSource

El valor del 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 el bucket de S3. O bien, es posible que el archivo de audio no se valide debido a su duración, tamaño o formato no compatible.

InvalidActionParameter

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

Un CallId, ParticipantTag, u otro parámetro no es válido.

SystemException

Error del sistema al ejecutar la acción.

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

Cuando la acción no recopila el número de dígitos especificado debido a un tiempo de espera o a demasiados reintentos, la aplicación multimedia SIP invoca la AWS Lambda función con el ACTION_FAILED tipo de evento de invocación.

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

Consulte algunos ejemplos prácticos sobre: GitHub