Notes for Team 1
(From September 25 meeting with Prof. Keshav)
Remarks
- Use UDP sockets for data transfer. Use RTP (Real Time Protocol)
for your transport protocol.
- The main job of this team is to capture voice samples from the
microphone, encode it (into PCM or the like) or not, get the bits across
the net. See "vat", free voice-terminal software from LBL
(ftp.ee.lbl.gov, in conferencing/).
- Allow for multicast.
- Playout at the other end turns the bits into
voice samples. One thing to decide is how to handle pauses in the
conversation. When no packets are being sent, you should record silence
or white noise.
- You should buffer incoming packets in order to smooth
the playout. This requires a histogram of delay values, the tail of
which corresponds to discarded packets. That is, a few packets take
such a long time to arrive that they are useless for playback.
- You don't have the histogram yet; try to experiment to find out
what it is. Or program your stuff to dynamically adjust to a dynamically
changing histogram.
- Refer to the Columbia website for some RTP tools.
- Playout has to handle bursts and dropouts. A trick involves storing
hi-res and low-res samples in the same packet, one for sample
i-1 and the
other for sample i. If you missed sample i-1, you can find
a low-res copy of it in the packet for sample i. A couple of these
schemes have been implemented at inria.fr
- Prof. Keshav might set up a long-distance reflector to help you
experiment with long-haul conversations. Or you could use the simulator.
Questions
-
Should we use the simulator or the real internet?
Start coding on the simulator where you can introduce arbitrary delay
and distance. The final project implementation will be on the real internet.
-
How can we use the real internet when we can't ship UDP packets through
the firewall?
Prof. Keshav will put up an audio machine outside the firewall if necessary.
Do most of your work on the simulator. Or, run entirely within the
firewall.
-
What timestamps does RTP use?
It uses those of the sender. You can use
RTSP to sync timers and clocks. These days PC's do not gain or lose
time very much, so syncing up time stamps is not likely to be a big problem.
-
How bad is dropping packets to the audio?
Dropped
packets cause a pause, which is not audible if less than every 10 seconds
or so.