Obtención de notificaciones de cambio para los registros de llamadas de Microsoft Teams

Las notificaciones de cambio de Microsoft Graph permiten que las suscripciones llamen a registros, lo que proporciona una secuencia continua de actualizaciones de registros de llamadas a medida que se crean o modifican. Los registros de llamadas ofrecen información valiosa sobre el uso y el diagnóstico de las llamadas y reuniones en línea de su organización cuando se usa Microsoft Teams o Skype Empresarial. Estos datos se pueden aprovechar para la creación de informes personalizados, lo que facilita la supervisión de la adopción y la solución de problemas de calidad de llamadas.

Permisos

Tipo de permiso Permisos (de menos a más privilegiados) Versiones compatibles
Delegado (cuenta profesional o educativa) No admitida. No admitida.
Delegado (cuenta personal de Microsoft) No admitida. No admitida.
Aplicación CallRecords.Read.All v1.0

Ejemplos

Ejemplo 1: Solicitud de suscripción

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}"
}

Las notificaciones de cambio para los registros de llamada admiten tanto los tipos de update notificación como create . Una suscripción para create cambios solo envía una única notificación cuando se genera por primera vez un registro de llamada. Un registro de llamada se crea después de que finaliza una llamada o reunión y permanece accesible durante 30 días.

Una suscripción para update los cambios incluye una notificación inicial cuando se genera el registro por primera vez y cualquier notificación posterior a medida que se modifica ese registro. Dado que los atributos de registro de llamadas específicos dependen de señales del lado cliente, que pueden estar sujetos a retrasos o interrupciones debido a problemas de red, un registro de llamadas podría someterse a actualizaciones con información nueva o revisada después de su creación inicial. Estos cambios desencadenan una update notificación y el campo del version registro se incrementa para indicar la modificación.

La latencia de las notificaciones de cambio y el período de expiración máximo de la suscripción se definen en la introducción a las notificaciones de cambio.

Ejemplo 2: Solicitud de suscripción filtrada por el participante Microsoft Entra id. de objeto

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}"
}

Opcionalmente, puede filtrar las notificaciones de cambio para los registros de llamadas mediante el identificador de objeto de Microsoft Entra de un participante. Las notificaciones de cambio filtradas por id. de objeto se envían cuando se incluye el Microsoft Entra id. de objeto de un participante de llamada en el parámetro de filtro.

Este filtro admite eqoperadores , ory in para el id atributo de la participants colección en un recurso callRecord. Para obtener más información sobre el uso de $filter, consulte Uso del parámetro de consulta $filter.

Ejemplo 3: Notificación de suscripción

{
    "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}"
    }]
}