I'm using a black and white Connectix Quickcam which a friend at the office lent me. This plugs into the parallel port and keyboard port on my office computer
The office computer has a 100baseT internet connection.
I'm using the default Quickcam software for the quickcam.
The video capture software is a program called WebCam 2000. It sets up a web server on my computer. When people connect to that web server, they get the current picture.
I also used the <meta> tag to tell the camera page to automatically reload itself every 30 seconds. Each time it reloads itself, it grabs the latest version of the image (which happens to be uploaded every 30 seconds).
If you click on the camera page, you get my work calendar. This is done using "Now up To Date" and the web-interface for it. The calendars actually reside on one of the Macintosh computers in our office. We can all modify the calendars using our Macintosh computers, and people can read the calendars using the web interface and any web browser. Neat-o!
When you "send" your message, a perl script on duke.usask.ca adds your nickname, the time, and your message to the TOP of a table in the "chat window"'s .html file. This script also removes any messages that are more than 30 minutes old (to make sure this file doesn't grow forever).
The end result is that if someone enters a message, everyone viewing this page should see this new message within 15 seconds (when the page reloads). Since the page is less than 15 seconds old at this point (because it was changed) there is a visual notification of the new message, and if sound is enabled, an audio notification as well. That way, if I have the window hidden behind other windows, or if I'm not sitting right at the computer, I'll still know someone left a mesage and wants to chat.
The reason for the "sound" checkbox is that not everyone wants sound, and some computers do not have the proper plugins installed to play the sound and instead display nasty error boxes. I wanted a way for those people to turn sound off, but still let me use sound if I wanted to.