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
, or
e 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}"
}]
}
- A propriedade ID da Chamada corresponde a um recurso de registo de chamada específico, que pode ser obtido com a API Get callRecord .