SIPGW PBX Admin

Tenant Token

Tenants (clients)

Agents / extensions

Phone star-codes (from the extension itself): *78/*79 DND on/off, *72+dest/*73 CFU, *90+dest/*91 CFB, *92+dest/*93 CFNA, *70/*71 always-record on/off. In-call *1 toggles recording on this call. Dest can be *721002 or *72 then digits + #.

DID routing (From / To)

Upload CSV (one DID per line). Formats: 918041999001,1001 (maps to extension) or 918041999800,ivr,main. Applies to the tenant ID above. Gateway reloads within 60s.

SIP trunks (max 5 per tenant)

Multiple providers per tenant. Outbound PSTN uses this tenant’s trunks (register_dids prefix match, else first trunk). Inbound INVITE from the proxy host is matched to DIDs below. After adding a trunk that must REGISTER, restart sipgw_app once.

Voicebots (From / To matching)

Auto-attendant (IVR)

Seeded menu main: press 1 → 1001, 2 → 1002, 3 → voicemail 1003. Dial 0 internally or DID 918041999800. prompt_text is rendered to WAV by python3 workers/miniai_worker.py.

Voicemail mailboxes

Retrieve: dial *97 or 5000, then PIN (default = mailbox number). # skip, * delete. MWI NOTIFY is sent when a message is left. In-call: *2 blind transfer, *3 3-way, *4+ext+# consult, *5 complete, *6 cancel. Worker: python3 workers/vm_notify.py.

Messages

Live registrations

Queues

Call detail records

Recordings

CRM webhooks

sipgw queues call.start, call.end, and recording.ready. Worker: python3 workers/crm_webhook.py POSTs JSON with optional HMAC X-SIPGW-Signature.

Gateway SIP log / debug

VM email / MiniAI (workers)

STT is WebSocket PCM16 8 kHz. TTS is HTTP /synthesize (audio/L16 8 kHz). LLM is Ollama /api/generate. Run python3 workers/miniai_worker.py and python3 workers/vm_notify.py beside sipgw_app — never on the SIP thread.