GoatMUX Is Starting to Take Shape
A while back, I mentioned on LinkedIn an idea I kept coming back to.
Not a new SIP platform for the sake of it… but something built from the perspective of actually living inside telecom systems every day. Something that didn’t just process calls, but helped explain what was really happening when they went wrong.
At the time, I had pieces of it.
Some routing logic here.
Some observability ideas there.
A mental model of how it should work.
But like a lot of side ideas, it never fully came together.
Fast Forward
With the speed of modern AI tooling, that changed.
What used to take days of wiring, testing, and reworking… now happens in hours. Not because the thinking goes away, but because the friction does.
So I started pulling those pieces together again.
And now it’s turning into something real.
What GoatMUX Actually Is
GoatMUX is an operator-first SIP platform focused on visibility and truth.
It’s built entirely on open-source components:
- Kamailio → handling signaling and routing decisions
- FreeSWITCH → handling call processing and execution
- RTPEngine → handling RTP/media flow and visibility
Individually, these are powerful tools.
Together, they become something more interesting:
a system that can correlate signaling, call state, and media into a single, understandable view.
Operator First. Telemetry First.
Most systems are built around features.
This one is built around what actually happens during a call.
- What did the system think happened?
- What actually did happen?
- Where did those two diverge?
That’s the gap I’ve spent years dealing with.
GoatMUX is designed to close it.
What It’s Starting to Look Like
Right now, I’ve got a working customer-facing interface coming together.
- A live activity board showing call events in real time
- Active call views with state and media indicators
- Per-call drill downs that tie together signaling, processing, and RTP
Alongside that, the KB is growing just as fast.
Not polished documentation… but real-world troubleshooting notes:
- what broke
- what it looked like
- what actually caused it
I’ll include a few screenshots below of both the interface and the KB as they stand today.
Where It’s Running (For Now)
At the moment, I’m running all of this in WSL on my Windows system.
It’s not where it will live long-term, but it’s been perfect for rapid iteration and testing.
The next step is moving it onto its own dedicated Linux box, where:
- networking behaves more like the real world
- media handling can be tested more accurately
- and the system can run without the layers in between
Why This Matters
If you’ve worked in telecom long enough, you know the pattern:
- The system says the call succeeded
- The user says it didn’t
- And now you’re digging through logs trying to reconcile the two
That’s the problem space GoatMUX is built for.
Not just to route calls…
but to explain them.
Still Early, But Real
This is still early.
But it’s no longer just an idea or a collection of parts.
It’s a working platform that is starting to show what it can become.
And honestly, that’s the part I enjoy the most…
watching something go from “this should exist” to “this actually works.”
More to come as it evolves.