Receber notificações de alteração para atualizações de eventos de chamada de emergência do Microsoft Teams
O Microsoft Teams suporta notificações para chamadas de emergência. Estas notificações podem ser encaminhadas para informar pessoal de segurança específico no Teams. A notificação de eventos de chamada de emergência do Microsoft Graph expande esta capacidade para permitir que as notificações de chamadas de emergência sejam recebidas fora do Teams (por exemplo, por aplicações cliente personalizadas), conforme mostrado no diagrama seguinte.
- O administrador de inquilinos do Teams configura as chamadas de emergência para o inquilino.
- A aplicação cliente cria uma subscrição de evento de chamada de emergência do Microsoft Graph.
- A notificação de evento de chamada de emergência é acionada para a aplicação cliente quando um utilizador do Teams faz uma chamada de emergência (por exemplo, 911) no Teams.
- A aplicação cliente renova a subscrição existente antes de expirar ou cria uma nova depois de expirar para continuar a subscrever notificações de eventos de chamada de emergência.
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 | CallEvents-Emergency.Read.All | Beta. |
Subscrever eventos de chamadas de emergência iniciadas
Para subscrever quando um número de política de chamada de emergência é marcado, defina a resource
propriedade no payload da subscrição como communications/calls/getEmergencyEventsByPolicy(policyName='{policyName}')
, substituindo o {policyName}
campo pelo nome da política configurado para a sua organização.
As subscrições para eventos de chamada de emergência só suportam notificações avançadas. Defina includeResourceData
como true
e forneça o valor de certificado codificado base64 para encryptionCertificate
e um identificador de cadeia para encryptionCertificateId
. Para obter mais informações, veja Configurar notificações de alteração que incluem dados de recursos.
As subscrições para eventos de chamada de emergência têm um tempo máximo de vida útil da subscrição de um dia. Para manter as subscrições por mais tempo, atualize a propriedade expirationDateTime da subscrição. Para obter mais informações, veja Atualizar a API de subscrição.
Observação
As subscrições estão limitadas a uma subscrição por aplicação, inquilino e combinação de nomes de política. Uma segunda subscrição que utiliza a mesma aplicação, inquilino e política de emergência como outra falhará com o código de status HTTP 409, o que significa que o pedido de subscrição foi duplicado e não pode ser criado.
Exemplo de payload da subscrição
POST https://graph.microsoft.com/beta/subscriptions
Content-Type: application/json
{
"changeType": "updated",
"notificationUrl": "https://contoso.com/notificationUrl",
"resource": "communications/calls/getEmergencyEventsByPolicy(policyName='EmergencyPolicy')",
"includeResourceData": true,
"encryptionCertificate": "{base64encodedCertificate}",
"encryptionCertificateId": "{customId}",
"expirationDateTime": "2021-02-01T11:00:00.0000000Z",
"clientState": "{secretClientState}"
}
Para obter a definição de propriedades no pedido de subscrição, veja Recurso de subscrição.
Notificações de eventos de chamada de emergência
As notificações de chamadas de emergência são acionadas quando é iniciada uma chamada com uma política de chamada de emergência aplicável.
Exemplo de payload de notificação
POST https://contoso.com/notificationUrl
Content-Type: application/json
{
"value": [{
"subscriptionId": "{Subscription id}",
"clientState": "{secret client state}",
"changeType": "updated",
"tenantId": "00000000-0000-0000-0000-000000000000",
"resource": "communications/calls/getEmergencyEventsByPolicy(policyName='EmergencyPolicy')",
"subscriptionExpirationDateTime": "2021-02-01T11:00:00.0000000Z",
"resourceData": {
"@odata.id": "communications/calls/getEmergencyEventsByPolicy(policyName='EmergencyPolicy')",
"@odata.type": "#microsoft.graph.emergencyCallEvent",
"id": "11111111-0000-0000-0000-000000000000",
},
"organizationId": "00000000-0000-0000-0000-000000000000",
"encryptedContent": {
"data": "{Encrypted content}",
"dataSignature": "{Encrypted data signature}",
"dataKey": "{Encrypted data key for encrypting content}",
"encryptionCertificateId": "{User specified id of encryption certificate}",
"encryptionCertificateThumbprint": "{Encrpytion certification thumbprint}"
}
}],
"validationTokens": ["{Validation Tokens}"]
}
Exemplo de dados de recursos de notificação desencriptados
{
"@odata.id": "communications/calls/getEmergencyEventsByPolicy(policyName='EmergencyPolicy')",
"@odata.type": "#microsoft.graph.emergencyCallEvent",
"id": "11111111-0000-0000-0000-000000000000",
"emergencyCallEvent": {
"id": "11111111-0000-0000-0000-000000000000",
"callEventType": "callStarted",
"policyName": "EmergencyPolicy",
"eventDateTime": "2024-01-01T10:00:00.0000000+00:00",
"emergencyNumberDialed": "{emergencyNumberDialed}",
"callerInfo": {
"displayName": "Emergency caller display name",
"upn": "emergencyCaller@contoso.com",
"phoneNumber": "00000000000",
"tenantId": "00000000-0000-0000-0000-000000000000",
"location": {
"address": {
"street": "Microsoft Way",
"city": "Redmond",
"state": "WA",
"countryOrRegion": "United States",
"postalCode": "00000",
"additionalData": {
"companyName": "Company name",
"additionalInfo": "700",
"houseNumber": "725",
"county": "County",
"streetSuffix": "Street suffix"
}
},
"coordinates": {
"latitude": "00.0000",
"longitude": "00.0000"
}
}
}
}
}