Notes for Team 3
(From September 25 meeting with Prof. Keshav)
Remarks
- You will learn how to program a card by doing this project. (A brief discussion followed
of how cards sit on the I/O bus and talk to the device driver in the kernel.) Dialogic
provides you with a C library that sits in user space. You write your application in C or
C++ and link with this library in order to drive the card.
- Currently we have a library for NT. We will get a library for Solaris as well. You can
pick either one.
- What the card does is to pick up the analog signal from the line, does stuff like
compression and decompression, and moves the digitized sample into its own RAM.
- You copy it out of the RAM into the PC's memory. From there it goes into an IP packet.
You want to keep all this copying as fast as possible. You can minimize delay by keeping
your buffers small.
- The fundamental concept here is "voice channel". An incoming event, such as a
voltage change on the line, signals the CPU. The Dialogic API allows you to accept or
ignore certain alerts; you set up your choice ahead of time. DTMF (dual-toned, multiple
frequency) tones are events.
- You tell the API into which area in memory the speech should be placed. The user
interface has 3 pointers (READ, WRITE, SEEK) that control this process. Note than the
Dialogic board lets you read button presses while playing out, so you can tell, for
example, when the caller begins pressing buttons while you are asking him/her to enter an
extension.
- Don't worry about special tone functions. Don't worry about conference management.
- Access to a machine with a Dialogic card will have to be scheduled. Email Prof. Keshav
when you are ready to try the hardware.
Questions
- What manuals are most important? The two dealing with the VOX
API.
- Do we tell signalling each digits? It depends on what signalling
wants. This is your design decision.
- What else do we tell signalling? Tell signalling what number to
call. When you get a call from the PC, tell signalling.
- Must we support conferencing? Yes. And allow multicast. Use UDP
packets and RTP format. You need to learn something about RTP, but not much. Just use the
packets provided by the dataflow team and by signalling, which will be in RTP format.