Internet wireless microphone or camera

Problem Statement:

Writing a low-latency audio interface and RTP transmitter to turn the Inhandelectronics battery-operated ARM module into a wireless microphone that directly streams audio into an 802.11 wireless LAN. Configuration should be via SIP.
  1. Which software are we extending? N/A
  2. Features to be supported and priorities? SIP user agent. RTP transmitter. Low-latency audio receiver.
  3. Existing libraries or modules? SIP and RTP.
  4. Programming language?  C (RTP) and C++ (SIP)
  5. Operating system? Linux
  6. GUI tool kit? N/A
  7. Component testing? a wireless network emulator, to simulate packet loss.
  8. Error logging? TBD.
  9. Installation mechanism? make + tar file.
  10. Milestones?
    • November 7th: SIP user agent
    • November 14th: RTP audio transmitter/receiver.
    • November 21st: Implement different adaptive playout buffer algorithms.
    • November 28th: Use the network emulator to compare algorithms and study theire interaction with FEC 

Since the Linux OS is not yet operational on the ARM module, we will be using a Linux laptop with a standard audio device driver until further notice.

 

Part-1: Sip user agent.

Write a command line based C++ SIP user agent that can send and receive SIP call requests using the C++ SIP Library. See the sipua and sipvxml application code. Sipua is an example command line SIP user agent (without the RTP library) whereas sipvxml shows how you can use SIP and RTP libraries together.

Part-2: RTP audio transmitter/receiver

  1. The transmitter part would be a normal user program that reads from the sound card.
  2. The receiver part is trickier since latency matters and a good buffering scheme is needed to appropriately feed the different adaptive playout algorithms. 
  3. Implement audio silence detection (preferrably from NeVoT).

    The buffering scheme would probably be a circular buffer:

        To be updated with buffering specifications

Part-3: Adaptive playout algorithms
    Four Different algorithms will be investigated from the following paper: "Adaptive playout mechanisms for packetized audio applications in wide-area networks" by Ramachandran Ramjee, Jim Kurose, Don Towsley, and Henning Schulzrinne.

        To be updated with details about each algorithm

Part-4: Network emulation and  FEC effect.

    Based on the following paper : "Integrating Packet FEC into Adaptive Voice Playout Buffer Algorithms on the Internet" by Jonathan Rosenberg, Lili Qiu, and Henning Schulzrinne.