What is Get2Dial
Purpose
Section titled “Purpose”Introduce Get2Dial: what the platform does, who it is for, and the major capabilities it provides.
Overview
Section titled “Overview”Get2Dial is a multi-tenant cloud contact-center platform combining an outbound predictive dialer with inbound contact-center routing. Each customer (tenant) gets isolated configuration, data and a dedicated media edge while sharing a common control plane.
The platform is built from a small set of cooperating services:
- Control plane (
cmd/control) — a Go HTTP API (listens on8080) that owns tenancy, users, campaigns, queues, routing, recordings and reporting. It also runs the dialer pacer, the queue overflow sweeper, a live-metrics publisher and a transactional outbox relay as background goroutines. - Datastores — PostgreSQL with the TimescaleDB extension (the
cdrandaudit_logstables are hypertables), Redis for hot-path call/pacing state, NATS for messaging, and MinIO for audio and recordings. - Web apps — a tenant-facing app and a platform admin console (Next.js).
- Edge (per tenant) — OpenSIPS (SIP/WSS front door), FreeSWITCH
(B2BUA / media), rtpengine (media anchor), a call engine
(
cmd/callengine) that drives FreeSWITCH over ESL, and a node agent (cmd/nodeagent) that registers the node and syncs media.
Configuration
Section titled “Configuration”There is nothing to configure on this page. Deployment-level configuration is covered under Infrastructure and the Runbooks.
Examples
Section titled “Examples”A typical outbound flow:
- An operator uploads a lead list and starts a campaign.
- The control-plane pacer selects and claims an eligible lead (after a fail-closed compliance gate — DNC, calling hours, attempt caps) and publishes an originate request over NATS to one specific edge.
- The edge call engine places the carrier leg through FreeSWITCH, runs answering-machine detection, and on a human answer bridges the call to an available agent.
- The agent sets a disposition; the attempt, recording reference and CDR are written back to the control plane.
- Get2Dial is multi-tenant by default. Every API request is scoped to a tenant from its JWT; the shared control plane is never pinned to one tenant.
- Each edge serves exactly one tenant — its call engine carries that
tenant’s
TENANT_ID. - This portal documents both operator procedures and developer architecture.