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:GetObject
autorisation 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
-
Description —
CallId
du participant auCallDetails
.Valeurs autorisées : un identifiant d'appel valide.
Obligatoire — Non, s'
ParticipantTag
il est présent.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, s'
CallId
il est présent.Valeur par défaut —
ParticipantTag
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.BucketName
attribut.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 |
---|---|---|
|
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. |
|
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. |
|
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 :