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...