// the find
jart/gosip
Public Switched Telecommunications Network Unleashed
gosip is a Go library for building PSTN telephony applications without Asterisk or FreeSWITCH in the middle. It implements SIP/SDP/RTP from scratch in pure Go (with assembly-optimized µLaw and audio mixing), so you can ship a single binary that handles signaling and audio without a PBX dependency. The target user is someone building a backend service that originates or terminates calls programmatically — think call screening, voicemail, or AI voice apps.
The Ragel-based SIP parser is a real engineering choice: generated from BNF taken directly from RFC 3261, which gives you a much higher chance of correctly handling malformed messages than a hand-rolled parser. The SRV/NAPTR failover support with ICMP refusal detection is the kind of thing most home-grown SIP clients skip and then regret when their trunk goes down. Assembly-optimized saturating addition for audio mixing (sadd_amd64.s, sadd_arm64.s) means the DSP path is actually thought through, not bolted on. The per-call process model is a legitimate architectural stance — it makes rolling deploys trivial and isolates failure.
µLaw only. No G.711 A-law, no Opus, no G.722 — this will be a hard stop if your carrier or peer requires anything else, and modern WebRTC interop is simply not possible. Version 0.1 since the initial commit and last serious activity looks sporadic; SIP stacks bit-rot fast when RFCs get errata and carriers start enforcing edge cases. No TLS/SRTP support visible in the tree, which means your signaling and audio are in plaintext — fine for internal lab use, a problem in production with any reasonable security posture. The examples are all test files rather than runnable programs, which makes the onboarding experience harder than it needs to be.