Even though I prefer to use instant messaging and SMS, sometimes it’s easier to make a phone call. Especially my parents and grand parents prefer calls over IM (let’s say that SMS is a form of IM). So how do you call them? There are several ways. Some of them are obviously wrong like Skype. We all do hate Skype, right? Closed source binary doing who knows what, using proprietary closed obscured crypted protocol preventing you from using alternative clients and restrictive long license agreement. And of course long history of messy behavior on the network and being nightmare for network administrators. Luckily there is a great alternative – SIP. Well specified, standardized protocol, many different clients to choose from and well defined behavior. Your network administrator might even consider setting up QoS in your favor. So the SIP is the way to go, right? Even Google thinks so and one of the big additions to Android 2.3 was SIP.
There is still one little issue. Most of the SIP clients (including the Android one) requires you to register on some server. So there is still some central server you depend on? Ok, you can set it up on your own server, but still… Advantage of these servers is that they can provide you an easy gateway to the land/cell lines. So you can call via SIP to people that have dumb cell phone if server you are on supports it and you can pay for it somehow. I’m using it myself if I have to do some non-IP phone calls. But back to the VoIP and the most free use case. Let’s say that I want to make calls and I don’t want to depend on anybody. That’s where I started few years back. Luckily, with SIP, you don’t have to have some server between you and your friend. You can call each other IPs directly. Wait, but what about people that don’t have public IP? Really? IPv6 is around since 1995. That is 16 years? Common people, welcome to the world of yesterday! If your ISP is one of those many that still don’t provide it, get yourself a tunnel! There is plenty of options. You can use HE, SixXS or Virtio.cz to name just a few from many. It’s easy to get public IPv6 Everybody should have one or /64. And if you’ve got IPv6, you can use SIP and call your friends directly on their IPv6. Of course, it’s nice if they have some DNS, so you don’t have to remember their IP, but even if they don’t, you can always write it down to your phone application.
Now how to make a calls? I’m using LinPhone to do so. It works like a charm and it has clients even for less fortunate people stuck with MS Windows or MacOS. How to set it up? Easy, just start it, make sure, that you had IPv6 enabled in settings and no NAT set. It detects your IP and you can start calling people right away and they can call you. Just make sure, that you have specified ports opened on your firewall. You can call anybody directly using
sip:user@[2001:db8::2]. And you cut out the middle man. It’s not hard to setup. No need to register anywhere and let you personal details all around the Internet. And you can discuss whatever you want. So please, whenever you run into somebody who thinks that VoIP = Skype, explain them that there are better, easy and free options!