Share via


Assinar eventos do Roteador de Trabalho

Este guia descreve as etapas para configurar uma assinatura de eventos do Roteador de Trabalho e recebê-los.

Para obter mais detalhes sobre a Grade de Eventos, confira a documentação da Grade de Eventos.

Pré-requisitos

Criar uma assinatura na Grade de Eventos

Este modelo implanta uma assinatura da Grade de Eventos em uma fila de armazenamento para eventos do Roteador de Trabalho. Se o tópico da conta de armazenamento, da fila ou do sistema não existir, ele também será criado.

Implantar no Azure

Parâmetros

  • Nome do recurso dos Serviços de Comunicação do Azure: o nome do recurso dos Serviços de Comunicação do Azure. Por exemplo, se o ponto de extremidade do recurso for https://contoso.communication.azure.net, defina-o como contoso.
  • Nome do armazenamento: o nome da sua conta do Armazenamento do Azure. Se ela não existir, será criada.
  • Subnome do evento: o nome da assinatura de evento a ser criada.
  • Nome do tópico do sistema: se você tiver assinaturas de evento existentes no recurso Serviços de Comunicação do Azure, localize o nome System Topic na guia Events do recurso Serviços de Comunicação do Azure. Caso contrário, especifique um nome exclusivo, como o próprio nome do recurso Serviços de Comunicação do Azure.
  • Nome da fila: o nome da fila dentro da conta de armazenamento. Se ela não existir, será criada.

Recursos Implantados

Os recursos a seguir são implantados como parte da solução

  • Conta de armazenamento: quando o nome da conta de armazenamento não existe.
  • Fila de armazenamento: quando a fila não existir na conta de armazenamento.
  • Tópico do sistema da Grade de Eventos: quando o tópico não existe.
  • Assinatura da Grade de Eventos: uma assinatura de todos os eventos do Roteador de Trabalho na fila de armazenamento.

Guia de início rápido: receber eventos da Grade de Eventos por meio de uma fila do Armazenamento do Microsoft Azure

Criar um aplicativo em C#

Em uma janela de console (como cmd, PowerShell ou Bash), use o comando dotnet new para criar um novo aplicativo do console com o nome EventReceiver. Esse comando cria um projeto simples C# "Olá, Mundo" com um arquivo de origem único: Program.cs.

dotnet new console -o EventReceiver

Altere o seu diretório para a pasta de aplicativo recém-criada e use o comando dotnet build para compilar o seu aplicativo.

cd EventReceiver
dotnet build

Instalar os pacotes

Instale os pacotes das filas do Armazenamento do Microsoft Azure e da Grade de Eventos.

dotnet add package Azure.Storage.Queues
dotnet add package Azure.Messaging.EventGrid

Receber mensagens da fila

Copie o seguinte snippet de código e cole-o no arquivo de origem: Program.cs

using Azure.Storage.Queues;
using Azure.Messaging.EventGrid;

// For more detailed tutorials on storage queues, see: https://learn.microsoft.com/azure/storage/queues/storage-tutorial-queues

var queueClient = new QueueClient("<Storage Account Connection String>", "router-events");

while (true)
{
    var msg = await queueClient.ReceiveMessageAsync();
    if (msg.Value == null)
    {
        await Task.Delay(TimeSpan.FromSeconds(1));
        continue;
    }
    var json = Convert.FromBase64String(msg.Value.Body.ToString());
    var evt = EventGridEvent.Parse(BinaryData.FromBytes(json));

    Console.WriteLine($"Received event: {evt.EventType} - {evt.Subject} - {evt.Data}");

    await queueClient.DeleteMessageAsync(msg.Value.MessageId, msg.Value.PopReceipt);
}

Executar o código

Execute o aplicativo do seu diretório de aplicativo com o comando dotnet run.

dotnet run

Catálogo de eventos

Eventos do Roteador

Eventos Subdomínio Descrição
RouterJobReceived Job Um trabalho foi criado para roteamento
RouterJobClassified Job A política de classificação foi aplicada a um trabalho
RouterJobQueued Job Um trabalho foi enfileirado com êxito
RouterJobClassificationFailed Job O roteador não pôde classificar o trabalho usando a política de classificação
RouterJobCompleted Job Um trabalho foi concluído e entrou no encerramento
RouterJobClosed Job Um trabalho foi fechado e o encerramento foi concluído
RouterJobCancelled Job Um trabalho foi cancelado
RouterJobExceptionTriggered Job Uma exceção de trabalho foi disparada
RouterJobWorkerSelectorsExpired Job Um ou mais seletores de trabalho em um trabalho expiraram
RouterJobUnassigned Job Um trabalho já atribuído foi não atribuído de um trabalhador
RouterJobWaitingForActivation Job A hora agendada solicitada de um trabalho agendado chegou, o Roteador está aguardando a contoso atuar no trabalho
RouterJobSchedulingFailed Job Um trabalho agendado foi solicitado; no entanto, o roteador não conseguiu criá-lo
RouterWorkerOfferIssued Worker Um trabalho foi oferecido a uma função de trabalho
RouterWorkerOfferAccepted Worker Uma oferta para uma função de trabalho foi aceita
RouterWorkerOfferDeclined Worker Uma oferta para uma função de trabalho foi recusada
RouterWorkerOfferRevoked Worker Uma oferta para uma função de trabalho foi revogada
RouterWorkerOfferExpired Worker Uma oferta para uma função de trabalho expirou
RouterWorkerRegistered Worker Um trabalhador foi registrado (status alterado de inativo/esvaziamento para ativo)
RouterWorkerUpdated Worker Uma das seguintes propriedades de trabalho foi atualizada: AvailableForOffers, TotalCapacity, QueueAssignments, ChannelConfigurations, Labels, Tags
RouterWorkerDeregistered Worker Um trabalho teve o registro cancelado (status alterado de ativo para inativo/esvaziamento)

Microsoft.Communication.RouterJobReceived

Voltar ao catálogo de eventos

{
  "id": "acdf8fa5-8ab4-4a65-874a-c1d2a4a97f2e",
  "topic": "/subscriptions/{subscription-id}/resourceGroups/{group-name}/providers/Microsoft.Communication/communicationServices/{communication-services-resource-name}",
  "subject": "job/{job-id}/channel/{channel-id}",
  "data": {
    "jobId": "7f1df17b-570b-4ae5-9cf5-fe6ff64cc712",
    "channelReference": "test-abc",
    "jobStatus": "PendingClassification",
    "channelId": "FooVoiceChannelId",
    "classificationPolicyId": "test-policy",
    "queueId": "queue-id",
    "priority": 0,
    "labels": {
      "Locale": "en-us",
      "Segment": "Enterprise",
      "Token": "FooToken"
    },
    "tags": {
      "Locale": "en-us",
      "Segment": "Enterprise",
      "Token": "FooToken"
    },
    "requestedWorkerSelectors": [
      {
        "key": "string",
        "labelOperator": "equal",
        "value": 5,
        "ttlSeconds": 50,
        "expirationTime": "2022-02-17T00:58:25.1736293Z"
      }
    ],
    "scheduledOn": "3/28/2007 7:13:50 PM +00:00",
    "unavailableForMatching": false
  },
  "eventType": "Microsoft.Communication.RouterJobReceived",
  "dataVersion": "1.0",
  "metadataVersion": "1",
  "eventTime": "2022-02-17T00:55:25.1736293Z"
}

Lista de atributos

Atributo Tipo Anulável Descrição Observações
jobId string
channelReference string
jobStatus enum Valores possíveis de PendingClassification, na fila Quando este evento é enviado, o processo de classificação ainda não foi executado ou o trabalho foi criado com uma queueid associada.
channelId string
classificationPolicyId string ✔️ null quando queueId é especificado para um trabalho
queueId string ✔️ null quando classificationPolicyId é especificado para um trabalho
priority int ✔️ Nulo quando classificationPolicyId é especificado. Valor não nulo no caso de atribuição de fila direta.
rótulos Dictionary<string, object> ✔️ Com base na entrada de usuário
marcas Dictionary<string, object> ✔️ Com base na entrada de usuário
requestedWorkerSelectors List<WorkerSelector> ✔️ Com base na entrada de usuário
scheduledOn DateTimeOffset ✔️ Com base na entrada de usuário
unavailableForMatching bool ✔️ Com base na entrada de usuário

Microsoft.Communication.RouterJobClassified

Voltar ao catálogo de eventos

{
  "id": "b6d8687a-5a1a-42ae-b8b5-ff7ec338c872",
  "topic": "/subscriptions/{subscription-id}/resourceGroups/{group-name}/providers/Microsoft.Communication/communicationServices/{communication-services-resource-name}",
  "subject": "job/{job-id}/channel/{channel-id}/queue/{queue-id}",
  "data": {
    "queueDetails": {
      "id": "625fec06-ab81-4e60-b780-f364ed96ade1",
      "name": "Queue 1",
      "labels": {
        "Language": "en",
        "Product": "Office",
        "Geo": "NA"
      }
    },
    "jobId": "7f1df17b-570b-4ae5-9cf5-fe6ff64cc712",
    "channelReference": "test-abc",
    "channelId": "FooVoiceChannelId",
    "classificationPolicyId": "test-policy",
    "queueId": "625fec06-ab81-4e60-b780-f364ed96ade1",
    "priority": 5,
    "labels": {
      "Locale": "en-us",
      "Segment": "Enterprise",
      "Token": "FooToken"
    },
    "tags": {
      "Locale": "en-us",
      "Segment": "Enterprise",
      "Token": "FooToken"
    },
    "attachedWorkerSelectors": [
      {
        "key": "string",
        "labelOperator": "equal",
        "value": 5,
        "ttl": "P3Y6M4DT12H30M5S"
      }
    ]
  },
  "eventType": "Microsoft.Communication.RouterJobClassified",
  "dataVersion": "1.0",
  "metadataVersion": "1",
  "eventTime": "2022-02-17T00:55:25.1736293Z"
}

Lista de atributos

Atributo Tipo Anulável Descrição Observações
queueDetails QueueDetails
jobId string
channelReference string
channelId string
classificationPolicyId string
queueId string ✔️ null quando classificationPolicy não é usado para seleção de fila
priority int ✔️ null quando classificationPolicy não é usado para aplicar prioridade no trabalho
rótulos Dictionary<string, object> ✔️ Com base na entrada de usuário
marcas Dictionary<string, object> ✔️ Com base na entrada de usuário
attachedWorkerSelectors List<WorkerSelector> ✔️ Lista de seletores de trabalho anexados por uma política de classificação

Microsoft.Communication.RouterJobQueued

Voltar ao catálogo de eventos

{
  "id": "b6d8687a-5a1a-42ae-b8b5-ff7ec338c872",
  "topic": "/subscriptions/{subscription-id}/resourceGroups/{group-name}/providers/Microsoft.Communication/communicationServices/{communication-services-resource-name}",
  "subject": "job/{job-id}/channel/{channel-id}/queue/{queue-id}",
  "data": {
    "jobId": "7f1df17b-570b-4ae5-9cf5-fe6ff64cc712",
    "channelReference": "test-abc",
    "channelId": "FooVoiceChannelId",
    "queueId": "625fec06-ab81-4e60-b780-f364ed96ade1",
    "priority": 1,
    "labels": {
      "Locale": "en-us",
      "Segment": "Enterprise",
      "Token": "FooToken"
    },
    "tags": {
      "Locale": "en-us",
      "Segment": "Enterprise",
      "Token": "FooToken"
    },
    "requestedWorkerSelectors": [
      {
        "key": "string",
        "labelOperator": "equal",
        "value": 5,
        "ttl": "P3Y6M4DT12H30M5S"
      }
    ],
    "attachedWorkerSelectors": [
      {
        "key": "string",
        "labelOperator": "equal",
        "value": 5,
        "ttl": "P3Y6M4DT12H30M5S"
      }
    ]
  },
  "eventType": "Microsoft.Communication.RouterJobQueued",
  "dataVersion": "1.0",
  "metadataVersion": "1",
  "eventTime": "2022-02-17T00:55:25.1736293Z"
}

Lista de atributos

Atributo Tipo Anulável Descrição Observações
jobId string
channelReference string ✔️
channelId string
queueId string
priority int
rótulos Dictionary<string, object> ✔️ Com base na entrada de usuário
marcas Dictionary<string, object> ✔️ Com base na entrada de usuário
requestedWorkerSelectors List<WorkerSelector> ✔️ Com base na entrada do usuário durante a criação do trabalho
attachedWorkerSelectors List<WorkerSelector> ✔️ Lista de seletores de trabalho anexados por uma política de classificação

Microsoft.Communication.RouterJobClassificationFailed

Voltar ao catálogo de eventos

{
  "id": "b6d8687a-5a1a-42ae-b8b5-ff7ec338c872",
  "topic": "/subscriptions/{subscription-id}/resourceGroups/{group-name}/providers/Microsoft.Communication/communicationServices/{communication-services-resource-name}",
  "subject": "job/{job-id}/channel/{channel-id}/classificationpolicy/{classificationpolicy-id}",
  "data": {
    "errors": [
      {
        "code": null,
        "message": "Classification failed due to <reason>",
        "target": null,
        "innerError": null,
        "details": null
      }
    ],
    "jobId": "7f1df17b-570b-4ae5-9cf5-fe6ff64cc712",
    "channelReference": "test-abc",
    "channelId": "FooVoiceChannelId",
    "classificationPolicyId": "test-policy",
    "labels": {
      "Locale": "en-us",
      "Segment": "Enterprise",
      "Token": "FooToken"
    },
    "tags": {
      "Locale": "en-us",
      "Segment": "Enterprise",
      "Token": "FooToken"
    }
  },
  "eventType": "Microsoft.Communication.RouterJobClassificationFailed",
  "dataVersion": "1.0",
  "metadataVersion": "1",
  "eventTime": "2022-02-17T00:55:25.1736293Z"
}

Lista de atributos

Atributo Tipo Anulável Descrição Observações
erros List<CommunicationError>
jobId string
channelReference string
channelId string
classificationPolicyId string
rótulos Dictionary<string, object> ✔️ Com base na entrada de usuário
marcas Dictionary<string, object> ✔️ Com base na entrada de usuário

Microsoft.Communication.RouterJobCompleted

Voltar ao catálogo de eventos

{
  "id": "b6d8687a-5a1a-42ae-b8b5-ff7ec338c872",
  "topic": "/subscriptions/{subscription-id}/resourceGroups/{group-name}/providers/Microsoft.Communication/communicationServices/{communication-services-resource-name}",
  "subject": "job/{job-id}/channel/{channel-id}/assignment/{assignment-id}",
  "data": {
    "jobId": "7f1df17b-570b-4ae5-9cf5-fe6ff64cc712",
    "channelReference": "test-abc",
    "channelId": "FooVoiceChannelId",
    "queueId": "queue-id",
    "assignmentId": "6f1df17b-570b-4ae5-9cf5-fe6ff64cc712",
    "labels": {
      "Locale": "en-us",
      "Segment": "Enterprise",
      "Token": "FooToken"
    },
    "tags": {
      "Locale": "en-us",
      "Segment": "Enterprise",
      "Token": "FooToken"
    },
    "workerId": "e3a3f2f9-3582-4bfe-9c5a-aa57831a0f88"
  },
  "eventType": "Microsoft.Communication.RouterJobCompleted",
  "dataVersion": "1.0",
  "metadataVersion": "1",
  "eventTime": "2022-02-17T00:55:25.1736293Z"
}

Lista de atributos

Atributo Tipo Anulável Descrição Observações
jobId string
channelReference string
channelId string
queueId string
rótulos Dictionary<string, object> ✔️ Com base na entrada de usuário
marcas Dictionary<string, object> ✔️ Com base na entrada de usuário
assignmentId string
workerId string

Microsoft.Communication.RouterJobClosed

Voltar ao catálogo de eventos

{
  "id": "b6d8687a-5a1a-42ae-b8b5-ff7ec338c872",
  "topic": "/subscriptions/{subscription-id}/resourceGroups/{group-name}/providers/Microsoft.Communication/communicationServices/{communication-services-resource-name}",
  "subject": "job/{job-id}/channel/{channel-id}/assignment/{assignment-id}",
  "data": {
    "jobId": "7f1df17b-570b-4ae5-9cf5-fe6ff64cc712",
    "channelReference": "test-abc",
    "channelId": "FooVoiceChannelId",
    "queueId": "",
    "dispositionCode": "",
    "workerId": "",
    "assignmentId": "",
    "labels": {
      "Locale": "en-us",
      "Segment": "Enterprise",
      "Token": "FooToken"
    },
    "tags": {
      "Locale": "en-us",
      "Segment": "Enterprise",
      "Token": "FooToken"
    }
  },
  "eventType": "Microsoft.Communication.RouterJobClosed",
  "dataVersion": "1.0",
  "metadataVersion": "1",
  "eventTime": "2022-02-17T00:55:25.1736293Z"
}

Lista de atributos

Atributo Tipo Anulável Descrição Observações
jobId string
channelReference string
channelId string
queueId string
rótulos Dictionary<string, object> ✔️ Com base na entrada de usuário
marcas Dictionary<string, object> ✔️ Com base na entrada de usuário
dispositionCode string ✔️ Com base na entrada de usuário
workerId string
assignmentId string

Microsoft.Communication.RouterJobCancelled

Voltar ao catálogo de eventos

{
  "id": "b6d8687a-5a1a-42ae-b8b5-ff7ec338c872",
  "topic": "/subscriptions/{subscription-id}/resourceGroups/{group-name}/providers/Microsoft.Communication/communicationServices/{communication-services-resource-name}",
  "subject": "job/{job-id}/channel/{channel-id}/disposition/{disposition-code}",
  "data": {
    "note": "Cancelled due to <reason>",
    "dispositionCode": "100",
    "jobId": "7f1df17b-570b-4ae5-9cf5-fe6ff64cc712",
    "channelReference": "test-abc",
    "channelId": "FooVoiceChannelId",
    "labels": {
      "Locale": "en-us",
      "Segment": "Enterprise",
      "Token": "FooToken"
    },
    "tags": {
      "Locale": "en-us",
      "Segment": "Enterprise",
      "Token": "FooToken"
    },
    "queueId": ""
  },
  "eventType": "Microsoft.Communication.RouterJobCancelled",
  "dataVersion": "1.0",
  "metadataVersion": "1",
  "eventTime": "2022-02-17T00:55:25.1736293Z"
}

Lista de atributos

Atributo Tipo Anulável Descrição Observações
observação string ✔️ Com base na entrada de usuário
dispositionCode string
jobId string
channelReference string
channelId string
rótulos Dictionary<string, object> ✔️ Com base na entrada de usuário
marcas Dictionary<string, object> ✔️ Com base na entrada de usuário
queueId string ✔️

Microsoft.Communication.RouterJobExceptionTriggered

Voltar ao catálogo de eventos

{
  "id": "1027db4a-17fe-4a7f-ae67-276c3120a29f",
  "topic": "/subscriptions/{subscription-id}/resourceGroups/{group-name}/providers/Microsoft.Communication/communicationServices/{communication-services-resource-name}",
  "subject": "job/{job-id}/channel/{channel-id}/exceptionrule/{rulekey}",
  "data": {
    "ruleKey": "r100",
    "exceptionRuleId": "7f1df17b-570b-4ae5-9cf5-fe6ff64cc712",
    "jobId": "7f1df17b-570b-4ae5-9cf5-fe6ff64cc712",
    "channelReference": "test-abc",
    "channelId": "FooVoiceChannelId",
    "labels": {
      "Locale": "en-us",
      "Segment": "Enterprise",
      "Token": "FooToken"
    },
    "tags": {
      "Locale": "en-us",
      "Segment": "Enterprise",
      "Token": "FooToken"
    }
  },
  "eventType": "Microsoft.Communication.RouterJobExceptionTriggered",
  "dataVersion": "1.0",
  "metadataVersion": "1",
  "eventTime": "2022-02-17T00:55:25.1736293Z"
}

Lista de atributos

Atributo Tipo Anulável Descrição Observações
ruleKey string
exceptionRuleId string
jobId string
channelReference string
channelId string
rótulos Dictionary<string, object> ✔️ Com base na entrada de usuário
marcas Dictionary<string, object> ✔️ Com base na entrada de usuário

Microsoft.Communication.RouterJobWorkerSelectorsExpired

Voltar ao catálogo de eventos

{
  "id": "b6d8687a-5a1a-42ae-b8b5-ff7ec338c872",
  "topic": "/subscriptions/{subscription-id}/resourceGroups/{group-name}/providers/Microsoft.Communication/communicationServices/{communication-services-resource-name}",
  "subject": "job/{job-id}/channel/{channel-id}/queue/{queue-id}",
  "data": {
    "jobId": "7f1df17b-570b-4ae5-9cf5-fe6ff64cc712",
    "channelReference": "test-abc",
    "channelId": "FooVoiceChannelId",
    "queueId": "625fec06-ab81-4e60-b780-f364ed96ade1",
    "labels": {
      "Locale": "en-us",
      "Segment": "Enterprise",
      "Token": "FooToken"
    },
    "tags": {
      "Locale": "en-us",
      "Segment": "Enterprise",
      "Token": "FooToken"
    },
    "requestedWorkerSelectorsExpired": [
      {
        "key": "string",
        "labelOperator": "equal",
        "value": 5,
        "ttl": "P3Y6M4DT12H30M5S"
      }
    ],
    "attachedWorkerSelectorsExpired": [
      {
        "key": "string",
        "labelOperator": "equal",
        "value": 5,
        "ttl": "P3Y6M4DT12H30M5S"
      }
    ]
  },
  "eventType": "Microsoft.Communication.RouterJobWorkerSelectorsExpired",
  "dataVersion": "1.0",
  "metadataVersion": "1",
  "eventTime": "2022-02-17T00:55:25.1736293Z"
}

Lista de atributos

Atributo Tipo Anulável Descrição Observações
jobId string
channelReference string ✔️
queueId string
channelId string
rótulos Dictionary<string, object> ✔️ Com base na entrada de usuário
marcas Dictionary<string, object> ✔️ Com base na entrada de usuário
requestedWorkerSelectorsExpired List<WorkerSelector> ✔️ Com base na entrada do usuário durante a criação do trabalho
attachedWorkerSelectorsExpired List<WorkerSelector> ✔️ Lista de seletores de trabalho anexados por uma política de classificação

Microsoft.Communication.RouterJobUnassigned

Voltar ao catálogo de eventos

{
  "id": "acdf8fa5-8ab4-4a65-874a-c1d2a4a97f2e",
  "topic": "/subscriptions/{subscription-id}/resourceGroups/{group-name}/providers/Microsoft.Communication/communicationServices/{communication-services-resource-name}",
  "subject": "job/{job-id}/channel/{channel-id}/assignment/{assignment-id}",
  "data": {
    "jobId": "7f1df17b-570b-4ae5-9cf5-fe6ff64cc712",
    "assignmentId": "",
    "workerId": "",
    "channelId": "FooVoiceChannelId",
    "channelReference": "test-abc",
    "queueId": "queue-id",    
    "labels": {
      "Locale": "en-us",
      "Segment": "Enterprise",
      "Token": "FooToken"
    },
    "tags": {
      "Locale": "en-us",
      "Segment": "Enterprise",
      "Token": "FooToken"
    }
  },
  "eventType": "Microsoft.Communication.RouterJobUnassigned",
  "dataVersion": "1.0",
  "metadataVersion": "1",
  "eventTime": "2022-02-17T00:55:25.1736293Z"
}

Lista de atributos

Atributo Tipo Anulável Descrição Observações
jobId string
assignmentId string
workerId string
channelId string
channelReference string
queueId string ✔️ null quando classificationPolicyId é especificado para um trabalho
rótulos Dictionary<string, object> ✔️ Com base na entrada de usuário
marcas Dictionary<string, object> ✔️ Com base na entrada de usuário

Microsoft.Communication.RouterJobWaitingForActivation

Voltar ao catálogo de eventos

{
  "id": "acdf8fa5-8ab4-4a65-874a-c1d2a4a97f2e",
  "topic": "/subscriptions/{subscription-id}/resourceGroups/{group-name}/providers/Microsoft.Communication/communicationServices/{communication-services-resource-name}",
  "subject": "job/{job-id}/channel/{channel-id}",
  "data": {
    "jobId": "7f1df17b-570b-4ae5-9cf5-fe6ff64cc712",
    "channelId": "FooVoiceChannelId",
    "channelReference": "test-abc",
    "queueId": "queue-id",    
    "priority": 1,
    "labels": {
      "Locale": "en-us",
      "Segment": "Enterprise",
      "Token": "FooToken"
    },
    "tags": {
      "Locale": "en-us",
      "Segment": "Enterprise",
      "Token": "FooToken"
    },
    "requestedWorkerSelectors": [
      {
        "key": "string",
        "labelOperator": "equal",
        "value": 5,
        "ttl": "P3Y6M4DT12H30M5S"
      }
    ],
    "attachedWorkerSelectors": [
      {
        "key": "string",
        "labelOperator": "equal",
        "value": 5,
        "ttl": "P3Y6M4DT12H30M5S"
      }
    ],
    "scheduledOn": "2022-02-17T00:55:25.1736293Z",
    "unavailableForMatching": false
  },
  "eventType": "Microsoft.Communication.RouterJobWaitingForActivation",
  "dataVersion": "1.0",
  "metadataVersion": "1",
  "eventTime": "2022-02-17T00:55:25.1736293Z"
}

Lista de atributos

Atributo Tipo Anulável Descrição Observações
jobId string
channelId string
channelReference string
queueId string ✔️ null quando classificationPolicyId é especificado para um trabalho
rótulos Dictionary<string, object> ✔️ Com base na entrada de usuário
marcas Dictionary<string, object> ✔️ Com base na entrada de usuário
requestedWorkerSelectorsExpired List<WorkerSelector> ✔️ Com base na entrada do usuário durante a criação do trabalho
attachedWorkerSelectorsExpired List<WorkerSelector> ✔️ Lista de seletores de trabalho anexados por uma política de classificação
scheduledOn DateTimeOffset ✔️ Com base na entrada do usuário durante a criação do trabalho
unavailableForMatching bool ✔️ Com base na entrada do usuário durante a criação do trabalho
priority int Com base na entrada do usuário durante a criação do trabalho

Microsoft.Communication.RouterJobSchedulingFailed

Voltar ao catálogo de eventos

{
  "id": "acdf8fa5-8ab4-4a65-874a-c1d2a4a97f2e",
  "topic": "/subscriptions/{subscription-id}/resourceGroups/{group-name}/providers/Microsoft.Communication/communicationServices/{communication-services-resource-name}",
  "subject": "job/{job-id}/channel/{channel-id}",
  "data": {
    "jobId": "7f1df17b-570b-4ae5-9cf5-fe6ff64cc712",
    "channelId": "FooVoiceChannelId",
    "channelReference": "test-abc",
    "queueId": "queue-id",    
    "priority": 1,
    "labels": {
      "Locale": "en-us",
      "Segment": "Enterprise",
      "Token": "FooToken"
    },
    "tags": {
      "Locale": "en-us",
      "Segment": "Enterprise",
      "Token": "FooToken"
    },
    "requestedWorkerSelectors": [
      {
        "key": "string",
        "labelOperator": "equal",
        "value": 5,
        "ttl": "P3Y6M4DT12H30M5S"
      }
    ],
    "attachedWorkerSelectors": [
      {
        "key": "string",
        "labelOperator": "equal",
        "value": 5,
        "ttl": "P3Y6M4DT12H30M5S"
      }
    ],
    "scheduledOn": "2022-02-17T00:55:25.1736293Z",
    "failureReason": "Error"
  },
  "eventType": "Microsoft.Communication.RouterJobSchedulingFailed",
  "dataVersion": "1.0",
  "metadataVersion": "1",
  "eventTime": "2022-02-17T00:55:25.1736293Z"
}

Lista de atributos

Atributo Tipo Anulável Descrição Observações
jobId string
channelId string
channelReference string
queueId string ✔️ null quando classificationPolicyId é especificado para um trabalho
rótulos Dictionary<string, object> ✔️ Com base na entrada de usuário
marcas Dictionary<string, object> ✔️ Com base na entrada de usuário
requestedWorkerSelectorsExpired List<WorkerSelector> ✔️ Com base na entrada do usuário durante a criação do trabalho
attachedWorkerSelectorsExpired List<WorkerSelector> ✔️ Lista de seletores de trabalho anexados por uma política de classificação
scheduledOn DateTimeOffset ✔️ Com base na entrada do usuário durante a criação do trabalho
failureReason string ✔️ Determinado pelo sistema
priority int Com base na entrada do usuário durante a criação do trabalho

Eventos da função de trabalho

Microsoft.Communication.RouterWorkerOfferIssued

Voltar ao catálogo de eventos

{
  "id": "1027db4a-17fe-4a7f-ae67-276c3120a29f",
  "topic": "/subscriptions/{subscription-id}/resourceGroups/{group-name}/providers/Microsoft.Communication/communicationServices/{communication-services-resource-name}",
  "subject": "worker/{worker-id}/job/{job-id}",
  "data": {
    "workerId": "w100",
    "jobId": "7f1df17b-570b-4ae5-9cf5-fe6ff64cc712",
    "channelReference": "test-abc",
    "channelId": "FooVoiceChannelId",
    "queueId": "625fec06-ab81-4e60-b780-f364ed96ade1",
    "offerId": "525fec06-ab81-4e60-b780-f364ed96ade1",
    "offeredOn": "2021-06-23T02:43:30.3847144Z",
    "expiresOn": "2021-06-23T02:44:30.3847674Z",
    "jobPriority": 5,
    "jobLabels": {
      "Locale": "en-us",
      "Segment": "Enterprise",
      "Token": "FooToken"
    },
    "jobTags": {
      "Locale": "en-us",
      "Segment": "Enterprise",
      "Token": "FooToken"
    }
  },
  "eventType": "Microsoft.Communication.RouterWorkerOfferIssued",
  "dataVersion": "1.0",
  "metadataVersion": "1",
  "eventTime": "2022-02-17T00:55:25.1736293Z"
}

Lista de atributos

Atributo Tipo Anulável Descrição Observações
workerId string
jobId string
channelReference string
channelId string
queueId string
offerId string
offeredOn DateTimeOffset
expiresOn DateTimeOffset
jobPriority int
jobLabels Dictionary<string, object> ✔️ Com base na entrada de usuário
jobTags Dictionary<string, object> ✔️ Com base na entrada de usuário

Microsoft.Communication.RouterWorkerOfferAccepted

Voltar ao catálogo de eventos

{
  "id": "1027db4a-17fe-4a7f-ae67-276c3120a29f",
  "topic": "/subscriptions/{subscription-id}/resourceGroups/{group-name}/providers/Microsoft.Communication/communicationServices/{communication-services-resource-name}",
  "subject": "worker/{worker-id}/job/{job-id}",
  "data": {
    "workerId": "w100",
    "jobId": "7f1df17b-570b-4ae5-9cf5-fe6ff64cc712",
    "jobPriority": 5,
    "jobLabels": {
      "Locale": "en-us",
      "Segment": "Enterprise",
      "Token": "FooToken"
    },
    "jobTags": {
      "Locale": "en-us",
      "Segment": "Enterprise",
      "Token": "FooToken"
    },
    "channelReference": "test-abc",
    "channelId": "FooVoiceChannelId",
    "queueId": "625fec06-ab81-4e60-b780-f364ed96ade1",
    "offerId": "565fec06-ab81-4e60-b780-f364ed96ade1",
    "assignmentId": "765fec06-ab81-4e60-b780-f364ed96ade1"
  },
  "eventType": "Microsoft.Communication.RouterWorkerOfferAccepted",
  "dataVersion": "1.0",
  "metadataVersion": "1",
  "eventTime": "2022-02-17T00:55:25.1736293Z"
}

Lista de atributos

Atributo Tipo Anulável Descrição Observações
workerId string
jobId string
jobPriority int
jobLabels Dictionary<string, object> ✔️ Com base na entrada de usuário
jobTags Dictionary<string, object> ✔️ Com base na entrada de usuário
channelReference string
channelId string
queueId string
offerId string
assignmentId string

Microsoft.Communication.RouterWorkerOfferDeclined

Voltar ao catálogo de eventos

{
  "id": "1027db4a-17fe-4a7f-ae67-276c3120a29f",
  "topic": "/subscriptions/{subscription-id}/resourceGroups/{group-name}/providers/Microsoft.Communication/communicationServices/{communication-services-resource-name}",
  "subject": "worker/{worker-id}/job/{job-id}",
  "data": {
    "workerId": "w100",
    "jobId": "7f1df17b-570b-4ae5-9cf5-fe6ff64cc712",
    "channelReference": "test-abc",
    "channelId": "FooVoiceChannelId",
    "queueId": "625fec06-ab81-4e60-b780-f364ed96ade1",
    "offerId": "565fec06-ab81-4e60-b780-f364ed96ade1",
  },
  "eventType": "Microsoft.Communication.RouterWorkerOfferDeclined",
  "dataVersion": "1.0",
  "metadataVersion": "1",
  "eventTime": "2022-02-17T00:55:25.1736293Z"
}

Lista de atributos

Atributo Tipo Anulável Descrição Observações
workerId string
jobId string
channelReference string
channelId string
queueId string
offerId string

Microsoft.Communication.RouterWorkerOfferRevoked

Voltar ao catálogo de eventos

{
  "id": "1027db4a-17fe-4a7f-ae67-276c3120a29f",
  "topic": "/subscriptions/{subscription-id}/resourceGroups/{group-name}/providers/Microsoft.Communication/communicationServices/{communication-services-resource-name}",
  "subject": "worker/{worker-id}/job/{job-id}",
  "data": {
    "offerId": "565fec06-ab81-4e60-b780-f364ed96ade1",
    "workerId": "w100",
    "jobId": "7f1df17b-570b-4ae5-9cf5-fe6ff64cc712",
    "channelReference": "test-abc",
    "channelId": "FooVoiceChannelId",
    "queueId": "625fec06-ab81-4e60-b780-f364ed96ade1"
  },
  "eventType": "Microsoft.Communication.RouterWorkerOfferRevoked",
  "dataVersion": "1.0",
  "metadataVersion": "1",
  "eventTime": "2022-02-17T00:55:25.1736293Z"
}

Lista de atributos

Atributo Tipo Anulável Descrição Observações
offerId string
workerId string
jobId string
channelReference string
channelId string
queueId string

Microsoft.Communication.RouterWorkerOfferExpired

Voltar ao catálogo de eventos

{
  "id": "1027db4a-17fe-4a7f-ae67-276c3120a29f",
  "topic": "/subscriptions/{subscription-id}/resourceGroups/{group-name}/providers/Microsoft.Communication/communicationServices/{communication-services-resource-name}",
  "subject": "worker/{worker-id}/job/{job-id}",
  "data": {
    "offerId": "565fec06-ab81-4e60-b780-f364ed96ade1",
    "workerId": "w100",
    "jobId": "7f1df17b-570b-4ae5-9cf5-fe6ff64cc712",
    "channelReference": "test-abc",
    "channelId": "FooVoiceChannelId",
    "queueId": "625fec06-ab81-4e60-b780-f364ed96ade1"
  },
  "eventType": "Microsoft.Communication.RouterWorkerOfferExpired",
  "dataVersion": "1.0",
  "metadataVersion": "1",
  "eventTime": "2022-02-17T00:55:25.1736293Z"
}

Lista de atributos

Atributo Tipo Anulável Descrição Observações
workerId string
offerId string
jobId string
channelReference string
channelId string
queueId string

Microsoft.Communication.RouterWorkerRegistered

Voltar ao catálogo de eventos

{
  "id": "1027db4a-17fe-4a7f-ae67-276c3120a29f",
  "topic": "/subscriptions/{subscription-id}/resourceGroups/{group-name}/providers/Microsoft.Communication/communicationServices/{communication-services-resource-name}",
  "subject": "worker/{worker-id}",
  "data": {
    "workerId": "worker3",
    "totalCapacity": 100,
    "queueAssignments": [
      {
        "id": "MyQueueId2",
        "name": "Queue 3",
        "labels": {
          "Language": "en",
          "Product": "Office",
          "Geo": "NA"
        }
      }
    ],
    "labels": {
      "x": "111",
      "y": "111"
    },
    "channelConfigurations": [
      {
        "channelId": "FooVoiceChannelId",
        "capacityCostPerJob": 10,
        "maxNumberOfJobs": 5
      }
    ],
    "tags": {
      "Locale": "en-us",
      "Segment": "Enterprise",
      "Token": "FooToken"
    }
  },
  "eventType": "Microsoft.Communication.RouterWorkerRegistered",
  "dataVersion": "1.0",
  "metadataVersion": "1",
  "eventTime": "2022-02-17T00:55:25.1736293Z"
}

Lista de atributos

Atributo Tipo Anulável Descrição Observações
workerId string
totalCapacity int
queueAssignments List<QueueDetails>
rótulos Dictionary<string, object> ✔️ Com base na entrada de usuário
channelConfigurations List<ChannelConfiguration>
marcas Dictionary<string, object> ✔️ Com base na entrada de usuário

Microsoft.Communication.RouterWorkerUpdated

Voltar ao catálogo de eventos

{
  "id": "1027db4a-17fe-4a7f-ae67-276c3120a29f",
  "topic": "/subscriptions/{subscription-id}/resourceGroups/{group-name}/providers/Microsoft.Communication/communicationServices/{communication-services-resource-name}",
  "subject": "worker/{worker-id}",
  "data": {
    "workerId": "worker3",
    "availableForOffers": true,
    "totalCapacity": 100,
    "queueAssignments": [
      {
        "id": "MyQueueId2",
        "name": "Queue 3",
        "labels": {
          "Language": "en",
          "Product": "Office",
          "Geo": "NA"
        }
      }
    ],
    "labels": {
      "x": "111",
      "y": "111"
    },
    "channelConfigurations": [
      {
        "channelId": "FooVoiceChannelId",
        "capacityCostPerJob": 10,
        "maxNumberOfJobs": 5
      }
    ],
    "tags": {
      "Locale": "en-us",
      "Segment": "Enterprise",
      "Token": "FooToken"
    },
    "updatedWorkerProperties": [
      "TotalCapacity",
      "Labels",
      "Tags",
      "ChannelConfigurations",
      "AvailableForOffers",
      "QueueAssignments"
    ]
  },
  "eventType": "Microsoft.Communication.RouterWorkerUpdated",
  "dataVersion": "1.0",
  "metadataVersion": "1",
  "eventTime": "2022-02-17T00:55:25.1736293Z"
}

Lista de atributos

Atributo Tipo Anulável Descrição Observações
workerId string
totalCapacity int
queueAssignments List<QueueDetails>
rótulos Dictionary<string, object> ✔️ Com base na entrada de usuário
channelConfigurations List<ChannelConfiguration>
marcas Dictionary<string, object> ✔️ Com base na entrada de usuário
updatedWorkerProperties List<UpdateWorkerProperty> Propriedades de trabalho atualizadas, incluindo AvailableForOffers, QueueAssignments, ChannelConfigurations, TotalCapacity, Labels e Tags

Microsoft.Communication.RouterWorkerDeregistered

Voltar ao catálogo de eventos

{
  "id": "1027db4a-17fe-4a7f-ae67-276c3120a29f",
  "topic": "/subscriptions/{subscription-id}/resourceGroups/{group-name}/providers/Microsoft.Communication/communicationServices/{communication-services-resource-name}",
  "subject": "worker/{worker-id}",
  "data": {
    "workerId": "worker3"
  },
  "eventType": "Microsoft.Communication.RouterWorkerDeregistered",
  "dataVersion": "1.0",
  "metadataVersion": "1",
  "eventTime": "2022-02-17T00:55:25.1736293Z"
}

Lista de atributos

Atributo Tipo Anulável Descrição Observações
workerId string

Definições de modelo

QueueDetails

public class QueueDetails
{
    public string Id { get; set; }
    public string Name { get; set; }
    public Dictionary<string, object>? Labels { get; set; }
}

CommunicationError

public class CommunicationError
{
    public string? Code { get; init; }
    public string Message { get; init; }
    public string? Target { get; init; }
    public CommunicationError? InnerError { get; init; }
    public IEnumerable<CommunicationError>? Details { get; init; }
}

ChannelConfiguration

public class ChannelConfiguration
{
    public string ChannelId { get; set; }
    public int CapacityCostPerJob { get; set; }
    public int? MaxNumberOfJobs { get; set; }
}

UpdatedWorkerProperty

public enum UpdatedWorkerProperty
{
    AvailableForOffers,
    Capacity,
    QueueAssignments,
    Labels,
    Tags,
    ChannelConfigurations
}

WorkerSelector

public class WorkerSelector
{
    public string Key { get; set; }
    public LabelOperator LabelOperator { get; set; }
    public object Value { get; set; }
    public double? TTLSeconds { get; set; }
    public WorkerSelectorState State { get; set; }
    public DateTimeOffset? ExpireTime { get; set; }
}

public enum WorkerSelectorState
{
    Active = 0,
    Expired = 1
}

public enum LabelOperator
{
    Equal,
    NotEqual,
    LessThan,
    LessThanEqual,
    GreaterThan,
    GreaterThanEqual,
}