S’abonner aux événements Job Router
Ce guide décrit les étapes de configuration d’un abonnement pour les événements Job Router et comment les recevoir.
Pour plus d’informations sur Event Grid, consultez la documentation Event Grid.
Prérequis
- Compte Azure avec un abonnement actif. Créez un compte gratuitement.
- Une ressource Communication Services déployée. Créez une ressource Communication Services.
- Facultatif : suivez le Guide de démarrage rapide pour commencer à utiliser le routeur de travaux
Créer un abonnement Event Grid
Ce modèle déploie un abonnement Event Grid sur une file d’attente de stockage pour les événements Job Router. Si le compte de stockage, la file d’attente ou la rubrique système n’existent pas, ils sont également créés.
Paramètres
- Nom de la ressource Azure Communication Services : nom de votre ressource Azure Communication Services. Par exemple, si le point de terminaison de votre ressource est
https://contoso.communication.azure.net
, définissez la valeurcontoso
. - Nom du stockage : nom de votre compte de stockage Azure. Si la valeur n’existe pas, elle est créée.
- Nom de l’abonnement aux événements : nom de l’abonnement aux événements à créer.
- Nom de la rubrique système : si vous avez des abonnements aux événements sur votre ressource Azure Communication Services, recherchez le nom
System Topic
sous l’ongletEvents
de votre ressource Azure Communication Services. Dans le cas contraire, spécifiez un nom unique, par exemple, le nom de la ressource Azure Communication Services elle-même. - Nom de la file d’attente : nom de la file d’attente dans votre compte de stockage. Si la valeur n’existe pas, elle est créée.
Ressources déployées
Les ressources suivantes sont déployées dans le cadre de la solution
- Compte de stockage : si le nom du compte de stockage n’existe pas.
- File d’attente du stockage : si la file d’attente n’existe pas dans le compte de stockage.
- Rubrique système Event Grid : si la rubrique n’existe pas.
- Abonnement Event Grid : abonnement à tous les événements Job Router de la file d’attente de stockage.
Démarrage rapide : recevoir des événements Event Grid via une file d’attente de stockage Azure
Créer une application C#
Dans une fenêtre de console (par exemple cmd, PowerShell ou Bash), utilisez la commande dotnet new
pour créer une application console avec le nom EventReceiver
. Cette commande crée un projet C# « Hello World » simple avec un seul fichier source : Program.cs.
dotnet new console -o EventReceiver
Remplacez votre répertoire par le dossier d’application que vous venez de créer, puis utilisez la commande dotnet build
pour compiler votre application.
cd EventReceiver
dotnet build
Installer les packages
Installez les files d’attente de stockage Azure et les packages Event Grid.
dotnet add package Azure.Storage.Queues
dotnet add package Azure.Messaging.EventGrid
Recevoir les messages de la file d’attente
Copiez l’extrait de code suivant et collez-le dans le fichier source : 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);
}
Exécuter le code
Exécutez l’application à partir de votre répertoire d’application avec la commande dotnet run
.
dotnet run
Catalogue d’événements
Événements de routeur
Événements | Sous-domaine | Description |
---|---|---|
RouterJobReceived |
Job |
Une nouvelle tâche a été créée pour le routage |
RouterJobClassified |
Job |
La stratégie de classification a été appliquée à une tâche |
RouterJobQueued |
Job |
Un travail a été empilé avec succès |
RouterJobClassificationFailed |
Job |
Le routeur n’a pas pu classer la tâche à l’aide de la stratégie de classification |
RouterJobCompleted |
Job |
Une tâche s’est terminée et est entrée en phase de conclusion |
RouterJobClosed |
Job |
Une tâche a été fermée et la phase de conclusion est terminée |
RouterJobCancelled |
Job |
Une tâche a été annulée |
RouterJobExceptionTriggered |
Job |
Une exception de tâche a été déclenchée |
RouterJobWorkerSelectorsExpired |
Job |
Un ou plusieurs sélecteurs de Worker sur un travail ont expiré |
RouterJobUnassigned |
Job |
L’attribution d’un travail déjà attribué a été annulée par un Worker |
RouterJobWaitingForActivation |
Job |
Un travail planifié a atteint la date/heure d’échéance planifiée. Le routeur attend de Contoso une action au niveau du travail |
RouterJobSchedulingFailed |
Job |
Un travail planifié a été demandé, mais le routeur n’a pas pu en créer un |
RouterWorkerOfferIssued |
Worker |
Une tâche a été proposée à un travailleur |
RouterWorkerOfferAccepted |
Worker |
Une offre à un travailleur a été acceptée |
RouterWorkerOfferDeclined |
Worker |
Une offre à un travailleur a été refusée |
RouterWorkerOfferRevoked |
Worker |
Une offre à un travailleur a été révoquée |
RouterWorkerOfferExpired |
Worker |
Une offre à un travailleur a expiré |
RouterWorkerRegistered |
Worker |
Un Worker a été inscrit (l’état est passé d’inactif/en veille à actif) |
RouterWorkerUpdated |
Worker |
L’une des propriétés suivantes du Worker a été mise à jour : AvailableForOffers , TotalCapacity , QueueAssignments , ChannelConfigurations , Labels , Tags |
RouterWorkerDeregistered |
Worker |
Un Worker a été désinscrit (l’état est passé d’actif à inactif/en veille) |
Microsoft.Communication.RouterJobReceived
Retour au catalogue des événements
{
"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"
}
Liste d’attributs
Attribut | Type | Autorise la valeur Null | Description | Notes |
---|---|---|---|---|
jobId | string |
❌ | ||
channelReference | string |
❌ | ||
jobStatus | enum |
❌ | Valeurs possibles PendingClassification, Queued | Quand cet événement est envoyé, le processus de classification doit encore être exécuté ou la tâche a été créée avec un queueId associé. |
channelId | string |
❌ | ||
classificationPolicyId | string |
✔️ | null lorsque queueId est spécifié pour une tâche |
|
queueId | string |
✔️ | null lorsque classificationPolicyId est spécifié pour une tâche |
|
priority | int |
✔️ | Null lorsque classificationPolicyId est spécifié. Valeur non Null dans le cas d’une affectation de file d’attente directe. |
|
étiquettes | Dictionary<string, object> |
✔️ | En fonction de l’entrée utilisateur | |
tags | Dictionary<string, object> |
✔️ | En fonction de l’entrée utilisateur | |
requestedWorkerSelectors | List<WorkerSelector> |
✔️ | En fonction de l’entrée utilisateur | |
scheduledOn | DateTimeOffset |
✔️ | En fonction de l’entrée utilisateur | |
unavailableForMatching | bool |
✔️ | En fonction de l’entrée utilisateur |
Microsoft.Communication.RouterJobClassified
Retour au catalogue des événements
{
"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"
}
Liste d’attributs
Attribut | Type | Autorise la valeur Null | Description | Notes |
---|---|---|---|---|
queueDetails | QueueDetails |
❌ | ||
jobId | string |
❌ | ||
channelReference | string |
❌ | ||
channelId | string |
❌ | ||
classificationPolicyId | string |
❌ | ||
queueId | string |
✔️ | null quand classificationPolicy n’est pas utilisé pour la sélection de la file d’attente |
|
priority | int |
✔️ | null quand classificationPolicy n’est pas utilisé pour appliquer une priorité au travail |
|
étiquettes | Dictionary<string, object> |
✔️ | En fonction de l’entrée utilisateur | |
tags | Dictionary<string, object> |
✔️ | En fonction de l’entrée utilisateur | |
attachedWorkerSelectors | List<WorkerSelector> |
✔️ | Liste des sélecteurs de Worker attachés par une stratégie de classification |
Microsoft.Communication.RouterJobQueued
Retour au catalogue des événements
{
"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"
}
Liste d’attributs
Attribut | Type | Autorise la valeur Null | Description | Notes |
---|---|---|---|---|
jobId | string |
❌ | ||
channelReference | string |
✔️ | ||
channelId | string |
❌ | ||
queueId | string |
❌ | ||
priority | int |
❌ | ||
étiquettes | Dictionary<string, object> |
✔️ | En fonction de l’entrée utilisateur | |
tags | Dictionary<string, object> |
✔️ | En fonction de l’entrée utilisateur | |
requestedWorkerSelectors | List<WorkerSelector> |
✔️ | En fonction des entrées utilisateur lors de la création de la tâche | |
attachedWorkerSelectors | List<WorkerSelector> |
✔️ | Liste des sélecteurs de Worker attachés par une stratégie de classification |
Microsoft.Communication.RouterJobClassificationFailed
Retour au catalogue des événements
{
"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"
}
Liste d’attributs
Attribut | Type | Autorise la valeur Null | Description | Notes |
---|---|---|---|---|
erreurs | List<CommunicationError> |
❌ | ||
jobId | string |
❌ | ||
channelReference | string |
❌ | ||
channelId | string |
❌ | ||
classificationPolicyId | string |
❌ | ||
étiquettes | Dictionary<string, object> |
✔️ | En fonction de l’entrée utilisateur | |
tags | Dictionary<string, object> |
✔️ | En fonction de l’entrée utilisateur |
Microsoft.Communication.RouterJobCompleted
Retour au catalogue des événements
{
"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"
}
Liste d’attributs
Attribut | Type | Autorise la valeur Null | Description | Notes |
---|---|---|---|---|
jobId | string |
❌ | ||
channelReference | string |
❌ | ||
channelId | string |
❌ | ||
queueId | string |
❌ | ||
étiquettes | Dictionary<string, object> |
✔️ | En fonction de l’entrée utilisateur | |
tags | Dictionary<string, object> |
✔️ | En fonction de l’entrée utilisateur | |
assignmentId | string |
❌ | ||
workerId | string |
❌ |
Microsoft.Communication.RouterJobClosed
Retour au catalogue des événements
{
"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"
}
Liste d’attributs
Attribut | Type | Autorise la valeur Null | Description | Notes |
---|---|---|---|---|
jobId | string |
❌ | ||
channelReference | string |
❌ | ||
channelId | string |
❌ | ||
queueId | string |
❌ | ||
étiquettes | Dictionary<string, object> |
✔️ | En fonction de l’entrée utilisateur | |
tags | Dictionary<string, object> |
✔️ | En fonction de l’entrée utilisateur | |
dispositionCode | string |
✔️ | En fonction de l’entrée utilisateur | |
workerId | string |
❌ | ||
assignmentId | string |
❌ |
Microsoft.Communication.RouterJobCancelled
Retour au catalogue des événements
{
"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"
}
Liste d’attributs
Attribut | Type | Autorise la valeur Null | Description | Notes |
---|---|---|---|---|
remarque | string |
✔️ | En fonction de l’entrée utilisateur | |
dispositionCode | string |
❌ | ||
jobId | string |
❌ | ||
channelReference | string |
❌ | ||
channelId | string |
❌ | ||
étiquettes | Dictionary<string, object> |
✔️ | En fonction de l’entrée utilisateur | |
tags | Dictionary<string, object> |
✔️ | En fonction de l’entrée utilisateur | |
queueId | string |
✔️ |
Microsoft.Communication.RouterJobExceptionTriggered
Retour au catalogue des événements
{
"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"
}
Liste d’attributs
Attribut | Type | Autorise la valeur Null | Description | Notes |
---|---|---|---|---|
ruleKey | string |
❌ | ||
exceptionRuleId | string |
❌ | ||
jobId | string |
❌ | ||
channelReference | string |
❌ | ||
channelId | string |
❌ | ||
étiquettes | Dictionary<string, object> |
✔️ | En fonction de l’entrée utilisateur | |
tags | Dictionary<string, object> |
✔️ | En fonction de l’entrée utilisateur |
Microsoft.Communication.RouterJobWorkerSelectorsExpired
Retour au catalogue des événements
{
"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"
}
Liste d’attributs
Attribut | Type | Autorise la valeur Null | Description | Notes |
---|---|---|---|---|
jobId | string |
❌ | ||
channelReference | string |
✔️ | ||
queueId | string |
❌ | ||
channelId | string |
❌ | ||
étiquettes | Dictionary<string, object> |
✔️ | En fonction de l’entrée utilisateur | |
tags | Dictionary<string, object> |
✔️ | En fonction de l’entrée utilisateur | |
requestedWorkerSelectorsExpired | List<WorkerSelector> |
✔️ | En fonction des entrées utilisateur lors de la création d’une tâche | |
attachedWorkerSelectorsExpired | List<WorkerSelector> |
✔️ | Liste des sélecteurs de Worker attachés par une stratégie de classification |
Microsoft.Communication.RouterJobUnassigned
Retour au catalogue des événements
{
"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"
}
Liste d’attributs
Attribut | Type | Autorise la valeur Null | Description | Notes |
---|---|---|---|---|
jobId | string |
❌ | ||
assignmentId | string |
❌ | ||
workerId | string |
❌ | ||
channelId | string |
❌ | ||
channelReference | string |
❌ | ||
queueId | string |
✔️ | null lorsque classificationPolicyId est spécifié pour une tâche |
|
étiquettes | Dictionary<string, object> |
✔️ | En fonction de l’entrée utilisateur | |
tags | Dictionary<string, object> |
✔️ | En fonction de l’entrée utilisateur |
Microsoft.Communication.RouterJobWaitingForActivation
Retour au catalogue des événements
{
"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"
}
Liste d’attributs
Attribut | Type | Autorise la valeur Null | Description | Notes |
---|---|---|---|---|
jobId | string |
❌ | ||
channelId | string |
❌ | ||
channelReference | string |
❌ | ||
queueId | string |
✔️ | null lorsque classificationPolicyId est spécifié pour une tâche |
|
étiquettes | Dictionary<string, object> |
✔️ | En fonction de l’entrée utilisateur | |
tags | Dictionary<string, object> |
✔️ | En fonction de l’entrée utilisateur | |
requestedWorkerSelectorsExpired | List<WorkerSelector> |
✔️ | En fonction des entrées utilisateur lors de la création d’une tâche | |
attachedWorkerSelectorsExpired | List<WorkerSelector> |
✔️ | Liste des sélecteurs de Worker attachés par une stratégie de classification | |
scheduledOn | DateTimeOffset |
✔️ | En fonction des entrées utilisateur lors de la création d’une tâche | |
unavailableForMatching | bool |
✔️ | En fonction des entrées utilisateur lors de la création d’une tâche | |
priority | int |
❌ | En fonction des entrées utilisateur lors de la création d’une tâche |
Microsoft.Communication.RouterJobSchedulingFailed
Retour au catalogue des événements
{
"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"
}
Liste d’attributs
Attribut | Type | Autorise la valeur Null | Description | Notes |
---|---|---|---|---|
jobId | string |
❌ | ||
channelId | string |
❌ | ||
channelReference | string |
❌ | ||
queueId | string |
✔️ | null lorsque classificationPolicyId est spécifié pour une tâche |
|
étiquettes | Dictionary<string, object> |
✔️ | En fonction de l’entrée utilisateur | |
tags | Dictionary<string, object> |
✔️ | En fonction de l’entrée utilisateur | |
requestedWorkerSelectorsExpired | List<WorkerSelector> |
✔️ | En fonction des entrées utilisateur lors de la création d’une tâche | |
attachedWorkerSelectorsExpired | List<WorkerSelector> |
✔️ | Liste des sélecteurs de Worker attachés par une stratégie de classification | |
scheduledOn | DateTimeOffset |
✔️ | En fonction des entrées utilisateur lors de la création d’une tâche | |
failureReason | string |
✔️ | Déterminé par le système | |
priority | int |
❌ | En fonction des entrées utilisateur lors de la création d’une tâche |
Événements Worker
Microsoft.Communication.RouterWorkerOfferIssued
Retour au catalogue des événements
{
"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"
}
Liste d’attributs
Attribut | Type | Autorise la valeur Null | Description | Notes |
---|---|---|---|---|
workerId | string |
❌ | ||
jobId | string |
❌ | ||
channelReference | string |
❌ | ||
channelId | string |
❌ | ||
queueId | string |
❌ | ||
offerId | string |
❌ | ||
offeredOn | DateTimeOffset |
❌ | ||
expiresOn | DateTimeOffset |
❌ | ||
JobPriority | int |
❌ | ||
jobLabels | Dictionary<string, object> |
✔️ | En fonction de l’entrée utilisateur | |
jobTags | Dictionary<string, object> |
✔️ | En fonction de l’entrée utilisateur |
Microsoft.Communication.RouterWorkerOfferAccepted
Retour au catalogue des événements
{
"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"
}
Liste d’attributs
Attribut | Type | Autorise la valeur Null | Description | Notes |
---|---|---|---|---|
workerId | string |
❌ | ||
jobId | string |
❌ | ||
JobPriority | int |
❌ | ||
jobLabels | Dictionary<string, object> |
✔️ | En fonction de l’entrée utilisateur | |
jobTags | Dictionary<string, object> |
✔️ | En fonction de l’entrée utilisateur | |
channelReference | string |
❌ | ||
channelId | string |
❌ | ||
queueId | string |
❌ | ||
offerId | string |
❌ | ||
assignmentId | string |
❌ |
Microsoft.Communication.RouterWorkerOfferDeclined
Retour au catalogue des événements
{
"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"
}
Liste d’attributs
Attribut | Type | Autorise la valeur Null | Description | Notes |
---|---|---|---|---|
workerId | string |
❌ | ||
jobId | string |
❌ | ||
channelReference | string |
❌ | ||
channelId | string |
❌ | ||
queueId | string |
❌ | ||
offerId | string |
❌ |
Microsoft.Communication.RouterWorkerOfferRevoked
Retour au catalogue des événements
{
"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"
}
Liste d’attributs
Attribut | Type | Autorise la valeur Null | Description | Notes |
---|---|---|---|---|
offerId | string |
❌ | ||
workerId | string |
❌ | ||
jobId | string |
❌ | ||
channelReference | string |
❌ | ||
channelId | string |
❌ | ||
queueId | string |
❌ |
Microsoft.Communication.RouterWorkerOfferExpired
Retour au catalogue des événements
{
"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"
}
Liste d’attributs
Attribut | Type | Autorise la valeur Null | Description | Notes |
---|---|---|---|---|
workerId | string |
❌ | ||
offerId | string |
❌ | ||
jobId | string |
❌ | ||
channelReference | string |
❌ | ||
channelId | string |
❌ | ||
queueId | string |
❌ |
Microsoft.Communication.RouterWorkerRegistered
Retour au catalogue des événements
{
"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"
}
Liste d’attributs
Attribut | Type | Autorise la valeur Null | Description | Notes |
---|---|---|---|---|
workerId | string |
❌ | ||
totalCapacity | int |
❌ | ||
queueAssignments | List<QueueDetails> |
❌ | ||
étiquettes | Dictionary<string, object> |
✔️ | En fonction de l’entrée utilisateur | |
channelConfigurations | List<ChannelConfiguration> |
❌ | ||
tags | Dictionary<string, object> |
✔️ | En fonction de l’entrée utilisateur |
Microsoft.Communication.RouterWorkerUpdated
Retour au catalogue des événements
{
"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"
}
Liste d’attributs
Attribut | Type | Autorise la valeur Null | Description | Notes |
---|---|---|---|---|
workerId | string |
❌ | ||
totalCapacity | int |
❌ | ||
queueAssignments | List<QueueDetails> |
❌ | ||
étiquettes | Dictionary<string, object> |
✔️ | En fonction de l’entrée utilisateur | |
channelConfigurations | List<ChannelConfiguration> |
❌ | ||
tags | Dictionary<string, object> |
✔️ | En fonction de l’entrée utilisateur | |
updatedWorkerProperties | List<UpdateWorkerProperty> |
❌ | Propriétés Worker mises à jour, notamment AvailableForOffers, QueueAssignments, ChannelConfigurations, TotalCapacity, Labels et Tags |
Microsoft.Communication.RouterWorkerDeregistered
Retour au catalogue des événements
{
"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"
}
Liste d’attributs
Attribut | Type | Autorise la valeur Null | Description | Notes |
---|---|---|---|---|
workerId | string |
❌ |
Définitions de modèle
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,
}