From openSIPS

Development: GSoC-IdeasList

Development -> Google Summer of Code - Ideas List

Table of Content (hide)

  1. 1. Introduction
    1. 1.1 Important Notice
    2. 1.2 Student Proposal Guide
  2. 2. Ideas for the 2014 Google Summer of Code
    1. 2.1 SIP to SMPP gateway
    2. 2.2 RTPProxy architecture re-design for multi-core support
    3. 2.3 RTPProxy failover mechanism for on-going media sessions
    4. 2.4 Real-time collecting/reporting of media-related statistics

This page is outdated! For the GSoC 2018 ideas list page, go here.

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


1.2 Student Proposal Guide


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

Retrieved from https://www.opensips.org/Development/GSoC-IdeasList
Page last modified on February 18, 2018, at 03:00 PM