View a markdown version of this page

Utilisation EventBridge des notifications Amazon pour le SDK Amazon Chime - 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.

Utilisation EventBridge des notifications Amazon pour le SDK Amazon Chime

Amazon Chime SDK Call Analytics prend en charge l'envoi d'événements vers le EventBridge bus par défaut lorsque l'état du pipeline d'informations sur les médias change ou lorsque les conditions d'alerte en temps réel de l'analyse des appels sont remplies. Pour les mises à jour de l'état des erreurs du pipeline Media Insights, nous vous recommandons de configurer une EventBridge cible pour vous avertir en cas de défaillance asynchrone de vos ressources. Les notifications d'analyse des appels ont une source aws.chime et différents types de détails, qui sont partagés dans les sections suivantes. Pour plus d'informations, consultez le guide de EventBridge l'utilisateur Amazon.

Mises à jour d'état

Les pipelines Media Insights envoient EventBridge des notifications au fur et à mesure qu'une session d'analyse des appels progresse et se termine correctement ou rencontre des erreurs. Vous recevez une EventBridge notification avec le type de détail « Media Insights State Change » lorsque :

  • L'état d'un pipeline d'informations sur les médias change.

  • L'état d'un élément du pipeline d'informations sur les médias change.

  • Tout élément du pipeline est arrêté.

  • Tout élément du pipeline tombe en panne.

La section détaillée inclut toujours les champs suivants :

  • version

  • mediaInsightsPipelineArn

  • eventType

La section détaillée inclut également un mediaInsightsPipelineElementStatuses champ si le pipeline d'informations sur les médias contient plusieurs éléments, tels que des processeurs d'analyse et des puits de données. Ce champ indique l'état de chaque élément du pipeline. L'état possible de chaque élément du pipeline pourrait être le suivant :

  • NotStarted

  • InProgress

  • Stopped

  • Failed

La section détaillée inclut également toutes les paires clé-valeur spécifiées MediaInsightsRuntimeMetadata lors de l'appel d'CreateMediaInsightsPipelineAPI. Si une session d'analyse des appels a été initiée par un connecteur vocal, la section des métadonnées est automatiquement remplie avec les paramètres suivants :

  • transactionId

  • fromNumber

  • toNumber

  • callId

  • voiceConnectorId

  • direction

Les types d'événements suivants peuvent apparaître chaque fois qu'un pipeline d'informations sur les médias contient un seul élément. Agrandissez chaque section pour plus d’informations.

Cet exemple montre une structure d'événement typique.

{ "version": "0", "id": "string", "detail-type": "Media Insights State Change", "source": "aws.chime", "account": number, "region": "string", "time": "yyyy-mm-ddThh:mm:ssZ", "resources": [] "detail": { "version": "0", "mediaInsightsPipelineArn": "string", "eventType": "chime:MediaInsightsInProgress", "version": "0", "callId": "string", "transactionId": "string", "fromNumber": "string", "toNumber": "string", "voiceConnectorId": "string", "direction": "string" } }

Cet exemple montre une structure d'événement typique.

{ "version": "0", "id": "string", "detail-type": "Media Insights State Change", "source": "aws.chime", "account": number, "region": "string", "time": "yyyy-mm-ddThh:mm:ssZ", "resources": [] "detail": { "version": "0", "mediaInsightsPipelineArn": "string", "eventType": "chime:MediaInsightsPaused", "callId": "string", "transactionId": "string", "fromNumber": "string", "toNumber": "string", "voiceConnectorId": "string", "direction": "string" } }

Cet exemple montre une structure d'événement typique.

{ "version": "0", "id": "string", "detail-type": "Media Insights State Change", "source": "aws.chime", "account": number, "region": "string", "time": "yyyy-mm-ddThh:mm:ssZ", "resources": [] "detail": { "version": "0", "mediaInsightsPipelineArn": "string", "eventType": "chime:MediaInsightsStopped", "callId": "string", "transactionId": "string", "fromNumber": "string", "toNumber": "string", "voiceConnectorId": "string", "direction": "string" } }

Indique que le service a rencontré une panne temporaire et qu'il tentera de réessayer. Aucune action n'est requise de votre part.

Cet exemple montre une structure d'événement typique.

{ "version": "0", "id": "string", "detail-type": "Media Insights State Change", "source": "aws.chime", "account": number, "region": "string", "time": "yyyy-mm-ddThh:mm:ssZ", "resources": [] "detail": { "version": "0", "mediaInsightsPipelineArn": "string", "eventType": "chime:MediaInsightsTemporaryFailure", "callId": "string", "transactionId": "string", "fromNumber": "string", "toNumber": "string", "voiceConnectorId": "string", "direction": "string" } }

Indique un échec qui nécessite une action de votre part. Utilisez le failureReason pour résoudre le problème. Les défaillances typiques peuvent inclure les suivantes :

  • Autorisations insuffisantes sur le rôle d'accès aux ressources

  • Ressources manquantes ou supprimées

  • Limitation à partir d'un AWS service que l'analyse des appels invoque en votre nom, tel qu'Amazon Transcribe ou Amazon Kinesis.

  • Formats multimédia incompatibles sur les flux KVS

Cet exemple montre une structure d'événement typique.

{ "version": "0", "id": "string", "detail-type": "Media Insights State Change", "source": "aws.chime", "account": number, "region": "string", "time": "yyyy-mm-ddThh:mm:ssZ", "resources": [] "detail": { "version": "0", "mediaInsightsPipelineArn": "string", "eventType": "chime:MediaInsightsPermanentFailure", "callId": "string", "transactionId": "string", "fromNumber": "string", "toNumber": "string", "voiceConnectorId": "string", "direction": "string", "failureReason": "string" } }
Note

Le champ failureReason est facultatif. Par exemple, une raison typique pourrait êtreAccess denied when assuming resource access role.

Les types d'événements suivants peuvent apparaître chaque fois qu'un pipeline d'informations sur les médias est créé, ou que la tentative de création échoue, pour une session d'analyse des appels initiée par un connecteur vocal Amazon Chime SDK. Agrandissez chaque section pour plus d’informations.

Cet exemple illustre un événement de réussite typique.

{ "version": "0", "id": "string", "detail-type": "Media Insights State Change", "source": "aws.chime", "account": number, "region": "string", "time": "yyyy-mm-ddThh:mm:ssZ", "resources": [] "detail": { "version": "0", "mediaInsightsPipelineConfigurationArn": "string", "mediaInsightsPipelineArn": "string", "eventType": "chime:MediaInsightsCreated", "callId": "string", "transactionId": "string", "fromNumber": "string", "toNumber": "string", "voiceConnectorId": "string", "direction": "string", } }

Cet exemple illustre un événement de défaillance typique.

{ "version": "0", "id": "string", "detail-type": "Media Insights State Change", "source": "aws.chime", "account": number, "region": "string", "time": "yyyy-mm-ddThh:mm:ssZ", "resources": [] "detail": { "version": "0", "mediaInsightsPipelineConfigurationArn": "string", "eventType": "chime:MediaInsightsCreateFailed", "callId": "string", "transactionId": "string", "fromNumber": "string", "toNumber": "string", "voiceConnectorId": "string", "direction": "string", "failureOrigin": "Voice Connector", "httpStatusCode": "string", "failureReason": "string" } }

Les types d'événements suivants peuvent apparaître lorsqu'un pipeline d'informations sur les médias contient plusieurs éléments. Les exemples de notifications sont destinés à AmazonTranscribeProcessor être combinés avecS3RecordingSink. Agrandissez chaque section pour plus d’informations.

Cet exemple montre une structure d'événement typique.

{ "version": "0", "id": "string", "detail-type": "Media Insights State Change", "source": "aws.chime", "account": number, "region": "string", "time": "yyyy-mm-ddThh:mm:ssZ", "resources": [], "detail": { "version": "0", "mediaInsightsPipelineArn": "string", "eventType": "chime:MediaInsightsInProgress", "mediaInsightsPipelineElementStatuses": [ { "type": "AmazonTranscribeProcessor", "status": "InProgress", "updatedOn": 1686184070655 }, { "type": "S3RecordingSink", "status": "NotStarted", "updatedOn": 1686184070655 } ] "callId": "string", "transactionId": "string", "fromNumber": "string", "toNumber": "string", "voiceConnectorId": "string", "direction": "string" } }

Cet exemple montre une structure d'événement typique.

{ "version": "0", "id": "string", "detail-type": "Media Insights State Change", "source": "aws.chime", "account": number, "region": "string", "time": "yyyy-mm-ddThh:mm:ssZ", "resources": [], "detail": { "version": "0", "mediaInsightsPipelineArn": "string", "eventType": "chime:MediaInsightsInProgress", "mediaInsightsPipelineElementStatuses": [ { "type": "AmazonTranscribeProcessor", "status": "Stopped", "updatedOn": 1686184070655 }, { "type": "S3RecordingSink", "status": "InProgress", "updatedOn": 1686184070655 } ] "callId": "string", "transactionId": "string", "fromNumber": "string", "toNumber": "string", "voiceConnectorId": "string", "direction": "string" } }

Cet exemple montre une structure d'événement typique.

{ "version": "0", "id": "string", "detail-type": "Media Insights State Change", "source": "aws.chime", "account": number, "region": "string", "time": "yyyy-mm-ddThh:mm:ssZ", "resources": [], "detail": { "version": "0", "mediaInsightsPipelineArn": "string", "eventType": "chime:MediaInsightsInProgress", "mediaInsightsPipelineElementStatuses": [ { "type": "AmazonTranscribeProcessor", "status": "Failed", "updatedOn": 1686184070655 }, { "type": "S3RecordingSink", "status": "InProgress", "updatedOn": 1686184070655 } ] "callId": "string", "transactionId": "string", "fromNumber": "string", "toNumber": "string", "voiceConnectorId": "string", "direction": "string" } }

Cet exemple montre une structure d'événement typique.

{ "version": "0", "id": "string", "detail-type": "Media Insights State Change", "source": "aws.chime", "account": number, "region": "string", "time": "yyyy-mm-ddThh:mm:ssZ", "resources": [], "detail": { "version": "0", "mediaInsightsPipelineArn": "string", "eventType": "chime:MediaInsightsPermanentFailure", "mediaInsightsPipelineElementStatuses": [ { "type": "AmazonTranscribeProcessor", "status": "Failed", "updatedOn": 1686184070655 }, { "type": "S3RecordingSink", "status": "Stopped", "updatedOn": 1686184070655 } ] "callId": "string", "transactionId": "string", "fromNumber": "string", "toNumber": "string", "voiceConnectorId": "string", "direction": "string", "failureReason": "string" } }

Cet exemple montre une structure d'événement typique.

{ "version": "0", "id": "string", "detail-type": "Media Insights State Change", "source": "aws.chime", "account": number, "region": "string", "time": "yyyy-mm-ddThh:mm:ssZ", "resources": [], "detail": { "version": "0", "mediaInsightsPipelineArn": "string", "eventType": "chime:MediaInsightsPermanentFailure", "mediaInsightsPipelineElementStatuses": [ { "type": "AmazonTranscribeProcessor", "status": "Stopped", "updatedOn": 1686184070655 }, { "type": "S3RecordingSink", "status": "Failed", "updatedOn": 1686184070655 } ] "callId": "string", "transactionId": "string", "fromNumber": "string", "toNumber": "string", "voiceConnectorId": "string", "direction": "string", "failureReason": "string" } }

Cet exemple montre une structure d'événement typique.

{ "version": "0", "id": "string", "detail-type": "Media Insights State Change", "source": "aws.chime", "account": number, "region": "string", "time": "yyyy-mm-ddThh:mm:ssZ", "resources": [], "detail": { "version": "0", "mediaInsightsPipelineArn": "string", "eventType": "chime:MediaInsightsPaused", "mediaInsightsPipelineElementStatuses": [ { "type": "AmazonTranscribeProcessor", "status": "Paused", "updatedOn": 1686184070655 }, { "type": "S3RecordingSink", "status": "NotStarted", "updatedOn": 1686184070655 } ] "callId": "string", "transactionId": "string", "fromNumber": "string", "toNumber": "string", "voiceConnectorId": "string", "direction": "string" } }

Cet exemple montre une structure d'événement typique.

{ "version": "0", "id": "string", "detail-type": "Media Insights State Change", "source": "aws.chime", "account": number, "region": "string", "time": "yyyy-mm-ddThh:mm:ssZ", "resources": [], "detail": { "version": "0", "mediaInsightsPipelineArn": "string", "eventType": "chime:MediaInsightsTemporaryFailure", "mediaInsightsPipelineElementStatuses": [ { "type": "AmazonTranscribeProcessor", "status": "TemporarilyFailed", "updatedOn": 1686184070655 }, { "type": "S3RecordingSink", "status": "NotStarted", "updatedOn": 1686184070655 } ] "callId": "string", "transactionId": "string", "fromNumber": "string", "toNumber": "string", "voiceConnectorId": "string", "direction": "string" } }

Cet exemple montre une structure d'événement typique.

{ "version": "0", "id": "string", "detail-type": "Media Insights State Change", "source": "aws.chime", "account": number, "region": "string", "time": "yyyy-mm-ddThh:mm:ssZ", "resources": [], "detail": { "version": "0", "mediaInsightsPipelineArn": "string", "eventType": "chime:MediaInsightsStopped", "mediaInsightsPipelineElementStatuses": [ { "type": "AmazonTranscribeProcessor", "status": "Stopped", "updatedOn": 1686184070655 }, { "type": "S3RecordingSink", "status": "Stopped", "updatedOn": 1686184070655 } ] "callId": "string", "transactionId": "string", "fromNumber": "string", "toNumber": "string", "voiceConnectorId": "string", "direction": "string" } }

Cet exemple montre une structure d'événement typique.

{ "version": "0", "id": "string", "detail-type": "Media Insights State Change", "source": "aws.chime", "account": number, "time": "yyyy-mm-ddThh:mm:ssZ", "region": "string", "detail": { "mediaInsightsPipelineArn": "string", "eventType": "chime:MediaInsightsInProgress", "version": "0", "mediaInsightsPipelineElementStatuses": [ { "type": "VoiceEnhancementSink", "status": "InProgress", "updatedOn": 1686184070655 }, { "type": "S3RecordingSink", "status": "Stopped", "updatedOn": 1686184070655 } ] } }

Cet exemple montre une structure d'événement typique.

{ "version": "0", "id": "string", "detail-type": "Media Insights State Change", "source": "aws.chime", "account": number, "time": "yyyy-mm-ddThh:mm:ssZ", "region": "string", "detail": { "mediaInsightsPipelineArn": "string", "eventType": "chime:MediaInsightsStopped", "version": "0", "mediaInsightsPipelineElementStatuses": [ { "type": "VoiceEnhancement", "status": "NotSupported", "updatedOn": 1686184070655, "statusDetail": "Unsupported recording length" }, { "type": "S3RecordingSink", "status": "Stopped", "updatedOn": 1686184070655 } ] } }

Cet exemple montre une structure d'événement typique.

{ "version": "0", "id": "string", "detail-type": "Media Insights State Change", "source": "aws.chime", "account": number, "time": "yyyy-mm-ddThh:mm:ssZ", "region": "string", "detail": { "mediaInsightsPipelineArn": "string", "eventType": "chime:MediaInsightsPermanentFailure", "version": "0", "mediaInsightsPipelineElementStatuses": [ { "type": "VoiceEnhancement", "status": "Failed", "updatedOn": 1686184070655 }, { "type": "S3RecordingSink", "status": "Stopped", "updatedOn": 1686184070655 } ] } }

Real-time alertes

Note

Seuls les processeurs Amazon Transcribe et Amazon Transcribe Call Analytics prennent en charge les alertes en temps réel.

L'analyse des appels du SDK Amazon Chime permet aux développeurs de définir des règles pour l'envoi d'alertes en temps réel via un processeur au cours d'une session d'analyse. Les alertes sont envoyées à Amazon EventBridge avec le type de détailMedia Insights Rules Matched. EventBridge prend en charge l'intégration avec des services en aval tels que Lambda, Amazon SQS et Amazon SNS pour déclencher des notifications pour l'utilisateur final ou lancer une autre logique métier personnalisée.

Real-time les alertes sont configurées dans le cadre du RealTimeAlertConfiguration champ pourMediaInsightsPipelineConfiguration. Vous pouvez utiliser la console Amazon Chime SDK pour configurer le champ, ou vous pouvez appeler les API CreateMediaInsightsPipelineConfiguration ou UpdateMediaInsightsPipelineConfiguration.

Cet exemple montre comment créer ou mettre à jour une configuration d'alerte en temps réel via l'API.

{ "MediaInsightsPipelineConfigurationName": "config_name", "ResourceAccessRoleArn": "arn:aws:iam::account_id:role/role_name", "RealTimeAlertConfiguration": { "Disabled": false, "Rules": [{ "Type": "KeywordMatch", "KeywordMatchConfiguration": { "RuleName": "rule_name_1", "Keywords": [ "hello", "thank you" ], "Negate": false } }, { "Type": "Sentiment", "RuleName": "rule_name_2", "SentimentType": "NEGATIVE", "TimePeriod": 60 }, { "Type": "IssueDetection", "RuleName": "rule_name_3" } ] }, "Elements": [{ "Type": "AmazonTranscribeCallAnalyticsProcessor", "AmazonTranscribeCallAnalyticsProcessorConfiguration": { "LanguageCode": "en-US" } }, { "Type": "KinesisDataStreamSink", "KinesisDataStreamSinkConfiguration": { "InsightsTarget": "arn:aws:kinesis:us-east-1:account_id:stream/stream_name" } } ] }

Chaque règle d'une configuration d'alerte en temps réel est déclenchée indépendamment. Vous pouvez recevoir plusieurs EventBridge notifications si plusieurs conditions de règles sont remplies en même temps. Pour créer une liste de règles pour vos alertes, vous pouvez sélectionner l'un des types de règles suivants :

Correspondance des mots-clés

Alertes lorsqu'un ensemble spécifié de mots clés ou de phrases correspond à un énoncé ou à une transcription. Vous pouvez configurer l'alerte pour qu'elle émette un événement si :

  • Tous les mots clés spécifiés sont prononcés et Negate sont définis surfalse.

  • Tous les mots clés spécifiés sont tacites pendant toute la durée de l'appel, Negate s'ils sont définis sur. true

Amazon Transcribe et Amazon Transcribe Analytics prennent en charge ce type de règle.

Analyse de sentiment

Alertes lorsqu'un type de sentiment particulier persiste pendant une période de temps variable. Seule Transcribe Call Analytics prend en charge cette règle.

Détection des problèmes

Alertes lorsqu'un problème est détecté lors d'un événement d'énonciation. Seul Transcribe Call Analytics prend en charge ce type de règle.

L'exemple suivant montre un événement d'alerte en temps réel pour une KeywordMatch règle.

{ "version": "0", "id": "string", "detail-type": "Media Insights Rules Matched", "source": "aws.chime", "account": number, "region": "us-east-1", "time": "yyyy-mm-ddThh:mm:ssZ", "resources": [], "detail": { "version": "0", "sourceMetadata": {} "ruleName": "string" "utteranceId": "string", "beginTimestamp": "yyyy-mm-ddThh:mm:ssZ", } }

Certains EventBridge champs sont spécifiques au type de règle correspondant :

Champs de correspondance des mots clés

utteranceId: ID de la transcription qui contient un mot clé correspondant si vous utilisez Amazon Transcribe Call Analytics. Pour la correspondance des mots clés parlés uniquement.

resultId: ID de la transcription qui contient un mot clé correspondant si vous utilisez Amazon Transcribe. Pour la correspondance des mots clés parlés uniquement.

beginTimestamp: heure de début de la transcription contenant un mot clé correspondant. Pour la correspondance des mots clés parlés uniquement.

Champs d'analyse des sentiments

beginTimestamp: heure de début de la fenêtre de défilement correspondant au sentiment correspondant.

endTimestamp: Heure de fin de la fenêtre de défilement pour le sentiment correspondant.