# &app; Manual &manrevision;

## Introduction

### Ekiga

&app; is a free Voice over IP, IP Telephony and Video-Conferencing application for Linux and other Unices (e.g BSD, OpenSolaris or MacOSX). It was written by Damien Sandras and is licensed under the GNU/GPL.

Ekiga is able to use modern Voice over IP protocols like SIP and H.323. It supports all major features defined by those protocols like call hold, call transfer, call forwarding, ... It also supports instant messaging, and presence. It also has advanced support for NAT traversal. Ekiga supports the best free audio and video codecs, and has wideband support for a superior audio quality, together with echo cancellation.

### SIP and H.323

The Session Initiation Protocol (SIP) is a protocol developed by the IETF MMUSIC Working Group and proposed standard for initiating, modifying, and terminating an interactive user session that involves multimedia elements such as video, voice, instant messaging, online games, and virtual reality. In November 2000, SIP was accepted as a 3GPP signaling protocol and permanent element of the IMS architecture. It is one of the leading signalling protocols for Voice over IP.

H.323 was originally created to provide a mechanism for transporting multimedia applications over LANs but it has rapidly evolved to address the growing needs of VoIP networks. One strength of H.323 was the relatively early availability of a set of standards, not only defining the basic call model, but in addition the supplementary services, needed to address business communication expectations. H.323 was the first VoIP standard to adopt the IETF standard RTP to transport audio and video over IP networks. H.323 is based on the ISDN Q.931 protocol and is suited for interworking scenarios between IP and ISDN, respectively between IP and QSIG. A call model, similar to the ISDN call model, eases the introduction of IP Telephony into existing networks of ISDN based PBX systems.

## Getting Started

When starting &app; for the first time the configuration assistant will show automatically. The Configuration Assistant is a step-by-step questionnaire that will guide you through all the steps involved in creating the basic configuration you will need to operate &app;. You should go through all of these steps properly, otherwise the assistant will re-appear (when it has not been completed) or &app; will not function appropriately (if some of your answers were not correct). You may run the Configuration Assistant at any time from the Edit menu.

### Tip

All settings can be changed via the preferences window at anytime.

### Configuration Assistant Introduction

Throughout the entire configuration process navigation is available at the bottom of the window. You will be able to navigate through the questions using Back, Forward and Cancel. If you hit Cancel during the setup &app; will not be affected by your changes and all entered information will be discarded.

This page welcomes you to the Configuration Assistant. There is nothing to change or edit here. Press the 'Forward' button towards the bottom of the window to start the configuration.

### Personal information

The Personal Information window requires you to supply personal information to use &app;. This information is displayed when connecting to other audio/video applications.

### Accounts

The Accounts window gives you a clear explanation of what accounts are for. You may simply skip it if you already know what an account is and what to use it for.

### Ekiga.net Account

Ekiga.net is a free SIP services platform provided to &app; users. If you want to call other users and to be callable, you need a SIP address. You can get one from http://www.ekiga.net. Ekiga.net also offers additional services like conference rooms, voice mail or online white pages. Please see http://www.ekiga.net for more information.

Just follow the link given in the dialog to get an account if you do not have one, then fill in your username and password. Please press 'Forward' after having entered all required information to continue.

### Ekiga Call Out Account

&app; can be used with several Internet Telephony Service Providers. Those providers will allow calling real phones from your computer using &app; at interesting rates. We recommend you use the default &app; provider.

If you want to create an account and use it to call your friends and family using regular phones at interesting rates, simply create an account using the "Get an Ekiga Call Out account" link. Once the account has been created, you will receive a login and a password by e-mail. Simply enter them in the dialog, and you are ready to call regular phones using &app;

With the default setup, you can simply use sip:3210444555 and choose sip.diamondcard.us to call the real phone number +3210444555, 32 is the country code, 10444555 is the number to call. We encourage you to put your favorite phone numbers in the address book.

Just follow the link given in the dialog to get an account if you do not have one, then fill in your username and password. Please press 'Forward' after entering all required information to continue.

### Connection Type

&app; supports several audio and video codecs. It includes codecs with excellent quality as well as codecs with medium to good quality. The higher the quality of a codec, the more bandwidth it requires. Moreover, video codecs can adapt their quality to the available bandwidth. This option is necessary in the initial configuration of &app; so that it chooses the optimal codec suited to your network connection and so that it adjusts the video quality settings. If your connection type is not mentioned in the list you should select the one closest to your network connection and adjust &app; manually with the preferences window (codecs section) later on.

When done, continue on with the Configuration.

### Audio Devices

&app; requires audio devices to play and record sound. The audio output device ouputs the incoming sound stream during a call. Please select the device that your headset or speakers are connected to. The audio input device is what your microphone is connected to. These settings might be the same as the settings for the audio player if you have only one soundcard. But please note that it is also possible to record sound via another device (e.g. internal microphone in a webcam) too. This section also allows you to choose the ringing device. This device can be different from the audio output device. It allows you to hear the incoming call ringing sound event in your speakers, while having your headset connected for calls.

When done, continue on with the Configuration.

### Video Devices

This step is optional and concerns users with video devices (e.g. webcams) only. If you do not have any video devices you may skip this page.

If you have a webcam or video device in the list you may select it here.

When done, continue on with the Configuration.

### Configuration Complete

The configuration of &app; is now completed. The last window only shows a short configuration summary of the settings you have chosen. Please verify that all these settings are correct. If something is incorrect you may use the 'Back' button in the lower right hand corner of the window to move to any page of the assistant and correct the mistake.

If everything is correct please press the 'Apply' button to save the configuration. The assistant will be closed and the main Window of &app; will now appear. Remember, all settings can be changed via the preferences window at anytime.

## Basic Usage

### Calling and being called

#### From computer to computer (PC-To-PC)

If you want to call other users and to be callable, you need a SIP address. You can get a SIP address from http://www.ekiga.net as described above.

The SIP address can be used by other users to call you. Similarly, you can use the SIP address of your friends and family to call them. You can for example use sip:dsandras@ekiga.net to call the author of Ekiga.

You can use the online address book of &app; to find the SIP addresses of other &app; users. It is of course possible to call users who are using another provider than ekiga.net. You can actually call any user using SIP software or hardware, and registered to any public SIP provider

If you know the URI address of the party that you wish to call, you may choose the Chat -> Call a number action, enter that URI into the sip: input box at the bottom of the window and press the Connect button; eg: sip:foo@ekiga.net and clicking on the Connect button would call the user at that address.

It is also possible to call contacts using the address book, the call history or the roster. You can add contacts you call frequently to your roster, and watch their presence information in order to know when they are available. Please refer to the appropriate section of the manual for full explanations.

##### Tip

&app; also supports H.323 and as such can call any H.323 software or hardware. Please refer to the section related to URIs to learn more about the various types of URIs that can be used to call remote H.323 and SIP users.

#### From computer to real phones (PC-To-Phone)

&app; can be used with several Internet Telephony Service Providers. Those providers will allow calling real phones from your computer using &app; at interesting rates. We recommend you use the default &app; provider. You can get an account using the links in the configuration assistant as described above.

With the default setup, you can simply use sip:3210444555 and select sip.diamondcard.us in the list to call the real phone number +3210444555, 32 being the country code and 10444555 being the number you wish to call.

You can also dial real phone numbers from the address book. If the phone number of the contact you want to call is stored in the address book, simply select Action -> Call [Ekiga Call Out] when the contact is highlighted. It will dial the phone number of the contact using the Ekiga Call Out account.

##### Tip

&app; also supports connecting to H.323 and SIP PBX systems. If the PBX at your office supports those protocols, you will be able to call real phones and be called from real phones after having connected to the PBX. Please ask for the settings from your administrator.

#### From real phone to computer (Phone-To-PC)

&app; can be used to receive incoming calls from regular phones. To allow this, you can simply login to your PC-To-Phone account using the Tools menu as described above, and buy a phone number in the country of your choice. &app; will ring when people will call that phone number.

##### Tip

You can actually use any H.323 or SIP ITSP provider, including your own PBX at work. However we recommend using the integrated provider.

### Managing Contacts

#### Adding contacts to the roster

&app; allows you to add the contacts you dial the most to the roster, so that you can call or start a chat conversation with your friends without having to remember their URI. If supported by the service you are connecting to, &app; will display extended presence information about your friends. Ekiga.net supports publishing presence information for its users. Software PBX systems like Asterisk can report if a user is on the phone or not, and &app; will display that information in its roster.

You can thus use &app; to monitor lines on your PBX.

&app; is also able to detect other &app; users on the LAN using the Bonjour technology popularized by Apple (tm) and to display them in the roster. That supposes you have a local mDNSResponder daemon running on your computer. On Linux systems this service will usually be provided by Avahi.

To add a contact to the roster, select Chat -> Add Contact, and fill in the required fields. If the service managing the URI you entered for the contact is able to publish presence status, Ekiga will automatically display it.

If you do not know the VoIP URI of a contact, you might try searching for him/her using the Ekiga.net online directory. To do so, select Chat -> Address Book, and start searching using the 'Search Filter' feature.

##### Tip

You can organise your contacts in groups in the roster.

#### Managing contacts

&app; allows you to look for contacts using various sources like the Novell Evolution Email and Calendaring address book, any LDAP directory or the Ekiga.net contact directory. You can use the result of your search to start a chat, call the contact, or simply add him to your roster if you have frequent calls with him. To start looking for contacts, select Chat -> Address Book in the menu. To your left there will be a list dialog showing the LDAP directories as well as a list of local Address Books. The defaults are the &app; white pages, and the personal address book from Novell Evolution. Support for more contact sources is possible.

&app; is able to browse any LDAP directory and use any attribute as the calling URI. For example, you could have an LDAP directory in your company, with a specific attribute containing the local extensions of all your colleagues. &app; is able to use such an LDAP directory. Simply select in Address Book -> Add an LDAP Address Book, and fill in the required details. You can then right-click on the contact and call him using the call attribute as VoIP URI.

The LDAP Address Book supports a range of settings to allow it to work with any LDAPv3 directory. It allows you to choose the attribute to use for displaying a contact's name in the address book as well as a list of attributes for calling info. E.g., if the directory uses the LDAP inetOrgPerson schema you can configure the Address Book to retrieve the homePhone, mobile, and pager attributes make those values available for calling or messaging. You can also customize a Filter Template for the default LDAP search filter, and override the default filter at any time if you need to perform a more specialized search. The browser also supports all security options for LDAP including ldaps:// (LDAP over SSL), StartTLS, and SASL authentication.

To refresh the list of users for a specific address book, simply click the Find button. It will search for all users in that address book. You can contact people by double clicking on their highlighted field. You can also message them by right-clicking or by choosing the appropriate action in the Action menu of the window.

In certain cases you will want to search specifically for a person name, or his or her call URI in the &app; white pages. The address book window allows you to apply filters when searching for contacts. When searching an LDAP directory, entering a simple name in the Search Filter field will perform an LDAP Substring search using the configured Filter Template. If you need to perform a more specialized search you can enter a complete LDAP Filter string, and it will be used instead of the configured Filter Template.

##### Tip

The &app; white pages return a limited number of results corresponding to your search. You can then add them to your personal roster to call them later.

#### Editing contacts

Local address books provided by Novell Evolution allow you to add new contacts, or to edit existing contacts. Each different address book allows a different set of features depending on what makes sense for that specific address book. To discover what features are possible, simply select the address book and consult the Action menu, or right-click on the address book name.

To add a contact to one of your local address books, simply select the address book you wish to add the contact to and select Action -> New Contact. The option of adding a New Contact will appear and you may now enter his name and VoIP URI as well as other settings. When finished, select 'OK' and your contact has been added. You can only add contacts to local address books. The contact parameters can be changed at any time by selecting Action -> Edit when the contact is highlighted. He can also be deleted by selecting Action -> Remove.

You can also add a contact from the white pages (or any other local or remote address book) to the roster by selecting Action -> Add to local roster.

### Sending instant messages

&app; allows you to send instant messages to remote users provided that you know their URI.

You can send instant messages from the roster, from the call history or from the address book. From the roster or from the call history, simply select Chat -> Contact -> Message in the main window when a contact is highlighted. From the address book window, simply select Action -> Message when the contact is highlighted. A window pops up, enter your text message, and hit the Enter key.

#### Tip

You can not exchange text messages with all protocols. &app; will only display the Message menu item when the protocol associated with the user permits it.

### Updating his own status

&app; allows you to publish your status to other users.

There are three categories of status messages : online, away and busy. Each of them allows you to specify a more complete status information. Simply select Custom message in the status menu at the bottom of the main window. You can then define your extended status message that will be published using all available protocols supporting it.

#### Tip

Many servers will not support relaying your extended presence information. To make sure that this feature is available with the server you are using or with the PBX you are connected to, please ask your administrator. Please note that Ekiga.net will publish your presence information.

### Managing Calls

#### Forwarding incoming calls

&app; supports different policies for unanswered incoming calls. Per default it displays a popup window which allows you to decide whether you want to refuse or accept the request for an incoming call. If you do not answer the call in the required time, or if you are busy, or if you do not want to receive any call, &app; can forward the call to another party.

Notice that you need to specify an URI where to forward calls in the preferences to be able to activate that option. Open the preferences window by choosing Edit -> Preferences in the main window and select Call Options on the left. You will now see the appropriate section. It contains three checkboxes for the three cases described above. The URI of the party the calls shall be forwarded to can be configured separately in SIP Settings for SIP and accordingly in H.323 Settings for H.323.

#### Controlling the call

&app; supports several actions which can be performed when being in a call. These actions enable you to control active sessions. It can be done using the menu and toolbar icons from the call window that appears as soon as a call is setup.

- Ending a call: The communication to the remote user can be ended by selecting Call -> Hang up.

- Holding a call: You can hold a remote party call by selecting Call -> Hold Call. This effectively pauses Video and Audio transmission; to continue transmission again you select Call -> Retrieve Call and Video and Audio Transmission will begin again.

- Suspending Audio: This effectively prevents all Audio communication to your respective party when selecting Call -> Mute Audio.

- Suspending Video: This effectively prevents all Video transmission to your respective party when selecting Call -> Suspend Video.

- Transferring the remote party: You can transfer the remote user to another user by selecting Call -> Transfer Call. It is also possible to transfer an active call by right-clicking and choosing the transfer action when a contact is highlighted in the roster, in the address book or in the call history. Double-clicking or selecting the Contact menu in the main window or the Action menu in the Address Book window and choosing the transfer action will also work.

##### Tip

All URIs supported by &app; can be used for call transfer if the protocol supports it.

#### Adjusting the audio and video settings

Your audio and video settings can be adjusted through the call window while you are in a call. The audio volume, but also the brightness, whiteness, color and contrast of your video input device can be changed to achieve the best quality.

You can also change your audio and video devices during a call. Simply go in the preferences window by selecting Edit -> Preferences in the menu, and adjust your devices in the appropriate section.

#### Checking the call history

The Call History stores information (date, duration, URI, Remote user) about all outgoing and incoming calls. They are divided into three groups - received calls, placed calls and missed calls. You can consult the call history by selecting View -> Call History in the menu or by clicking on the appropriate icon in the toolbar.

##### Tip

Double-clicking on a row in the Calls History will call back the selected user or transfer any active call to that user. Notice that you can also add the contact to your roster by selecting Chat -> Contact -> Add to local roster in the main menu when the call is highlighted.

## Advanced Usage

### Registering Additional Accounts

#### The accounts window

You can open the accounts window by selecting Edit -> Accounts. This will open the accounts window. The accounts window will allow you to add Ekiga.net, Ekiga Call Out, SIP and H.323 accounts and to register to them. An account describes the user login and password parameters to register to SIP and H.323 services. Those services can be an Internet Telephony Service provider (like ekiga.net), or an IPBX (like CISCO, Nortel, or Asterisk).

#### Adding an Ekiga.net account

To add an Ekiga.net account, simply select Accounts -> Add an Ekiga.net Account in the menu. A dialog will appear and allow you to enter several parameters:

- User: You can enter your login.

- Password: You can enter your password.

Ekiga.net is a free SIP services platform provided to &app; users. If you want to call other users and to be callable, you need a SIP address. You can get one from http://www.ekiga.net. Ekiga.net also offers additional services like conference rooms, voice mail and online white pages. Please see http://www.ekiga.net for more information.

#### Adding an Ekiga Call Out account

To add an Ekiga Call Out account, simply select Accounts -> Add an Ekiga Call Out Account in the menu. A dialog will appear and allow you to enter several parameters:

- Account ID: You can enter your account ID.

- PIN Code: You can enter your PIN code.

If you do not have an Ekiga Call Out account yet, you can subscribe for one using the 'Get an Ekiga.net Call Out account' link in the dialog. As described above, this service will allow you to call normal phones worldwide at interesting rates. Once the account has been added, you can recharge it, consult the balance history or the call history by selecting the appropriate menu item in the Account menu of the window when the account is highlighted.

#### Adding a SIP account

To add a SIP account, simply select Accounts -> Add a SIP Account in the menu. A dialog will appear and allow you to enter several parameters:

- Name: You can enter the account name.

- Registrar: The registrar to which you want to register. This is usually an IP address or an host name that will be given to you by your Internet Telephony Service Provider, or by your administrator if you are trying to register to a SIP IPBX.

- User: You can enter your login.

- Authentication User: If it is different from the user parameter you provided above. In that case, the user field will be used to control the outgoing identity for the account you are adding, while the login will be used during the authentication phase.

- Password: You can enter your password.

- Timeout: The timeout after which the registration should be refreshed.

#### Adding an H.323 account

To add an H.323 account, simply select Accounts -> Add an H.323 Account in the menu. A dialog will appear and allow you to enter several parameters:

- Name: You can enter the account name.

- Gatekeeper: The gatekeeper to which you want to register. This is usually an IP address or a host name that will be given to you by your Internet Telephony Service Provider, or by your administrator if you are trying to register to an H.323 IPBX.

- User: You can enter your login.

- Authentication User: If it is different from the user parameter you provided above. In that case, the user field will be used to control the outgoing identity for the account you are adding, while the login will be used during the authentication phase.

- Password: You can enter your password.

- Registration Timeout: The timeout after which the registration should be updated.

### Understanding URIs

#### SIP URI's

SIP URIs are formatted as such "sip:user@[host[:port]]"

This permits you to call the given user or extension on the specified SIP proxy: sip:jonita@ekiga.net

#### H.323 URIs

H.323 URIs are formatted as such "h323:[user@][host[:port]]"

This permits you to:

- Call a given host on a port different from the default port which is 1720: h323:seconix.com:1740

- Call a given user using their respective alias if registered to a gatekeeper: h323:jonita

- Call a given phone number if you are registered to a gatekeeper for a PC-To-Phone provider, or if that user has an ENUM record associated to an H.323 URI: h323:003210111222

- Call a given user using their alias through a specific gateway or proxy: h323:jonita@gateway.seconix.com

- Call an MCU and join a specific room: h323:myfriendsroom@mcu.seconix.com

### Controlling the Video Bandwidth

&app; uses a best-effort algorithm to maintain a low bandwidth when transmitting video. It will permit &app; to dynamically adjust the video bandwidth and the number of transmitted images per second during a call while trying to respect the requested video bandwidth.

Notice that the algorithm is a best-effort algorithm, which means that if your video bandwidth settings are too low, it can be impossible to respect them. However, if the video bandwidth permits to transmit with a better quality, or faster than the requested values, then &app; will dynamically increase them so that the quality and the framerate are always the best possible.

### Monitoring lines

&app; can connect to PBX systems supporting the SIP protocol. In that case, it is able to indicate if the line associated with a user is in use or not. Please refer to the documentation of your PBX to enable that feature.

To enable that feature on &app;, simply add the contact with his URI in the roster. If the server supports publishing presence information, &app; will automatically publish your own presence information and display the presence of contacts in your roster.

### Managing Codecs

#### Audio Codecs

The &app; audio codecs table in the preferences permits you to change the codec order as well as disabling the codecs you don't want to use. Each codec has strong and weak points. For example, G.711 will give the best voice quality but will use the most bandwidth while SPEEX will give an average voice quality but requiring a very low bandwidth usage. Notice that there are two versions of SPEEX; one of them is SPEEX WideBand, which has a 16 kHz clock rate.

#### Video Codecs

The &app; video codecs table in the preferences permits you to change the codec order as well as disabling the codecs you don't want to use. &app; supports codecs like H.261, H.263+, H.264, MPEG-4 or Theora.

#### Reordering the codecs

When you reorder the codecs, you are reordering the local capabilities table, ie the codecs you will use for sending. The codec used is the first active codec on receiver which is active on sender.

#### Forcing the use of a specific codec

You can force the use of a specific codec by disabling all other codecs, but it will result in failed calls if the remote user doesn't support that specific codec. The best approach is to put your preferred codecs at the top of the list so that you always transmit with them if the remote user allows it and to disable the codecs that you don't want to use for transmission and reception.

#### Adjusting the jitter buffer

You can adjust the delay to wait before playing the sound buffers that you have received using the jitter buffer adjustment. If there is too much packet loss, the delay required to have received all packets could be so important that it will exceed the jitter buffer. In such a case, the sound you are receiving will be of bad quality. A solution to that problem would be to increase the maximum limit of the jitter buffer to a few seconds, resulting in a big delay but in an improved voice quality. Notice that the jitter buffer will readapt itself to the lowest delay allowing for optimum transmission, and that a bad voice quality in reception is not due to a too low jitter buffer value, but to bad internet connection quality.

### Changing Ports

#### The listen ports

The main port used to listen for incoming connections in &app; for SIP is port 5060 (UDP), while 1720 (TCP) is used by H.323. To change those ports you need to load "gconf-editor". Open gconf-editor, select apps from the left hand side menu and then select &app;, Protocols. Then select "sip" or "h323", it should give you a list in the corresponding window to your right. Select listen_port and change it to your desired value. You can also change the UDP/RTP port ranges.

#### Explanation of the port ranges

1. The "listen_port" value is the port &app; will use to listen for incoming connections. It is different for SIP and H.323.

2. The "udp_port_range" value is the range of UDP ports that &app; will use for SIP signalling or when registering to H.323 gatekeepers. It is also used for RTP (audio and video communication channels).

3. The "tcp_port_range" value is the range of TCP ports beside the listen_port that &app; will use for the H.245 channel with the H.323 protocol. That port range is not used by SIP. It is also not used when H.245 Tunneling is enabled, which is generally the case, except when calling old H.323 implementations like Netmeeting.

### Controlling the SIP and H.323 Settings

#### Controlling the SIP Settings

##### Misc Settings

Outbound Proxy

The outbound proxy is the SIP proxy that will relay your calls. The behavior of a SIP proxy is similar to the behavior of an HTTP proxy, i.e. some entity that issues the requests on your behalf and proxies the streams.

Forward URI

The URI to which SIP incoming calls should be forwarded if configured in the preferences.

#### Controlling the H.323 Settings

##### Misc Settings

Forward URI

The URI to which H.323 incoming calls should be forwarded if configured in the preferences.

##### Advanced Settings

&app; permits a fine control of the H.323 settings in the Advanced H.323 Settings section of the preferences. You can enable H.245 Tunneling, Early H.245 and Fast Start.

H.245 Tunneling

H.245 Tunneling is the encapsulation of H.245 messages within H.225/Q.931 messages (H.245 Tunneling). If you have a firewall and enable H.245 Tunneling, there is one less TCP port that you need to allow for incoming connections.

Early H.245

This enables H.245 early in the setup and permits achieving faster call initiation.

Fast Start

Fast Connect is a new method of call setup that bypasses some usual steps in order to make it faster. In addition to the speed improvement, Fast Connect allows the media channels to be operational before the CONNECT message is sent, which is a requirement for certain billing procedures. It was introduced in H.323 version 2.

## About &app;

&app; is written by Damien Sandras (dsandras@seconix.com) with the help of many volunteers. Active maintainers are Damien Sandras (dsandras@seconix.com), Eugen Dedu (Eugen.Dedu@pu-pm.univ-fcomte.fr) and Julien Puydt (jpuydt@free.fr). To find more information about &app;, please visit the &app; Home Page.

To report a bug or make a suggestion regarding this application or this manual, follow the directions in this document.

This program is distributed under the terms of the GNU General Public license as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. A copy of this license can be found at this link, or in the file COPYING included with the source code of this program.

## Appendix

### Related Software

IPBX

- Asterisk PBX: http://asterisk.org

SIP

- SIP Express Router: http://www.iptel.org/ser

H.323

- OpenH323 Gatekeeper: http://www.openh323.org

- GNU Gatekeeper: http://www.gnugk.org

- OpenH323 Proxy: http://openh323.sourceforge.net

- H323 - ISDN Gateway: http://www.telos.de/linux/H323/

Conferencing/VoIP Software

- OpenMCU: http://www.openh323.org

Similar Clients

- XTen: http://www.xten.com

- SJPhone: http://www.sjlabs.com/

- OpenPhone: http://www.openh323.org

- Netmeeting: http://www.microsoft.com