Skip to content

feat: add Teams presence and telephony status example#1019

Merged
vgrem merged 1 commit into
masterfrom
feat/teams-presence-example
Jun 11, 2026
Merged

feat: add Teams presence and telephony status example#1019
vgrem merged 1 commit into
masterfrom
feat/teams-presence-example

Conversation

@vgrem

@vgrem vgrem commented Jun 11, 2026

Copy link
Copy Markdown
Owner

Summary

Adds a real-world Teams presence monitoring example as requested in #454. Covers four non-trivial scenarios that mirror actual call center / helpdesk workflows.

Changes

New file: examples/communications/presence/teams_presence_monitor.py

Four practical scenarios:

Scenario Description
snapshot One-shot bulk presence query for the whole team
find_available_agent Round-robin routing — returns first agent not in a call/meeting/DND
monitor Polling loop with state change detection (e.g. InACall -> Available)
start_shift / take_agent_offline Set preferred presence + status message with expiry

Includes business logic helper is_available() that combines availability + activity to determine call-routing eligibility.

Tests

Existing tests at tests/communications/test_presence.py already cover all API operations used in the example (8 test methods).

Related

Closes #454

New example: examples/communications/presence/teams_presence_monitor.py

Covers four real-world scenarios:
  - snapshot: one-shot bulk presence query for a team
  - find_available_agent: round-robin routing to first available
  - monitor: poll for state changes with change detection
  - start_shift / take_agent_offline: set presence with status messages

Required permissions: Presence.Read, Presence.Read.All, Presence.ReadWrite

See https://learn.microsoft.com/en-us/graph/api/resources/presence

Closes #454
@vgrem
vgrem merged commit 2fbdb06 into master Jun 11, 2026
2 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Teams Telephony

1 participant