SIP Client Proxy: The Universal “Last Mile” for AI & PBX
Deploy AI as a first-class SIP extension for queues and transfers, while shadowing calls for real-time coaching and QA.
YouTube Video
Project Description
Problem (The Friction)
Most AI → telephony integrations rely on SIP trunking, which introduces two huge blockers. Enterprises must open inbound traffic and do brittle IP whitelisting, kicking off long security and networking reviews. At the same time, AI vendors like ElevenLabs are forced to support hundreds of PBX variants (Cisco, Avaya, Mitel, etc.) and maintain custom “keep-alive” logic per system — an approach that is fragile, unscalable, and expensive to maintain.
Solution (The Middleware)
Our SIP Client Proxy acts as a universal “last-mile” middleware. Instead of trunking, it connects the AI as a standard user extension over a secure outbound connection, avoiding any firewall changes or whitelisting. The proxy normalizes away PBX differences and handles registration, state, and media, giving both enterprises and providers like ElevenLabs a single, standardized integration layer for plugging AI agents directly into existing queues, hunt groups, and call flows.
Prior Work
Open Source Dependencies
This project uses the following open source libraries:
Direct Dependencies
| Library | Version | Description | License |
|---|---|---|---|
| sipgo | v0.28.0 | SIP (Session Initiation Protocol) library for Go. Provides SIP UA, client, and server functionality. | BSD-2-Clause |
| pion/rtp | v1.8.7 | Pure Go implementation of RTP (Real-time Transport Protocol). Used for audio streaming. | MIT |
| zaf/g711 | v1.4.0 | G.711 audio codec implementation (u-law and A-law encoding/decoding). | BSD-3-Clause |
| jumpstart-pro/jumpstart-pro-rails | bf3fa2e | Jumpstart Pro Rails Template | GoRails |
Transitive Dependencies
| Library | Version | Description | License |
|---|---|---|---|
| gobwas/ws | v1.3.2 | Tiny WebSocket library for Go. | MIT |
| gobwas/httphead | v0.1.0 | HTTP header parsing utilities. | MIT |
| gobwas/pool | v0.2.1 | Object pool implementation. | MIT |
| gorilla/websocket | v1.5.3 | WebSocket implementation for Go. Used for AI provider connections. | BSD-2-Clause |
| google/uuid | v1.6.0 | UUID generation library. | BSD-3-Clause |
| icholy/digest | v0.1.22 | HTTP Digest Authentication. | MIT |
| rs/zerolog | v1.33.0 | Zero-allocation JSON logger. | MIT |
| mattn/go-colorable | v0.1.13 | Colorable writer for Windows. | MIT |
| mattn/go-isatty | v0.0.20 | TTY detection. | MIT |
| pion/randutil | v0.1.0 | Random number utilities. | MIT |
| satori/go.uuid | v1.2.1 | UUID library. | MIT |
| golang.org/x/sys | v0.24.0 | Go system call packages. | BSD-3-Clause |