VOIP extension for ns3

63 views
Skip to first unread message

fatima sohail

unread,
Nov 30, 2024, 2:56:48 AM11/30/24
to ns-developers
Hello everyone.
I am currently a telephony engineer and a hobbyist researcher. When transitioning to my role as a telephony engineer, I wanted to see some practical demonstrations of how it works and how I can tinker with various attributes and see the effect on network performance. However, I could not find any such dedicated extension that uses the full VOIP stack, including RTP, RTCP, and SIP (there is an extension on the app store, but it seems incomplete). I have also seen codes for VOIP clients and servers, but those are for ancient NS3 releases. There does not seem to be any codec support either. If it is not currently in the works, I would like to initiate this effort to create this module. Any guidance/discussion on the course of action would be very welcome.
Thanks,
Fatima Sohail

Tom Henderson

unread,
Dec 1, 2024, 10:33:51 AM12/1/24
to ns-dev...@googlegroups.com
Fatima, we could use your help to improve and document our capabilities to simulation VoIP.  Here is what I'm aware of; perhaps others who have pointers to additional work can chime in.

The voice app that I have been involved with is the Mission Critical Push-to-Talk (MCPTT) app model which is a detailed implementation of the 3GPP TS 24.379/24.380 specifications.  The call control protocol uses SIP, and I wrote a small SIP module (which you refer to below) which provides just enough SIP functionality to support the MCPTT call control protocol.  The media plane control is based on a customization of RTCP.  These models are available using the 'psc' and 'sip' extension modules linked from the ns-3 app store.

Please also see a recent merge request proposing to move some traffic generators from the nr module to the mainline: https://gitlab.com/nsnam/ns-3-dev/-/merge_requests/2245.  This contains a VoIP model.  If you would like to leave some review comments in the tracker, feel free to do so.

If you have in mind some kind of canonical stack that you think ns-3 ought to support as a baseline, feel free to suggest.  If anyone else might want to collaborate on such an effort, let us know.

- Tom

--
You received this message because you are subscribed to the Google Groups "ns-developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ns-developer...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/ns-developers/472977b0-08ce-46aa-a639-493fcbbe3aacn%40googlegroups.com.


fatima sohail

unread,
Dec 1, 2024, 12:19:24 PM12/1/24
to ns-developers
Thanks for sharing these resources, Tom. I have gone over them. However, my proposal is a little different. Initially, I plan to start with RFC-compliant RTP/RTCP implementation, followed by enhancing the existing SIP module and integrating it. Later, if all goes well, codecs can be added, followed by VOIP-specific QoS services. The choice of following this exact order is that, to the best of my knowledge, there is no RTP/RTCP module in ns3. So, while I work, each new piece will build on existing and functional components that can be used and improved along the way. Currently, I do not have any other team members, but I am open to working with a team.  

Tom Henderson

unread,
Dec 1, 2024, 1:46:21 PM12/1/24
to ns-dev...@googlegroups.com
Sounds good; please post a branch or a merge request when you have something on RTP or RTCP for us to look at, or get back to us if you have questions.  We have guidelines on creating new models posted here:  https://www.nsnam.org/docs/manual/html/new-models.html.  Even if you have non-working code such as class headers or test cases defined, it can sometimes be helpful to seek early community review.

- Tom

fatima sohail

unread,
Dec 2, 2024, 4:13:59 PM12/2/24
to ns-developers
Thanks for the heads-up, Tom. I'll start working on it and will update you once I have something tangible. 
Reply all
Reply to author
Forward
0 new messages