Another great thing is that you appear to have exposed your ad hoc SIP parser as a module, which means it could potentially be imported and used in other tools.
There didn't seem to be many SIP parsers when I looked when I chose C instead of Go to use libosip2 which is very, very mature.
Looking forward to trying this in my GitHub Actions as I was about to plumb in SIPp scenarios:
I also looked at Rust SIP crates, not many either...
Nice work.
Thanks,
Gavin.