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.