Cross-Platform VoIP Software? 205
feilkin writes "With the release of Skype's Linux client, I'm wondering about alternatives. Namely, cross-platform solutions for voice communication. I've got friends who are using Windows, Linux and OSX, and I'm hoping that there is a way to communicate with all of them. I myself am using Linux, and I haven't been able to find any solutions that seem fitting to my situation completely. Does anyone have a solution that'll be useful on all three platforms, or solutions that may be coming in the near future?"
SIP (Score:5, Informative)
Re:SIP (Score:5, Informative)
A number of years ago, the telecom providers got together and tried to do VoIP. They came up with H.323, which was a terrible mess and near impossible to do anything with. To top that off, you have to pay for access to the spec (I'm only pretty sure about this, please correct me if I'm wrong) So VoIP didn't go anywhere for a while.
Then the IP folks (the people who designed the internet protocols like IP, TCP, UDP, etc) came together and designed SIP. The entire protocol is described in a mere 150 page RFC [faqs.org]. Anyone who's implemented a standardized protocol from a spec knows what a godsend a short spec is.
In short, SIP is a protocol designed by the Internet folks for the Internet. It's layered on RTP [faqs.org], so the audio quality degrades gracefully with the link quality. You can operate it point-to-point by simply running two clients on two machines and pointing one at the other's IP address. Or, if you want an easy to remember URL, you can sign up for a free account at places like fwd.pulver.net. You'll then be accessible as sip:username@fwd.pulver.net.
Google for "SIP softphones" and you'll find quit a few clients. The big ones on linux are kphone [wirlab.net] and linphone [linphone.org]. Shtoom [divmod.org] is making some headway also, and runs on linux, windows, and os x.
Skype decided they don't like either H.323 or SIP, went off and designed their own proprietary protocol, and is keeping it secret from everyone else.
Re:SIP (Score:4, Informative)
The actual phone conversations run over RTP whether you're using SIP or H.323. It's how the call is set up that differs.
SIP uses set-up mechanism that works over HTTP, arranging the caller, receiver and codecs etc. Because of this it is simpler than H.323, which uses loads of other protocols that run over a mix of UDP and TCP, such as H.225 (call setup/RAS), H.245 (call management) and a few more I should probably know but have forgotten. H.323 needs a separate "gatekeeper" to control connections whereas a SIP client can use the DNS to find it's destination, addresses in SIP look similar to email addresses but may include a port number aswell.
Re:SIP (Score:3, Informative)
Bzzt!
SIP (aka RFC3261 [ietf.org] et al.) uses SIP to setup calls. The syntax of SIP is clearly inspired by HTTP, but HTTP it ain't.
Location of SIP services is handled through DNS operations as described in RFC 3263 -- Locating SIP Servers [ietf.org].
Why, oh why we don't locate HTTP services using SRV or NAPTR records is really a sad question -- virtual hosting would work so much better.
Most everything else you mention is fairly accurate. There are excellent SIP resour
Re:SIP (Score:2)
SIP seems very nice and simple, I'm sure it wouldn't be too hard to add a "nat: <natport>" extension to it that could make the client send appropriate packets out to convince the NAT router that packets should be allowed back in on that particular port.
The entire NAT problem is overrated imo, its not like we don't have the processing power to deal with a little address & port re
NAT is problem for residential gateways (Score:4, Informative)
Sure, SIP can use TCP as a transport, so a client can punch a signaling connection out through a residential NAT/gateway, but a SIP client still needs to advertise an address and port to receive RTP on. He can't very well advertise his NATed address if he's connecting to a client outside of his NAT.
STUN - RFC 3489 - (http://www.ietf.org/rfc/rfc3489.txt) partially addressed this problem, by allowing an application to discover its public address and port mappings.
TURN (http://www1.ietf.org/internet-drafts/draft-rosen
ICE (http://www.ietf.org/internet-drafts/draft-ietf-m
And it's backwards compatible.
It should also be noted that ICE is independent of SIP, and could also be applied by H.323 clients, or RTSP streaming client/server for that matter.
RFC 2543 is obsolete, see RFC 3261 (Score:5, Informative)
Re:SIP (Score:3, Interesting)
Re:SIP (Score:1, Interesting)
* from 0.7.x onwards can force the address to be correct, and works fine for me behind a 1:1 NAT.
Re:SIP (Score:3, Informative)
not SIP (Score:2)
SIP has specific support for NAT. H323 does not.
Better yet (Score:3, Informative)
It is basically a phone with an ethernet port and SIP built in. Not bad.
Re:Better yet (Score:3, Informative)
They're pretty horrible but a good intro to VOIP if you don't want to spend much. You could get an SPA2000 for a little more and be able to plug your DECT phone directly into it - wireless VOIP on a budget.
err... (Score:3, Insightful)
Re:err...Yes Skype (Score:5, Informative)
Re:err...Yes Skype (Score:1)
The problem with most voip is with network induced latencies. So a local-local test is less interesting as say a system - nearby network test.
Re:err...Yes Skype (Score:2)
The lag is minimal even for long-distance connections. I live near the west coast of Canada, and my girlfriend lives in north Florida. (oh, how I love the Internet 9_9) Judging by the rhythm and flow of our conversation, I would guess that the worst it got on a regular basis was a lag of less than one xecond. (of course, there'd be some severe peak latencies now and then, lasting three seconds or so.)
I can understand how they reduced bandwidth-induced lag... their codec seems to be very well tuned for spee
Re:err...Yes Skype (Score:3, Interesting)
I'll take a stab at how.. This is just a guess but instead of doing a transmit and recive, they might open a stream like one from a streaming video server but smaller to only use enough bandwidth neccesary for low-medium quality voice. durring the non talking time they could just introduce sub audible noise to keep the conection alive and recive the same from the other end. with a stream like
Re:err...Yes Skype (Score:2, Interesting)
The VoIP codecs I've commonly seen use about 6kbps. That's nothing by today's standards.. acceptable quality for voice is far, far below radio.
You can make voip calls quite easily over a 28.8kbps modem dialup connection.
Re:err...Yes Skype (Score:2)
It is amazing what they are/can be doing with it.
Re:err...Yes Skype (Score:2)
Re:err... (Score:3, Informative)
Re:err... (Score:2, Informative)
pulver's FWD is fantastic (Score:5, Informative)
Re:pulver's FWD is fantastic (Score:4, Informative)
FWD (Score:3, Informative)
I've got friends on it using windows and linux (I personally use both, and have clients installed on both). I'm pretty sure they've got osX clients aswell.
Re:FWD (Score:3, Informative)
SIP solutions (Score:5, Informative)
OpenH323 (Score:5, Informative)
Re:OpenH323 (Score:3, Interesting)
That's the bad solution. You need to open loads of ports and it is still tricky to get to work.
I suggest using AIM/iChat on Windows/OS X since audio and video is the best in the business. Also works through firewalls without need to open ports. This solution isn't available for Linux afaik, but it might be in the future. The protocols are open.
C
Re:OpenH323 (Score:2)
Bayonne (Score:3, Interesting)
You might have to roll your own, but the framework is certainly there.
Non-OSS sip for windows and macosx (Score:2, Informative)
SpeakFreely used to be an option... (Score:5, Informative)
At this point, all the tools needed to create an Open Source cross-platform VoIP system are easily available. The Speex [xiph.org] codec is specifically designed for low-bit-rate voice, is BSD licensed, and is implemented in both C and Java. It would not be hard to take this codec, throw in some good sound libraries and some crypto libraries (OpenSSL perhaps) and roll up a VoIP client. In fact there is a Speex implementation for Java, so you could write one in Java, and yes, Java really is "write once run anywhere" these days. Someday when I have more time I might do this. As a Java applet it would be great because there would be nothing to install.
Re:SpeakFreely used to be an option... (Score:5, Informative)
Re:SpeakFreely used to be an option... (Score:1, Funny)
Re:SpeakFreely used to be an option... (Score:2)
I know how to do it (Score:3, Funny)
Son, I have a solution! Pick up the phone and call your friends!
Re:I know how to do it (Score:2)
Or, just go with a standard-ish protocol that has clients on each platform, like SIP or H.323, and don't worry about getting the same program for all...
Re:I know how to do it (Score:2)
The best solution if you really want VoIP to be pratical is a hardware solution. Anything from d-links cheap 4 line VoIP gateway to the latest wifi VoIP phones. I'm not sure of any model numbers or even which brand name is best right now. We have alot of VoIP hardware in our new Telecom lab at Collage. I haven't had a chance to play with much of it yet.
simple solution ... (Score:1, Funny)
Re:simple solution ... (Score:1)
SIP (Score:4, Informative)
Open Standards (Score:5, Informative)
SIP and h.323. There are lots of clients out there for both of them.
There should be a checkbox next to the "ask slashdot" submission box that says "did you use Google first?"
Re:Open Standards (Score:2)
There are THREE main standards:
SIP, H.323, and MGCP [faqs.org]
-n
Unreal Tournament 2004! (Score:5, Funny)
Re:Unreal Tournament 2004! (Score:2)
Sir, just 2 more frags and we'll close this contract.
Re:Unreal Tournament 2004! (Score:2)
http://www.cs.unm.edu/~dlchao/flake/doom/
is one for system administration.. i'm not finding the one about network admin right now.
Vonage (Score:3, Insightful)
No fscking around with codecs.
No gcc bullshit.
No patching, only to have an OS upgrade break your app.
Pay for it, be done with it, move on. What's your life worth? Time = money.
Re:Vonage (Score:2)
I second Vonage. Vonage is one of the big reasons why so many DSL providers won't unbundle their DSL service from their local phone service. I'd much rather give Vonage $30/month for a pretty incredible VoIP solution over my DSL than buy Bell's gimpy bundled voice line that I'm forced into.
Re:Vonage (Score:1)
Re:Vonage (Score:2)
The OS X client is either out now or imminent, too.
Re:Vonage (Score:2, Funny)
Usually, codecs doesn't involve file system checking, I think you hard drive is fucked, you should consider reinstalling on a new one.
Re:Vonage (Score:2)
Re:Vonage (Score:4, Insightful)
No problems here... (Score:3, Interesting)
Cheaper still... (Score:2)
I'm using Vonage, and I love it. The sound quality is not pindrop-clear, but it's good enough for general, everyday phone use. I also like that Vonage emails me all of my voicemail messages, so I know immediately who called my home while I'm at work.
We need an open source Skype. (Score:2)
For 0 dollars per month, Skype is the way to go, if your friends have computers.
We need an open source Skype. Sooner or later Skype will start charging. For what? Just some programming, that could be done better if it were Open Source.
Skype works over the browser port, port 80. (Score:2)
Yes, that seems so. However, the other VoIP programs listed here are not equivalent solutions, so the need is great. For example, Skype works over port 80, all the other software I've seen requires opening ports in your firewall. Not good.
Maybe there could be a kind of streaming Ogg Vorbis? Maybe part of the work is already finished open source.
Re:Vonage (Score:2)
Re:Vonage (Score:2)
None the less, you are being presented with a choice in which the primary deciding factor is whether you'd rather give up 29.99/mo or give up your time and energy to get something else working and keep it working. If you are to make a rational decision on the matter, you must be capable of equating your time and energies to a monetary amount. Or you can just be an irrational dickhead idealogue.
Re:Vonage (Score:2)
I too have opted to just pay for somethign rather than spend hours playing with it and getting it setup right but i find the knowledge i end up lacking when somethign goes wrong is pricless. I'm not just saying this about a VoIP server either. This is true with about anythign i have done.Maybe the time and energies required are an investment in the future.. i don't know i gues
Re:Vonage (Score:2)
At 29.99/mo, you're paying vonage a salary of roughly $360 / year.
Assuming you (on average) spend an hour a month dicking around with your VoIP setup that you wouldn'thave ahd to if you have used vonage, then if you make less than $30/hr at your job it's worth your time, and if you make more than $30/hr, you should just buy vonage.
TeamSpeak (Score:4, Insightful)
Sure, its designed to be used with online games.
But really, its just IRC with voice. I talk to people in Australia with it all the time, for free. You can turn the bitrate down and even talk to people with dial-up. I usually just use gaim to tell someone "hey, join the teamspeak server, let's talk".
Also, this way I don't have to remember phone numbers.
Teamspeak & Ventrilo have Linux Servers & (Score:1)
My friends and I couldn't get Teamspeak to work, while ventrilo worked straight from install (on Win32 client & server or linux client).
To bad neither are Free Software/Open So
Ventrilo (Score:2, Informative)
Has Win32, Mac and Linux clients.
It is client/server, so you'll need a server, but you can get 8 users (I think) on the regular server. It is relatively bandwidth-friendly and awesome quality.
Probably a bit harder for computer illiterates to use but its very cool software.
Re:Ventrilo (Score:3, Informative)
Unfortunately, the don't have Mac or Linux clients. Or, at least they're not available. Both are listed as "In Development" on their download page.
No linux! (Score:2)
h323, sip (Score:2, Informative)
I don't know much about sip, but everyone tells me "stop using h323, use sip". Seems to be better, but never change a running system.
h323 is only for VoIP, not for calling real phones - unless you have an gateway to the "real" world.
There are many h323 programs available, like netmeeting (really hardcore connectivity problems through firewalls, better use...), openphone (openh323/windows), gnomemeeting(openh323/linux) and
Can't you use a regular old phone? (Score:2, Redundant)
If you want mobile, get a cell phone.
complete solution! (Score:4, Informative)
H323/SIP/GnomeMeeting/NetMeeting (Score:1)
NetMeeting and GnomeMeeting both support some subset of H323 that lets them talk. So you can do audio/video between plat
h.323 for all (Score:2, Informative)
Gnomemeeting for Linux [gnomemeeting.org]
OphoneX for OS X [sourceforge.net]
Netmeeting for Windows [microsoft.com]
Re:h.323 for all (Score:2)
Asterisk (Score:5, Informative)
This thing is a VoIP BEAST. It's an open source PBX which runs on Linux. This will solve your problems by connecting all of these incompatible VoIP clients, making them all seem like virtual telephones, each with their own extensions. (This is good, if you don't mind them using your bandwidth when they bounce off of your Asterisk server to communicate with each-other.)
"PBX" seems scary -- it's the same kind of system large businesses use to manage tons of phone lines, both inside their company and connecting to the outside world.
For the needs of people like you and I, don't think of it in terms of "a solution used by people with lots of phones" -- think of it in terms of the kinds of technology it uses and can connect with.
"Physical layer" stuff: with dedicated hardware it can talk to existing phones and existing phone lines. There's even a PCI card that can communicate with four T1 lines, for nearly 100 phone lines out to the telephone company. It can also do VoIP using standard interfaces like SIP, using its own unique (but open-source, not proprietary at all) interface called IAX, with existing programs like Netmeeting or MS Messenger, or with any number of Linux programs. (There's even an IAX client for my Zaurus PDA. That's not all that practical for receiving calls, but I have successfully placed phone calls with that client, over 802.11b.)
Logical stuff: each of these connections to the outside world is given a context, and you can do things with those contexts. A connection to your outside phone line will be used by unknown callers, so its context shouldn't have access to features that cost money. A connection to an inside phone is "trusted", so it should be given access to these features.
The system has something like a "dialplan", which is a rather flexible set of scripts you use to handle calls. There's a lot of room for creativity here -- you can make your system do anything you want with any call.
This is so flexible because you form your dialplan from a bunch of references to "applications", either built-in or external. Some are very simple: play this wav file, transfer to this extension, go to this voicemail box, etc; some are more complex, such as "shell out to this executable CGI-style and do whatever that executable tells you".
Asterisk also comes with a bunch of audio samples recorded by a "professional PBX voice", and many of them are saying some rather funny things, only useful for a home user. "All representatives of the household are currently assisting other telemarketers. Please hold, and you call will be answered in the order it was received."
Asterisk can email you your voicemail messages as wav files. This is a KILLER feature. But you weren't asking about voicemail, you were asking about VoIP.
Pros: VoIP BEAST. Take all your friends with VoIP clients, give them signins and extensions and voicemail, give them conference capabilities, etc. (Then they all use your bandwidth.)
Cons: Complexity. Even if all you want is a simple call routing tool to make incompatible VoIP systems talk to each other, you have to learn the entire system to make it work. This is a typical Linux problem: you have to read tons of documentation / visit forums / discuss with others to figure it out, but because it uses "real world" concepts and is designed intelligently, once you're finished you have spent 30% of your time learning the quirks of a single software package you could care less about, and 70% of your time learning about how the subject works, gaining knowledge about that field that will follow you to any other program.
(That's definitely true here: Since playing with Asterisk I've talked with professional telecom guys, and found what few terms and concepts I've learned from Asterisk definitely overlap with their "real world" stuff.)
Weird system service requirements. Some software features rely on a very high-resolution system timer, and (allegedly) can't get t
Re:Asterisk (Score:2)
Re:Asterisk (Score:2)
Re:Asterisk (Score:2)
Re:Asterisk (Score:2)
SMTP (Score:2)
Re:SMTP (Score:3, Insightful)
Re:SMTP (Score:2)
shtoom (Score:5, Informative)
It also includes 'doug', an application server for writing voice apps. There's a simple voicemail and simple conference server implemented in doug.
It's pretty rough - it's certainly not something you'd give to your mother to use, but hey, it's free software.
It's also entirely in Python.
At the moment, the best bet is to use the svn trunk.
URLs:
Software: http://shtoom.divmod.org/
PyCon paper (also possibly useful for an overview of VoIP): http://www.interlink.com.au/anthony/tech/talks/Py
[1] Native Mac support will be finished Soon, I have a mac being shipped to me.
Re:shtoom (Score:2, Informative)
I installed the libraries, installed the client, ran it, typed in a sip address, hit 'call' and *volla* I was talking to some dude from alabama (I'm in
Cred to anthony for writing it.
NAT (Score:2)
I always thought the most obvious solution to connecting to a NATed node is to have the NAT box act as a relay to the nodes it performs NAT for. One way to implement this (without running out of address/port pairs) is to use IP-IP tunneling. This is described, for example, in RFC 2003 [faqs.org]).
Nodes can then negotiate (or, with an extension to DNS, look up) the parameters to use to traverse all the NAT boxen in between them. This schema doesn't require traffic to go
Re:NAT (Score:2)
re: software is lame (Score:2, Interesting)
just get a grandstream budgetel or a sipura or a wisip or any number of other SIP hardware phones.
You will be happy you did. I am.
plus wearing stupid headsets looks retarded.
Re: software is lame (Score:3, Insightful)
Of course, if you meant that wearing a stupid-looking headset looks retarded, you're absolutely right -
Check out Vovida.org and VOCAL (Score:2, Informative)
Teamspeak2 (Score:2, Informative)
Skype for Mac coming shortly! (Score:3, Interesting)
Oh-Phone (Score:2, Informative)
Go with a hardware SIP phone (Score:5, Informative)
As for phone clients
My honest recommendation would be go for something like the Grandstream, which does everything an "ordinary" phone should do and, being hardware is truly cross-platform. But note, it doesn't have any integral switch so you will take up an extra jack on your ADSL router.
Re:Grandstream (Score:2)
But one 10Mb segment shouldn't slow down your whole LAN. If it does, you need to get yourself a more modern switch with proper store-and-forward ability. Any 10Mb packets coming in will be artificially speeded up to 100Mb, and 100Mb packets will be slowed down to 10Mb
Asterisk is king (Score:2, Informative)
The IAX protocol, which is a Asterisk-specific VoIP protocol, is great behind my IPCop box since it effortlessly works with NAT, requiring not a STUN server or any other kind of help. I've bought pre-paid VoicePulse Connect service for long distance calls to PSTN, and since I don't
Software is not the answer you are looking for... (Score:2)
Re:Standards? (Score:3, Informative)
Re:Ohh Slashdot! (Score:2, Troll)
Re:Is this an advertisement for Skype (Score:1)
Re:Is this an advertisement for Skype (Score:2)
What you think is more possible? Skype people posting two stories about it in the same day in slashdot (when just one do the job and don't expose them to someone giving alternatives) or my explanation?
And, btw, when i saw the freshmeat announce today morning was tempted