Usando EventBridge notificações da Amazon - Amazon Chime SDK

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Usando EventBridge notificações da Amazon

O Amazon Chime SDK Call Analytics suporta o envio de eventos para o EventBridge barramento padrão quando o estado do pipeline de insights de mídia muda ou quando as condições de alerta em tempo real da análise de chamadas são atendidas. Para as atualizações de status de erro do pipeline do media insights, recomendamos que você configure um EventBridge alvo para notificá-lo se seus recursos falharem de forma assíncrona. As notificações de análise de chamadas têm uma fonte aws.chime e vários tipos de detalhes, que são compartilhados nas seções a seguir. Para obter mais informações, consulte o Guia EventBridge do usuário da Amazon.

Atualizações de status

Os pipelines de insights de mídia enviam EventBridge notificações à medida que uma sessão de análise de chamadas avança e termina com sucesso ou encontra erros. Você recebe uma EventBridge notificação com o tipo de detalhe “Alteração de estado do Media Insights” quando:

  • O status de um pipeline de insights de mídia mudar.

  • O status do elemento de um pipeline de insights de mídia mudar.

  • Algum elemento do pipeline for interrompido.

  • Algum elemento do pipeline falhar.

A seção de detalhe sempre inclui os campos a seguir:

  • version

  • mediaInsightsPipelineArn

  • eventType

A seção de detalhes também inclui um campo mediaInsightsPipelineElementStatuses se o pipeline de insights de mídia contiver vários elementos, como processadores de análise e coletores de dados. Esse campo indica os status de cada elemento no pipeline. O status possível para cada elemento do pipeline pode ser:

  • NotStarted

  • InProgress

  • Stopped

  • Failed

A seção de detalhes também inclui todos os pares de valores-chave especificados MediaInsightsRuntimeMetadata durante a chamada da CreateMediaInsightsPipelineAPI. Se uma sessão de análise de chamadas foi iniciada por um conector de voz, a seção de metadados é preenchida automaticamente com os parâmetros a seguir:

  • transactionId

  • fromNumber

  • toNumber

  • callId

  • voiceConnectorId

  • direction

Os seguintes tipos de eventos podem aparecer sempre que um pipeline de insights de mídia contém um único elemento. Expanda cada seção para saber mais.

Este exemplo mostra uma estrutura típica de evento.

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

Este exemplo mostra uma estrutura típica de evento.

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

Este exemplo mostra uma estrutura típica de evento.

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

Indica que o serviço encontrou uma falha temporária e vai tentar novamente. Não é necessária nenhuma ação sua.

Este exemplo mostra uma estrutura típica de evento.

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

Indica uma falha que exige uma ação sua. Use o failureReason para solucionar o problema. As falhas típicas podem incluir o seguinte:

  • Permissões insuficientes da função de acesso ao recurso

  • Recursos ausentes ou excluídos

  • Limitação a partir de um AWS serviço que a análise de chamadas invoca em seu nome, como o Amazon Transcribe ou o Amazon Kinesis.

  • Formatos de mídia incompatíveis em streams KVS

Este exemplo mostra uma estrutura típica de evento.

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

O campo failureReason é opcional. Por exemplo, um motivo típico pode ser Access denied when assuming resource access role.

Os seguintes tipos de eventos podem aparecer sempre que um pipeline de insights de mídia for criado ou a tentativa de criação falhar para uma sessão de análise de chamadas iniciada por um conector de voz do SDK do Amazon Chime. Expanda cada seção para saber mais.

Este exemplo mostra um evento típico com êxito.

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

Este exemplo mostra um evento de falha típico.

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

Os seguintes tipos de eventos podem aparecer quando um pipeline de insights de mídia contiver vários elementos. As notificações de exemplo são do AmazonTranscribeProcessor combinadas com o S3RecordingSink. Expanda cada seção para saber mais.

Este exemplo mostra uma estrutura típica de evento.

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

Este exemplo mostra uma estrutura típica de evento.

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

Este exemplo mostra uma estrutura típica de evento.

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

Este exemplo mostra uma estrutura típica de evento.

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

Este exemplo mostra uma estrutura típica de evento.

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

Este exemplo mostra uma estrutura típica de evento.

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

Este exemplo mostra uma estrutura típica de evento.

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

Este exemplo mostra uma estrutura típica de evento.

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

Este exemplo mostra uma estrutura típica de evento.

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

Este exemplo mostra uma estrutura típica de evento.

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

Este exemplo mostra uma estrutura típica de evento.

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

Alertas em tempo real

nota

Somente os processadores do Amazon Transcribe e do Amazon Transcribe Call Analytics suportam alertas em tempo real.

A análise de chamadas do SDK do Amazon Chime permite que os desenvolvedores configurem regras para enviar alertas em tempo real por meio de um processador durante uma sessão de análise. Os alertas são enviados para a Amazon EventBridge com o tipo de detalheMedia Insights Rules Matched. EventBridge oferece suporte à integração com serviços downstream, como Lambda, Amazon SQS e Amazon SNS, para acionar notificações para o usuário final ou iniciar outra lógica comercial personalizada.

Os alertas em tempo real são configurados como parte do campo RealTimeAlertConfiguration para a MediaInsightsPipelineConfiguration. Você pode usar o console do Amazon Chime SDK para configurar o campo ou pode chamar as CreateMediaInsightsPipelineConfigurationAPIs ou. UpdateMediaInsightsPipelineConfiguration

Este exemplo mostra como criar ou atualizar uma configuração de alerta em tempo real por meio da 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" } } ] }

Cada regra em uma configuração de alerta em tempo real é acionada de forma independente. Você poderá receber várias EventBridge notificações se várias condições de regra forem atendidas ao mesmo tempo. Para criar uma lista de regras para seus alertas, você pode selecionar entre os seguintes tipos de regras:

Correspondência de palavra-chave

Alerta quando um conjunto específico de palavras-chave ou frases for correspondido em um evento de enunciado ou transcrição. É possível configurar o alerta para emitir um evento se:

  • Todas as palavras-chave especificadas forem faladas e Negate estiver definido como false.

  • Todas as palavras-chave especificadas não forem faladas durante toda a chamada, se Negate estiver definido como true.

O Amazon Transcribe e a análise do Amazon Transcribe oferecem suporte a esse tipo de regra.

Análise de sentimento

Alerta quando um determinado tipo de sentimento está em andamento por um período de tempo contínuo. Somente o Transcribe Call Analytics suporta essa regra.

Detecção de problemas

Alerta quando um problema é detectado em um evento de enunciado. Somente o Transcribe Call Analytics suporta esse tipo de regra.

O exemplo a seguir mostra um evento de alerta em tempo real para uma regra KeywordMatch.

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

Alguns EventBridge campos são específicos para o tipo de regra correspondente:

Campos de correspondência de palavras-chave

utteranceId: ID da transcrição que contém uma palavra-chave correspondente se você usar o Amazon Transcribe Call Analytics. Somente para correspondência falada de palavras-chave.

resultId: ID da transcrição que contém uma palavra-chave correspondente se você usar o Amazon Transcribe. Somente para correspondência falada de palavras-chave.

beginTimestamp: hora de início da transcrição que contém uma palavra-chave correspondente. Somente para correspondência falada de palavras-chave.

Campos de análise de sentimento

beginTimestamp: hora de início da janela contínua para o sentimento correspondente.

endTimestamp: hora de término da janela contínua para o sentimento correspondente.