Skip to content

Blog

Notes from building a SIP stack.

What a measurement showed, what we read wrong and corrected, and what the next release brings. Every figure comes from the repository, with a link to where it is recorded.

Articles

RSS feed
  1. · Sipral

    Two bugs only a phone left on for days could show

    A phone that stopped taking calls after four days, and a voicemail lamp that never moved on an older Asterisk. Both hid from short tests, and both are fixed.

    Read the article
  2. · Sipral

    Sipral 1.2: voice agents, more platforms, and a week of calls

    Sipral 1.2 bridges PBX lines to voice agents, adds Node.js, .NET MAUI, OAuth2, SIP over WebSocket and a promised Rust API, and held a week of calls.

    Read the article
  3. · Sipral

    An agent's phone on VICIdial

    A call centre dialer uses a phone differently from a PBX. On a ViciBox 12, Sipral took the agent session call, heard the caller and passed a digit.

    Read the article
  4. · Sipral

    A day of calls, 72 KB, and the leak behind them

    A 24-hour run held 476 calls with no error, but memory crept by 72 KB. A counting test found the leak behind it; the week-long run now starts on the fix.

    Read the article
  5. · Sipral

    A live VitalPBX, and the caller nobody heard

    On a live VitalPBX the callee heard nothing on four calls of six. The PBX changed the audio source mid-call; Sipral now follows it. Every call passes.

    Read the article
  6. · Sipral

    A phone agent with no cloud now answers in under a second

    Sipral's local voice agent now speaks with Kyutai's Pocket TTS, streamed into the call, and starts its answer at the caller's first pause: under a second.

    Read the article
  7. · Sipral

    Four SIP clients, three hours side by side

    Sipral, PJSIP, baresip and Linphone measured again on one Asterisk: call set-up, three hours of calls side by side, and what each one has to ship.

    Read the article
  8. · Sipral

    We read the wrong jitter column: the bad-link comparison, corrected

    Our bad-link comparison took Asterisk's jitter from the column that relays the client's own report. Read from Asterisk's own column, all four clients sit close.

    Read the article
  9. · Sipral

    Silence after direct_media: one late packet, and how the lab found it

    When Asterisk handed a call's audio to the phone at the other end, one late packet could leave both sides silent. The lab found it; the fix is on main.

    Read the article
  10. · Sipral

    Node.js and SIP over WebSocket, both on main

    Sipral now has a TypeScript package that covers the whole C ABI, and it can carry SIP over a WebSocket it opens itself, proven over WSS in the lab.

    Read the article
  11. · Sipral

    A voice agent on a PBX extension: what is in the repository for 1.2

    Five voice-agent connectors, a SIP bridge run from one file, a Pipecat transport and a local echo demo: what Sipral 1.2 brings voice agents, with its timings.

    Read the article