Project ideas in distributed systems and networks

Project ideas in distributed system, networks, that are not related to web or multimedia.

Translator between RTMFP and SIP/RTP or RTMP

Based on the result of openRTMFP effort, investigate whether a translation between RTMFP and RTMP is feasible or not, and incorporate the translation in existing rtmplite project. Further use the existing SIP-RTMP gateway as part of the rtmplite project to facilitate translation between RTMFP and SIP/RTP. Once RTCWEB is available in the browser, this effort could be extended to incorporate a translator between RTMFP and RTCWEB as well. Unlike RTMP, RTMFP provides a low latency UDP-based media path and hence avoids the latency and quality issue faced by some fraction of users when using a server side SIP-RTMP gateway. Language: Python

Automatic and dynamic scaling of SIP based applications

Based on research at Columbia University (by Jong Yul) that creates a dynamically and automatically scalable SIP proxy server farm on the cloud (Amazon EC2), create a generic framework that allows scaling any SIP server component such as conference server, voice mail, media server or back-to-back user agent (SBC). Extend it to support translators such as scalable SIP-RTMP gateway farm. A challenge is to distinguish between stateful and stateless entities, and correctly making sure that the correct stateful entities are reached correctly with a call or conference. You can use my SIP server components from the 39 peers project. Language: Python

SIP library in ActionScript

Implement a SIP library in ActionScript 3 for Flash Player and AIR. Flash Player has some restrictions that prevents fully featured SIP software in Flash alone: there is no UDP socket, there is no incoming socket connection, and there is no access to the encoded audio (Speex) and video content in ActionScript application. Secondly, Flash Player security restrictions require socket policy server running on the SIP endpoints. This makes it difficult to implement a SIP audio/video softphone in Flash Player alone without support from external translator or gateway. AIR resolves some of these issues -- it has UDP socket as well as access to raw microphone audio. Your project will simplify the requirements of the SIP application so that you can implement on Flash Player.

Your SIP library should support RFC 3261 based signaling for registration and sessions. Although SDP is not needed, it would be nice to have. Implement only TCP-mode so that it can work consistently for Flash Player as well as AIR. You only need to implement external media sessions or text (instant messaging) sessions. Note that due to Flash Player restrictions you cannot implement RTP-based built-in media sessions or RFC 3263 based DNS lookups. Your client library will establish a TCP connection to the SIP server, use sip-outbound for connections so that incoming requests can be sent by the server on the same connection, and demonstrate server-based instant messaging sessions and presence.

Demonstrate it using a SIP phone in peer-to-peer mode

As an extension to this, a demonstration using an AIR-based complete SIP phone supporting Speex/G.711 audio, H.264 video, instant messaging and presence, as well as NG911 calling will be great.

Implement RELOAD (P2P-SIP)

Implement the current version of IETF P2P-SIP WG internet-draft You may reuse the core p2p, dht and rfc3261 modules of the 39 peers project. The goal is to implement the core functions that allows incorporating external DHT algorithm, authentication as well as transport. I have a few suggestions to simplify the draft and hence the implementation. Language: Python.

Survey of P2P VoIP techniques

Survey of techniques for P2P VoIP: The project is a study project that surveys several existing P2P VoIP systems such as Skype, Gtalk, and several proposals in IETF P2P-SIP working group. The questions to answer are what are the best practices, what works, what doesn't, what has been implemented and tested, how do they compare with respect to scalability, robustness and security. Instead of comparing the whole systems, it is better to compare one function at a time, e.g., network maintenance, lookup, signup, etc. Clearly a critical and objective analysis is more useful than saying A is better than B.

RESTful interface for DHT

Design and implement a simple RESTful interface for secure distributed hash table. Inter-node communication should also happen using REST architecture. For example, a single resource could be represented using "/data/{key}" whereas an resource that allows multiple values could be represented using "/array/{key}" where each value could be referred using index, e.g., "/array/{key}/{index}". You should first define different types of data: single, array or dictionary indexed by owner. Then you should define authentication and security mechanism for communication and data. Finally the representation should support XML, JSON and HTML for listing. The HTML representation should present an example DHT interface which one can use from a browser. You can use the DHT implementation in p2p-sip project and REST server tools in restlite project. Language: Python.

P2P simulator

Build a peer-to-peer network simulator in Python that implements various structured and unstructured algorithms. Related work includes p2psim, oversim and peersim. This project will build several modules to allow a developer to quickly put together an implementation of a P2P algorithm, view it graphically, and see the impact of various parameters. You should be able to support nodes behind NAT and firewall in your simulator, incorporate security and analyze the performance. Language: Python