Login | Register

Development

Development -> Google Summer of Code - Ideas List

1.  Introduction

These are our proposals for this year's student projects. This page is globally editable (create a wiki account and start hacking), and you are free to add your own project ideas. They will be actively analyzed by our mentors, and all good ideas with volumes of work which fit the 3-month coding period have great chances of being accepted.

1.1 Important Notice


  • Remember the deadline for student applications: 21 March 2014
  • Get in touch with us on IRC. You can reach us in channel #opensips on the Freenode IRC network (irc.freenode.net). Talk to one of these guys: bogdan_vs, razvanc, vlad-paiu or liviuc
  • You should also enrol yourself in the Users and Devel mailing lists. More info in the Contact page.
  • Communication is important. Students which actively communicate with us are more likely to be selected for a given project (there are exceptions that prove the rule, of course). For the quick and witty developers among you, here is a list of interesting things you could do while learning (pun intended):
    • You could jump in the developer courses and learn more about our codebase
    • You could skim over our TODO list and try to handle some of the tasks (please talk to us on IRC before attempting a task)

1.2 Student Proposal Guide


  • first and foremost, register an opensips.org account. You can now start editing!
  • read and learn about OpenSIPS as much as you can. Here are some quick, basic (and fun) things you could do:
    • do some reading on VoIP, SIP, SIP call flows
    • understand what OpenSIPS is, install a softphone on your favorite Linux distribution, register it to opensips.org, and call razvan@opensips.org :D
    • now that you've acquainted yourself with the proxy as a user, download the source code and start digging and learning as a developer
    • now is a good time to read the project proposals, and pick the one which suits you best
    • if you don't understand anything, it's perfectly normal! go back to bullet 1 or talk to us on IRC
  • you understand the aim of the project, you have some minimal overview on the project codebase and some ideas are starting to take shape! That's great! Congrats!
  • create your own www.opensips.org/Development/GSoC-Proposal-Name-Surname page (access your link, hit Create New Page) starting from this template (Edit button on bottom of the page -> copy-paste), and make it as complete as possible
  • if you're stuck on something, you don't know what to do next, or have any sort of other problems, do not hesitate to ask questions in the chat

2.  Ideas for the 2014 Google Summer of Code

2.1  SIP to SMPP gateway

Brief Explanation

The Short Message Peer-to-Peer (SMPP) in telecommunications is an open, industry standard protocol designed to provide a flexible data communication interface for the transfer of short message data between External Short Messaging Entities (ESME), Routing Entities (RE) and Message Centres.


Expected Results

The goal of this project is to create a OpenSIPS module that is able to communicate with a SMPP gateway. In other words, to create a new module that provides SIP to SMPP message translation.


Knowledge Prerequisites

The project requires good skills in C, as well as networking and communication protocols knowledge.


Mentor: Răzvan Crainea (razvanc on IRC)


Student applications

Peter Perfect - http://www.opensips.org/Development/GSoC-Proposal-Peter-Perfect


RTPProxy enhancements


RTPProxy is a media relay server integrated in several Voice over IP (VoIP) platforms. It is mainly used to make communication between clients behind NAT (Network Address Translation) possible, but also provides several features like call recording or playing music announcements. As part of a VoIP platform, it acts as a standalone server in public networks controlled by a SIP server such as OpenSIPS that provides the call establishment logic. RTPProxy handles media streams (audio, video, fax), relaying RTP (Real Time Protocol) packets from one end to the other.

2.2  RTPProxy architecture re-design for multi-core support

Brief Explanation

RTPProxy processes all the RTP traffic in a single thread, thus underutilizes the resources that modern computers provide. This project aims to enhance the RTPProxy media relay with a multi-threaded design that uses the computers resources more efficient while increasing the server's throughput.

Expected Results

The first challenge of this project is to study the possible techniques of parallelizing a network IO bound application and find the best approach to use in a media relay server. The next step is the implementation of this model in the RTPProxy server. Finally, some performance measurements have to be performed in order to prove the efficiency of the design.

Knowledge Prerequisites The project requires strong C skills and knowledge of the Posix Threads API. Some experience with GDB would be a plus.


Mentor: Răzvan Crainea (razvanc on IRC)

Applying students

Peter Perfect - http://www.opensips.org/Development/GSoC-Proposal-Peter-Perfect

2.3  RTPProxy failover mechanism for on-going media sessions

Brief Explanation

RTPProxy runs as a daemon that continuously processes users traffic. If it stops, due to unexpected errors like software crashes or hardware failures or even explicitely turn down for maintenance, then the users will no longer be able to hear each other. Therefore, in order to ensure availability a failover mechanism is required.

Expected Results

The goal of this project is to design and implement a replication mechanism for the RTPProxy server. Namely, each instance of the proxy has to duplicate its internal media sessions information to one or more remote instances.

Knowledge Prerequisites The project requires strong C network programming skills.


Mentor: Răzvan Crainea (razvanc on IRC)

Applying students

Peter Perfect - http://www.opensips.org/Development/GSoC-Proposal-Peter-Perfect

2.4  Real-time collecting/reporting of media-related statistics

Brief Explanation

In order to monitor the status of the entire VoIP platform, we have to monitor each of its subsystems. Since RTPProxy is one of them, we would like to be able to monitor it closely using multiple indices. Although it provides a way to retrieve some statistics, the current method is not very flexible and only provides limited information.

Expected Results

This project aims to improve the statistics interface of the RTPProxy Media Server by adding a set of new monitoring indices. A few examples are processed sessions, ongoing calls, failed sessions, etc.

Knowledge Prerequisites This project requires good skills in C, as well as networking and communication protocols knowledge.


Mentor: Răzvan Crainea (razvanc on IRC)

Applying students

Peter Perfect - http://www.opensips.org/Development/GSoC-Proposal-Peter-Perfect


Page last modified on February 14, 2014, at 07:24 PM