Suscripción a eventos del enrutador de trabajo
Artículo 11/16/2023
9 colaboradores
Comentarios
En este artículo
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.
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
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,
}