Partager via


Recevoir des notifications de modification pour les mises à jour des événements d’appel d’urgence Microsoft Teams

Microsoft Teams prend en charge les notifications pour les appels d’urgence. Ces notifications peuvent être routées pour informer le personnel de sécurité spécifique au sein de Teams. La notification des événements d’appel d’urgence de Microsoft Graph étend cette fonctionnalité pour permettre la réception de notifications d’appel d’urgence en dehors de Teams (par exemple, par des applications clientes personnalisées), comme illustré dans le diagramme suivant.

Diagramme de flux de notification des événements d’appel d’urgence

  1. L’administrateur du locataire Teams configure l’appel d’urgence pour le locataire.
  2. L’application cliente crée un abonnement aux événements d’appel d’urgence Microsoft Graph.
  3. La notification d’événement d’appel d’urgence est déclenchée à l’application cliente lorsqu’un utilisateur Teams effectue un appel d’urgence (par exemple, 911) sur Teams.
  4. L’application cliente renouvelle l’abonnement existant avant son expiration ou en crée un après son expiration pour continuer à s’abonner aux notifications d’événements d’appel d’urgence.

Autorisations

Type d’autorisation Autorisations (de celle qui offre le plus de privilèges à celle qui en offre le moins) Versions prises en charge
Déléguée (compte professionnel ou scolaire) Non prise en charge. Non prise en charge.
Déléguée (compte Microsoft personnel) Non prise en charge. Non prise en charge.
Application CallEvents-Emergency.Read.All Bêta.

S’abonner aux événements de démarrage d’appel d’urgence

Pour vous abonner à lorsqu’un numéro de stratégie d’appel d’urgence est composé, définissez la resource propriété dans la charge utile communications/calls/getEmergencyEventsByPolicy(policyName='{policyName}')de l’abonnement sur , en remplaçant le {policyName} champ par le nom de stratégie configuré pour votre organization.

Les abonnements aux événements d’appel d’urgence prennent uniquement en charge les notifications enrichies. Définissez includeResourceData sur true et fournissez une valeur de certificat codé en base64 pour encryptionCertificate et un identificateur de chaîne pour encryptionCertificateId. Pour plus d’informations, consultez Configurer des notifications de modification qui incluent des données de ressources.

Les abonnements pour les événements d’appel d’urgence ont une durée de vie maximale d’un jour. Pour conserver les abonnements plus longtemps, mettez à jour la propriété expirationDateTime de l’abonnement. Pour plus d’informations, consultez Mettre à jour l’API d’abonnement.

Remarque

Les abonnements sont limités à un abonnement par combinaison de nom d’application, de locataire et de stratégie. Un deuxième abonnement qui utilise la même application, le même locataire et la même stratégie d’urgence qu’un autre échoue avec le code de status HTTP 409, ce qui signifie que la demande d’abonnement a été dupliquée et ne peut pas être créée.

Exemple de charge utile d’abonnement

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

Pour la définition des propriétés sur la demande d’abonnement, consultez Ressource d’abonnement.

Notifications d’événements d’appel d’urgence

Les notifications pour les appels d’urgence sont déclenchées lorsqu’un appel avec une stratégie d’appel d’urgence applicable est lancé.

Exemple de charge utile de notification

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

Exemple de données de ressource de notification déchiffrées

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