Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
PlayAudioAndGetDigits
Lit le son et rassemble les chiffres DTMF. En cas d'échec, par exemple si l'utilisateur ne saisit pas le nombre correct de chiffres DTMF, l'action émet le signal audio « échec », puis rejoue le son principal jusqu'à ce que l'application multimédia SIP ait épuisé le nombre de tentatives défini dans leRepeat
paramètre.
Vous devez lire des fichiers audio depuis le compartiment S3. Le compartiment S3 doit appartenir au mêmeAWS compte que l'application multimédia SIP. En outre, vous devez donner l's3:GetObject
autorisation au responsable du service Amazon Chime SDK Voice Connector,voiceconnector.chime.amazonaws.com
. Vous pouvez utiliser la console S3 ou la CLI pour ce faire.
L'exemple de code suivant montre une politique de compartiment S3 type.
{ "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
" } } } ] }
Le service audio lit et écrit dans votre compartiment S3 pour le compte de votre application Sip Media. Pour éviter ce problème de confusion, vous pouvez restreindre l'accès au compartiment S3 à une seule application multimé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
" } } } ] }
L'exemple suivant représente unePlayAudioAndGetDigits
action type.
{ "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
-
Description :
CallId
du participant à l'invocationCallDetails
de laAWS Lambda fonctionValeurs autorisées — Un identifiant d'appel valide
Obligatoire — Non
Valeur par défaut – Aucune
- ParticipantTag
-
Description :
ParticipantTag
de l'un des participants connectés auCallDetails
Valeurs autorisées —
LEG-A
ouLEG-B
Obligatoire — Non
Valeur par défaut :
ParticipantTag
de la valeur invoquée.callLeg
Ignoré si vous le spécifiezCallId
- InputDigitsRegex
-
Description — Un modèle d'expression régulière
Valeurs autorisées : modèle d'expression régulière valide
Obligatoire — Non
Valeur par défaut – Aucune
- AudioSource.Type
-
Description — Type de source pour le type de fichier audio
Valeurs autorisées : un compartiment S3
Obligatoire — Oui
Valeur par défaut —
"S3"
- AudioSource.BucketName
-
Description — Pour les
AudioSource.Type
valeurs S3, le compartiment S3 doit appartenir au mêmeAWS compte que l'application multimédia SIP. Le compartiment S3 doit avoir accès au service principal du connecteur vocal Amazon Chime SDK,voiceconnector.chime.amazonaws.com
.Valeurs autorisées : compartiment S3 valide pour lequel le SDK Amazon Chime dispose d'un accès aux
s3:GetObject
actions.Obligatoire — Oui
Valeur par défaut – Aucune
- AudioSource.Clé
-
Description : nom clé de l'objet audio dans le compartiment
AudioSource.BucketName
S3.Valeurs autorisées — Fichiers audio valides
Obligatoire — Oui
Valeur par défaut – Aucune
- FailureAudioSource.Type
-
Description : nom clé de l'objet audio dans le compartiment
FailureAudioSource.BucketName
S3.Valeurs autorisées — S3
Obligatoire — Oui
Valeur par défaut – Aucune
- FailureAudioSource.BucketName
-
Description — Pour les types de source S3, le compartiment S3 doit appartenir au mêmeAWS compte que l'application multimédia SIP. Le principal service Voice Connector du SDK Amazon Chime doit avoir accès au compartiment S3.
voiceconnector.chime.amazonaws.com
Valeurs autorisées : compartiment S3 valide pour lequel le SDK Amazon Chime dispose d'un accès aux
s3:GetObject
actions.Obligatoire — Oui
Valeur par défaut – Aucune
- FailureAudioSource.Clé
-
Description : nom clé de l'objet audio dans le compartiment
FailureAudioSource.BucketName
S3.Valeurs autorisées — Fichiers audio valides
Obligatoire — Oui
Valeur par défaut – Aucune
- MinNumberOfDigits
-
Description : nombre minimum de chiffres à capturer avant l'expiration du délai imparti ou la lecture du signal audio « échec de l'appel ».
Valeurs autorisées : >=0
Obligatoire — Non
Valeur par défaut : 0
- MaxNumberOfDigits
-
Description : nombre maximum de chiffres à capturer avant de s'arrêter sans chiffre final.
Valeurs autorisées — >
MinNumberOfDigits
Obligatoire — Non
Valeur par défaut : 128
- TerminatorDigits
-
Description — Chiffres utilisés pour terminer la saisie si l'utilisateur saisit une valeur inférieure à
MaxNumberOfDigits
Valeurs autorisées — N'importe lequel de ces chiffres : 0123456789#*
Obligatoire — Non
Valeur par défaut : #
- InBetweenDigitsDurationInMilliseconds
-
Description — Le temps d'attente en millisecondes entre les saisies de chiffres avant de jouer
FailureAudio
.Valeurs autorisées : >0
Obligatoire — Non
Valeur par défaut — Si elle n'est pas spécifiée, la
RepeatDurationInMilliseconds
valeur par défaut est utilisée. - Répéter
-
Description — Nombre total de tentatives d'obtention de chiffres
Valeurs autorisées : >0
Obligatoire — Non
Valeur par défaut : 1
- RepeatDurationInMilliseconds
-
Description — Temps d'attente en millisecondes entre les
Repeat
tentativesValeurs autorisées : >0
Obligatoire — Oui
Valeur par défaut – Aucune
L'application multimédia SIP invoque toujours saAWS Lambda fonction après avoir exécuté l'PlayAudioAndGetDigits
action, avec un type d'événement d'ACTION_FAILED
invocationACTION_SUCCESSFUL
ou. Lorsque l'application parvient à rassembler des chiffres, elle définit laReceivedDigits
valeur de l'ActionData
objet. L'exemple suivant montre la structure des événements d'invocation de cetteAWS Lambda fonction.
{ "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": { ... } }
Gestion des erreurs
Lorsqu'une erreur de validation se produit, l'application multimédia SIP appelle laAWS Lambda fonction avec le message d'erreur correspondant. Le tableau suivant répertorie les messages d'erreur possibles.
Erreur | Message | Raison |
---|---|---|
|
La valeur du paramètre de la source audio n'est pas valide. |
Cette erreur peut se produire pour plusieurs raisons. Par exemple, l'application multimédia SIP ne peut pas accéder au fichier en raison de problèmes d'autorisation ou de problèmes liés au compartiment S3. Le fichier audio peut également échouer à la validation en raison de sa durée, de sa taille ou d'un format non pris en charge. |
|
|
A |
|
Erreur système lors de l'exécution de l'action. |
Une erreur système s'est produite pendant l'exécution de l'action. |
Lorsque l'action ne parvient pas à collecter le nombre de chiffres spécifié en raison d'un délai d'attente ou d'un trop grand nombre de tentatives, l'application multimédia SIP appelle laAWS Lambda fonction avec le type d'événement d'ACTION_FAILED
invocation.
{ "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": { ... } }
Consultez des exemples pratiques sur GitHub :