Partager via


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

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.

Déployer sur Azure

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 valeur contoso.
  • 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’onglet Events 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,
}