Compartir a través de


Obtención de notificaciones de cambio para las actualizaciones de eventos de llamadas de emergencia de Microsoft Teams

Microsoft Teams admite notificaciones para llamadas de emergencia. Estas notificaciones se pueden enrutar para informar al personal de seguridad específico de Teams. La notificación de eventos de llamada de emergencia de Microsoft Graph amplía esta funcionalidad para permitir que las notificaciones de llamada de emergencia se reciban fuera de Teams (por ejemplo, mediante aplicaciones cliente personalizadas), como se muestra en el diagrama siguiente.

Diagrama de flujo de notificación de eventos de llamada de emergencia

  1. El administrador de inquilinos de Teams configura las llamadas de emergencia para el inquilino.
  2. La aplicación cliente crea una suscripción de eventos de llamada de emergencia de Microsoft Graph.
  3. La notificación de eventos de llamada de emergencia se desencadena en la aplicación cliente cuando un usuario de Teams realiza una llamada de emergencia (por ejemplo, 911) en Teams.
  4. La aplicación cliente renueva la suscripción existente antes de que expire o crea una nueva después de que expire para seguir suscribiéndose a las notificaciones de eventos de llamada de emergencia.

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 CallEvents-Emergency.Read.All Beta.

Suscripción a eventos de inicio de llamada de emergencia

Para suscribirse a cuando se marca un número de directiva de llamada de emergencia, establezca la resource propiedad de la carga de communications/calls/getEmergencyEventsByPolicy(policyName='{policyName}')suscripción en , reemplazando el {policyName} campo por el nombre de directiva configurado para su organización.

Las suscripciones para eventos de llamada de emergencia solo admiten notificaciones enriquecidas. Establezca includeResourceData en y proporcione el valor del certificado codificado en base64 para encryptionCertificate y un identificador de cadena para encryptionCertificateId.true Para obtener más información, consulte Configuración de notificaciones de cambios que incluyen datos de recursos.

Las suscripciones para eventos de llamada de emergencia tienen un período de vida máximo de suscripción de un día. Para mantener las suscripciones durante más tiempo, actualice la propiedad expirationDateTime de la suscripción. Para obtener más información, consulte Actualización de la API de suscripción.

Nota:

Las suscripciones están limitadas a una suscripción por aplicación, inquilino y combinación de nombre de directiva. Una segunda suscripción que usa la misma aplicación, inquilino y directiva de emergencia que otra producirá un error con el código de estado HTTP 409, lo que significa que la solicitud de suscripción se ha duplicado y no se puede crear.

Ejemplo de carga de suscripción

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 obtener la definición de propiedades en la solicitud de suscripción, consulte Recurso de suscripción.

Notificaciones de eventos de llamada de emergencia

Las notificaciones de llamadas de emergencia se desencadenan cuando se inicia una llamada con una directiva de llamada de emergencia aplicable.

Ejemplo de carga de notificación

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

Ejemplo de datos de recursos de notificación descifrados

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