sip: Add initial SIP module

I have been lightly maintaining a Session Initiation Protocol (SIP) contributed module, and now propose to move it to ns-3-dev for the ns-3.49 release.

SIP is an Internet-based call control protocol. This ns-3 model can be used to model protocol effects such as latency and robustness for other application protocols that may use SIP as a call control protocol. It is used for the call control of MCPTT in the NIST PSC module.

SIP is a large protocol, and the ns-3 model only implements a portion, focusing on the most typical aspects from RFC3261. The focus is on modeling SIP transactions and dialogs involved in session establishment and release, including the timing and persistence of retransmission of lost messages, and as perceived by end users. Network activities that may occur somewhat transparently to a user (outside of increased message processing delays), such as messaging related to authorization and charging, are not in scope.

Only a few possible requests and responses are handled. The SIP INVITE request, BYE request, and CANCEL request are implemented, along with the '100 Trying' and '200 OK responses'. Failure responses such as '404 Not Found' are not implemented. Unknown requests and responses will cause a simulation error.

RFC 4028 describes a mechanism to send keepalive INVITE and/or UPDATE messages for SIP sessions. This model does not support RFC4028.

I asked Claude to triage-review it and attach that review here. I will work on the items that it found.

Merge request reports

Loading
Loading