PlayAudioAndGetDigits - Kit SDK Amazon Chime

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:GetObjectautorisation 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 fonction

Valeurs 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éesLEG-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 lesAudioSource.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 auxs3:GetObject actions.

Obligatoire — Oui

Valeur par défaut – Aucune

AudioSource.Clé

Description : nom clé de l'objet audio dans le compartimentAudioSource.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 compartimentFailureAudioSource.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 auxs3:GetObject actions.

Obligatoire — Oui

Valeur par défaut – Aucune

FailureAudioSource.Clé

Description : nom clé de l'objet audio dans le compartimentFailureAudioSource.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 jouerFailureAudio.

Valeurs autorisées : >0

Obligatoire — Non

Valeur par défaut — Si elle n'est pas spécifiée, laRepeatDurationInMilliseconds 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 lesRepeat tentatives

Valeurs 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'PlayAudioAndGetDigitsaction, avec un type d'événement d'ACTION_FAILEDinvocationACTION_SUCCESSFUL ou. Lorsque l'application parvient à rassembler des chiffres, elle définit laReceivedDigits valeur de l'ActionDataobjet. 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

InvalidAudioSource

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.

InvalidActionParameter

CallIdou leParticipantTag paramètre de l'action n'est pas valide.

ACallIdParticipantTag, ou un autre paramètre n'est pas valide.

SystemException

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

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