February 22, 2005

GnomeMeeting: It's not just for video conferencing

Author: Joe Barr

I've finally gotten around to trying GnomeMeeting, the Internet phone/video conferencing tool written by Damien Sandras in 2000. GnomeMeeting, the open source community's answer to Microsoft's NetMeeting, works well, with good voice and video quality.GnomeMeeting is now at the 1.2 release, and is available in distribution-specific binaries for Debian, Fedora Core 2, Slackware, Mandrake, and SUSE. The source code is available as well, if your distro isn't included in that list.

One of the reasons I've been so long in trying GnomeMeeting is that I've found Web cameras in general to be somewhat problematic with Linux over the years. But that's not a good reason to shy away from GnomeMeeting. First, video is not required; it's an option. Second, Web cams are a lot less problematic with Linux than they used to be.

Before installing Gnome Meeting, you'll need to have OpenH323, OpenLDAP, and PWLib (also available on the OpenH323 site) installed.

If you choose to compile GnomeMeeting yourself, you might save yourself some time by referring to the configure options for the various packages required noted in the FAQ.

Naturally, you'll need to have working hardware. For video, you can use any camera supported by Video4Linux. Lacking that, you can also use a TV card accessible by the likes of Xawtv, hook your non-supported video camera to it, and voilà, you have video. Your sound card can be either OSS or ALSA compliant. If it's both, ALSA is the preferred choice.

Configuration

The GnomeMeeting Configuration Droid steps you through 10 easy steps to help configure all the components. You can change the settings at any time later on, via the Preferences menu option.

First you're asked for your first and last name. Then comes your email address, which is required in order to register with the GnomeMeeting users directory. Not a joiner? Not to worry. Simply check the box which states "I don't want to register to the GnomeMeeting users directory and get a callTo address." In fact, that is the default choice during configuration. You won't end up registering unless you intend to. Next comes your connection type: modem, ISDN, DSL/cable, or T1/LAN.

The next page provides a tool to detect your NAT type. If you're behind a router or firewall -- or more than one of them -- this can really speed your configuration process. If the NAT detection test works, you'll see a pop-up window like that alongside, which asks if you want to enable STUN Support. STUN stands for Simple Traversal of UDP through NAT. More simply put, it's a protocol that figures out how to get UDP packets to and from your machine, with a private IP address behind one or more NAT servers, with a machine on the Internet.

Next comes your selection of audio manager: ALSA, OSS, or Quicknet. As the Druid says, "ALSA is probably the best choice when available." The choice of audio manager is followed by your choice of audio input and audio output devices. The Druid will prompt you with what it is aware of on your system. It prompted me with Sound Blaster Live! for output and Brooktree Bt878 for input. That second choice coming as the result of me having a Hauppage WIN-TV card installed. Since my microphone is connected to the SB Live card, I changed the input selection to that. This page also has a Test Settings button that will record and play back from the devices you've indicated.

Next comes your choice of video manager. It can be a picture instead a camera. V4L, of course, is the standard, but V4L2 is an option too, as is AVC. Finally, it's time to pick your video input device. The Druid prompted me again with the TV card, but I selected my Creative USB Web cam instead: the OVS511+ USB Camera, as the Druid refers to it. This page also allows you to test the settings.

The final page displays everything you chose and allows you to Apply them or to go back and change them. Remember, you can always change them via the Edit menu option.

Network considerations

My first attempt to use GnomeMeeting failed because I was in too big a hurry. That was using version 1.0.2, by the way; I hadn't yet upgraded to version 1.20 with its spiffy Configuration Druid and NAT detection. But it still might happen to you if you're running an older version and you try to go too fast.

If you are behind a router or firewall doing NAT, your IP addressing will look something like this: to the rest of the world you will be seen as your.public.ip.address, but on your LAN you are known by your.private.ip.address.

You need to tell your router and firewall that TCP port 1720 coming in to your.public.ip.address needs to be sent to port 1720 on your.private.ip.address, and UDP ports 5000-5016 need to be handled the same way. If you are going to use a gatekeeper instead a direct connection you will need UDP ports 5020-5023 as well. For more information on gateskeepers see Damien's presentation
and read the FAQ.

Did you notice that was UDP, not TCP? That was another thing I missed at first. Finally, if you want to connect to someone running NetMeeting, you need to do the same for TCP ports 30000-30010.

If you have a problem connecting after installing GnomeMeeting, chances are that either the ports you need are being blocked by a firewall or they are not being forwarded correctly from the external Internet IP address to your private IP address. Look at these issues first; they are well-covered in the FAQ. Of course, if you're like me, that may be the last place you think of looking.

You can also find help on IRC on the #gnomemeeting channel of irc.gimp.org. Damien himself is often there on weekends and during the evenings, helping newbies like me. Just remember, it's a volunteer help channel, and it's possible nobody will be there to answer your query when you ask. Just be patient and read a little more of the FAQ while you're waiting.

First connection

I chose to register at the GnomeMeeting Users directory (ils.seconix.com) during configuration, so the first place I looked for someone to call when I was ready to test. I clicked on Tools-> Address Book from the menu bar, then selected Seconix ILS Server from Remote Contacts. You can safely ignore the Seconix LDAP Server selection, since that is not yet available.

I clicked on Find at the bottom of the Address Book screen. That populated the listing with all the uses currently or recently signed in to the server. The listing shows the user name, comment, version of software, URL, email address, and location. Clicking on any of those column headings sorts the listing by that element. This helps to locate someone you might be looking for when hundreds are listed. You can also filter by name or URL prior to clicking Find to focus the results.

I tried to connect with a few users listed, choosing from among those who noted in their comment that test calls were OK, but everyone I tried was busy or offline. Then I got a call out of nowhere, and just like that, I could see Mini Mec and the text he was typing. He was testing, too, and hadn't yet connected a mic to his PC. Later, after he had, we tried that and it worked very well. Text chat requires you to be connected with another GnomeMeeting user; it does't work with NetMeeting or other H.323-compliant clients.

Types of calls

GnomeMeeting allows only a single connection, so if you are looking for the ability to hold conference meetings with it, you need to use it in conjunction with a server that provides that functionality. Try the Virtual Rooms Videoconferencing System at CalTech, for example. Or find or build your own OpenMCU server. That's MCU as in Multipoint Control Unit.

There are hardware options for MCU, as well, like those from Polycom, Cisco, and others. Prices range from a few hundred to many thousands of dollars.

As for the single connections it is designed to handle, GnomeMeeting works with NetMeeting and all other H.323 compliant products, hardware or software. I've tested it with another OSTG editor using NetMeeting, and it worked just fine.

Additional features

Things I've not used, but which are part of the 1.2 release, include ENUM, ZeroConf, and PC to Phone. ENUM allows you to associate your real telephone number with your H.323 address, so that others can use it to call you VoIP. ZeroConf is a protocol that detects the presence of other devices on your network. And PC to Phone, of course, allows you to call POTS numbers and speak to POTS connections from GnomeMeeting.

Conclusion

So which is it? An Internet phone or a videoconferencing client? I think it's clear that it's both.

GnomeMeeting has me interested in Internet telephony and videoconferencing all over again. I plan on investigating OpenMCU to see if we can use it at NewsForge for virtual meetings. I'm also interested in finding a way to use it for interviews.

This is a sophisticated, state-of-the-art application. It has a very good FAQ, and the user manual is only an F1 key away from within the application. The recent addition of STUN makes it a lot less of a technical challenge to configure.

If you haven't tried it, you should.

Click Here!