Add Contact Center agents, queues, reservations, assignment, and dialer-agnostic dialing#502
Merged
MikeAlhayek merged 1 commit intoJun 29, 2026
Conversation
…er-agnostic dialing Implements Phase 2 (agent presence, queues, reservations) plus the routing/dialer cores: - Abstractions: presence/reservation/queue-item enums, dialer modes/capabilities, and the dialer-agnostic IDialerProvider + IDialerProviderResolver with request/result models. - Core: AgentProfile, ActivityQueue, QueueItem, ActivityReservation, DialerProfile (models, indexes, stores, managers) and presence, queue, reservation-lifecycle, availability-based assignment, and dialer orchestration services. - ContactCenter module: Agents/Queues/Dialer features, reservation-expiry and dialer-pacing background tasks, permissions, admin menu, CRUD UI for queues/dialer profiles, agent sign-in workspace, and dialer activity batch sources. - DialPad.Dialer feature: DialPadDialerProvider implements IDialerProvider over the DialPad telephony provider. - 7 new unit tests (20 ContactCenter tests pass); docs page + v2.0.0 changelog; PLAN progress updated. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Builds on the Contact Center base (PR #501) to deliver Phase 2 (agents, presence, queues, reservations) plus the routing and dialer cores, including a dialer-agnostic provider model and a DialPad implementation.
This PR targets
ma/add-contact-centerbecause it depends on the Phase 1 work that is not yet inmain.What changed
IDialerProvider+IDialerProviderResolverwith request/result models.AgentProfile,ActivityQueue,QueueItem,ActivityReservation,DialerProfile(models, indexes, stores, managers) and the orchestration brain: presence, queue, reservation lifecycle (reserve/accept/reject/expire), availability-based assignment (highest-priority work to the longest-idle available agent), and dialer orchestration.Agents,Queues, andDialerfeatures; reservation-expiry + dialer-pacing background tasks; agent/queue/dialer permissions; admin menu; CRUD UI for queues and dialer profiles; an agent sign-in workspace; and dialer activity-batch sources.DialPadDialerProviderimplements the dialer-agnosticIDialerProviderover the existing DialPad telephony provider, so outbound campaigns dial through DialPad while the Contact Center owns all assignment/queue/pacing/compliance logic.How it works
Agents sign in to queues/campaigns from the Agent Workspace and become
Available. A background task pairs the top-priority queued activity with the longest-idle available agent, creates a short-lived reservation (Available → Reserved → Assigned), and expires stale reservations. Power/progressive dialer profiles run each minute: reserve an agent, create an outbound interaction, and ask the configured provider to place the call.Validation
dotnet buildclean (zero warnings) for Core, the ContactCenter module, DialPad, and the fullCms.Webbundle.Docs
v2.0.0changelog subsection; PLAN.md progress updated (Phase 2 done; Phase 3/5 cores started).