The sipmessage
project provides a set of Python helpers and structures
for parsing and serialising SIP messages. It can be used to manipulate either
either entire requests and responses or individual header values.
To learn more about sipmessage
please read the documentation.
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:[email protected]>\r\n"
b"From: <sip:[email protected]>;tag=69piINLbAb\r\n"
b"Call-ID: t87Br1RHAoBz2FsrKKk6hV\r\n"
b"CSeq: 1 REGISTER\r\n"
b"Contact: <sip:[email protected];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"),
)
]
sipmessage
is released under the BSD license.