x-phone demos

March 15, 2026 · View on GitHub

Working examples that show how to build voice applications with the x-phone ecosystem. Each demo is self-contained with its own README, source code, and setup instructions.

Demos

xphone-go — using the Go library directly

DemoWhat it doesSTT / TTSAPI keys?
echo-ai-cloudAnswers a call, echoes back what the caller saysDeepgram (streaming WebSocket STT + HTTP TTS)Yes (Deepgram)
echo-ai-localSame, but fully local — no cloud APIsfaster-whisper + Kokoro (Docker)No

The x-phone ecosystem

Real Phone Network (PSTN / SIP trunk)


┌──────────────┐     ┌──────────────┐     ┌──────────────┐
│    xpbx      │────▶│   xbridge    │────▶│   Your App   │
│  (PBX + UI)  │     │  (gateway)   │     │ (any language)│
└──────────────┘     └──────────────┘     └──────────────┘


┌──────────────┐
│  xphone-go   │  ← or use the library directly (Go / Rust)
│  xphone-rust │
└──────────────┘
ProjectWhat it isWhen to use it
xphone-goGo library — SIP calls as []int16 PCMGo apps that need direct call control
xphone-rustRust library — same API, pure Rust SIP/RTPRust apps that need direct call control
xbridgeVoice gateway — SIP to WebSocket + RESTApps in any language (Python, Node, etc.)
xpbxSelf-hosted PBX with web UIMulti-extension routing, voicemail, trunks

Prerequisites

All demos need a SIP server to register against. The quickest option is xpbx in Docker — it comes with extensions 1001-1003 pre-created (password: password123). See each demo's README for specific setup instructions.

To place test calls, use any SIP softphone (e.g. Zoiper).

Contributing

To add a new demo, create a directory under the appropriate ecosystem component (e.g. xphone-go/, xbridge/) with:

  • main.go (or equivalent entry point)
  • README.md with quick start, env vars, and how-it-works
  • .env.example if the demo needs configuration
  • Update this README's demo table