The GNU Project has announced a new project called GNU Free Call, an open source Skype alternative that will offer anonymous VoIP and will use the GNU SIP Witch server as the back end. GNU SIP Witch requires a minimum of system resources so it can be used on cell phones too so it seems the goal is to provide a cross-platform application, the immediate target most probably being Android.
The Gnu Project thinks up pretty mediocre names
At least it’s not a recursive acronym.
It’s times like this I wish I could +1 multiple times.
Freecall isn’t bad. Does what it says on the tin, and doesn’t follow any of the tired gimmicky naming schemes (FIF Isn’t Foo, KFoo, gfoo, etc).
because “Skype” is such a great name….
I thought it was a good name.
Could be worse a lot worse.
I’ll just finish up this image in The Gimp and then talk to you about it in Cripple Call.
Oh and both names are acronyms so there is no reason to get offended.
The Gnu Project thinks up pretty mediocre names
I actually prefer names like this — i.e. names that give you a fairly clear idea of what the software does, rather than names like phonon or unity that don’t tell you anything. What’s wrong with “Free Call”? Would you prefer that it was called LazerSpeek?
Edited 2011-03-22 20:41 UTC
I like “LazerSpeek”.
Depending on how you pronounce “gnu”, it could be offensive to people living in Newfoundland, Canada.
“What’s this here ‘newfie call’ all about? Is that like two cans on a piece of string?”
I am a strong supporter of open standards and interoperability, and when it comes to internet telephony, that points to SIP/RTP.
However it is one of the worst thought out protocols I’ve ever had to deal with on account of assuming that both ends can open up arbitrary public facing ports. This is terribly difficult to accomplish behind NAT routers – particularly those which I don’t own/control.
To anyone who’s having trouble with SIP port forwarding on netgear routers:
Many home netgear routers have a SIP ALG bug which causes corruption and breaks SIP calls even when the port forwarding is correct. (It took me hours to discover this by looking at wireshark traces).
Once I realized what was happening it was easy to recognize, the router was corrupting all values which appeared to match an internal/external IP address and mangled the values. The problem is that the 4 byte substitution was applied on raw packets without regard to the SIP fields – whoever programmed this was an idiot.
Anyways, many sip clients use “USERNAME@EXTERNALIP” to identify themselves. When the packets are acked, netgear routers substitute USERNAME@INTERNALIP, which is wrong so the client drops the ACKs.
Since I was debugging the source code (initially thinking it was a client issue), I modified the client to ignore the mangled IPs, which “solved” the problem. However, this can be fixed by using domain names instead of IP addresses.
I reported this bug to netgear, and they eventually were able to confirm the bug. They initially denied the home routers had any SIP ALG – their business products do, however it turns out the home routers have the SIG ALG enabled in an invalid state and the engineers merely disabled the user interface to control it.
That was two years ago and it hasn’t been fixed. Anyone working with SIP should keep this in mind.
That’s good to know. I agree SIP (and H.323) are just not good enough in the 21st century. It was and still is not straight forward to implement at home or at work. The fact that VoIP providers still don’t route calls between themselves is amazing. The idea of having a universal phone number or alias that anyone can call from any provider is way off.
Maybe I read you wrong, but aren’t you describing Google Voice? Or VoxOx?
I agree. And SIP will never take off because it is simply too complicated. First you have to choose a SIP provider from the swathes of near-identical companies, and their many fronts.
Second it’s nearly impossible to get your caller ID to display your existing real number. At least with the Android SIP clients I’ve tried, it simply doesn’t work.
Third, as you mentioned there’s the whole NAT issue, I think this isn’t too bad due to STUN servers being standard. But it isn’t ideal.
Fourth, this may be just android, but I have no idea how to actually call a number (or address) using the built in SIP client! As far as I can tell there is no easy way to do it — the dialer certainly can’t. The only way is to set it to ask you for *every call* whether or not to use SIP. Which gets annoying fast.
Finally — and this is the real reason I don’t use it — the latency is simply too high. I never got lower than about a second round-trip, which is pretty terrible compared to GSM.
What, you think SIP is bad? It’s a dream compared to the horrors of H.323.
So the problem is with shitty netgear equipment, not with SIP.
Timmmm,
You really can’t really blame the issues with particular clients on the SIP protocol/standard.
The X-Lite client has been one of the most reliable SIP clients I’ve used. Also, the “sipura” devices (bought out by linksys, then cisco) are also very good. I’ve never had to do anything special to configure caller ID on these (assuming the upstream provider supports it).
About the latency being too high, are you saying your SIP calls are worse than Skype or something else over internet? That ought to depend on the quality and distance of service providers. I’m pretty happy with vitelity in the US.
There’s no question SIP is problematic behind NAT.
Soulbender,
“What, you think SIP is bad? It’s a dream compared to the horrors of H.323…So the problem is with shitty netgear equipment, not with SIP. ”
Well, it’s true netgear screwed up. However, the fact remains that a SIP “Application Level Gateway” is required in the first place because SIP isn’t designed to work with NAT routers. Like the old FTP protocol, SIP requires multiple ports to be opened in multiple directions and the values of those ports are communicated dynamically over packets on other ports. This design is fundamentally incompatible with NAT/port forwarding.
As Timmmm said, we have hacks like STUN or uPNP to work around some problems, which might work with certain router configurations, but in practice it can be hit and miss.
We can blame the routers if we want, but protocols which scatter packets all over the place need to take some of the blame too.
Putting a SIP device behind an actual firewall without ALG support is virtually impossible. Just opening up all the in/outbound ports the client might choose is not a good solution. This is why linux comes with nf_conntrack_sip and nf_nat_sip, in other words, an ALG.
As I said earlier, I much prefer to use standard SIP devices over something proprietary like Skype, but SIP can be unnecessarily painful at times.
Other protocols that direct packets over a single port don’t have these problems. AIX is the closest thing I know of to a SIP replacement aiming to fix this.
The problem is not SIP, it’s IPv4. IPv4 is obsolete since more than 20 years now. We just can’t seem to get rid of it. We will have to deal with NAT and hacks around NAT until the end of time or until the Internet implodes.
Edited 2011-03-22 16:02 UTC
I’m not versed in the technical details of VoIP, SIP, etc. but, as a user, I can only say “it was about time!”, knowing the state in which Skype for BSD is…
If you’re around Paris, you should try the release of FreeBSD which is installed on the computers of the University Paris Diderot – Paris 7.
Suddenly, anything BSD which you may have on your computer will look modern and shiny.
What I’m talking about is a broken implementation of top (does nothing, freezes), a release of Firefox 3.0 (!) that crashes when opening GMail, and versions of evince and kpdf (!), that don’t support PDF forms.
Good luck getting all your contacts in Skype to use GNU Free Call.
Exactly. It is like everybody using MS Office and your OpenOffice exchange is broken.
Everybody uses skype because it works, it passes through routers and works even inside big firewalled company networks.
What would be needed is a skype-compatible implementation.
And, to complete the rant: The latest skype versions are really terrible, they have an indecent UI that looks like iPhone stuff brought to your workstation.
spidermain,
“The problem is not SIP, it’s IPv4. IPv4 is obsolete since more than 20 years now. We just can’t seem to get rid of it. We will have to deal with NAT and hacks around NAT until the end of time or until the Internet implodes.”
Yes and No.
NAT is useful even if address space wasn’t a problem. For example, I routinely forward SSH and SMTP connections using simple iptables forwarding. (Side Note: it is extremely disappointing that Linux IPv6 stack hasn’t even implemented this port forward functionality).
Even if NAT is out of the picture, you ignored my point about SIP being impossible to firewall without custom code (an ALG). Presumably firewalls will have greater importance once (in the distant future) NAT gateways are gone.
There is no technical reason that SIP requires more than one (static) port, it is a design decision that will make SIP forever difficult to use.
Take note how relatively well P2P apps work behind NAT considering the limitations.
greygandalf,
“Everybody uses skype because it works, it passes through routers and works even inside big firewalled company networks.”
Yep, AIX has that property too, but it hasn’t seen much uptake, obviously due to the fact that it’s incompatible.
“What would be needed is a skype-compatible implementation.”
Skype has a tons of DRM in the protocol/client to make this impossible (when it’s broken, they change it). They don’t want to become a standard. This was a large reason most skype to telephone line converters need a computer, whereas SIP to telephone line converts are a standalone device.
“And, to complete the rant: The latest skype versions are really terrible, they have an indecent UI that looks like iPhone stuff brought to your workstation.”
You’re not the only one who thinks that: it sucks.
don’t agree. Even if you have a dedicated ssh server that has the same address as your router if that makes sense in your setup, voip clients should still have their own address as this is how they can be reached. NAT is pretty useless with ipv6. Just give one address per application if you need to.
agreed, although this is not that much of a problem with ipv6 since your voip can have its own ip.
“don’t agree. Even if you have a dedicated ssh server that has the same address as your router if that makes sense in your setup, voip clients should still have their own address as this is how they can be reached. NAT is pretty useless with ipv6. Just give one address per application if you need to.”
Firstly, you still haven’t addressed the firewall/ALG issue with SIP I brought up twice, which still exists without NAT.
Secondly, whether you choose to acknowledge it or not, port forwarding does have valid uses outside the scope of mitigating limited number IP addresses under IPv4.
One example is load distribution, the gateway router should have the ability to redirect inbound packets to multiple servers. This is an example of something NAT is good at.
Another example is the ability to use one domain name for multiple services. Domain names (typically) resolve to one IP address, without port forwarding/NAT, you’re essentially forcing all daemons for one domain name to reside on a single server. This is a stupid limitation. For example, I may want ‘domain.com’ to have HTTP, FTP, SIP, all residing on separate servers. NAT/port forwarding on the gateway is far simpler, more efficient, and more scalable than forcing all protocols to be handled on one server.
Another example is a company moving servers to a new IP/location may want to port forward the requests on the old IP to the new servers’ IP.
A similar example is when a server has maintenance downtime, the admin can forward requests at the gateway to an alternate server until the original server is ready. The port forwarding switch is instantaneous.
I definitely understand the motivation for IPv6 and eliminating the dependence on NAT. However, it seems you’ve overstated your case that it is never useful.
I don’t have to address all your points. I agree the SIP protocol could be better engineered but I don’t get what is the need for a firewall when your voip application has its own IP address.
NAT has no use for voip.
load distribution does not make sense for a voip application.
domain names don’t apply to voip.
That is why there are registrars. Just tell your registrar what is your new IP address and you are done.
And the registrar request to change your IP is also instantaneous.
No, I stand by my claim. NAT is useless for VoIP. You are digressing because you want to prove that SIP is a bad protocol. I don’t disagree with you but IPv6 and VoIP is a perfect match. The QoS of IPv6 is a nice feature. The single biggest problem with VoIP is IPv4. IPv4 is a nightmare. Give me IPv6 and I can cope with the SIP protocol quite easily.
“I agree the SIP protocol could be better engineered but I don’t get what is the need for a firewall when your voip application has its own IP address.”
The need for firewalls is really a separate debate.
“NAT has no use for voip.”
You could say “NAT has no use for HTTP” or “NAT has no use for SSH”, since NAT has nothing to do with these protocols either. Somehow I allowed myself to veer off from talking about SIP to talking about NAT, but these are two separate topics. My original point was that protocols which use a single port are much more manageable.
“load distribution does not make sense for a voip application.”
Why not? Shouldn’t that decision be left to the sysadmins? Who are we to set policy?
“domain names don’t apply to voip.”
You’ve never used xlite or another voip/im client to dial “mydomain.com” or “###@mydomain.com”? Not only does this work, it’s highly practical.
If ever it became popular, I’m sure most businesses would like to use their domain name for VOIP calls as well as web hosting. Why should we require that a domain name can only be used for services running on a single server? There is no reason to impose limits like this.
“That is why there are registrars. Just tell your registrar what is your new IP address and you are done.”
Yes of course, but you could port forward the old IP to eliminate the DNS prorogation downtime. It’s one solution we have today you think we shouldn’t have, but why not?
I understand your agenda against IPv4, but your beef with port forwarding is exagerated. Regarding the load balancers mentioned above? Please explain why these shouldn’t be permitted on IPv6?
I already know ipv4 is a nightmare, but port forwarding is useful even in corporate environments where IPv4 was never a limitation….you are simply overstating your case.
I mean that there is no need to filter the ports. If the application has its own ip address, all traffic is for this application anyway. A firewall is still useful if it can filter based on content.
HTTP and SSH are client/server protocols. NAT makes sense in the cases you cited. It’s not relevant to SIP because the peer wants to contact another peer. Each peer is identified by its ip. Hiding that ip makes no sense. There is only one client with that ip.
The sysadmin already has a lot of policies and decisions to take. NAT’ing VoIP over IPv6 is still an option but I don’t see why the sysadmin should consider it when it does not make sense in this context and adds useless complexity.
SIP addresses are something like sip:[email protected] but the domain does not matter. Each user has his own IP registered. The registrar has a fixed address. NAT’ing on the registrar’s side may make sense but not on the client.
SIP is designed so the client does not have a fixed IP address. When the client authenticates, he registers his IP address to the registrar. If you don’t use that feature, why use SIP at all?
Load balancing does not make sense for a SIP client. ipv6 was pretty much designed with VoIP in mind. ipv6 makes all this trouble just vanish. No more STUN server, no more ICE, no more hacks, nothing. Everything is simple. You have an IP address, you use this IP address on the network to contact someone with his IP address. Skype becomes a simple server with a database with names, passwords and ip addresses. It does not longer have to route traffic. The Skype server can run on a 1Ghz PC with 256Mb of RAM and a small hard drive, 100Gb should be more than enough for the system and the database of all current users, all that connected to the internet with ADSL. Anybody could apt-get install a package and become Skype.
Anyway, all of this is just a dream. ipv6 will never take off, ever. We are going to have to deal with ipv4 until the end of time. The internet will become more and more of a mess. The price will go up and up but we will still stick with ipv4 until the end of time. This is the sad reality.
Edited 2011-03-23 10:06 UTC
“I mean that there is no need to filter the ports. If the application has its own ip address, all traffic is for this application anyway. A firewall is still useful if it can filter based on content.”
If that’s your opinion of hardware firewalls, then so be it. They are valuable to some people.
“HTTP and SSH are client/server protocols. NAT makes sense in the cases you cited. It’s not relevant to SIP because the peer wants to contact another peer.”
This is a ridiculous argument, of course there are SIP servers, asterisk being among the most popular…I shouldn’t even have to say this.
“NAT’ing VoIP over IPv6 is still an option but I don’t see why the sysadmin should consider it when it does not make sense in this context and adds useless complexity.”
Of course they shouldn’t do port forwarding unless it’s helpful. In principal it should be their choice and not yours, I won’t budge from this principal, if you disagree with it, then we’ll just have to accept that we have different idealogical viewpoints.
“SIP addresses are something like sip:[email protected] but the domain does not matter.”
It does matter, dialing peers via domain name is practical and allows for a decentralized “directory”. It seems desperate to deny this practical application of SIP, which works today, on account that you feel SIP should not be usable via DNS.
Of course this all works fine under IPv6, a problem only arises when we deny the use of port forwarding over idealogical reasons. It sounds like you are willing to extend your argument so far as to deny the ability to use one domain name to host multiple services due to the fact that they use port forwarding. I disagree with that, but to each our own opinion.
“The registrar has a fixed address. NAT’ing on the registrar’s side may make sense but not on the client.”
Well, my examples were about port forward at the service provider where they have sysadmins. There are times when it does make sense.
“Load balancing does not make sense for a SIP client.”
It’s entirely plausible to have a scenario where a PBX is overloaded and load balancing helps, you’re speaking in absolute terms without allow for the possibility of exceptions.
“ipv6 makes all this trouble just vanish. No more STUN server, no more ICE, no more hacks, nothing. Everything is simple. You have an IP address, you use this IP address on the network to contact someone with his IP address.”
You’re speaking as though I disagree with that, but I don’t. As stated earlier, I know the benefits of IPv6.
“Anyway, all of this is just a dream. ipv6 will never take off, ever…”
The trouble is that IPv4 and IPv6 are incompatible, people on one network cannot reach the other without a proxy. Since everyone today is on IPv4, nobody wants IPv6. I totally agree that it sucks.
spiderman,
Since you softened up on the original claim that NAT has no uses whatsoever, then I guess I don’t really object to your points.
Ideally we should eliminate NAT for residential users to allow full end to end connectivity.
I’m still disappointed that stock Linux IPv6 cannot do any NAT whatsoever, since it eliminates Linux as a candidate for roles where port forwarding is needed. The upgrade from IPv4 to IPv6 shouldn’t require sysadmins to give up functionality.
Once more, to put it concisely:
“NAT” as a mechanism for automatically masquerading private IPs behind a public IP is a hack which IPv6 solves (assuming of course that ISPs agree to give customers sufficient IPs for all their devices). Using NAT for masquerading kills end to end connectivity.
“NAT” as a mechanism for explicitly forwarding ports to distribute services across multiple servers solves a completely different set of problems which have nothing to do with private IP masquerading. Port forwarding is not contradictory to the connectivity goals of IPv6.
One is evil, the other is not.
*AND*, Skype works through an HTTP proxy, something that is both a blessing and a curse in a school setting.
Blessing because it allows for video-based tutoring through our web proxies.
Curse because it allows for video-based chat through our web proxies.
Where is Skype for DOS?
I love Linux. I love BSD. I love FOSS. I love everything open source … but I get sick of these “developers” that promise the sky and deliver mud. How is this any different than all the other projects that seek to accomplish the same thing? None of them approach Skype in UI, performance, or quality. That doesn’t say much for the Open Source Projects that want to duplicate Skype since Skype has some problems of it’s own.
Isn’t Ekiga supposed to do this? What about Linphone, qutecom, kphone, ihu, twinkle, etc.? What about the now swallowed by Google Gizmo5? Instead of bragging about something (that has nothing more than an announcement behind it) being a Skype replacement, maybe they should lower their sites and make an Ekiga replacement. They’d have a better chance of succeeding and not being laughed at when their beta comes out – which is probably as far as this thing will get.
Here’s hoping they make a liar out of me! Cheers!
PS – do you think it will run on Hurd?
Jeff
Is this another one of those great GNU programs that never get finish and just wander around the Internet never coming to consumers? Does that remind you of some big GNU project? Does the Hurd comes to mind?
You think people would move from Linux to the Hurd even if it was finish today? I don’t think so. GNU people are not relevant anymore, they just have enough of a voice to be contrarians!
I suppose you have never heard about gcc, glibc, bash, coreutils, autotools, emacs, gettext, gzip, grub, grep, cpio, readline or tar? Because those are a subset of the GNU softwares that are highly relevant to several tens of millions of people.
Edited 2011-03-22 18:47 UTC
Parent’s point still stands. The GNU greatest hits came out years ago.
Gnash has been developed at a glacial pace and HURD still doesn’t have a stable version.
Even if they developed a Skype alternative it would probably be ignored just like ogg. Skype is free and over 99% of the population does not care about having the source available.
Speaking of delayed open source projects, where the hell is Samba 4? All this focus on the desktop has left some important server projects out of the spotlight. FSF is just going to further divide the limited amount of available GPL developers with another project that will be ignored by the public. Meanwhile MS continues to roll in record profits from WinServer since Linux still does not offer enough advantages when it comes to integrating Windows clients.
So did Microsoft’s, Windows and Office aren’t new products.
FSF themselves have stated that Hurd was all but abandoned once Linux gained traction, and Gnash is a clean room implementation done by extremely few developers, which will have even less priority now that the web seems to be gravitating towards HTML5.
So by your logic we should judge Microsoft by looking at Microsoft Bob and Zune, or maybe the Windows XP Tablet PC Edition, or the Microsoft Smart Watch, or the -insert failed Microsoft product here-
Meanwhile the FSF software flagships are as strong as ever, GCC and binutils/coreutils enjoys rapid development, and it’s still the de facto toolchain in the open source world. The other flagship of FSF, GPL, is as popular as ever.
So if FSF is relying on old greatest hits, so is Microsoft.
http://gcc.gnu.org/wiki/History
gcc development started in 1984. The first beta release was in 1987. I believe it became popular in 1999 or so, 15 years after the development started.
In 1984, you would have said that GNU and gcc was irrelevant, that UNIX was king, etc.
For today, Skype is king (in the US I mean) although Google Talk is rapidly taking over. Come here in 15 years and tell me if you remember what Skype was.
Edited 2011-03-23 12:56 UTC