Appearance
Teams Emergency Call Notifications - System Architecture
System Purpose
Call Telemetry's Microsoft Teams integration delivers real-time monitoring of emergency call notifications through Microsoft Graph API subscriptions with Event Hub streaming delivery. This architecture enables immediate detection and processing of Emergency call notifications that are automatically generated when users make Emergency calls via Microsoft Teams calling.
Core Architecture Principles
- Event-Driven: Uses Microsoft Graph subscriptions with Event Hub streaming for real-time notifications
- Secure by Design: OAuth 2.0 Device Authorization Grant with delegated permissions and least privilege access
- Scalable: Event Hub with Kafka protocol supports high-throughput message processing
- Auditable: Complete CloudEvent audit trail for compliance and troubleshooting
- Resilient: Automatic token refresh and subscription management
High-Level System Architecture
Core Components
Microsoft Teams Emergency Calls
- Emergency Detection: Native Teams emergency calling generates automatic chat notifications
- Call Context: Emergency notifications include caller information, location data, and timestamp
- Integration Trigger: Emergency calls automatically create chat messages that trigger the integration
Microsoft Graph API
- Subscription Management: Creates real-time subscriptions to monitor chat message changes
- Event Delivery: Pushes emergency notification events to Azure Event Hub via CloudEvents
- Authentication: Validates delegated permissions and manages API access tokens
- Rate Limiting: Handles API throttling and manages subscription lifecycles
Azure Event Hub
- Event Streaming: Kafka-compatible message streaming with guaranteed delivery and ordering
- Scalable Partitioning: Distributes emergency notifications across partitions for parallel processing
- Retention Management: Configurable message retention (1-7 days)
- Integration Bridge: Connects Microsoft Graph API events to Call Telemetry processing pipeline
Call Telemetry Platform
- Event Processing: Broadway pipeline processes CloudcEvents with concurrent message handling
- Token Management: Automatic renewal of OAuth access and refresh tokens
- Subscription Lifecycle: Automated creation, renewal, and cleanup of Graph API subscriptions
- Data Storage: Secure storage of emergency notifications, tokens, and audit trails
Emergency Dashboard
- Real-time Updates: Displays realtime emergency notifications and call details
- Workflow Integration: Triggers automated emergency response workflows
- Administrative Interface: Management tools for subscription health and system monitoring
Security Architecture
Microsoft Graph API Permissions
The integration uses delegated permissions that operate under the authenticated service user's access rights. This ensures the principle of least privilege and maintains security boundaries.
Permission | Type | Description | Justification |
---|---|---|---|
User.Read | Delegated | Read user profile | Basic user information for authentication |
Chat.Read | Delegated | Read chat messages | Read user chat messages |
Chat.ReadBasic | Delegated | Read basic chat information | Read names and members of user chat threads |
ChatMessages.Read | Delegated | Read chat messages | Read user chat messages |
openid | Delegated | OpenID Connect authentication | Standard authentication flow |
offline_access | Delegated | Access resources when user not present | Token refresh capability |
profile | Delegated | View user's basic profile | User identification |
Authentication Security
Security Model
- Delegated Permissions Only: Integration operates within service user's existing access rights
- Zero Application Permissions: Cannot access organizational data beyond the authenticated user's scope
- OAuth 2.0 Device Authorization Grant: Secure authentication flow designed for service accounts
- Time-Limited Access: Access tokens expire in 1 hour, refresh tokens automatically renewed
- Multi-Factor Authentication: Supports organizational MFA and conditional access policies
Network Security
- HTTPS Only: All communication encrypted with TLS 1.2+
- Outbound Only: No inbound connections required
- Domain Validation: Connections only to verified Microsoft domains
- Port 443: Single port requirement simplifies firewall configuration
Detailed Authentication and Message Flow
Implementation Architecture
Azure Infrastructure Requirements
Event Hub Namespace: A dedicated Azure Event Hub namespace hosts the Teams event streaming infrastructure. This provides:
- Kafka Protocol Support: Industry-standard messaging protocol for reliable event delivery
- Partition Management: Automatic message distribution for scalability
- Retention Policies: Configurable message retention (1-7 days)
App Registration: Azure Active Directory app registration establishes the security boundary:
- Client Application: Public client configuration for device authentication flow
- API Permissions: User Delegated Microsoft Graph permissions as listed above
Integration Points
Call Telemetry Platform Integration:
- Service Users: Dedicated Teams integration users authenticate via device flow
- Token Management: Automatic renewal of access and refresh tokens
- Subscription Lifecycle: Automated creation, renewal, and cleanup of Graph API subscriptions
- Event Processing: Pipeline processes CloudEvents from Event Hub streams
Microsoft 365 Ecosystem:
- Teams Emergency Calling: Integration triggers on native Teams emergency notifications
- Graph API Subscriptions: Real-time push notifications for chat message changes
- Azure Active Directory: Centralized authentication and permission management
Operational Considerations
Monitoring & Health Validation
- Subscription Health: Real-time monitoring of Graph API subscription status and expiration
- Token Validity: Automatic token refresh before expiration (1-hour access tokens)
- Event Processing: Message processing rates, error rates, and latency metrics
Compliance & Data Governance
- Audit Trail: Complete CloudEvent logging for compliance reporting
- Data Minimization: Only emergency-related chat messages are processed and stored
- Retention Management: Configurable retention periods align with organizational policies
- Access Control: Role-based access control for subscription management and monitoring
Enterprise Deployment Considerations
- Multi-Tenant Support: Each organization maintains isolated Azure resources and subscriptions
- Scaling Characteristics: Linear scaling with organization size and Teams adoption
- Disaster Recovery: Event Hub built-in redundancy and subscription recreation capabilities
- Network Requirements: Outbound HTTPS only (port 443) to Microsoft domains
Device Authorization Grant via Public Client Flow
The OAuth 2.0 Device Authorization Grant provides optimal security for this integration:
- Public Client Flow: Utilizes secure tunnel authentication, without inbound Firewall rules.
- User Consent: Service users authenticate with their own credentials, ensuring compliance with organizational security policies.
- No Shared Secrets: Eliminates the need for managing client secrets or certificates.
- Conditional Access Support: Honors organizational MFA and security policies
- User Permissions: Clear visibility into permissions granted to the integration
This enterprise-grade architecture ensures reliable, secure, and scalable emergency notification processing while maintaining compliance with organizational security policies and regulatory requirements.
Related Documentation
- Teams Azure Integration Setup - Complete setup procedures for Azure and Call Telemetry