Personal Internet Phone Equipment
User's Manual
By Alexander V. Melnikov
Table of Contents
 
TABLE OF CONTENTS
OVERVIEW
LICENSE AGREEMENT
COMPUTER AND NETWORK CONFIGURATION
USING PIPE APPLICATION
 
RUN APPLICATION
CALL MENU
EDIT ADDRESS BOOK MENU
SYSTEM MENU
INFORMATION MENU
TRAY INTERFACE
HOTKEYS AND SHORTCUTS
ACKNOWLEDGEMENTS
Overview
 

Personal Internet Phone Equipment (PIPE) is a Windows application providing capability of real-time vocal communication. I.e. it is a software product that allows you to talk with your friends, colleagues or relatives with the help of a computer and IP network!

PIPE supports voice PC-to-PC calls both over global Internet and local area networks (LAN) based on TCP/IP protocols stack. Basically, it is intended for the following purposes:

  • Free or low cost long-distance calls between two persons through computers, connected to Internet.
  • Office telephone, which allows voice information exchange for a company's stuff by means of computers and Intranet.

Voice communication through computer networks is a subject of great interest. In our days we have more then a dozen well-known software solutions of this problem. However using PIPE is more advantageous in comparison with similar products:

  1. PIPE provides reliable voice transmission of high quality,
  2. PIPE allows establishing connection over Socks Proxies,
  3. PIPE includes a smart and adjustable UDP port scanning mechanism,
  4. Installing PIPE requires little disk space,
  5. Phone-like graphics user interface.

PIPE can operate on most of hardware/software configurations based on Win32 platforms with Intel Pentium processors (see configuration requirements below). I hope you'll enjoy using PIPE for voice talking.

License Agreement
 

PIPE is provided as a shareware application, but it is free for evaluation and hasn't any functional limitations for this period. If you are going to use PIPE permanently, please purchase and register it. I would like to develop a set of voice communication software products such as a voice chat server, PC-to-phone gate and so on. I intend to support and upgrade PIPE application as well. Therefore, you can make an important investment to my further and current products. If you decided to do your own contribution (20$) don't hesitate to e-mail me. Any suggestions, feedbacks or remarks are welcome also.

No warranties. Headlight expressly disclaims any warranty for the software. The product and any related documentation is provided "as is" without any kind of warranty, either express or implied, including, without limitation, the implied warranties or merchantability, fitness for a particular purpose. This software is not fault tolerant and should not be used in any environment, which requires this. No liability for occasional damages.

Computer and Network Configuration
 

The product should be installed on a PC with the hardware and software configuration as described below.

Hardware requirements:

  • Pentium CPU, 75 MHz or better with at least 8 Mb RAM.
  • Cable or dial-up IP network connection.
  • Full or half -duplex sound card.
  • Head-phone (or microphone and ear-phones) compatible with sound card.

Software requirements:

  • Windows 95/98/Me or Windows NT/2K.
  • Network interface with TCP/IP Winsock-2 driver.
  • Valid multimedia driver for sound card.

The PIPE system requirements are obviously extremely modest and prevailing. The most critical resource is the quality of IP network, since low speed connection causes sensible voice data losses. Satisfactory quality of voice stream can be achieved at 19,200 bps link.

Another network limitation is the necessity in establishing direct UDP connection to the remote host. Particularly, to make a long distance call using computer connected to the Internet through a proxy server or firewall, the following requirements should be met:

  • The computer should have a valid Internet IP address (not Intranet IP).
  • The proxy server should support Socks-4 or Socks-5 protocols.
  • The IP address, port and other connection attributes of the proxy should be known.
  • You need to know or at least have an idea of the set of open UDP ports. For example, port 4000 is standard for ICQ and can be also used by the PIPE application.

These restrictions do not concern computers with direct connection to the Internet. One minor peculiarity of software Internet telephones should be also kept in mind, namely communication lag (up to 5-7 seconds for poor Internet connections) between the question and the reply from the other side of "phone line". This is caused by the necessity in doing the following steps: voice block acquisition, compression, and transmission via a number of hosts, voice restoration and reproduction. All the mentioned operations have internal buffering, hence each of them contributes to the integral lag.

Using PIPE application
 

Using PIPE is very simple and will be described in the current chapter. The graphics user interface (GUI) consists of the following basic details: the local IP address line, the display and the buttons.

The display is a composite control, which is devoted to show various kind of information such as: menu choices, context prompt and status messages. It is also used to enter and edit text information of a certain kind, for instance: IP addresses, ports, nicknames and so on.

Button controls can be divided into two types: mode selection and action buttons. The buttons of the first type are used to switch among different PIPE working modes: calling mode, address book editing, system operations and information query. The functionality of each action button strongly depends on the current mode.


Table of Buttons

Face Name Description Shortcut
Call Switch to the call mode "Alt-C"
Edit Edit records in the address book "Alt-E"
System Make system actions "Alt-S"
Info Obtain information about the application "Alt-I"
Arrow Up Scroll / Select menu items. Change sound volume during a conversation. Arrow keys
Arrow Dn
Confirm Mode dependent approval action "Enter" or menu left double click
Cancel Mode dependent reject action "Esc" or "-"
Auxiliary Mode dependent auxiliary action "Alt-Space" or "+"

Run Application

In order to run the PIPE application you just simply click on "Phone" executable. If you want to run it in silent mode (without GUI showing) point out the letter "m" as a command line parameter. I.e. launch PIPE as follows: Phone.exe m. Silent mode is useful for auto start goal, so you can create such a shortcut and place it in Win Startup.

There are four basic PIPE modes among which the user can switch. Let us consider them one after another in details.

Call Menu

Call menu is tailored for making phone calls through the IP network. The system switches to this mode by choosing the Call button. To make an outgoing call:

  1. Select the destination host from the address book using arrows. If the desired host is not present in the book enter the IP address or the DNS computer's name directly in the appropriate address line below the list.
  2. Choose the Confirm button.
  3. Connection process continues and the progress information is displayed.
  4. If connection is successful and the call parameters test has passed OK, the dial sound tone will appear. Wait for the owner of the destination host to accept the call.
  5. Otherwise, if PIPE can't provide a voice link, the phone display will show a notification message, such as "TCP link failed" or "No free UDP port" followed by the status message "Disconnected".
  6. If your call is accepted, the dial tone will be terminated and you can start speaking.
  7. The volume can be adjusted using the arrow buttons.
  8. To finish the conversation, choose the Cancel button.

An outgoing call with the destination IP address specified as "127.0.0.1" the is of a special kind which allows the user do a loop-back call, to perform a PIPE self-testing. It is strongly recommended to make such a call at the first start of the application.

The user is notified on an incoming call by ring sound. The following actions are to be performed in this case:

  1. Switch to the call mode by choosing the Call button
  2. The IP address or nickname of the caller is displayed.
  3. Choose the Confirm button to accept the incoming call or the Cancel button to reject it.

When the connection has been established successfully and your sound card is full duplex you can talk. If the sound card is half duplex (you will be notified about it by a warning message box) you cannot listen and speak at the same time and have to switch between the "Listen" and "Speak" modes using the Auxiliary button.

Edit Address Book Menu

The edit menu allows making changes in phone address book, such as creating a new record, modifying and deleting existing ones, and changing order of records. To set the desired type of operations:

  1. Choose the Edit button.
  2. Select the appropriate type in the edit menu using the arrow buttons.
  3. Activate the selection by choosing the Confirm button.

To create a new record:

  1. Choose the "Create" menu item.
  2. Enter the nickname for the new record and choose the Confirm button.
  3. Enter the IP address in the dotted notation or a valid host name recognised by the DNS service and choose the Confirm button again.

To modify a record:

  1. Choose the "Modify" menu item.
  2. Select the desired record using the arrow buttons and choose the Confirm button.
  3. Edit the nickname (if needed) and choose the Confirm button.
  4. Edit the IP address or the host name (if needed) and choose the Confirm button.

To delete a record:

  1. Choose the "Delete" menu item.
  2. Select the record to be deleted and choose the Confirm button.
  3. To confirm the operation choose the Confirm button.
  4. To cancel the operation, choose the Cancel button.

To change the order of record:

  1. Choose the "Move" menu item.
  2. Select the record to be moved using the arrow buttons.
  3. Lock the record by choosing the Auxiliary button.
  4. Move the record to desired location using the arrow buttons.
  5. Free the record by choosing the Confirm button.

System Menu

The system menu is intended for performing a set of utility operations such as: hide GUI, quit application and change PIPE settings. The first two ones are simple actions, both of them are executed in the following way:

  1. Choose the System button.
  2. Select the required action using the arrow buttons.
  3. To have the selected action performed, choose the Confirm button.

Activation of the third operation brings the user to the Settings submenu, with a number of changeable PIPE options: preferred language, sound mode, TCP and UDP ports and firewall properties.

Note: any changes made to the settings only come into an effect after the PIPE application is restarted.

Let us consider each option more closely.

Language option allows the language selection for the phone user interface and help topic.

The Sound mode determines the Windows sound interface to be used: Direct Sound or Waveform Audio. In general, Direct Sound is preferable but for certain configurations Waveform Audio works better. Which of the two interfaces is more suitable for your configuration can be found out experimentally through a loop-back call.

Voice detector is useful feature designed to remove outgoing network traffic when the user keeps silence. But as soon as one begins speaking, activity detector resumes sending the voice packets. User can enable or disable this option.

TCP ports is a list of ports that can be used to establish connection between two hosts. For incoming calls PIPE works as a TCP server, which listens to TCP connection requests. For outgoing calls this list is used for successive TCP connection attempts. It is optimal to have the list composed of 2-5 TCP ports.

UDP ports is a list of ports which may be applied for real-time voice communication. Actually this list is used for scanning after the TCP handshake. The goal of the procedure is to find an open UDP port which is suitable for direct voice connection. The list of ports can consist of up to 50 port values.

You can view the above mentioned list of ports, add a new port or remove existing ones.

Add a new port value.

  1. Select the list of ports and choose the Confirm button.
  2. Choose the Auxiliary button.
  3. Enter a new port.
  4. Choose the Confirm button again.

Remove port

  1. Select the desired list type from the "Settings" menu.
  2. Select the extraneous port from the list.
  3. Choose the Cancel button to delete the selected port.
  4. To confirm the deletion, choose the Confirm button.

Firewall options depend on the type of the proxy server used for IP packets filtering. In the simple case the user doesn't need to care about the proxy server and uses the direct TCP connection for outgoing calls. Otherwise if the direct TCP connections are forbidden by the LAN administrator, the user has to explicitly specify the protocol type used by proxy in the PIPE application. Next the user should choose Arrow Dn and menu options to enter the address of the proxy server and the communication port (usually 1080). In case of Socks-5 protocol the additional information, such as user name and password has to be entered. It is important to emphasize that proxy settings can help you make primary TCP connection through firewall in outgoing calls only. So, to have a successful voice communication at least one open UDP port should exist! For receiving incoming calls you need to have a TCP port open for incoming connections.

Information Menu

The information menu gives you access to the help document, to picking up info about the author and sending mail to him, and entering a registration code. To switch to this mode, choose the Info button.

To perform registration:

  1. Switch to the information mode and choose the "Registration" menu item using the arrow buttons and the Confirm button.
  2. Enter the valid registration code.
  3. Confirm it by choosing the Confirm button.
  4. Enter the name you want to be registered.
  5. Use the Confirm button again.

I kindly hope for your generous nature - you have a chance to be registered user.

Tray Interface

PIPE has a simple control interface that can be accessed by means of the phone tray icon. The following actions are available:

  1. Show / hide PIPE GUI by clicking the left mouse button
  2. Invoke a popup menu by clicking the right mouse button.

Popup menu allows extended PIPE management: exiting the application as well as showing / hiding GUI.

Hotkeys and shortcuts

In order to speed up working with PIPE beside the buttons shortcuts several hotkeys were added:

  • "Alt-Shift-P" show phone GUI (global hotkey)
  • "Alt-H" hide phone GUI
  • "Alt-X" exit PIPE application
Acknowledgements
 

I would like to express many thanks to my friends and colleagues for valuable advices and software testing. Personal gratitude is expressed to:

  • Dmitry Karpov - for useful consultation in Win32 GDI.
  • Alexey Tolmachev and Oleg Sigida - for pre- and alpha testing.
  • Anton Victorov - for some significant remarks, concerning the PIPE user interface.
  • Barbara Mityashina - for grammar polishing of this document.
  • Andrey Lebedev - for translating this manual into HTML.
  • Alexey Shinkin, Sergei Volvenko, Andrei Goumeniouk, Maxim Falko - for beta testing.