Поделиться через


Получение уведомлений об изменениях для записей звонков Microsoft Teams

Уведомления об изменениях в Microsoft Graph позволяют подпискам вызывать записи, обеспечивая непрерывный поток обновлений записей вызовов по мере их создания или изменения. Записи звонков предоставляют ценные аналитические сведения об использовании и диагностике звонков и собраний по сети в вашей организации при использовании Microsoft Teams или Skype для бизнеса. Эти данные можно использовать для пользовательских отчетов, упрощая мониторинг внедрения и устраняя проблемы с качеством звонков.

Разрешения

Тип разрешения Разрешения (в порядке повышения привилегий) Поддерживаемые версии
Делегированные (рабочая или учебная учетная запись) Не поддерживается. Не поддерживается.
Делегированные (личная учетная запись Майкрософт) Не поддерживается. Не поддерживается.
Приложение CallRecords.Read.All v1.0

Примеры

Пример 1. Запрос подписки

POST https://graph.microsoft.com/v1.0/subscriptions
Content-Type: application/json

{
  "changeType": "updated",
  "notificationUrl": "https://webhook.azurewebsites.net/api/resourceNotifications",
  "lifecycleNotificationUrl": "https://webhook.azurewebsites.net/api/lifecycleNotifications",
  "resource": "/communications/callRecords",
  "expirationDateTime": "2023-02-28T00:00:00.0000000Z",
  "clientState": "{Secret client state}"
}

Уведомления об изменениях для записей звонков поддерживают как типы уведомлений, так create и update . Подписка на create изменения отправляет только одно уведомление, когда запись вызова впервые отображается в определенной подписке. Запись звонка создается после окончания звонка или собрания и остается доступной в течение 30 дней.

Подписка на update изменения включает в себя первоначальное уведомление, когда запись впервые отображается в определенной подписке, и все последующие уведомления при изменении этой записи. Так как определенные атрибуты записи вызовов зависят от сигналов на стороне клиента, которые могут быть подвержены задержкам или прерываниям из-за проблем с сетью, запись вызова может обновляться с новыми или пересмотренными сведениями после ее первоначального создания. Эти изменения активируют update уведомление, и поле записи version увеличивается, чтобы указать на изменение.

Задержка уведомлений об изменениях и максимальный срок действия подписки определяются в обзоре уведомлений об изменениях.

Пример 2. Запрос на подписку, отфильтрованный по идентификатору объекта Microsoft Entra участника

POST https://graph.microsoft.com/v1.0/subscriptions
Content-Type: application/json

{
  "changeType": "updated",
  "notificationUrl": "https://webhook.azurewebsites.net/api/resourceNotifications",
  "lifecycleNotificationUrl": "https://webhook.azurewebsites.net/api/lifecycleNotifications",
  "resource": "/communications/callRecords?$filter=participants/any(p:p/id eq '{Entra object id}')",
  "expirationDateTime": "2023-02-28T00:00:00.0000000Z",
  "clientState": "{Secret client state}"
}

При необходимости можно фильтровать уведомления об изменениях для записей вызовов с помощью идентификатора объекта Microsoft Entra участника. Уведомления об изменениях, отфильтрованные по идентификатору объекта, отправляются, когда идентификатор объекта Microsoft Entra участника вызова включается в параметр фильтра.

Этот фильтр поддерживает eqоператоры , orи in для id атрибута participants коллекции в ресурсе callRecord. Дополнительные сведения об использовании $filter см. в разделе Использование параметра запроса $filter.

Пример 3. Уведомление о подписке

{
    "value":[{
        "subscriptionId":"{Subscription id}",
        "clientState":"{Secret client state}",
        "changeType":"created",
        "resource":"communications/callRecords/{Call id}",
        "subscriptionExpirationDateTime":"2023-02-28T00:00:00.000+00:00",
        "resourceData":{
            "@odata.type":"#Microsoft.Graph.callRecord",
            "@odata.id":"communications/callRecords/{Call id}",
            "id":"{Call id}"
        },
        "tenantId":"{Organization/Tenant id}"
    }]
}