Skip to content

Teams Emergency Call Notifications - System Architecture

Setup Information

For implementation details, see the Azure Integration Guide. This document explains how the system works technically.

What This System Does

When someone makes an emergency call (like 911) through Microsoft Teams, this integration automatically captures that emergency notification and forwards it to Call Telemetry for immediate processing and alerting.

System Components

The integration uses three main components:

  1. Azure App Registration - Provides secure authentication to Microsoft Graph API
  2. Microsoft Graph API Subscription - Monitors for emergency call notifications in Teams
  3. Azure Event Hub - Streams messages between Microsoft and Call Telemetry using Kafka protocol

How It Works

The process:

  1. User dials 911 through Microsoft Teams
  2. Teams automatically creates a chat notification
  3. Microsoft Graph API subscription detects the notification
  4. Azure Event Hub forwards the event using Kafka protocol
  5. Call Telemetry receives and processes the emergency event
  6. Security teams get immediate notifications through configured channels

Authentication

Call Telemetry uses OAuth 2.0 Device Authorization Grant for authentication:

Required Permissions

All permissions are delegated (acting on behalf of the service user) rather than application-level permissions:

PermissionWhat It Does
User.ReadRead user profile for authentication
Chat.ReadRead chat messages for emergency monitoring
Chat.ReadBasicRead basic chat info and members
ChatMessage.ReadRead individual chat messages
openidOpenID Connect authentication
offline_accessToken refresh for continuous monitoring
profileBasic profile information

Azure Event Hub Configuration

Actual Specifications

Based on the setup guide, the Event Hub is configured with:

  • Event Hub Standard tier
  • 2 partitions (handles multiple concurrent emergency calls)
  • 1 throughput unit for typical deployments
  • 1 day message retention (Standard tier default)
  • Kafka protocol on port 9093 with SSL encryption

Network Requirements

The system requires outbound connectivity only:

DestinationPortProtocolPurpose
graph.microsoft.com443HTTPSMicrosoft Graph API access
login.microsoftonline.com443HTTPSAzure AD authentication
*.servicebus.windows.net9093Kafka/SSLEvent Hub Kafka protocol

Technical Specifications

Token Management

  • Access Tokens: 1-hour expiration, automatically refreshed
  • Graph API Subscriptions: 3-day expiration, auto-renewed by Call Telemetry
  • Authentication Recovery: Automatic re-authentication on failures

Service User Account Requirements

  • Microsoft 365 user account specifically for this integration
  • Microsoft Teams license assigned (Business Basic or higher)
  • Must be configured to receive emergency call notifications via Teams calling policies

Processing Performance

  • Emergency call events appear in Call Telemetry within 10 seconds
  • Microsoft Graph API subscriptions auto-renewed every 48 hours
  • Client Secret expiration: 12-24 months (configurable)

Cost Structure

Monthly costs for typical deployment:

ComponentCostNotes
Azure Event Hub Standard$25/monthBased on 1 throughput unit
Teams License (Service Account)$6.30/monthMicrosoft 365 Business Basic
App RegistrationFreeNo charge for Azure AD app registrations
Event Hub Storage$0/monthMinimal data storage

Total estimated cost: ~$31/month

Security Design

  • End-to-End Encryption: All communication uses TLS 1.2+
  • Minimal Permissions: Only chat reading permissions, no administrative access
  • Delegated Access: Integration only sees what the service user can see
  • No Inbound Connections: Only outbound connections required
  • MFA Support: Works with organizational multi-factor authentication policies

Data Privacy and Security

Customer-Owned Infrastructure

This Teams integration is deployed entirely within your organization's infrastructure:

  • Azure Resources: Event Hub and App Registration are created in your Azure subscription
  • Microsoft Graph API: Uses delegated permissions scoped to your service user account only
  • Call Telemetry Instance: Runs on your infrastructure (on-premises or your cloud deployment)
  • Data Flow: Emergency call data flows directly from Microsoft Teams to your Call Telemetry instance

Data Privacy Principles

No Third-Party Data Sharing:

  • No emergency call data is transmitted to Call Telemetry vendors or external services
  • All processing occurs within your organizational boundaries
  • Microsoft Graph API permissions are delegated to your service user account
  • Azure Event Hub streams data directly to your Call Telemetry deployment

Data Sovereignty:

  • Emergency call notifications remain within your Microsoft 365 tenant
  • Call Telemetry processes data on your controlled infrastructure
  • You maintain complete control over data retention and access policies
  • All configurations and credentials are managed by your organization

Example References:

  • Any references to "Call Telemetry" in documentation are examples of your deployment
  • Screenshots and configuration examples represent your organizational setup
  • No data is shared with Call Telemetry product vendors during normal operation

Version Requirements

  • Call Telemetry: 0.8.5 or later
  • License: Premium license required
  • Microsoft Graph API: Standard permissions (no admin consent required)
  • Azure Event Hub: Standard tier minimum