call_sid, so signalling, media, recording, and reporting all line up on one call.
This page orients you to that bridge. Follow the links to the task pages when you are ready to wire a trunk, provision a number, or hand a call to a person.
There is no separate PBX to run. The engine embeds its own SIP gateway, registrar, and dialplan — a FreeSWITCH-style modular core — so migrating off Asterisk or FreeSWITCH is a matter of re-pointing your trunks and agents, not standing up new signalling infrastructure. See Migration.
How a phone call reaches your agent
A call crosses four boundaries between the carrier and your agent. Each is a place you configure something.Signalling — SIP gateway / B2BUA
The carrier sends an
INVITE to your per-tenant SIP host, <workspace-id>.sip.telequick.dev. The SIP gateway authenticates it (source-IP ACL for trunks, digest auth for registered devices), matches it to a trunk, and answers it. Because the engine is a B2BUA, it owns both legs of the dialog — caller on one side, agent or callee on the other — which is what makes transfer, bridging, and handoff possible.Routing — dialplan and ACD
Once answered, a decision engine resolves what happens next from the matched trunk and the dialed number: stream the call to an AI agent, run an IVR/queue program, or ring a human. Number-to-destination mapping and skill-queue routing live in the PBX / ACD layer.
Media — RTP plane
Audio flows as G.711 RTP (µ-law PT 0 / A-law PT 8). The in-engine media plane decodes it to the runtime’s 8 kHz PCM16 bus, applies noise suppression, scores call quality (MOS), and publishes the caller’s voice as the MoQT track
voice/<sid>/uplink. The agent’s reply comes back on voice/<sid>/downlink and is paced out as G.711 every 20 ms. Codec details are in the Codec Guide.Handling — agent or human
The AI runtime attaches to those tracks and runs your ASR/LLM/TTS or speech-to-speech pipeline (see Runtime). At any point you can hand the live call to a person — the AI leg pauses and a human subscribes to the same caller track. See AI-to-Human Handoff.
The pieces you configure
SIP Trunking
Connect a carrier. Bring your own SIP trunk (matched by source IP) or register outbound, in either direction, with credentials sealed at rest.
Number Provisioning
Import a DID, assign it to a trunk and an agent, and route inbound calls off it. Each workspace also gets its own
<workspace-id>.sip.telequick.dev host.Inbound Calls
Receive calls from the phone network, resolve the trunk and number, and route to an AI agent, an IVR, or a queue.
Outbound Calls
Originate a single call or run a paced bulk campaign out over a trunk, with an AI agent or a playback app on the far end.
PBX / ACD
Route through VDNs, skills, and queues; ring human agents on browser softphones or real SIP deskphones.
AI-to-Human Handoff
Warm-transfer a live call from the AI agent to a person, with the caller audio bridged the whole way.
Call Lifecycle
The full signalling and media sequence — from
INVITE and early media through teardown, CDR, and Q.850 cause.Codec Guide
Opus, PCM16, and G.711 — what runs on the wire, what the runtime works in, and where transcoding happens.
Trunks: the unit of connectivity
A trunk is how a carrier — or another PBX, or a vendor bridge — connects to your workspace. InboundINVITEs are matched to a trunk by source IP or by the dialed DID; outbound calls select a trunk to leave over. Each trunk carries the SIP and RTP addressing for both sides, credentials (sealed), a media mode, and a realm.
Which way calls flow over this trunk.
proxy routes RTP through the engine’s media plane (the default, and required for AI handling and recording). direct is defined for pass-through media but the live runtime currently degrades it to proxy.Classifies the far side — an internal device domain, an external carrier, or a vendor bridge.
What an inbound call on this trunk does: stream to an AI agent, drop into a skill queue, or enter a VDN program.
Trunks are created and edited from the control-plane console at
agent.telequick.dev (or via the admin API). On save they are sealed and pushed to the engine’s live configuration store — they are not kept in your reporting database. Full field reference and setup steps are on the SIP Trunking page.Numbers and per-tenant SIP hosts
When your workspace is provisioned, TeleQuick creates DNS records for<workspace-id>.sip.telequick.dev (and a matching WebRTC host) pointing at the engine. The engine reads the leftmost label of an inbound INVITE to identify your tenant, so multiple workspaces share one edge with no cross-tenant collisions.
You then attach phone numbers (E.164 DIDs) to a workspace and bind each to a trunk and an agent. Imported and manually configured numbers route calls today.
Placing calls out
Originating is the mirror image of inbound. A control-plane call mints a session and asks the engine to dial:Every call is observable
The SIP gateway emits a lifecycle event on each transition —initiated, established, ring, hold, transferred, cleared — and writes a CDR (with Q.850 cause and duration) when the call ends. The media plane writes per-call quality (loss, jitter, MOS) alongside it. A segment tagged with a handler shows whether that stretch of the call was AI-handled or human-handled. All of it lands in your reports. See Observability.
Next steps
Connect a carrier
Set up your first SIP trunk, inbound or outbound.
Take your first inbound call
Route a DID to an AI agent end to end.
Understand the lifecycle
Walk the full INVITE-to-CDR sequence.
Hand off to a human
Bridge a live AI call to a person.