top | item 6974835

Ask HN: Skype, but properly peer-to-peer?

109 points| ColinWright | 12 years ago

I've just had to talk my 80-year-old father through setting up Skype on his new computer. For some reason he had to create a Microsoft account, and it was encouraging him to store all his documents on some drive in the cloud, and it combined his existing Skype account into the new Microsoft account, and all the while I was thinking "it shouldn't be like this."

It shouldn't be the case that for what could be, should be, a single, stand-alone application such as IP-telephony, there is all this cross-linking, central registration, etc., etc., etc., ...

It's probably a consequence of Microsoft buying out Skype and forcing integration with their own universe. So I ask, is there now an alternative to the centralized, you-will-do-everything-our-way system? I've searched, but had no success.

Suggestions?

76 comments

order
[+] tommoor|12 years ago|reply
I've been working with WebRTC for a year now building Sqwiggle (https://www.sqwiggle.com) - In my experience I can tell you two things,

- It's not really possible to go entirely peer-to-peer as many networks do not allow for this communication to happen. You would have constant issues with calls not being able to connect. Some centralised service is required for signaling, STUN and TURN which costs money and uses significant amounts of bandwidth.

- Even if you do go peer-to-peer with WebRTC the quality would still be improved by going through a central server (less upstream bandwidth required) [edit: when more than 2 participants]

If you're interested in helping to tackle these problems, we're hiring ;-)

[+] wwwtyro|12 years ago|reply
> Even if you do go peer-to-peer with WebRTC the quality would still be improved by going through a central server (less upstream bandwidth required)

Why is that?

[+] sixQuarks|12 years ago|reply
This looks like a really cool product, but there's one thing that bothers me about this. I don't like the fact that the camera takes a picture every 8 seconds. I feel like I'm being monitored. Is this a concern that others have brought up as well? Is there an option to turn that feature off, but still make yourself available instantly?
[+] viraptor|12 years ago|reply
> STUN and TURN which costs money and uses significant amounts of bandwidth.

TURN does, but not STUN. STUN's just for address discovery and many VoIP providers allow anyone to use theirs. But agreed - STUN on its own can fix only some connection.

Anyway, I think IPv6 can't be here soon enough. That would allow many improvements in the p2p networks!

[+] lazyjones|12 years ago|reply
This should work with WebRTC (http://www.webrtc.org/) using the reference app: https://apprtc.appspot.com/

It should enable you to connect 2 browsers (e.g. Chrome and Firefox), all you need is to transmit the ID of the chat ("r" parameter from the chat URL you will get) to the peer, or the full URL.

It keeps amazing me that we do not have simple JS solutions for this, when projects like Chatroulette can be built in "2 days 2 nights" according to the author.

(by the way, here is WebRTC support for other browsers: https://code.google.com/p/webrtc4all/)

[+] Muromec|12 years ago|reply
Whole WebRTC technology stack is just SIP VoIP without actual SIP protocol.

Same codec set, SDP offer-answer, SRTP(C), ICE and other old cool things nobody cared to implement in real SIP clients for decades.

[+] devilirium|12 years ago|reply
Good suggestion. I was thinking the same, so I started working on something, but it's still pretty basic. Communication should be easy, just as speaking.
[+] aurora72|12 years ago|reply
This reminded me Richard Stallman's notes about the newly emerged Cloud Computing. He defined the CC as untrustable and advised to avoid.

I'd suggest IP Telephones. Most of them are capable of making direct P2P connections without even any VoIP server. They only need an external STUN server to arrange the NAT configuration if you use the IP Phone behind a NAT router (which is almost always the case) There are many free and realiable STUNS servers running on the Internet or you can construct your own.

[+] userbinator|12 years ago|reply
SIP/SIPS is nice. You can just use your IP[:port] as your phone number, and forwarding the required ports isn't too hard either if you're behind a NAT.
[+] daveid|12 years ago|reply
I am currently working on an in-browser peer-to-peer chat/audio/video application. It's a work in progress at the moment, but you can take a look: https://github.com/Gargron/baron

As a desktop app, there's Jitsi, which works with XMPP and SIP accounts.

[+] sitkack|12 years ago|reply
This has no license. _Any_ license is better than no license.
[+] lnanek2|12 years ago|reply
I've used the webrtc project people link here as well, but it is worth pointing out that Skype has an API. I'm not even a Windows programmer in general, but it only took me an afternoon to write a tiny app for a Mom's five year old that just calls Mom immediately and automatically as soon as it is started and has a locked preferences page for setting everything up.
[+] falcolas|12 years ago|reply
It's worth noting that Skype's API is now deprecated. There's no guarantee it will be around in the next release.
[+] binarymax|12 years ago|reply
A long list to go through, but this might be a good place to start. Hopefully it has what you need:

https://en.wikipedia.org/wiki/Comparison_of_VoIP_software

[+] adamantium|12 years ago|reply
Great list, just to save him and others some time and pain, I evaluated all of those in the list some months ago, and my conclusion is Jitsi is the only one multiplatform, encrypted voice, still under development, free open source and not unusably buggy. Or technical - grandfather has no idea what a NAT, ICE or STUN is.

See https://news.ycombinator.com/item?id=6977463

[+] frik|12 years ago|reply
I am searching for an WebRTC server app (open source) that I can run on my webserver.

All these WebRTC guys want me to use their pay-for-use web services.

I found only EasyRTC that sort of worked https://github.com/priologic/easyrtc

Can someone suggest Node.js or PHP (with libevent) implementations of WebRTC server apps?

[+] phaer|12 years ago|reply
SIP + ZRTP. Jitsi and SFLPhone are decent clients, the people at ostel.co are working on some infrastructure to ease the usage of encrypted, decentralized VOIP but most public SIP providers should work your use case.
[+] throwawaykf03|12 years ago|reply
Your title is different from your question. If you're concerned about direct P2P connections, last I checked, Skype still sends voice traffic directly to the peer. I had checked some months ago using a packet sniffer while talking with a known peer. I'm on a mobile device so I can't confirm now, but looking at my wireless router admin console, I still see the UPnP ports Skype has mapped for itself.

However if you want to avoid integration with the Microsoft universe (which should be opt-out IIRC, though I haven't installed Skype on Windows in ages), you may need to look elsewhere. I was about to suggest Google Hangouts, but that's just inviting integration with another universe :-)

WebRTC-based solutions may be a decent option long term, but I'm not convinced they'll work as well as Skype or Hangout, because its NAT traversal is somewhat limited, so some peers may be unreachable, especially if corporate networks are involved. Skype and most P2P software perform a lot of hacks to get past NATs. Hangout, AFAIK, doesn't have these problems as it is server-based.

[+] f_salmon|12 years ago|reply
RetroShare has VoIP and is:

- 100% distributed / peer-to-peer

- public key encrypted

- open source

http://retroshare.sourceforge.net/

[+] cordite|12 years ago|reply
I've tried it for awhile, but it's rather clunky (as of a year ago anyway for a few months) and is difficult to get others to use and share their keys and such.
[+] pant|12 years ago|reply
http://simplewebrtc.com/demo.html

Webrtc is here with p2p transmission of the camera + microphone (or files of course). I think it's time for all of us to move to p2p solutions that will come.

[+] waps|12 years ago|reply
Actually it supports sending any byte stream accross. It amazes me nobody seem to have built a peer2peer network out of it yet.

Seems like a shot for open goal.

[+] stoical|12 years ago|reply
Mumble is the only one that springs to mind: http://mumble.sourceforge.net/ Its designed more for chat rooms but may be suitable.
[+] rakoo|12 years ago|reply
Mumble works very well, but:

- It's not real p2p, it needs a server somewhere. OP can install one at home or they can use a public one, but it's required (and if you use a public server, you lose some privacy)

- Mumble only does Audio, no Video.

If you can live with those, mumble is the most straightforward Open Source voip solution to use, and I can't recommend it enough (been using it with my relatives, me on Linux, them on Windows: no problem)

[+] malditogeek|12 years ago|reply
https://apprtc.appspot.com/ and https://appear.in are probably the most KISS Skype alternatives out there. Of course, built on top of WebRTC.

I've been working myself on an open source alternative http://vmux.co (code: https://github.com/malditogeek/vmux) but it requires a Twitter account to log in which my pose a problem to your dad. (The upcoming version will allow you to use it without an account tho)

To the people that want to host their own "skype alternatives" have in mind that it's not just serving the HTML+JS. WebRTC needs a way to bootstrap the P2P connection, the so called signaling, vmux provides a signaling mechanism using websockets but you'll still need a STUN server (I'm using the Google's one) and optionally a TURN server to relay users behind crazy NATs.

[+] tuned|12 years ago|reply
You can try http://appear.in It's a browser based video-voice-chat client.
[+] pbhjpbhj|12 years ago|reply
That looks really good but it's still a non-self-hosted solution.
[+] donnfelker|12 years ago|reply
This reminds me of WebRTC and SIP technology. Chris Matthieu built something like this which is now http://www.Twelephone.com. But here you have to log in with your twitter account. Not 100% "I own everything" type of model but a lot less invasive, IMO.
[+] ryanweal|12 years ago|reply
I've had mixed results with Voip and reading some of the comments here just turned me on to STUN and TURN.

See this video: http://www.youtube.com/watch?v=9MWYw0fltr0 which explains the causes behind reliability problems.

I have thought about running my own server to manage my NATted voip calls and knowing ice/stun/turn will help has now led me to this: http://www.rtcquickstart.org/introduction

I'm thinking I might try to implement this. Voip on my mobile phone would be great, but I've had my hopes dashed before...