sipmessageΒΆ

License Version Tests Coverage

The sipmessage project provides a set of Python helpers and structures for parsing and serialising SIP messages. It can be used to manipulate either entire requests and responses or individual header values.

from sipmessage import Message, Parameters, Request, Via

request = Message.parse(
    b"REGISTER sip:atlanta.com SIP/2.0\r\n"
    b"Via: SIP/2.0/WSS mYn6S3lQaKjo.invalid;branch=z9hG4bKgD24yaj\r\n"
    b"Max-Forwards: 70\r\n"
    b"To: <sip:alice@atlanta.com>\r\n"
    b"From: <sip:alice@atlanta.com>;tag=69piINLbAb\r\n"
    b"Call-ID: t87Br1RHAoBz2FsrKKk6hV\r\n"
    b"CSeq: 1 REGISTER\r\n"
    b"Contact: <sip:Mk9sZp5Z@mYn6S3lQaKjo.invalid;transport=ws>;expires=300\r\n"
    b"User-Agent: Tester/0.1.0\r\n"
    b"Content-Length: 0\r\n\r\n"
)
assert isinstance(request, Request)
assert request.via == [
    Via(
        transport="WSS",
        host="mYn6S3lQaKjo.invalid",
        port=None,
        parameters=Parameters(branch="z9hG4bKgD24yaj"),
    )
]