Those are very different tasks and they are usually required by different people, so let's go by pieces.
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:
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.
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.
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.
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.
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.
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...
Crazy how these articles pop up when you need them...
...I was looking for a VoIP solution just as I pulled up the freshmeat page and there this article was -- immensely useful.
Re: Crazy how these articles pop up when you need them...
> ...I was looking for a VoIP solution
> just as I pulled up the freshmeat page
> and there this article was -- immensely
> useful.
Glad to hear that! Feel free to contact me if you need more information.
Regards,
Flavio.
Very useful
Thanks Flavio - I've been flirting with the idea of setting up a voice server to do some routing of the calls I get late at night (on-call for infrastructure mgmt in EMEA) .. and your article has given me some great ideas of where to get started.
I may get a little more sleep as a result ;-)
Re: Very useful
> Thanks Flavio - I've been flirting with
> the idea of setting up a voice server to
> do some routing of the calls I get late
> at night (on-call for infrastructure
> mgmt in EMEA) .. and your article has
> given me some great ideas of where to
> get started.
>
> I may get a little more sleep as a
> result ;-)
>
>
>
>
You should look at Asterisk or Bayonne. They are extensible and support many different telephone interfaces (from cheap analog to the more expensive digital ones). Additionally you could feed a voice recognition package (like cvoicecontrol ) from the telephony server and execute binaries based on what the caller says. Just imagine an alarm ringing when the caller says "emergency". You could even implement a complete IVR system based on similar principles.
Hope you can sleep better now :-)
Flavio.
Asi que vos sobre IP...?!
Muy lindo todo... pero a ver si la proxima lo excribimos en castellano..! Saludos
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.
sourceforge.net/projec...
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
www.ibiblio.org/pub/Li...
www.openh323.org/code....
www.linuxtelephony.org/
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
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
>
%
> www.ibiblio.org/pub/Li...
>
>
> www.openh323.org/code....
>
> www.linuxtelephony.org/
>
> 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..
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
>
> www.ibiblio.org/pub/Li...
>
>
> www.openh323.org/code....
>
> www.linuxtelephony.org/
>
> 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
>
OpenH323 Gatekeeper project has moved
The homepage for that project is now www.gnugk.org (www.gnugk.org/) and the Freshmeat project is now here: OpenH323 Gatekeeper (freshmeat.net/projects...).