IGP "Internet Global Phone" Pc Windows Winsock Real-Time

Danny Guy Frezza (bz223@cleveland.Freenet.Edu)
Wed, 28 Dec 1994 09:17:38 -0500

Last night, I came across this program for real-time two-way internet
voice communication. I have not tried out the program but the program
handles 8 and 16 bit sound cards on Pc Window's based system.

If anyone is interested in trying it, please let me know. I would like to
try it also and check it out.

I thought this might be of interest for the CuSeeMe Pc Users who do not
have sound.

ftp to: wuarchive.wustl.edu /pub/MSDOS_UPLOADS/winsock

ig16_102.zip 16 bit sound cards

igp8_102.zip 8 bit sound cards.

igps_102.zip Source code (C++)

// Internet Global Phone Project
// README.1ST : Important General Information Regarding the Distribution
// Copyright (c) 1993-1994 microWonders Inc. All rights reserved.
// You are encouraged to redistribute, and build upon the technologies presented
// in this source module and the accompanying article in Dr. Dobb's Journal provided
// all the conditions listed in the MUSTREAD.TXT file, included with this
// distribution, are met.

Please make sure you have read MUSTREAD.TXT before continuing with the distribution.


NOTE: Use 'pkunzip -d' to unzip in order to preserve the directories


The Internet Global Phone project is a technology demonstration project
providing a code platform for two way real-time voice exchange over the
Internet. The details of the project are documented in an accompanying article in
Dr.Dobb's Journal in 1994.


To compile IGP, you will need Microsoft Visual C++ 1.5, and MFC 2.5.
You will need all the source code provided, together with SOCKLIB.LIB and
GSM.LIB provided. All source code must be compiled using the Medium memory
model. You will also need WINSOCK.LIB and WINSOCK.H from your WINSOCK
supplier. The complete original GSM source distribution is included. Please
make sure you include them if you will be re-distributing source code.

To run IGP, you will need an Internet or TCP/IP connection (either direct
or dial in), a system with a Windows supported PC sound board, a working
microphone and speaker. A machine of 33 Mhz 486 or higher is recommended
for best performance in compression/decompression. The IGP software has
been tested mainly on a 22/486, but also on a 20/386. The 386 gave only
marginal performance, voice was extremely chunky.

The 16 bit GSM compression algorithm port has some artifacts. On a high fidelity
setup, you will hear some 'tin-like' popping sound distortion. Interestingly
enough, if you use the cheapest speaker you can find, they 'naturally' filter
those annoying pops out. Therefore, USE CHEAP SPEAKERS!

If you have a 16 bit audio card, try re-compiling with the 16 bit enable flag,
you can obtain better dynamics in the transmitted audio. Thanks to GSM, it is
okay to record in 16 bit even if the other end (playback) only does 8 bits sound.


Make sure you have WSNETWRK.DLL in a search path. Run mphone.exe.

The user interface is extremely simple. There are only 3 buttons.

The first button will allow you to specify who you want to talk to. Click
this now and enter your own IP address (if it is not already detected).

The RED button is used to start recording/compression. After you press this
button, you can speak into the microphone. The third button, with the yellow
lightning bolt, is the transmission button. When you finish recording, simply
press this button to send the voice message to your receipient. The buttons
will remain in a locked state until compression and transmission are completed.

The status window will provide status report from the various conceptual 'threads':
The Listener Thread.
The Client Thread.
The Server Thread.

You can attempt a quick test of operation by 'speaking to yourself'. Enter your
own IP address, press the record button and speak into the mike, press the
lightning bolt to send. Notice the messages on the status window.


As mentioned previously, IGP has been tested on a 486/33, 486/66, and 386/20.
Using both slip connection over 14,400 bds modem and direct ethernet link.
It has been tested with two very popular Winsock stacks: Trumpet Winsock
over slip, and Microsoft 32 bit TCP/IP VxD Beta Final version (Wolverine).


This project is meant to serve as a demonstration and a foundation.
By all means, please improve on the code, the user interface, etc. Make some
new, cool phones, and let the world in on the action. As a courtesy,
please send a message to me at lsing@hookup.net announcing your new creations.


Dan Frezza Internet: bz223@Cleveland.Freenet.Edu