Obter notificações de alteração para registos de chamadas do Microsoft Teams

As notificações de alteração no Microsoft Graph permitem que as subscrições chamem registos, fornecendo um fluxo contínuo de atualizações de registos de chamadas à medida que são criadas ou modificadas. Os registos de chamadas oferecem informações de utilização e diagnóstico valiosas sobre as chamadas e reuniões online da sua organização ao utilizar o Microsoft Teams ou Skype for Business. Estes dados podem ser aproveitados para relatórios personalizados, facilitando a monitorização da adoção e a resolução de problemas de qualidade de chamadas.

Permissões

Tipo de permissão Permissões (da com menos para a com mais privilégios) Versões com suporte
Delegado (conta corporativa ou de estudante) Sem suporte. Sem suporte.
Delegado (conta pessoal da Microsoft) Sem suporte. Sem suporte.
Application CallRecords.Read.All v1.0

Exemplos

Exemplo 1: pedido de subscrição

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

As notificações de alteração dos registos de chamada suportam os create tipos de notificação e .update Uma subscrição de create alterações só envia uma única notificação quando um registo de chamada é gerado pela primeira vez. É criado um registo de chamada após o fim de uma chamada ou reunião e permanece acessível durante 30 dias.

Uma subscrição para update alterações inclui uma notificação inicial quando o registo é gerado pela primeira vez e quaisquer notificações subsequentes à medida que esse registo é modificado. Uma vez que os atributos de registo de chamadas específicos dependem de sinais do lado do cliente, que podem estar sujeitos a atrasos ou interrupções devido a problemas de rede, um registo de chamada pode passar por atualizações com informações novas ou revistas após a criação inicial. Estas alterações acionam uma update notificação e o campo do version registo é incrementado para indicar a modificação.

A latência das notificações de alteração e o período máximo de expiração da subscrição são definidos na descrição geral das notificações de alteração.

Exemplo 2: Pedido de subscrição filtrado pelo participante Microsoft Entra ID do 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, pode filtrar notificações de alteração para registos de chamadas com o ID de Objeto Microsoft Entra de um participante. As notificações de alteração filtradas pelo ID do Objeto são enviadas quando o ID de Objeto Microsoft Entra de um participante da chamada é incluído no parâmetro de filtro.

Este filtro suporta eq, ore in operadores para o id atributo da participants coleção num recurso callRecord. Para obter mais detalhes sobre como utilizar $filter, veja Utilizar o parâmetro de consulta $filter.

Exemplo 3: Notificação de subscrição

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