PlayAudio - Amazon Chime SDK

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.

PlayAudio

Écoutez un fichier audio à n'importe quel moment d'un appel. Le son peut être répété autant de fois que vous le souhaitez. Le son en cours peut être interrompu à l'aide des chiffres DTMF définis dans le. PlaybackTerminators

Actuellement, le SDK Amazon Chime prend uniquement en charge la lecture de fichiers audio à partir du bucket Amazon Simple Storage Service (Amazon S3). Le compartiment S3 doit appartenir au même AWS compte que l'application multimédia SIP. En outre, vous devez donner l's3:GetObjectautorisation au responsable du service Amazon Chime SDK Voice Connector. Vous pouvez le faire à l'aide de la console S3 ou de l'interface de ligne de commande (CLI).

L'exemple de code suivant illustre une politique de bucket typique.

{ "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 le problème de confusion lié aux adjoints, 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 de code suivant illustre une action typique.

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

DescriptionCallId du participant auCallDetails.

Valeurs autorisées : un identifiant d'appel valide.

Obligatoire — Non, s'ParticipantTagil est présent.

Valeur par défaut : aucune.

ParticipantTag

DescriptionParticipantTag de l'un des participants connectés auCallDetails.

Valeurs autoriséesLEG-A ouLEG-B.

Obligatoire — Non, s'CallIdil est présent.

Valeur par défautParticipantTag de l'invoquécallLeg. Ignoré si vous le spécifiezCallId.

PlaybackTerminator

Description — Termine le son en cours en utilisant l'entrée DTMF de l'utilisateur

Valeurs autorisées : tableau des valeurs suivantes : « 0 », « 1 », » 2 », « 3 », « 4 », « 5 », « 6 », » 7 », « 8 », « 9 », » # », « * »

Obligatoire — Non

Valeur par défaut – Aucune

Repeat

Description — Répète le son le nombre de fois spécifié

Valeurs autorisées : nombre entier supérieur à zéro

Obligatoire — Non

Valeur par défaut — 1

AudioSource.Type

Description — Type de source pour le fichier audio.

Valeurs autorisées : S3.

Obligatoire — Oui.

Valeur par défaut : aucune.

AudioSource.BucketName

Description — Pour les types de source S3, le compartiment S3 doit appartenir au même AWS compte que l'application SIP. Le bucket doit avoir accès au principal service Amazon Chime SDK Voice Connector, à savoir voiceconnector.chime.amazonaws.com.

Valeurs autorisées : compartiment S3 valide pour lequel le SDK Amazon Chime a accès à l'action. s3:GetObject

Obligatoire — Oui.

Valeur par défaut : aucune.

AudioSource.key

Description — Pour les types de source S3, nom de fichier du compartiment S3 spécifié dans l'AudioSource.BucketNameattribut.

Valeurs autorisées : fichier audio valide.

Obligatoire — Oui.

Valeur par défaut : aucune.

L'application multimédia SIP essaie de lire le son à partir de l'URL source. Vous pouvez utiliser des fichiers .wav PCM bruts et non compressés d'une taille maximale de 50 Mo. Le SDK Amazon Chime recommande le mode mono 8 kHz.

Lorsque la dernière instruction d'un plan de dialogue est terminée PlayAudio et que la lecture du fichier est terminée, ou si un utilisateur arrête la lecture en appuyant sur une touche, l'application invoque la AWS Lambda fonction avec l'événement illustré dans l'exemple suivant.

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

Une fois qu'un dernier chiffre arrête le son, celui-ci ne sera pas répété.

Gestion des erreurs

Lorsque le fichier de validation contient des erreurs ou qu'une erreur se produit lors de l'exécution d'une action, l'application multimédia SIP appelle une AWS Lambda fonction avec le code d'erreur approprié.

Erreur Message Raison

InvalidAudioSource

Le paramètre de 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 d'URL. Il se peut également que la validation du fichier audio échoue en raison du format, de la durée, de la taille, etc.

SystemException

Erreur système lors de l'exécution de l'action.

Une autre erreur système s'est produite lors de l'exécution de l'action.

InvalidActionParameter

CallId ou ParticipantTag le paramètre d'action n'est pas valide.

L'action contient un paramètre non valide.

L'exemple de code suivant illustre un échec d'invocation typique.

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

Consultez des exemples pratiques sur GitHub :