Subscribe to Job Router events
This guide outlines the steps to set up a subscription for Job Router events and how to receive them.
For more details on Event Grid, see the Event Grid documentation.
Important
Functionality described on this section is currently in private preview. Private preview includes access to SDKs and documentation for testing purposes that are not yet available publicly. Apply to become an early adopter by filling out the form for preview access to Azure Communication Services.
Prerequisites
- An Azure account with an active subscription. Create an account for free.
- A deployed Communication Services resource. Create a Communication Services resource.
- Optional: Complete the quickstart to get started with Job Router
Create an Event Grid subscription
Note
Since Job Router is still in preview, the events are not included in the portal UI. You have to use an Azure Resource Manager (ARM) template to create a subscription that references them.
This template deploys an Event Grid subscription on a Storage Queue for Job Router events. If the storage account, queue or system topic doesn't exist, they'll be created as well.
Parameters
- Azure Communication Services Resource Name: The name of your Azure Communication Services resource. For example, if the endpoint to your resource is
https://contoso.communication.azure.net
, then set tocontoso
. - Storage Name: The name of your Azure Storage Account. If it doesn't exist, it will be created.
- Event Sub Name: The name of the event subscription to create.
- System Topic Name: If you have existing event subscriptions on your Azure Communication Services resource, find the
System Topic
name in theEvents
tab of your Azure Communication Services resource. Otherwise, specify a unique name such as the Azure Communication Services resource name itself. - Queue Name: The name of your Queue within your Storage Account. If it doesn't exist, it will be created.
Deployed resources
The following resources are deployed as part of the solution
- Storage Account: If the storage account name doesn't exist.
- Storage Queue: If the queue doesn't exist within the storage account.
- Event Grid System Topic: If the topic doesn't exist.
- Event Grid Subscription: A subscription for all Job Router events on the storage queue.
Quick-start: Receive Event Grid events via an Azure Storage Queue
Create a new C# application
In a console window (such as cmd, PowerShell, or Bash), use the dotnet new
command to create a new console app with the name EventReceiver
. This command creates a simple "Hello World" C# project with a single source file: Program.cs.
dotnet new console -o EventReceiver
Change your directory to the newly created app folder and use the dotnet build
command to compile your application.
cd EventReceiver
dotnet build
Install the packages
Install the Azure Storage Queues and Event Grid packages.
dotnet add package Azure.Storage.Queues
dotnet add package Azure.Messaging.EventGrid
Receive messages from the queue
Copy the following code snippet and paste into source file: 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);
}
Run the code
Run the application from your application directory with the dotnet run
command.
dotnet run
Events Catalog
Events | Subdomain | Description |
---|---|---|
RouterJobReceived |
Job |
A new job was created for routing |
RouterJobClassified |
Job |
The classification policy was applied to a job |
RouterJobQueued |
Job |
A job has been successfully enqueued |
RouterJobClassificationFailed |
Job |
Router failed to classify job using classification policy |
RouterJobCompleted |
Job |
A job was completed and enters wrap-up |
RouterJobClosed |
Job |
A job was closed and wrap-up is finished |
RouterJobCancelled |
Job |
A job was canceled |
RouterJobExceptionTriggered |
Job |
A job exception has been triggered |
RouterJobWorkerSelectorsExpired |
Job |
One or more worker selectors on a job have expired |
RouterWorkerOfferIssued |
Worker |
A job was offered to a worker |
RouterWorkerOfferAccepted |
Worker |
An offer to a worker was accepted |
RouterWorkerOfferDeclined |
Worker |
An offer to a worker was declined |
RouterWorkerOfferRevoked |
Worker |
An offer to a worker was revoked |
RouterWorkerOfferExpired |
Worker |
An offer to a worker has expired |
RouterWorkerRegistered |
Worker |
A worker has been registered |
RouterWorkerDeregistered |
Worker |
A worker has been deregistered |
Router Events
Microsoft.Communication.RouterJobReceived
{
"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,
"ttl": "P3Y6M4DT12H30M5S"
}
]
},
"eventType": "Microsoft.Communication.RouterJobReceived",
"dataVersion": "1.0",
"metadataVersion": "1",
"eventTime": "2022-02-17T00:55:25.1736293Z"
}
Attribute list
Attribute | Type | Nullable | Description | Notes |
---|---|---|---|---|
jobId | string |
❌ | ||
channelReference | string |
❌ | ||
jobStatus | enum |
❌ | Possible values
|
When a this event is sent out, classification process is yet to have been executed or job was created with an associated queueId. |
channelId | string |
❌ | ||
classificationPolicyId | string |
✔️ | null when queueId is specified for a job |
|
queueId | string |
✔️ | null when classificationPolicyId is specified for a job |
|
priority | int |
✔️ | Null when classificationPolicyId is specified. Non-null value in case of direct queue assignment. |
|
labels | Dictionary<string, object> |
✔️ | Based on user input | |
tags | Dictionary<string, object> |
✔️ | Based on user input | |
requestedWorkerSelectors | List<WorkerSelector> |
✔️ | Based on user input |
Microsoft.Communication.RouterJobClassified
{
"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": {
"queueInfo": {
"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"
}
Attribute list
Attribute | Type | Nullable | Description | Notes |
---|---|---|---|---|
queueInfo | QueueInfo |
❌ | ||
jobId | string |
❌ | ||
channelReference | string |
❌ | ||
channelId | string |
❌ | ||
classificationPolicyId | string |
❌ | ||
queueId | string |
✔️ | null when classificationPolicy is not used for queue selection |
|
priority | int |
✔️ | null when classificationPolicy is not used for applying priority on job |
|
labels | Dictionary<string, object> |
✔️ | Based on user input | |
tags | Dictionary<string, object> |
✔️ | Based on user input | |
attachedWorkerSelectors | List<WorkerSelector> |
✔️ | List of worker selectors attached by a classification policy |
Microsoft.Communication.RouterJobQueued
{
"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"
}
Attribute list
Attribute | Type | Nullable | Description | Notes |
---|---|---|---|---|
jobId | string |
❌ | ||
channelReference | string |
✔️ | ||
channelId | string |
❌ | ||
queueId | string |
❌ | ||
priority | int |
❌ | ||
labels | Dictionary<string, object> |
✔️ | Based on user input | |
tags | Dictionary<string, object> |
✔️ | Based on user input | |
requestedWorkerSelectors | List<WorkerSelector> |
✔️ | Based on user input while creating job | |
attachedWorkerSelectors | List<WorkerSelector> |
✔️ | List of worker selectors attached by a classification policy |
Microsoft.Communication.RouterJobClassificationFailed
{
"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"
}
Attribute list
Attribute | Type | Nullable | Description | Notes |
---|---|---|---|---|
errors | List<CommunicationError> |
❌ | ||
jobId | string |
❌ | ||
channelReference | string |
❌ | ||
channelId | string |
❌ | ||
classificationPolicyId | string |
❌ | ||
labels | Dictionary<string, object> |
✔️ | Based on user input | |
tags | Dictionary<string, object> |
✔️ | Based on user input |
Microsoft.Communication.RouterJobCompleted
{
"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"
}
Attribute list
Attribute | Type | Nullable | Description | Notes |
---|---|---|---|---|
jobId | string |
❌ | ||
channelReference | string |
❌ | ||
channelId | string |
❌ | ||
queueId | string |
❌ | ||
labels | Dictionary<string, object> |
✔️ | Based on user input | |
tags | Dictionary<string, object> |
✔️ | Based on user input | |
assignmentId | string |
❌ | ||
workerId | string |
❌ |
Microsoft.Communication.RouterJobClosed
{
"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"
}
Attribute list
Attribute | Type | Nullable | Description | Notes |
---|---|---|---|---|
jobId | string |
❌ | ||
channelReference | string |
❌ | ||
channelId | string |
❌ | ||
queueId | string |
❌ | ||
labels | Dictionary<string, object> |
✔️ | Based on user input | |
tags | Dictionary<string, object> |
✔️ | Based on user input | |
dispositionCode | string |
✔️ | Based on user input | |
workerId | string |
❌ | ||
assignmentId | string |
❌ |
Microsoft.Communication.RouterJobCancelled
{
"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"
}
Attribute list
Attribute | Type | Nullable | Description | Notes |
---|---|---|---|---|
note | string |
✔️ | Based on user input | |
dispositionCode | string |
❌ | ||
jobId | string |
❌ | ||
channelReference | string |
❌ | ||
channelId | string |
❌ | ||
labels | Dictionary<string, object> |
✔️ | Based on user input | |
tags | Dictionary<string, object> |
✔️ | Based on user input | |
queueId | string |
✔️ |
Microsoft.Communication.RouterJobExceptionTriggered
{
"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"
}
Attribute list
Attribute | Type | Nullable | Description | Notes |
---|---|---|---|---|
ruleKey | string |
❌ | ||
exceptionRuleId | string |
❌ | ||
jobId | string |
❌ | ||
channelReference | string |
❌ | ||
channelId | string |
❌ | ||
labels | Dictionary<string, object> |
✔️ | Based on user input | |
tags | Dictionary<string, object> |
✔️ | Based on user input |
Microsoft.Communication.RouterJobWorkerSelectorsExpired
{
"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"
}
Attribute list
Attribute | Type | Nullable | Description | Notes |
---|---|---|---|---|
jobId | string |
❌ | ||
channelReference | string |
✔️ | ||
queueId | string |
❌ | ||
channelId | string |
❌ | ||
labels | Dictionary<string, object> |
✔️ | Based on user input | |
tags | Dictionary<string, object> |
✔️ | Based on user input | |
requestedWorkerSelectorsExpired | List<WorkerSelector> |
✔️ | Based on user input while creating a job | |
attachedWorkerSelectorsExpired | List<WorkerSelector> |
✔️ | List of worker selectors attached by a classification policy |
Worker Events
Microsoft.Communication.RouterWorkerOfferIssued
{
"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",
"offerTimeUtc": "2021-06-23T02:43:30.3847144Z",
"expiryTimeUtc": "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"
}
Attribute list
Attribute | Type | Nullable | Description | Notes |
---|---|---|---|---|
workerId | string |
❌ | ||
jobId | string |
❌ | ||
channelReference | string |
❌ | ||
channelId | string |
❌ | ||
queueId | string |
❌ | ||
offerId | string |
❌ | ||
offerTimeUtc | DateTimeOffset |
❌ | ||
expiryTimeUtc | DateTimeOffset |
❌ | ||
jobPriority | int |
❌ | ||
jobLabels | Dictionary<string, object> |
✔️ | Based on user input | |
jobTags | Dictionary<string, object> |
✔️ | Based on user input |
Microsoft.Communication.RouterWorkerOfferAccepted
{
"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"
}
Attribute list
Attribute | Type | Nullable | Description | Notes |
---|---|---|---|---|
workerId | string |
❌ | ||
jobId | string |
❌ | ||
jobPriority | int |
❌ | ||
jobLabels | Dictionary<string, object> |
✔️ | Based on user input | |
jobTags | Dictionary<string, object> |
✔️ | Based on user input | |
channelReference | string |
❌ | ||
channelId | string |
❌ | ||
queueId | string |
❌ | ||
offerId | string |
❌ | ||
assignmentId | string |
❌ |
Microsoft.Communication.RouterWorkerOfferDeclined
{
"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"
}
Attribute list
Attribute | Type | Nullable | Description | Notes |
---|---|---|---|---|
workerId | string |
❌ | ||
jobId | string |
❌ | ||
channelReference | string |
❌ | ||
channelId | string |
❌ | ||
queueId | string |
❌ | ||
offerId | string |
❌ |
Microsoft.Communication.RouterWorkerOfferRevoked
{
"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"
}
Attribute list
Attribute | Type | Nullable | Description | Notes |
---|---|---|---|---|
offerId | string |
❌ | ||
workerId | string |
❌ | ||
jobId | string |
❌ | ||
channelReference | string |
❌ | ||
channelId | string |
❌ | ||
queueId | string |
❌ |
Microsoft.Communication.RouterWorkerOfferExpired
{
"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"
}
Attribute list
Attribute | Type | Nullable | Description | Notes |
---|---|---|---|---|
workerId | string |
❌ | ||
offerId | string |
❌ | ||
jobId | string |
❌ | ||
channelReference | string |
❌ | ||
channelId | string |
❌ | ||
queueId | string |
❌ |
Microsoft.Communication.RouterWorkerRegistered
{
"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
}
]
},
"eventType": "Microsoft.Communication.RouterWorkerRegistered",
"dataVersion": "1.0",
"metadataVersion": "1",
"eventTime": "2022-02-17T00:55:25.1736293Z"
}
Attribute list
Attribute | Type | Nullable | Description | Notes |
---|---|---|---|---|
workerId | string |
❌ | ||
totalCapacity | int |
❌ | ||
queueAssignments | List<QueueInfo> |
❌ | ||
labels | Dictionary<string, object> |
✔️ | Based on user input | |
channelConfigurations | List<ChannelConfiguration> |
❌ |
Microsoft.Communication.RouterWorkerDeregistered
{
"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"
}
Attribute list
Attribute | Type | Nullable | Description | Notes |
---|---|---|---|---|
workerId | string |
❌ |
Feedback
Submit and view feedback for