
Ask HN: Skype, but properly peer-to-peer? - ColinWright
I&#x27;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 <i>all</i> 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 &quot;it shouldn&#x27;t be like this.&quot;<p>It shouldn&#x27;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, <i>etc., etc., etc., ...</i><p>It&#x27;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&#x27;ve searched, but had no success.<p>Suggestions?
======
tommoor
I've been working with WebRTC for a year now building Sqwiggle
([https://www.sqwiggle.com](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
> 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?

~~~
viraptor
1\. Possible saving on bandwidth for the clients if they know good codecs A
and B respectively, so they can't use them between eachother, but a
transcoding third party can help.

2\. This doesn't help with the amount of bandwidth used, but sometimes due to
peering (that VoIP companies really care about) you can get lower delay going
via them rather than directly. This is not very common, but it happens
(especially if your broadband provider is your VoIP provider for example).

Maybe the poster above had another reason for it too. There's loads of edge
cases in the ITSP world.

------
lazyjones
This should work with WebRTC
([http://www.webrtc.org/](http://www.webrtc.org/)) using the reference app:
[https://apprtc.appspot.com/](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/](https://code.google.com/p/webrtc4all/))

~~~
Muromec
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.

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

~~~
sneak
> SIP/SIPS is nice. You can just use your IP[:port] as your phone number

You just contradicted yourself.

------
daveid
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](https://github.com/Gargron/baron)

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

~~~
sitkack
This has no license. _Any_ license is better than no license.

~~~
daveid
It is now BSD-licensed.

~~~
sitkack
Your stuff looks good. Keep it up.

------
lnanek2
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
It's worth noting that Skype's API is now deprecated. There's no guarantee it
will be around in the next release.

------
binarymax
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](https://en.wikipedia.org/wiki/Comparison_of_VoIP_software)

~~~
adamantium
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](https://news.ycombinator.com/item?id=6977463)

------
frik
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](https://github.com/priologic/easyrtc)

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

~~~
kbrosnan
Mozilla has a node project at
[https://github.com/mozilla/talkilla](https://github.com/mozilla/talkilla)

------
phaer
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
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
RetroShare has VoIP and is:

\- 100% distributed / peer-to-peer

\- public key encrypted

\- open source

[http://retroshare.sourceforge.net/](http://retroshare.sourceforge.net/)

~~~
cordite
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.

~~~
Sami_Lehtinen
Well, that's the price to be paid for security. Without key sharing and
verification, you can't be sure who you're connected to.

------
pant
[http://simplewebrtc.com/demo.html](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
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.

~~~
mike_hearn
Why would you do that vs just writing a normal downloadable app?

------
stoical
Mumble is the only one that springs to mind:
[http://mumble.sourceforge.net/](http://mumble.sourceforge.net/) Its designed
more for chat rooms but may be suitable.

~~~
rakoo
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)

~~~
rb2k_
It also uses OPUS as the audio codec and has mobile clients, which is kinda
nice :)

------
malditogeek
[https://apprtc.appspot.com/](https://apprtc.appspot.com/) and
[https://appear.in](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](http://vmux.co) (code:
[https://github.com/malditogeek/vmux](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
You can try [http://appear.in](http://appear.in) It's a browser based video-
voice-chat client.

~~~
pbhjpbhj
That looks really good but it's still a non-self-hosted solution.

------
tomtheengineer
At [https://vline.com](https://vline.com) we provide a free WebRTC-based video
chat service. It doesn't require any registration or installs and is built on
top of our developer platform:
[https://vline.com/developer/](https://vline.com/developer/).

------
PavlovsCat
Does this look as good to you as it does to me?
[https://jitsi.org](https://jitsi.org)

------
donnfelker
This reminds me of WebRTC and SIP technology. Chris Matthieu built something
like this which is now [http://www.Twelephone.com](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.

------
ShirsenduK
With google's free STUN servers its quite possible to build services which do
this. [https://github.com/cjb/serverless-
webrtc/](https://github.com/cjb/serverless-webrtc/) And the mozilla projects.
But it will be some work. The price of privacy. :)

------
acd
I would suggest WEBRTC via premade service you make sure there are
Firefox/Chrome browser on his computer and point to url. Properly peer-to-
peer.

[http://appear.in/fathersfirstlastname](http://appear.in/fathersfirstlastname)

------
ryanweal
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](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](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...

------
stephenson
Try [https://hu.tt/](https://hu.tt/) works great

------
adamantium
Can't tell about WebRTC or browser-based. When it comes to software, I've
tried everything from the Wikipedia list and some more.

Most are either too buggy (Linphone) or closed source (many) or not
multiplatform (so you can't talk to WindowsXP-user grandfather or vice-versa)
or development stopped (Twinkle) or has no encryption (Ekiga).

The only one who passed was Jitsi.

It has more than 10 years of development, it's free / open source, very
usable, multiplatform. It also accepts encrypted voice over XMPP, not only
over SIP.

Look here - [https://jitsi.org/Main/Features](https://jitsi.org/Main/Features)

------
benbristow
I know some people from 4chan's /g/ and some other people are working on an
encrypted de-centralized Skype alternative called 'Tox'. You might want to
help with the project.

------
mikemoka
you should keep track of this one probably

[http://tox.im/](http://tox.im/)

------
songzme
I built a site for super simple video chat originally to demo our company's
product to clients. Its made to be easily accessible and used with ease. The
more we used the app, the more we've come to appreciate its simplicity and our
company now uses it to communicate with each other and between our offices
around the world. Hope you will find this useful:
[https://opentokrtc.com](https://opentokrtc.com)

------
JoeAltmaier
Sococo.com has a team communications app. Not exactly made for family calls,
but works fine. Free. Disclaimer: I work at Sococo. And phone calls run P2P
and are encrypted. Unless your bandwidth is exceeded; then it runs through a
multiplexing 'media node' that operates like a router.

Video, doc sharing, chat, multiple people sharing all that or splitting up
into groups or pairs - all by clicking around a map.

------
javipas
This is a good alternative IMHO
[https://meetings.io/features](https://meetings.io/features)

------
adamantium
ColinWright's question is about computer-to-computer calls.

His question is similar to one I've asked recently: Skype replacement for
phone-to-computer and computer-to-phone (Skype-in and Skype-out numbers).

Can you please chip in if you know more?
[https://news.ycombinator.com/item?id=6921672](https://news.ycombinator.com/item?id=6921672)

------
htilford
Skype but properly peer-to-peer was pretty much the theme of realtime conf
this year take a look at this video:
[http://vimeo.com/77289728](http://vimeo.com/77289728) They demo a federated
video chat.

------
shervinshaikh
Check out Hutt ([http://hu.tt/](http://hu.tt/)).

No account needed and you can instantly start video chatting with anyone who
has a modern browser.

~~~
nsmartt
It says I need Chrome.

------
bitwize
Just use Skype.

It's been my experience that the way to technological bliss is through
reducing friction by using what everyone else is using.

For voice and video over IP, that's Skype.

~~~
ColinWright
Have you tried to talk an elderly relative through installing Skype on Windows
8 over a phone line when you can't see their screen and don't use Windows?

It has to be easier - there has to be a better way.

~~~
pasbesoin
How about configuring and sending them an instance of TightVNC or UltraVNC
(one or the other or both of those -- I forget), and then just using that
channel to remote to their system? Downside (maybe): They can only talk with
you, and there may not be a convenient mechanism for always-on and
notifications.

(Or, doesn't the Chrome browser come with some sort of remote-enabling plug-
in, these days?)

Otherwise, possibly configure your own server intermediary and use Jitsi or
similar? Downside: They'll only be able to talk with people similarly
configured (although you could set up several people this way).

The later is what I mean to move towards, Real Soon Now... :-/

P.S. It occurs to me now that you could use the remote access to get them
configured for something else, as opposed to just to push a verbal-
visual/"talk" communications channel over.

------
jaggs
Use the Skype Desktop version instead -

[http://www.skype.com/go/getskype-full](http://www.skype.com/go/getskype-full)

no sign in needed.

------
lakesta
We use Oovoo, its still centralized but we like it more than Skype. Its like
the poor mans skype but its honestly better for voip.

------
spazzpp2
Try [https://palava.tv/](https://palava.tv/)

It's open-source WebRTC.

------
mknits
I use [https://appear.in](https://appear.in) based on webRTC.

------
fosap
[http://palava.tv](http://palava.tv)

------
gte910h
sip does it peer to peer :D

[http://en.wikipedia.org/wiki/Peer-to-
peer_SIP](http://en.wikipedia.org/wiki/Peer-to-peer_SIP)

------
csense

        sudo apt-get install linphone

