This is a collection of work items considered interesting or worth exploring by sip-router developers or the wider community around the sip-router project. To the best of our knowledge nobody is currently working on topics listed here and thus we are making them avaiable to the general public. Most suggestions listed here are suitable as term projects or short-term projects for university-level students, but in general we welcome anybody who has the time and will to work with us.
Working on an active open source project has numerous benefits.
- You get yourself faimilar with the internals and architecture of the SIP server, this is an invaluable experience if you need to run a SIP server yourself.
- You can learn how to work in a geographically dispersed team, how to communicate on mailing lists.
- You can work on cutting-edge stuff. SIP-related standards and protocol are under active development, there is a lot of room for improvement.
- If you are a student then we can almost certainly work with your school supervisor to ensure that the topic you work on is acceptable for your school. Most of the mentors listed here supervised master theses of university students in the past and we maintain a close relationship with the academia. The project itself is a result of active research in one of Germany's most prestigious research institutions and many students earned their degrees while working on the project.
- The server code is optimized for speed and efficiency, we work primarily in C and our code is modular and designed with simplicity in mind. Such design goals are not common and thus you can learn a lot.
- Many of the people involved with the project were hired by their employers as a result of the activity on the mailing lists. Companies are known to scout for prospective employees among open source developers.
Requirements may vary from topic to topic, but in general we are looking for self-motivated people who are able to work independently and who have good English (written) communication skills. For programming topics we require profficiency in C programming language and good knowledge of UNIX/Linux environment. In general, we do not require knowledge of SIP (Session Initiation Protocol) or related protocols and technologies (this is what you can learn as you go). No prior knowledge of ser/openser/kamailio/sip-router code is required.
The outcome of your work must be released to the public, so that the project and the community surrounding the project can benefit from your work. You, your employer, or your university can retain the copyright to the source code, but the source code must be released under one of the well-known free software licenses. Preferred licenses are the GPL license (if you want to make sure that other cannot use your work in proprietary products) or the less restrictive BSD license. Other licensing restrictions may apply if your work includes changes to existing 3rd party code.
We expect that the code will be reasonably well commented and documented. This is necessary to make your work live on even after you decide to leave it. When writing code and documentation, keep in mind that somebody else may need to pick up where you left off and you almost certainly do not want to make them scream your name in the middle of a sleepless night.
- Internalization of Reason Phrases (being worked on)
Note that you are free to pick any topic from the list above, even topics that are marked as "being worked on". Having more people/teams working on the same thing promotes competition and that never hurts. We will only remove items from the list above once we have a reasonably well working implementation.
Every topic has its own mentor, usually one of the developers, who is somehow motivated to get the work done and who can help you get started. Once you pick a topic from the list, contact the person who is listed in the topic description and let him/her know that you are interested in working on the topic. You can then arrange concrete terms of the work with him/her. If there is no contact person if the contact person is not reachable then send an email to our development mailing list at email@example.com (you may need to subscribe at http://lists.sip-router.org).
Do not hesitate to contact us if you are interested in working on any of the topics, we always welcome new people! We also welcome suggestions of new work. If you have a proposal for work in mind that is somehow related to the sip-router project then, please, let us know. Feel free to contact one of the people listed here privately if you do not want to share your proposal with a wider audience, but please understand that most mentors will ask you to do your work in public (i.e. in the wiki and on public mailing lists).
Contact Jan Janak firstname.lastname@example.org if you have any questions or suggestions.