Using the SIP and RTP C++ libraries available from the instructor, write an RTP audio conferencing bridge. Users should be able to participate in conferences created via a web page. Conferences are identified by user-chosen names, e.g., ais-help@cs.columbia.edu. Audio from all active sources is mixed and distributed to all participants. (Obviously, source n should not get its own audio.)
Single-person projects should restrict themselves to G.711; routines for conversion from G.711 to linear audio are available from the instructor.
Sources send silence-suppressed audio streams. The bridge has to create a synchronized stream that minimizes latency. (We will discuss playout delay algorithms in class.)
A larger project extends this to replicating video streams. Video streams can either be simply replicated or mixed by combining, for example, JPEG streams into quadrants of a single larger image. For images, implement a mechanism where recent audio activity triggers forwarding or mixing of the video stream.