Получение уведомлений об изменениях для обновлений событий экстренных вызовов в Microsoft Teams
Microsoft Teams поддерживает уведомления о экстренных вызовах. Эти уведомления можно направить для информирования конкретных сотрудников службы безопасности в Teams. Уведомление о событиях экстренных вызовов Microsoft Graph расширяет эту возможность, позволяя получать уведомления о экстренных вызовах за пределами Teams (например, пользовательскими клиентскими приложениями), как показано на следующей схеме.
- Администратор клиента Teams настраивает экстренный вызов для клиента.
- Клиентское приложение создает подписку на события экстренных вызовов Microsoft Graph.
- Уведомление о событии экстренного вызова запускается в клиентское приложение, когда пользователь Teams выполняет экстренный вызов (например, 911) в Teams.
- Клиентское приложение либо продлевает существующую подписку до истечения срока ее действия, либо создает новую по истечении срока действия, чтобы продолжить подписку на уведомления о событиях экстренных вызовов.
Разрешения
Тип разрешения | Разрешения (в порядке повышения привилегий) | Поддерживаемые версии |
---|---|---|
Делегированные (рабочая или учебная учетная запись) | Не поддерживается. | Не поддерживается. |
Делегированные (личная учетная запись Майкрософт) | Не поддерживается. | Не поддерживается. |
Приложение | CallEvents-Emergency.Read.All | Beta. |
Подписка на события запуска экстренных вызовов
Чтобы подписаться на номер политики экстренных вызовов, задайте resource
для свойства в полезных данных communications/calls/getEmergencyEventsByPolicy(policyName='{policyName}')
подписки значение , заменив {policyName}
поле именем политики, настроенной для вашей организации.
Подписки на события экстренных вызовов поддерживают только расширенные уведомления. Задайте includeResourceData
значение true
и укажите значение сертификата в кодировке Base64 для encryptionCertificate
и идентификатор строки для encryptionCertificateId
. Дополнительные сведения см. в разделе Настройка уведомлений об изменениях, включающих данные ресурсов.
Срок жизни подписок на события экстренных вызовов составляет один день. Чтобы сохранить подписки дольше, обновите свойство expirationDateTime подписки. Дополнительные сведения см. в разделе Обновление API подписки.
Примечание.
Подписки ограничены одной подпиской для каждого приложения, клиента и имени политики. Вторая подписка, использующая то же приложение, клиент и политику для чрезвычайных ситуаций, что и другая, завершится ошибкой с кодом состояния HTTP 409, что означает, что запрос подписки был дублирован и не может быть создан.
Пример полезных данных подписки
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}"
}
Определение свойств в запросе подписки см. в разделе Ресурс подписки.
Уведомления о событиях экстренных вызовов
Уведомления о экстренных вызовах активируются при инициировании вызова с применимой политикой экстренных вызовов.
Пример полезных данных уведомления
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}"]
}
Пример данных расшифрованных ресурсов уведомлений
{
"@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"
}
}
}
}
}