Suscripción a eventos del enrutador de trabajo

En esta guía se describen los pasos para configurar una suscripción para eventos del enrutador de trabajos y cómo recibirlos.

Para más información sobre Event Grid, consulte la documentación de Event Grid.

Requisitos previos

Creación de una suscripción de Event Grid

Esta plantilla implementa una suscripción de Event Grid en una cola de Storage para eventos de enrutador de trabajo. Si la cuenta de almacenamiento, la cola o el tema del sistema no existen, también se crearán.

Implementación en Azure

Parámetros

  • Nombre del recurso de Azure Communication Services: el nombre del recurso de Azure Communication Services. Por ejemplo, si el punto de conexión al recurso es https://contoso.communication.azure.net, establezca contoso.
  • Nombre de Storage: el nombre de la cuenta de Azure Storage. Si no existe, se creará.
  • Nombre de la suscripción del evento: el nombre de la suscripción del evento que se creará.
  • Nombre del tema del sistema: si tiene suscripciones de eventos existentes en el recurso de Azure Communication Services, busque el nombre System Topic en la pestaña Events del recurso de Azure Communication Services. De lo contrario, especifique un nombre único, como el mismo nombre del recurso de Azure Communication Services.
  • Nombre de la cola: el nombre de la cola en la cuenta de Storage. Si no existe, se creará.

Recursos implementados

Los siguientes recursos se implementan como parte de la solución:

  • Cuenta de Storage: si el nombre de la cuenta de Storage no existe.
  • Cola de Storage: si la cola no existe dentro de la cuenta de Storage.
  • Tema del sistema de Event Grid: si el tema no existe.
  • Suscripción de Event Grid: una suscripción para todos los eventos del enrutador de trabajos en la cola de Storage.

Inicio rápido: Recepción de eventos de Event Grid mediante una cola de Azure Storage

Creación de una aplicación de C#

En una ventana de consola (por ejemplo, cmd, PowerShell o Bash), use el comando dotnet new para crear una nueva aplicación de consola con el nombre EventReceiver. Este comando crea un sencillo proyecto "Hola mundo" de C# con un solo archivo de origen: Program.cs.

dotnet new console -o EventReceiver

Cambie el directorio a la carpeta de la aplicación recién creada y use el comando dotnet build para compilar la aplicación.

cd EventReceiver
dotnet build

Instalación de los paquetes

Instale las colas de Azure Storage y los paquetes de Event Grid.

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

Recepción de mensajes de la cola

Copie los siguientes fragmentos de código y péguelos en el archivo de origen: 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);
}

Ejecución del código

Ejecute la aplicación desde el directorio de la aplicación con el comando dotnet run.

dotnet run

Catálogo de eventos

Eventos del enrutador

Eventos Subdominio Descripción
RouterJobReceived Job Se creó un nuevo trabajo para el enrutamiento
RouterJobClassified Job La directiva de clasificación se aplicó a un trabajo
RouterJobQueued Job Un trabajo se ha puesto en cola correctamente
RouterJobClassificationFailed Job El enrutador no pudo clasificar el trabajo mediante la directiva de clasificación
RouterJobCompleted Job Se completó un trabajo y entra en conclusión
RouterJobClosed Job Se cerró un trabajo y se finalizó la conclusión
RouterJobCancelled Job Se canceló un trabajo
RouterJobExceptionTriggered Job Se desencadenó una excepción de trabajo
RouterJobWorkerSelectorsExpired Job Uno o varios selectores de trabajo en un trabajo han expirado
RouterJobUnassigned Job Se ha anulado la asignación de un trabajo ya asignado de un rol de trabajo
RouterJobWaitingForActivation Job Ha llegado la hora programada solicitada para un trabajo programado; el enrutador está esperando a que Contoso actúe sobre el trabajo
RouterJobSchedulingFailed Job Sin embargo, se ha solicitado un trabajo programado; el enrutador no pudo crear uno
RouterWorkerOfferIssued Worker Se ofreció un trabajo a un trabajador
RouterWorkerOfferAccepted Worker Se aceptó una oferta a un trabajador
RouterWorkerOfferDeclined Worker Se rechazó una oferta a un trabajador
RouterWorkerOfferRevoked Worker Se revocó una oferta a un trabajador
RouterWorkerOfferExpired Worker Caducó una oferta a un trabajador
RouterWorkerRegistered Worker Se ha registrado un rol de trabajo (el estado ha cambiado de inactivo o purgado a activo)
RouterWorkerUpdated Worker Se ha actualizado una de las siguientes propiedades de trabajo: AvailableForOffers, TotalCapacity, QueueAssignments, ChannelConfigurations, Labels, Tags.
RouterWorkerDeregistered Worker Se ha anulado el registro de un rol de trabajo (el estado ha cambiado de activo a inactivo o purgado)

Microsoft.Communication.RouterJobReceived

Volver al 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 Aceptación de valores NULL Descripción Notas
jobId string
channelReference string
jobStatus enum Valores posibles PendingClassification, Queued Cuando se envía este evento, el proceso de clasificación aún no se ha ejecutado, o se ha creado un trabajo con un valor queueId asociado.
channelId string
classificationPolicyId string ✔️ null cuando se especifica queueId para un trabajo
queueId string ✔️ null cuando se especifica classificationPolicyId para un trabajo
priority int ✔️ NULL cuando se especifica classificationPolicyId. Valor distinto de NULL en caso de asignación de cola directa.
labels Dictionary<string, object> ✔️ En función de la entrada del usuario
etiquetas Dictionary<string, object> ✔️ En función de la entrada del usuario
requestedWorkerSelectors List<WorkerSelector> ✔️ En función de la entrada del usuario
scheduledOn DateTimeOffset ✔️ En función de la entrada del usuario
unavailableForMatching bool ✔️ En función de la entrada del usuario

Microsoft.Communication.RouterJobClassified

Volver al 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 Aceptación de valores NULL Descripción Notas
queueDetails QueueDetails
jobId string
channelReference string
channelId string
classificationPolicyId string
queueId string ✔️ null cuando classificationPolicy no se usa para la selección de cola
priority int ✔️ null cuando classificationPolicy no se usa para aplicar prioridad en el trabajo
labels Dictionary<string, object> ✔️ En función de la entrada del usuario
etiquetas Dictionary<string, object> ✔️ En función de la entrada del usuario
attachedWorkerSelectors List<WorkerSelector> ✔️ Lista de selectores de trabajo asociados por una directiva de clasificación

Microsoft.Communication.RouterJobQueued

Volver al 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 Aceptación de valores NULL Descripción Notas
jobId string
channelReference string ✔️
channelId string
queueId string
priority int
labels Dictionary<string, object> ✔️ En función de la entrada del usuario
etiquetas Dictionary<string, object> ✔️ En función de la entrada del usuario
requestedWorkerSelectors List<WorkerSelector> ✔️ En función de la entrada del usuario durante la creación del trabajo
attachedWorkerSelectors List<WorkerSelector> ✔️ Lista de selectores de trabajo asociados por una directiva de clasificación

Microsoft.Communication.RouterJobClassificationFailed

Volver al 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 Aceptación de valores NULL Descripción Notas
errors List<CommunicationError>
jobId string
channelReference string
channelId string
classificationPolicyId string
labels Dictionary<string, object> ✔️ En función de la entrada del usuario
etiquetas Dictionary<string, object> ✔️ En función de la entrada del usuario

Microsoft.Communication.RouterJobCompleted

Volver al 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 Aceptación de valores NULL Descripción Notas
jobId string
channelReference string
channelId string
queueId string
labels Dictionary<string, object> ✔️ En función de la entrada del usuario
etiquetas Dictionary<string, object> ✔️ En función de la entrada del usuario
assignmentId string
workerId string

Microsoft.Communication.RouterJobClosed

Volver al 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 Aceptación de valores NULL Descripción Notas
jobId string
channelReference string
channelId string
queueId string
labels Dictionary<string, object> ✔️ En función de la entrada del usuario
etiquetas Dictionary<string, object> ✔️ En función de la entrada del usuario
dispositionCode string ✔️ En función de la entrada del usuario
workerId string
assignmentId string

Microsoft.Communication.RouterJobCancelled

Volver al 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 Aceptación de valores NULL Descripción Notas
nota string ✔️ En función de la entrada del usuario
dispositionCode string
jobId string
channelReference string
channelId string
labels Dictionary<string, object> ✔️ En función de la entrada del usuario
etiquetas Dictionary<string, object> ✔️ En función de la entrada del usuario
queueId string ✔️

Microsoft.Communication.RouterJobExceptionTriggered

Volver al 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 Aceptación de valores NULL Descripción Notas
ruleKey string
exceptionRuleId string
jobId string
channelReference string
channelId string
labels Dictionary<string, object> ✔️ En función de la entrada del usuario
etiquetas Dictionary<string, object> ✔️ En función de la entrada del usuario

Microsoft.Communication.RouterJobWorkerSelectorsExpired

Volver al 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 Aceptación de valores NULL Descripción Notas
jobId string
channelReference string ✔️
queueId string
channelId string
labels Dictionary<string, object> ✔️ En función de la entrada del usuario
etiquetas Dictionary<string, object> ✔️ En función de la entrada del usuario
requestedWorkerSelectorsExpired List<WorkerSelector> ✔️ En función de la entrada del usuario al crear un trabajo
attachedWorkerSelectorsExpired List<WorkerSelector> ✔️ Lista de selectores de trabajo asociados por una directiva de clasificación

Microsoft.Communication.RouterJobUnassigned

Volver al 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 Aceptación de valores NULL Descripción Notas
jobId string
assignmentId string
workerId string
channelId string
channelReference string
queueId string ✔️ null cuando se especifica classificationPolicyId para un trabajo
labels Dictionary<string, object> ✔️ En función de la entrada del usuario
etiquetas Dictionary<string, object> ✔️ En función de la entrada del usuario

Microsoft.Communication.RouterJobWaitingForActivation

Volver al 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 Aceptación de valores NULL Descripción Notas
jobId string
channelId string
channelReference string
queueId string ✔️ null cuando se especifica classificationPolicyId para un trabajo
labels Dictionary<string, object> ✔️ En función de la entrada del usuario
etiquetas Dictionary<string, object> ✔️ En función de la entrada del usuario
requestedWorkerSelectorsExpired List<WorkerSelector> ✔️ En función de la entrada del usuario al crear un trabajo
attachedWorkerSelectorsExpired List<WorkerSelector> ✔️ Lista de selectores de trabajo asociados por una directiva de clasificación
scheduledOn DateTimeOffset ✔️ En función de la entrada del usuario al crear un trabajo
unavailableForMatching bool ✔️ En función de la entrada del usuario al crear un trabajo
priority int En función de la entrada del usuario al crear un trabajo

Microsoft.Communication.RouterJobSchedulingFailed

Volver al 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 Aceptación de valores NULL Descripción Notas
jobId string
channelId string
channelReference string
queueId string ✔️ null cuando se especifica classificationPolicyId para un trabajo
labels Dictionary<string, object> ✔️ En función de la entrada del usuario
etiquetas Dictionary<string, object> ✔️ En función de la entrada del usuario
requestedWorkerSelectorsExpired List<WorkerSelector> ✔️ En función de la entrada del usuario al crear un trabajo
attachedWorkerSelectorsExpired List<WorkerSelector> ✔️ Lista de selectores de trabajo asociados por una directiva de clasificación
scheduledOn DateTimeOffset ✔️ En función de la entrada del usuario al crear un trabajo
failureReason string ✔️ Sistema determinado
priority int En función de la entrada del usuario al crear un trabajo

Eventos del trabajador

Microsoft.Communication.RouterWorkerOfferIssued

Volver al 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 Aceptación de valores NULL Descripción Notas
workerId string
jobId string
channelReference string
channelId string
queueId string
offerId string
offeredOn DateTimeOffset
expiresOn DateTimeOffset
jobPriority int
jobLabels Dictionary<string, object> ✔️ En función de la entrada del usuario
jobTags Dictionary<string, object> ✔️ En función de la entrada del usuario

Microsoft.Communication.RouterWorkerOfferAccepted

Volver al 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 Aceptación de valores NULL Descripción Notas
workerId string
jobId string
jobPriority int
jobLabels Dictionary<string, object> ✔️ En función de la entrada del usuario
jobTags Dictionary<string, object> ✔️ En función de la entrada del usuario
channelReference string
channelId string
queueId string
offerId string
assignmentId string

Microsoft.Communication.RouterWorkerOfferDeclined

Volver al 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 Aceptación de valores NULL Descripción Notas
workerId string
jobId string
channelReference string
channelId string
queueId string
offerId string

Microsoft.Communication.RouterWorkerOfferRevoked

Volver al 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 Aceptación de valores NULL Descripción Notas
offerId string
workerId string
jobId string
channelReference string
channelId string
queueId string

Microsoft.Communication.RouterWorkerOfferExpired

Volver al 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 Aceptación de valores NULL Descripción Notas
workerId string
offerId string
jobId string
channelReference string
channelId string
queueId string

Microsoft.Communication.RouterWorkerRegistered

Volver al 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 Aceptación de valores NULL Descripción Notas
workerId string
totalCapacity int
queueAssignments List<QueueDetails>
labels Dictionary<string, object> ✔️ En función de la entrada del usuario
channelConfigurations List<ChannelConfiguration>
etiquetas Dictionary<string, object> ✔️ En función de la entrada del usuario

Microsoft.Communication.RouterWorkerUpdated

Volver al 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 Aceptación de valores NULL Descripción Notas
workerId string
totalCapacity int
queueAssignments List<QueueDetails>
labels Dictionary<string, object> ✔️ En función de la entrada del usuario
channelConfigurations List<ChannelConfiguration>
etiquetas Dictionary<string, object> ✔️ En función de la entrada del usuario
updatedWorkerProperties List<UpdateWorkerProperty> Propiedades de trabajo actualizadas, incluidas AvailableForOffers, QueueAssignments, ChannelConfigurations, TotalCapacity, Labels y Tags

Microsoft.Communication.RouterWorkerDeregistered

Volver al 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 Aceptación de valores NULL Descripción Notas
workerId string

Definiciones 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,
}