Best Open Source VOIP Applications

VOIP

We just love lists, don’t we? Since we are into VOIP in this blog, I thought why not present a list of the best open source VOIP applications? Lucky for me, I didn’t have to look far for this sort of information – I ran across an extensive list presented by Virtual Hosting Blog. I picked out some of the items on the list. If you want the whole thing (it is quite long), you can see the whole list of the top 50 open source VOIP apps.

SIP Proxies

  • OpenSer: OpenSER has been described as a “mature and flexible” SIP server so it’s no surprise that it’s popular among users. OpenSER development began with FhG FOKUS SIP Express Router, but then diverged into its own feature-laden software package that was released in 2005. Since then it’s been exhibited around the world, and makes a great addition to Linux systems looking to employ VoIP technology.
  • VOCAL: Open source VoIP developers can benefit from the software and tools found in VOCAL. Developed through the Cisco sponsored labs at Vovida, VOCAL is fully customizable to business needs and can provide call routing, billing information, call control and more in an easy to control and maintain Linux based system. It’s been successful due largely in part to its immense capability for adaptation and scalability, and likely will only see further integration into business systems in the future.

SIP Clients

  • Linphone: Linphone is promoted as a solution to help users communicate more freely over the Internet using voice, video and text messaging. Recent updates to the program have made it even better, solving many compilation issues while adding improved interoperability and new features. While currently only stable on Linux systems, development is under way for a Windows version as well.
  • PhoneGaim: If you haven’t heard of PhoneGaim you’ve likely heard of its proprietary counterpart Gizmo Project. While it doesn’t have the instant name recognition of its VoIP cousin Gizmo, PhoneGaim is still a product to take note of. Developed in an attempt to challenge Skype, the program is loaded with integrated features that help make the VoIP experience rewarding, even for those just using the software at home.

PBX

  • Asterisk: Asterisk is perhaps the greatest open source VoIP success story of them all. It is the leading open source telephony engine and tool kit and is used in thousands of servers and VoIP setups all over the world. What makes it so great? The standard system supports many features available in proprietary PBX system like voice mail, conference calling, interactive voice response, and automatic call distribution but also has the versatility to be adapted and personalized based on business or individual needs.
  • OpenPBX: Developed by Australian company Voicetronix, OpenPBX is a popular solution both with small offices and with large call centers. With features like unlimited voicemail, auto-attendant, automatic call distribution, music on hold and call parking it’s easy to see why. It also has the advantage of highly compact Perl code, meaning it’s very easy to customize and extend.

Now why aren’t I surprised that Asterisk is there? ;)

Use of Asterisk’s IP Telephony Platform Boosted by Genesys’ Support

Asterisk’s userbase has gotten even bigger now that Genesys Telecommunications Laboratories, an Alcatel-Lucent company (PARIS: ALU) and (NYSE: ALU), has announced its decision to support the Asterisk® open source IP PBX platform. According to the president and SEO of Genesys, Wes Hayden, they decided to formally support Asterisk to be able to meet customer demands. Furthermore he stated that, “The increased importance of SIP and standards-based technology has paved the way for using open source for contact centres. We have reached a point where Asterisk and SIP are mature, reliable and proven technologies.”

The response of Genesys customers was very positive with companies like Groupama Rhône Alpes Auvergne in France, E.Novation Contact Centers in the Netherlands, and Global Speech Networks in Australia all announcing their own deployment of their use of Genesys on Asterisk. It is expected that more companies will soon follow suit as the use of of open source is highly beneficial to them cost-wise. In addition to these using an open platform gives them much flexibility, which is very important to be able to develop the highly customised environments that is required of contact centre service providers.

The move by Genesys is clearly advantageous not only to Digium and Genesys’s clients but to the VoIP technology as a whole. Since Genesys is the leading provider of software for major contact centres then their use of Asterisk is sure to help hasten the acceptance VoIP technology in the contact centre industry. Currently Genesys is the only company worldwide focusing its entire resources on software meant to manage customer services through the phone, web and email. The customer-base Genesys’ 4,000 clients interact with each day is approximately about 100 million (individual) people. The impact of even just a percentage of the 4,000 Genesys clients shifting to IP technology or at least incorporating it with the existing technology they use will be an unbelievable boost to IP. At the moment though only a few, as mentioned earlier, have actively embraced the new platform. Although contact centres are enthusiastic about adopting this new standard being pushed by Genesys it will of course take some time to transition from their old systems. Transitioning to IP technology is expected by most contact centres to start in about 2 years.

Asterisk 1.6 Update

Asterisk 1.6 is starting to shape up with some features of Asterisk 1.2 and 1.4 already successfully merged and new dialplan functions already in place. Listed below is a summary of latest update in the functionality CHANGES file of Asterisk.

AMI – The manager (TCP/TLS/HTTP)
Added functionalities include: TLS support for the manager interface and HTTP server, URI redirect option for the built-in HTTP server, GetConfigJSON (action that returns the contents of an Asterisk configuration file in JSON format), a “Bridge” action which allows you to bridge any two channels that are currently active on the system, and a “ListAllVoicemailUsers” action that allows you to get a list of all the voicemail users setup.

Dialplan functions
Added functionalities include: a DEVSTATE() dialplan function that allows retrieval of any device state in the dialplan, a new option to Dial() for telling IP phones not to count the call as “missed” when dial times out and cancels, LOCK(), TRYLOCK(), and UNLOCK().

CLI Changes
Added functionalities include a ‘core show channels count’ CLI command and the ability to set the core debug and verbose values on a per-file basis.

SIP changes

Added functionalities include: an improved NAT and STUN support, new way of matching incoming requests, “busy-level” for setting a level of calls where asterisk reports a device as busy, new realtime family called “sipregs” (used to store SIP registration data), more support for T.140 realtime text in SIP/RTP, new variables for call transfers, and a new header that is displayed for cancelled calls answered by another phone.

IAX2 changes
Added functionalities include: trunkmaxsize configuration option to chan_iax2, srvlookup option to iax.conf, and support for OSP.

DUNDi changes
Added functionalities include: the ability to specify arguments to the Dial application when using the DUNDi switch in the dialplan, ability to set weights for responses dynamically, dialplan functions (DUNDIQUERY and DUNDIRESULT) that will allow you to initiate a DUNDi query from the dialplan and find out how many results there are as well as access each one.

ENUM changes
Added functionalities are two new dialplan functions (ENUMQUERY and ENUMRESULT) that will allow you to initiate an ENUM lookup from the dialplan access the results without doing multiple DNS queries.

Voicemail Changes
Added functionalities include:  the ability to customize which sound files are used for some of the prompts within the Voicemail application, the ability for the “voicemail show users” CLI command, “tw” language support, support for storage of greetings, and the ability to customize forward, reverse, stop, and pause keys for message playback.

More of the latest updates on my next post. To view the detailed updates including modified and removed functionalities you can check out their changes file.

SIPNET Offers Free Calls to Russia and Calling Using X-Lite

SIPNET, a Russian SIP provider, now provides unlimited free calls to to Moscow and St. Petersburg. This is welcome news to people all over the world who have relatives, friends and businesses in the two cities. As of the moment though calls can only be made to certain areas with the following area codes: 495, 499, and 812. Despite the limited coverage the service offered will still affect many since the three area codes already cover a substantial part of Moscow and St Petersburg.

For those who want to use the service be warned though that you will not be able to do so unless you know how to read in Russian. If you don’t you’d better enlist the help of someone who does since there isn’t an English version of the site. Once you get over the language barrier sign up for an account to be able to make free calls. After signing up for your SIPNET account and verifying your account you can then start making calls using a SIP softphone.

A good SIP softphone you can use is X-Lite. Not only is X-Lite easy to use but it also free. You can download X-Lite from Counterpath’s website. X-Lite has versions for Windows, Mac OSX and Linux so that no matter what OS you use you can still call via SIPNET’s network. When using X-Lite to make a call make sure that you enter the correct information. X-Lite will ask you to fill up the following fields:

  • Username;
  • Password;
  • Authorisation Username; and
  • Domain

You will also see other fields which you can tweak but unless you know what you are doing it is best to leave it alone since the default settings is the safest bet. For the first two fields simply type in your SIPNET username and password. Retype your SIPNET username for the authorisation username. For the domain type in sipnet.ru. After this X-lite will connect you to SIPNET’s server. Once connected you can start dialling the number you wish to call. Just remember to include the area code. Since SIPNET offers unlimited free calls you can talk as long as you want and call as many number as you desire.

Digium and Vyatta Enters New Partnership

Here’s some news for all you Asterisk lovers out there. Asterisk’s parent company, Digium, just entered into a partnership with Vyatta, a company that specializes in open source routing, firewall and VPN solutions. It’s a collaboration that could have a big impact in the world of open source networking.

Digium and Vyatta have announced a partnership to collaborate on open-source voice and data networks. The two companies will work together to make it easier for customers to purchase, deploy, and maintain high-quality, integrated voice and data platforms.

The partnership is aimed at helping SMBs and large enterprises. SMB and enterprise customers are increasingly seeking telecom and data communications solutions that are more flexible, efficient, and tailored to their specific needs. Open source-based products are uniquely capable of rapid integration and feature flexibility, making them an ideal choice as “unified communications” move up on the IT and business priority list.

The partnership involves both technology and marketing initiatives, and includes efforts to improve VoIP quality of service and security features in both Digium and Vyatta products. The companies will also focus on making it easier for customers to install and configure a secure, integrated voice and data environment using Digium’s Asterisk and Vyatta’s open-source networking solutions that include routing, firewall, and VPN functionality.

Speaking to CXOtoday.com, Dave Roberts, vice president of strategy and marketing at Vyatta said, “Presently, various VoIP don’t interact well with traditional security devices. For instance, Session Initiation Protocol (SIP) doesn’t go through firewalls and Network Address Translation (NAT) devices. Traditionally, firewalls try to detect what a VoIP session is trying to do. In most cases they are detected, but in the case of SIP it is hard. Essentially, our collaboration would enable PBX to notify the firewall of the exact happenings.” Roberts also added, “Voice over IP is now a mainstream technology, and we are poised to do the same with open-source networking. By combining the efforts of Vyatta and Digium, the two technology leaders in our respective areas, and working together to expand our marketing reach, we can drive rapid adoption of our solutions.”

Digium also commented, “A partnership between Vyatta and Digium is a natural fit that will leverage our very complementary core competencies to enhance a common mission – to provide SMBs and enterprises with open-source alternatives to expensive and proprietary solutions,” said Bill Miller, vice president of marketing and business development.

Free UK Inbound Numbers From CallUK

Last time, I wrote about this free service that lets you assign a free US number (with Washington area code) to your Asterisk box via SIP. This time, here’s a service you can use to assign a UK number to your box: CallUK.

CallUK (at www.calluk.com/fwd). The concept is pretty much the same, except that in this case the number is British. That means your callers from the UK can call at the standard calling British Telecoms national rates (usually higher if from mobile phones).

This website will allow you to register a British telephone number that will call you on your FWD telephone number.

The British telephone number that you will be allocated can be called from all British telephones, both landline and cell. The billing rate for the caller will be the BT national call rate. No international call charges are incurred by the caller. Call charges may be higher from British cellphones, than from landlines. This is dependant on the cellphone company and the charges that they choose to set.
This process is FREE. There are NO setup charges, NO registration fees, and the moment you finish entering your details on this website the number will be live and ready for use.

Again, some good applications for this include offshore setups. For instance, you have an office in the US, but you accept calls from clients in the UK. It will be better if you give them a UK number to call. For one, it’s cheaper on their part. And it can also be good for the image, as it gives the impression that you actually do have an office in the UK.

This works only with freeworlddialup, though, and not with other SIP proxies. So you’ll have to sign up with FWD.

Signing up is pretty straightforward. On the signup page, just key in the FWD number of your Asterisk box, your name and location (country), and then your email address for verification (and for password purposes).

You will then be assigned a telephone number with the 870 area code. This means callers from outside the UK can call you by dialling +44-870-xxxxxxx (where the x’s represent your number), while callers from within the UK can dial 0870-xxxxxxx.

Unlike IPKall, CallUK doesn’t give a warning that the service should be used in order to keep the number alive. I’ve owned a number for almost a year now, and I’ve rarely used it, but it’s still active. So that probably means you don’t have to keep receiving calls to remain active. Of course, it goes without saying that this is only for use if you’re on the practical (i.e., cheap!) side. If you’re using it for mission-critical applications, then you’d better go for more reliable (probably more expensive) services.

Free US Inbound Numbers from IPKall

Free inbound DID (direct international dialling) numbers can be a very cheap way to assign incoming numbers to your Asterisk PBX. For instance, your company or office can be located offshore, but you can still assign a number from the US, UK or any other country where such services exist.

One example is IPKall, which will assign you a US-based number (usually a Washington area code). Anyone calling this number will be automatically redirected to your SIP account (such as freeworlddialup), which can then be handled by your Asterisk PBX.

The sign-up procedures are actually simple. From the IPKall homepage:

1. Register your SIP IP phone with a VoIP service like www.FreeWorldDialup.com or www.MutualPhone.com. Once you register your IP phone with their VoIP Network, you are able to contact all of the other registered members if they are on-line when you are. These services provide an external SIP contact address like 612@fwd.pulver.net . If you don’t have a Sip IP Telephone: Costs vary from $75 to $300. You can get an SIP IP Gateway such as the CISCO 182 for 2 lines for about $150, CISCO ATA-186, or similar gateway (prices may vary). www.VoipSupply.com You can also utilize your PC with MS Messenger by using a head set or using speakers, a microphone and a sound card.

2. After you receive your SIP address, register that number at IpKall, and you will be assigned a local number in Washington State. Give out your Washington state number to friends, family, business associates, and others around the world. Using this number, they can call you for the cost of a domestic call and you will receive the call through your IP telephone device anywhere in the world.

First thing you do is key in your details at the sign up page. You can choose among the following US area codes: 360, 206, 253 or 425.

You then have to enter the SIP phone number and SIP proxy of your Asterisk box. For instance, if you’re signed up to freeworlddialup and your SIP number is 89028, you key in that number on the textbox for SIP number, and “fwd.pulver.com” on the SIP proxy textbox.

You will then have to input your email address (for verification and contact purposes), and then choose a 4-digit numeric password. You can then opt for free voicemail, and if so, how many seconds before calls are automatically redirected to voicemail if you’re unreachable.

As this is a free service, IPKall gives a caveat that accounts unused for 30 days or more may be terminated. So if you think the number will be rarely used, it’s a good idea to keep the account active, such as by calling in every once in a while. Personally I do know of some offshore companies that use IPKall for inbound DID numbers from the US, terminating to their Asterisk box. It’s cheap and practical.

Sniffin’ the VOIP traffic

This time we will install a network protocol analyzer to watch the traffic on our LAN from initiating and connecting a SIP call.

The Wireshark open source project was formerly known as Ethereal. I used to work for a great company called Cybera as a programmer, and I was always fascinated by networking. I’d bug the network engineers for any information I could, and play around with Ethereal to try to understand what they were talking about.

If you’re working under windows, download the installer. For our Ubuntu or Debian friends, it’s available under the standard free apt archives.

There’s one little trick you need to be aware of during the install.

winpcap

Make sure you select WinPCAP as part of the installed goods.Complete the install and start the program. Minimize it for the time being.

Launch your VMWare server and the Trixbox instance, log in, and you’ll notice the IP address shown after you log in. Mine is 192.163.1.93.

Run over to another box on your LAN and make sure you can ping this address, as detailed in my last post.

If you don’t see ‘Logged In’ in the faux LCD window, most likely you’ll need to update the IP address that the phone needs for Asterisk.

Click the little Menu button juuuust to the left of the green phone button. Select System Settings->Sip Proxy->Default.

Menu

Make sure that the IP address for Domain/Realm, SIP Proxy, and Outbound proxy are all set to the IP address of the Asterisk Trixbox server you just started via VMWare.

Remeber, Nerd Vittles set us up with 500 and 501 as 2 extensions to use with these phones. Dial 501 from the 500 phone or vice versa. I launched mine just now and I can hear the kids, dog, and my wife doing fun stuff. Frankly at this point I have to sit back and marvel at the processes running to make this possible. It just blows my mind.
Now comes the hackin’ part. As the SIP call is in progress, flip back to Wireshark.

wiresharc-startup.PNG

From the main window, select Capture->Interfaces.

wriesharcints.PNG

I can see one of the listed network interfaces dealing with a lot of traffic. Choose that one and press the capture button.

wriesharkcaping.PNG

Let wireshark capture at least 5 or so seconds of traffic. So far, on mine, the vast majority of this VOIP traffic is of the UDP variety. Click Stop and wireshark will dump it all into its analysis window.

analyze.PNG

Every line that says OICQ Protocol represents one UDP (User Datagram Protocol) VOIP packet traversing the network. As a side note, it appears that Wireshark has made the assumption for us that these packets are really part of a chat protocol popular in China, which, of course, is not correct.

Right click on one, and select ‘Open in new window’. Go down to the bottom and look at the ‘data’ section of the packet. This data section represents the actual digitized voice of the VOIP call. It’s interesting to me that the protocol used is UDP, which is one of the two major types of IP packets, the other being TCP. UDP is a connectionless protocol, which means that the client generating the traffic simply puts the packet on the wire without regard to checking to see if the recipient actually received it. This also implies that the recipient has to collect the correct UDP packets and reorder them to form a meaningful conversation. I wonder what role the SIP ‘stack’ in asterisk plays in this function. I suppose we’ll find out here at Asteriskblog!

Well, I hope you’ve found that illuminating, and I’m sure we’ll be referring to this tool to diagnose our further work in Asterisk. Please contact me if you have any questions.

How SIP Works

Source

Have you ever wondered why long distance calls cost so much? In part the reason is because telephone lines cost so much. When driving, you might occasionally see a telephone crew maintaining a telephone line, but what you may have never considered is that there are literally thousands of individuals working around the clock to maintain our telephone lines.

The telephony system works via a cog and wheel setup. What this means is that every long distance call you make is routed along a telephone wire to a central station, where your voice is routed to another central station, which is finally carried to the person with whom you are trying to communicate. For the call to be maintained, the entire time you are speaking, a space along all the lines in between you and the person you are talking with must be completely devoted to you. Because millions of people are talking at the same time, the little space along the telephone lines becomes rather desired property. And like all things desired, the price is high. Before recent innovations, however, there were no alternatives, so everyone grudgingly paid the often costly long-distance telephone bill.

SIP, or Session Initiation Protocol, has turned the telephony world upside down. Specifically, SIP refers to a protocol that allows computers to talk to each other without going through a central station. Practically, what that means for you and me is that it is no longer necessary to pay for expensive telephone lines to complete our calls. SIP technology is a relatively new development in which calls are made on a peer-to-peer rather than cog and wheel network. What that means, is that you are now able to call people directly from your SIP enabled phone to theirs. This ends up being radically cheaper than the old way of calling.

The SIP system does not require a central computer and operators like the old telephony system did. Rather, your computer, or SIP enabled phone, does all the routing for you.

SIP has been around for a number of years, but only recently has it begun to go mainstream and take off in popularity. This quick increase in interest over SIP is due to companies like Mobalex, who were aware of the fact that over the generations we have come to expect certain tones, buttons, and protocols from our phones. So what they have done is to transpose those functions onto the SIP system. Rather than forcing users to communicate in a completely new way, what these companies have done is to provide a calling experience which from the user’s perspective is completely identical to traditional telephony.

SIP is typically offered in two formats, computer based and hardware based. Computer based SIP is a system that allows you to make calls using your computer as the router and communicating via a headset on your computer. The more practical and popular version, however, actually provides you with new SIP enabled telephone handsets or converts your existing phones to SIP. By eliminating any technical requirements, modern SIP providers have made using the system as easy, or easier, than using a traditional phone. I say easier, because many companies are able to take advantage of the fact that the system is internet based to provide you with some very unique benefits. These include the ability to adjust your plan, change your calling options, and even pay your bill from the same website.

SIP technology is quite revolutionary in the world of communication. By creating a peer-to-peer network, SIP has been able to radically undercut the prices of traditional telephony, take advantage of the Internet, and still maintain the ease of traditional telephony. It is merely a matter of time before we are all using SIP for all of our telephoning needs.