Articles / Telephony Software

Telephony Software

The telephony software category includes applications that let you communicate via voice and/or video through the Internet to other people, software that lets you set up a software-based telephony PBX based on standard hardware, tools that let you analyze data from or control legacy telephony switchgears, and small, simple pieces of software that let you set up an answering machine using an old voice modem.

Those are very different tasks and they are usually required by different people, so let's go by pieces.

Voice over IP

If you want to implement a VoIP system, you first need to define the protocol you will use for connecting to other systems. If you're developing an in-house closed solution that just needs to communicate to known and managed points, you could choose whatever protocol you like (even creating your own protocol to suit your needs). However, that's not the usual case. Generally, you need to interoperate with or connect to different points out of your control, and standard, well-known protocols are needed. By far, the oldest standard protocol for VoIP is H.323. It's a complex protocol that supports different codecs, not fully suited for trespassing firewalls but supported by a myriad of applications and appliances, from Microsoft NetMeeting to VoIP phones. When you're trying to deploy a large-scale professional VoIP solution, H.323 is a must.

You'll need an H.323 protocol stack, and the standard one is OpenH323 (which requires Pwlib, a portable library that lets the stack be run under many different operating systems). You'll also need endpoint applications known as VoIP phones, Web Phones, or simply IP Phones. If you prefer a graphical, intuitive environment, GnomeMeeting is the king of voice/video conferencing systems. If you just need a text-based application with voice and video support, you can use ohphone (available with OpenH323), which is lightweight and well-integrated with the OpenH323 stack.

Of course, typing hard-to-remember IP addresses when trying to connect to people can be both boring and prone to mistakes, so you'll eventually need a system that can translate names into IP addresses (and add more functionality such as call routing, etc.). That system is called a gatekeeper. The most complete and up-to-date Open Source gatekeeper is Jan Willamowius's OpenH323 Gatekeeper. It's a full-featured gatekeeper that lets you define alternate gatekeepers, route calls based on E.164 prefixes, and much more.

As long as you are using your H.323 IP phones from public networks, you shouldn't need to care, but what happens when you add firewalls doing NAT in the middle? If it's a Linux firewall, you have to choose one of two solutions:

  1. You could use
  2. You can use a proxy installed in your Linux firewall that translates connections between both sides like OpenH323Proxy or OpenH323 Gatekeeper for point-to-point connections or openmcu (available with OpenH323), for multipoint connections.

If you want to be on the bleeding edge with a simpler, firewall-friendly, but not-so-interoperable protocol, you can select SIP. There are already some good SIP-based IP Phones, such as linphone. If you need to interoperate between H.323 and SIP, you'll probably need Vocal, the Vovida Open Communication Application Library, but you'll need to add some development on your own to create a working application based on it.

Applications based on proprietary protocols are not recommended for anything but small, restricted implementations. A good one with encryption support is Speak Freely.

Telephony gateways and software PBXes

If you want to implement an intelligent telephony system for a small company with features like call routing, answering systems, a VoIP gateway, etc., commercial PBXes are usually very expensive. Fortunately, there are many applications and frameworks that can help you accomplish the same results by yourself.

One of the most complete, actively deployed, and extensible software PBXes is Asterisk. It offers features comparable to those found in telco-class PBXes which cost hundreds of thousands of dollars, and it can run on ordinary PC hardware with a variety of telephony cards. It provides H.323 and SIP support, so it's not only a full-featured telephone switchgear framework, but can also connect to VoIP phones and gatekeepers.

Of course, we'd be missing a great one if we didn't mention GNU Bayonne, the telephony server of the GNU project. Bayonne offers a script-driven, threaded, multiline state event telephony service for building voice response systems and telephony plugins for runtime driver configuration. It can be used to build telephony-based system administration, home automation, automated attendant, v-commerce, and voice messaging systems.

If you just want to build a gateway to let normal phones access H.323-based IP phones, look at OpenH323's pstngw2, small piece of software that let you gateway from PSTN/extensions to H.323 with commodity analog telephony cards. If you're interested in an ISDN-to-H.323 gateway, look at isdn2h323; it lets you work with ISDN cards supported by ISDN drivers in the Linux kernel.

SMS, TAP, and messaging systems

If you need to implement a system to deliver messages to beepers and mobile phones, you're lucky; there are many free applications that can help you do it easily. Many of them only work with one or a few providers, though some are more generally useful. Give Sendpage a try; it's written in Perl for sending alphanumeric pages via modems which connect to paging centers with the TAP protocol. Also try YaPS, Yet Another Paging Software, which can transfer pager messages with the UCP, TAP, and Script protocols.

If you're developing an SMS platform for a paging company, you need Alamin. Alamin GSM SMS Gateway is a group of daemons which allow you to send/receive SMS messages from any GSM device which supports AT+ commands (GSM modems or GSM mobile phones) or which is supported by Gnokii. A client program allows you to send messages from any IP client. An SMTP interface is provided to allow MTAs to send SMSes directly to the GSM network. IMP (Incoming Message Processor) modules allow you to extend functionality to implement banking, network administration, bd queries, etc. from a GSM mobile phone.

Software answering machines

If you need to implement an answering machine using a voice modem and a PC, you could use the mgetty+sendfax package and get a full-featured fax machine for free, or you could develop you own answering machine software using the VoiceModem Kit.

Miscellaneous

No known classification lacks a misc. topic, a bucket in which you can place stuff that doesn't fit very well in any other place. Most of these packages are small tools that complement or add some functionality to other applications. However, there is a piece of software that is in a class of its own: Interverse. Interverse is an evolution and combination of the Web, chat, instant messaging (IM), and voice communication. It is not just a graphical user interface (GUI), but an immersive user interface (IUI). It is a virtual universe running on top of the Internet. It uses the Crystal Space 3D engine to render the user's view of the world.

Conclusion

We've covered many applications with different uses and scopes. Most of them are totally free (in both senses). Many are more powerful than their commercial, closed counterparts. If you use any of them and are satisfied, please send an email to the authors to let them know you liked it. If you didn't like it or you'd like to have new features or have a bug corrected, send the authors your opinions; that's the way Open software grows and matures. If you're a developer, please contribute! Others will thank you for it...

Recent comments

16 Feb 2003 11:50 Avatar willamowius

OpenH323 Gatekeeper project has moved
The homepage for that project is now www.gnugk.org (http://www.gnugk.org/) and the Freshmeat project is now here: OpenH323 Gatekeeper (http://freshmeat.net/projects/gnugk/).

03 Nov 2002 11:55 Avatar leealex

Re: can u help me is setting up a VoIP to PSTN Gateway
Hi qweqwe,

Just read you plan in freshment. I have the same planning to make a dialpad like webpage. How's your project. Can you give me some idea?

Thanks

Alex


> Hi
>
> i am planning to setup a dialpad like
> server at my home so that my friends in
> other countries who regularly log on to
> my site can also call me on my other
> phone. i hv a extra phone line and cable
> connection. i did lot of research for
> the last few days. read the following
> sites /pages
>
> http://www.ibiblio.org/pub/Linux/do...VoIP-HOWTO.html
>
>
> http://www.openh323.org/code.html
>
> http://www.linuxtelephony.org/
>
> http://www.quicknet.com/
>
> and few others.
>
> based on these articles, i found out
> that i dont need to set up a gatekeeper,
> i need to setup a VoIP to PSTN Gateway.
>
>
> to set up this gateway, i think the
> following needs to be done.
>
> i need to buy a Quicknet LineJack Card.
> Install Gateway software PSTNGw for
> Linux from OpenH323 and my friends would
> use gnophone to connect to my server.
>
> i just want to make sure what i am doing
> is right. i want to discuss with some
> one who has already done this.
>
> BTW i hv RH 7.1 as my intranet server
> and Rh 6.1 as firewall at home.
>
> any help appreciated.
>
> thanks,
> qweqwe
>


26 Apr 2002 03:17 Avatar nobrains

Re: can u help me is setting up a VoIP to PSTN Gateway

> Hi
>
> i am planning to setup a dialpad like
> server at my home so that my friends in
> other countries who regularly log on to
> my site can also call me on my other
> phone. i hv a extra phone line and cable
> connection. i did lot of research for
> the last few days. read the following
> sites /pages
>
%
> http://www.ibiblio.org/pub/Linux/do...VoIP-HOWTO.html
>
>
> http://www.openh323.org/code.html
>
> http://www.linuxtelephony.org/
>
> http://www.quicknet.com/
>
> and few others.
>
> based on these articles, i found out
> that i dont need to set up a gatekeeper,
> i need to setup a VoIP to PSTN Gateway.
>
>
> to set up this gateway, i think the
> following needs to be done.
>
> i need to buy a Quicknet LineJack
> Card. Install Gateway software PSTNGw
> for Linux from OpenH323 and my friends
> would use gnophone to connect to my
> server.
>
> i just want to make sure what i am
> doing is right. i want to discuss with
> some one who has already done this.
>
> BTW i hv RH 7.1 as my intranet server
> and Rh 6.1 as firewall at home.
>
> any help appreciated.
>
> thanks,
> qweqwe
>


hey qweqwe,
even I'm trying to setup a simillar kinda setup. I'm still in a resarch phase of what all is needed and how to setup since this is my first time but I would like to tel you I found a Wild Card X100P (1FXO)
This X100P allows you to connect a standard analog phone line into your Linux server with Asterisk software which is used a PBX this would be ideal for a single line but can't say much about it since even I haven't used ..... lemme know in case you find something more :)

NoBrains..

13 Apr 2002 23:16 Avatar qweqwe

can u help me is setting up a VoIP to PSTN Gateway
Hi

i am planning to setup a dialpad like server at my home so that my friends in other countries who regularly log on to my site can also call me on my other phone. i hv a extra phone line and cable connection. i did lot of research for the last few days. read the following sites /pages

http://www.ibiblio.org/pub/Linux/do...VoIP-HOWTO.html

http://www.openh323.org/code.html

http://www.linuxtelephony.org/

http://www.quicknet.com/

and few others.

based on these articles, i found out that i dont need to set up a gatekeeper, i need to setup a VoIP to PSTN Gateway.

to set up this gateway, i think the following needs to be done.

i need to buy a Quicknet LineJack Card. Install Gateway software PSTNGw for Linux from OpenH323 and my friends would use gnophone to connect to my server.

i just want to make sure what i am doing is right. i want to discuss with some one who has already done this.

BTW i hv RH 7.1 as my intranet server and Rh 6.1 as firewall at home.

any help appreciated.

thanks,
qweqwe

08 Apr 2002 03:21 Avatar zyga

Another project
Telephone Control Daemon allows a user to dial a system and perform some predefined commands. It uses a voice modem (tested with Rockwell) to provide a DTMF-based interface to the user.

http://sourceforge.net/projects/telephonectld/

Screenshot

Project Spotlight

Kigo Video Converter Ultimate for Mac

A tool for converting and editing videos.

Screenshot

Project Spotlight

Kid3

An efficient tagger for MP3, Ogg/Vorbis, and FLAC files.