Sam Hooke

These are rough notes from whatever I was working on, interested in or thinking about at the time. They vary greatly in quality and length, but prove useful to me, and hopefully to you too!

Lightweight Python SIP library

Situation

Need to create SIP requests and parse SIP responses as defined in RFC 3261. Do not need a “heavyweight” solution that runs a SIP server/proxy. Needs to support Python 2.7 and 3.6.

Existing Solutions

Name License Python 2.7 Python 3.6 RFC 3261 compliant Notes
Twisted MIT Yes Yes No Conforms to RFC 2543, not RFC 3261. Adding RFC 3261 support has not progressed for 6 years.
rtclite (39 peers) LGPL Yes No Yes Described as being a lightweight reference implementation. Consists of four files, including two other RFCs it imports and a common file. However contains many TODOs in the source.
dionaea GPL v2 Yes? Maybe? Maybe? Appears to be a trap for malware. Does not look suitable.
Sippy BSD 2-clause Yes No Yes Appears rather heavyweight.
pysipp GPL v2 Yes Yes Maybe? Appears to be an interface to a separate tool, SIPp. Does not look suitable.
PJSUA GPL v2 ? ? ? Low-level C Python extension. Appears rather heavyweight.
dpkt BSD 3-clause Yes Almost (Python 3.5) No? Looks incomplete, SIP support last touched 2 years ago.
SIP Simple Client GPL v3 Yes No? Yes Appears rather heavyweight.

Interesting Sidenote

SIPit is a week long event where people bring their SIP implementations to make sure they work together. It runs every 18 to 24 months.

Update 2018-08-15

From an HN thread found a report on implementing SIP in Python.

<< Previous: Removing unused COM ports from Windows
Next: Make temporary network changes permanent under CentOS 7 >>