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.
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ónCallDetails
de la AWS Lambda funciónValores permitidos: un identificador de llamada válido
Obligatorio: no
Valor predeterminado: ninguno
- ParticipantTag
-
Descripción: la
ParticipantTag
de uno de los participantes conectados en losCallDetails
Valores permitidos:
LEG-A
oLEG-B
Obligatorio: no
Valor predeterminado:
ParticipantTag
delcallLeg
invocado ignorado si se especifica elCallId
- 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": {
...
}
}
Gestión 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 |
---|---|---|
|
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. |
|
El parámetro |
Un |
|
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