Linked by David Adams on Mon 21st Mar 2011 20:14 UTC, submitted by Anonymous
GNU, GPL, Open Source 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.
Thread beginning with comment 467176
To read all comments associated with this story, please click here.
SIP standard
by Alfman on Mon 21st Mar 2011 21:54 UTC
Member since:

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.

Reply Score: 5

RE: SIP standard
by Bringbackanonposting on Mon 21st Mar 2011 22:37 in reply to "SIP standard"
Bringbackanonposting Member since:

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.

Reply Parent Score: 2

RE[2]: SIP standard
by johjeff on Tue 22nd Mar 2011 15:51 in reply to "RE: SIP standard"
johjeff Member since:

Maybe I read you wrong, but aren't you describing Google Voice? Or VoxOx?

Reply Parent Score: 1

RE: SIP standard
by Timmmm on Mon 21st Mar 2011 23:09 in reply to "SIP standard"
Timmmm Member since:

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.

Reply Parent Score: 2

RE: SIP standard
by Soulbender on Tue 22nd Mar 2011 01:43 in reply to "SIP standard"
Soulbender Member since:

What, you think SIP is bad? It's a dream compared to the horrors of H.323.

Many home netgear routers have a SIP ALG bug which causes corruption and breaks SIP calls even when the port forwarding is correct.

So the problem is with shitty netgear equipment, not with SIP.

Reply Parent Score: 2

RE[2]: SIP standard
by Alfman on Tue 22nd Mar 2011 03:25 in reply to "RE: SIP standard"
Alfman Member since:

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.

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

Reply Parent Score: 6

RE: SIP standard
by spiderman on Tue 22nd Mar 2011 15:55 in reply to "SIP standard"
spiderman Member since:

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

Reply Parent Score: 3