Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: We just open-sourced a Skype replacement with HTML5 (voicechatapi.com)
303 points by dhfromkorea on Jan 31, 2014 | hide | past | favorite | 100 comments

Doesn't appear to be working in Firefox (a lot of things don't seem to work it Firefox anymore..) however it's working perfectly in Chrome and IE (latest).

Looking really good, I'd add Chat to it as well for people who are having issues with their mic or prefer to just listen. Actually.. Might have a crack at that this weekend.


Firefox dev here. Sorry to hear you're having issues with Firefox. This has not been my experience, would love to know more specifics about apps that don't work in Firefox.

Would be hugely helpful if you could file a bug (bugzilla.mozilla.org) when you see something that doesn't work, but if you want a quicker way to help I'll file the bug for you. Just send me a one line email with the problematic URL. joshmoz at gmail

Firefox user here, thanks a lot for all the good work!

If I may ask a question while you're here, do you know if there'll be anytime soon an indicator of the degree of security of WebRTC? Right now, I don't think there is any indication if the keys-exchange is done over HTTP for example or other, which is a bit problematic if privacy is important.


afaik, webrtc uses srtp, which is a separate from https.

SRTP/DTLS to be specific instead of SRTP/SDES. In the past the keys were sent in SDP (using SDES--Security Descriptions) therefore over HTTP, but SRTP/DTLS is the way forward and in the spec.

I think it's just something to do with WebRTC, I'll have a better look once I'm home and file a bug. Firefox is still my go-to browser, it's usually just the new stuff that hasn't been implemented yet in the release version that I have issues with.

Thanks for your work! Mozilla's one of my favourite companies!

I am not sure if they are using https://code.google.com/p/webrtc/source/browse/stable/sample... -- it works as a charm on our application.

It seems Firefox's implementation of web audio API is not the same as Chrome or Safari.

Our app that plays audio in sync on multiple devices plays the audio but is out of sync with Safari and Chrome devices.

Any plans to follow safari's and chrome's implementation?

You'll really have to be more specific than that. Firefox's implementation should be standards compliant, from what you said it's impossible to determine if Firefox has a bug, or the app is badly written and relies on non-standards-compliant behavior that only happens to work in WebKit.

If it's the latter, then no, Firefox will not do that.

It's not a problem with the API itself. In Gecko, the time between starting playback and the audio actually beginning is perceivablely greater than in Webkit browsers. It could be resolved by simply delaying start in Gecko, but that's a less than ideal solution.

chrome, the IE6 of today!

sacarms aside, nobody realize the similarity? defining standards by releasing first? all the cool prototypes at my company are done in chrome and only tested in chrome, before they become internal tools... which will require chrome 32 from 5 years on sice they will probably move to some other prototype while someone in the sales team base his team workflow on that tool...

the pattern is almost the same.

I had the same thought, but a different conclusion. In my opinion, it's Chrome vs other browsers instead of Chrome 32 vs Chrome xx.

A lot of cutting edge apps rely on interesting features of Chrome... features that other browsers may or may not implement. Sometimes it's not even browser features, it's the Javascript engine speed (although the last couple versions of Firefox have hugely improved in that regard).

> rely on interesting features of Chrome... features that other browsers may or may not implement

or chrome 36 may implement differently.

It's balanced by prototypes running only on iOS devices. At least there's no monopoly on frustration!

the nice thing is that chrome auto updates, so most of the version specific chrome "things" either break fast or are not version specific.

the other nice thing is that chromium is open source, so if they do something truly novel, there is a publicly visible source repo.

until it updates to something that break that prototype that is now used by the sales team.

Do you really think IE6 is here because people don't want to upgrade to IE7,8,9,10? It is there because the lame code fail on anything but IE6. Just like 10yrs from now several applications will fail on anything but chrome32 or something.

it should be easy for the devs' to add the interop shim for WebRTC to make it work in both Firefox and Chrome: https://code.google.com/p/webrtc/source/browse/stable/sample...

Mandatum, if you see this, you're hellbanned. Since I can't reply to your comment about many apps like this not working in Firefox, this particular tool does work for me in the latest build.

I agree that many cutting-edge browser apps work in Chrome and not Firefox. Is it a case of browser specific syntax that people default to webkit for?

This site needs a solution to bad commenters that doesn't result in discordant comments like this.

It might have worked? He was just un-hellbanned.

Welcome back into the land of the living, Mandatum!

Until the next time...

Seriously. Hellbanning is the worst part of hacker news.

Did Mandatum get hellbanned for saying that the app doesn't work on Firefox?

It's hard to say, it might have been from his first comment, a year and a half ago: "Seriously?" [0]

Poor guy has been posting decent comments since then, probably wondering why no-one replies.

[0] https://news.ycombinator.com/item?id=4144856

Poor guy.

The hellbanning system on ycombinator is terrible. Hellbanning should be reserved for the most obnoxious of spammers, not for random innocents.

Or it should be able to be lifted if their comments get enough upvotes from people that have showdead enabled.

it's a nice idea but susceptible to people making their own vote rings to unban themselves

Why would they bother? The point of hellbanning is to stop people who don't realise nobody is seeing their comments, if they realise it then they'd just create a new account rather than a vote ring.

It's far easier to just logout, and create a new account.

I remember on some HN thread about 6 months ago that pg acknowledged that hellbanning is not always ideal, but he said that he didn’t have time to spare to implement any alternative form of banning in the software. And HN is not open-source, so if pg doesn’t have time to write the feature, there’s nothing anyone else can do to help.

is it that bad? A lot of people enable the option to see ghost comments. And then act when needed. It's called auto-moderation and it does seem to work.

It works, but not well.

Case in point: It took 18 months for this user to be discovered.

Ah, that makes sense.

I don't think so. It did sound like that at first then I realized he meant since he couldn't reply to Mandatum, Mandatum must be hellbanned.

they should use https://code.google.com/p/webrtc/source/browse/stable/sample... to make it work for both browsers.

I would like to request a hellban for my account, please? I think it's what I've wanted from this site all along, to be able to feel like I've address this sad group of over-engineering fools without the social consequences.

Please don't upvote me you complicit fucks, I meant it.

Good job Kunal and team Plivio!

If anyone is looking for a audio+video demo that works similarly, I built http://OpenTokRTC.com and the code is on github at https://github.com/opentok/OpenTokRTC

One feature I included is dynamic frame rate so that in cases where there are many people streaming video, a user can type "/focus" in the chatroom and everybody's video quality will degrade to save bandwidth and stream the optimum quality for the focused person's video.

It's also available on iOS, although I believe the iOS app needs alot more work. I apologize ahead of time if you experience bugs on the iOS app. The app name is OpenTokRTC and source code is here: https://github.com/opentok/OpenTokRTC-iOS

Hope someone finds this useful, if you have any questions please email me song@tokbox.com

This is typically the job of the congestion control and the application constraints set by the developer. Dynamic Frame rate control is just one tool in the congestion control toolbox and works only for small frame sizes (typically thumbnails), which perhaps is fine for Hangout-ish large conference with one or two active speakers.

But there are other use-cases where doing dynamic frame rate wont be sufficient.

Thanks Song. :-)

I built this. Happy to take any questions. Code is hosted here - http://github.com/plivo/voicechat/

Any plans for non-heroku build instructions? Is there really much to it that Heroku is doing that can't be easily replicated, or was that just for speed of deployment? I'd love to self-host an instance of this, but that part threw up a flag for me. Thx!

Yup. It's a flask app which can be self hosted on any instance of yours and it uses redis to store conference mappings.

Am I correct in assuming this (and none of the alternatives posted) doesn't allow hosting on a VPN (not connected to the internet)?

Have you checked out https://appear.in/ ? Looks like you're not the only people playing in this space right now. I've used appear.in sucessfully with a 6 person teleconference on opposite sides of the world - two of us at home in Australia and the others in two different offices in Norway.

I'm sure there will be tons of competitors in this space until a bunch of them drop out and a couple succeed big. Open source is great though - good luck with it all!

I was pretty stoked for appear.in but found the voice quality poor and the screen share awkward. It's a brilliant concept but it seems like WebRTC needs some optimizing before it can compete with skype or hangouts.

I've not had any problems with voice quality; I know what you mean about the screen share though. I think that's to do with Chrome only grabbing a low-res feed from the desktop, from what I gather from the appear.in dudes & dudettes on twitter.

shameless plug: http://staging.callstats.io/api we are trying to solve the problem for all WebRTC devs with poor voice and video quality.

Drop us an email.

So, this tool is OSS but appears to be dependent on a commercial service. Is there any chance that Plivo will open source the necessary bits to enable true standalone operation? There's a lot of potential for an application like this in parts of the world where open communication is restricted.

Being open-source is a very important point.

But any communication system that is built for the future must at least be (public-key) encrypted.

Then you, make it 100% decentralized and you're ready for our time where unlimited mass surveillance seems acceptable for "democratic" governments.

Plivo has an open source framework too. Currently this App is built on the cloud, but feel free to port it to open source version!


I agree. I thought it was completely open-source. What's the use of open sourcing just a part of the code and forcing users to use a Plivo account to use the service (even if you self host it).

I've created and been maintaining an open source video chat platform for years. and it's peer-to-peer and html5.

Your Second Phone https://yoursecondphone.co

Oh - flash. No thanks.

Exactly my thought, and I don't unbderstand it. WebRTC solutions work in all browsers (but IE). Like for example https://talky.io/ which is also open source: http://simplewebrtc.com/ I'm thinking about adding it to my personal website actually.

What WebRTC Node.js server library are you using? SimpleWebRTC SinglaServer or something else? Does it support ICE, etc?

I don't use it yet, just been thinking about it.

This does look cool, but when it says "HTML5" I definitely do not think "requires Flash".

Try the app in Chrome, which uses HTML5 audio. Flash is for other browsers with graceful fallback.

As Firefox and other browsers support and stabilize HTML5 audio a.k.a. WebRTC, this App will support it too.

HTML5 audio and WebRTC are not the same thing.

WebRTC stands for Real Time Communication, and is a protocol for allowing browser-to-browser traffic. HTML5 Audio is a spec for playing sound through the browser via <audio> tags, which is confusingly also distinct from the Web Audio API, which is a Javascript API for programmatic sound.

Firefox already supports both HTML 5 Audio, Web Audio and WebRTC. This app is just crappy.

That's nice and all, but it's hardly a "Skype replacement".

I'm waiting for Tox to get ready for a public release. There hasn't been much word on it, but development is slowly continuing by the day. There's also something like six GUIs by now.

It's true this app does not "fully" replace Skype, but it does replace the group voice call part of Skype. Also it definitely relieves common pain points you have while using Skype. (install, signup, login, username exchange, approval.) Plus if you want to get on a call with a stranger. You would want to use this.

Flash and voice only.

This is really extremely misleading. I do not understand where the upvotes come from. The project may be interesting, but the headline is borderline sleazy.

Also, "allow s3.amazonaws.com to access your camera and microphone"? Yeah, I don't think so.

This uses HTML5 audio on Chrome and falls back to Flash on other browser.

The WebSDK is currently hosted on s3 and hence the request. Will fix this.

This is hardly a Skype replacement.

I'd be impressed when someone gets VOIP working on WebRTC. i.e. supporting SIP logins. I tried Doubango Telecom and it didn't work.

I just saw a presentation by tsudot about this, where he mentioned a pretty cool use case for this: they've got Hubot in their team's channel set up so they can just say "conference", and it'll generate a link for everyone to jump in and talk about things. I'm not sure if its quite a Skype replacement, but it could replace a lot of the way I use Skype or G+ today.

Thanks. We believe this can replace a subset of what people do with Skype—quick calls with friends and teammates.

The hubot script will let people do audio conference on chat clients which don't natively support it. The community script is here: https://github.com/dhfromkorea/hubot-scripts/blob/master/src...

Here is my open source WebRTC project. https://github.com/imomin/videoChat

Mmm, actually I Happen to use Skype actually much more for chatting, with the occasional voice chat. Much like MSN, but more professional.

I wish Skype wouldn't be so integrated into the professional world, and be forced to use it. But hey as a freelancer, I'm not going to be shy about using Skype if all my clients use it :/

True, I feel the issue with Skype is that its too personal. You add someone as a contact without realizing that they can monitor your status all the time.

ps. I built this.

I solved that beautifully - I am always online 24/7 - no crap like DND away and similar. So people just learned that answering is optional from me no matter of the status...

I do this across all programs. My status is always "online".

Love it, UX is beautifully elegant (only thing that ruins it is the Adobe Flash permission popup which looks like it is from Windows 3.1)

This is something I feel as though I will actually use, and is easy enough for my own mother to use.

Try Chrome which will use HTML5, No-Flash!

For something to replace Skype, the respective users have to be convinced to move other to the Skype replacement of the month.

For my contacts list, I am sure it won't happen unless they are forced to move away.

Boo. Apparently open-washing, proprietary centralized, not WebRTC.

http://meet.jit.si is alive since last year it's open source. It works well! Give it a try

If you're interested in this, please also check out https://echoplex.us :)

That's very nicely done. Could be an easy website support option.

"Welcome to the conferencing bridge. You are currently alone in the conference"


Very nice tool, talk anonymously and in conference. But my IE 11 does not pop up the flash screen.

Open Wash.

Yeah, I looked at the code and the site trying to find the line between what's really open and what's proprietary. Could this app work without a Plivo account? What do the Plivo bits do that I can't do with plain old WebRTC?

Plivo WebSDK (http://plivo.com/voip-sdk/) allows graceful fallback to Flash for non WebRTC browsers.

WebRTC alone won't run on all browsers!

It's about time! This Skype is terrible, and WebRTC is amazing.

I don't want to give aws.amazon.com access to my mic...

I use skype for two things:

- chat

- videochat

I never just use audio chat. I video chat even with my coworkers.

At least, I had a problem with "video" calls. It's often too cumbersome and gives too much info about the visual aspect of myself when it's not necessary and when I don't want it to happen. (e.g., getting on a call with a stranger or clients.) Using the "voice" call, I won't worry over washing my face at 9am in the morning.

skype is so crappy that i usually call people in video, and then after some problems we are both disabling video to try to improve audio quality.


I am actually waiting for a "video chat" application that allows me to choose between "having crappy video frames every second" or "having very high quality picture frames every 10~30 seconds".

It would be very useful if you could fix the picture quality at say, 640x480 and then the framerate dropped to get that quality. That way video conference could be very useful to share stuff like whiteboard drawings, among other things.

Yeah, meanwhile Skype is just removing features. The other day I had this Skype followup job interview and I realized I should change my display picture or better yet remove it because taking pictures of ones self is tedious. They removed the ability to remove your display pic. What the fuck?

Would love a proper open source Skype replacement. Something that meets all of the features in a similar or better interface, while also being pro-privacy pro-encryption. Kind of like the Firefox of communication clients. I don't think it's plausible any time soon as you can only Skype fellow skype users. People need a reason to switch and stay there, thus approaching Skype levels of a userbase. Maybe if Firefox itself integrated a powerful addon that could compete with Skype, which would allow for a huge userbase. Heh, one can hope.

I'm with you on the quality thing though. So. Many. Times. Have I had to deal with cumbersome upload speeds for either person thus degrading audio and video to the point where they look like blobs or I do. Sometimes it happens no matter what the user's connection is like. Then there's the whole auto background noise amplifier that kicks in when you're not speaking for a period, to conveniently transmit your TV or aircon at ear shattering volumes. And once again you can't turn that off!

It's just, like, these people developing apps like Skype don't care about making it a great application. How much does it really cost to put in a few critically useful features? Are the devs not passionate? Is there too much bureaucracy? Why is "it works" an acceptable standard? How the hell can you be a devloper for something that is literally used by so many millions of people and yet feel no urge to make that software the absolute finest possible?

This looks fantastic. Will play with it this weekend.

1. how to know who's talking?

2. when you add video?

This code is open source. Feel free to send a pull request with "who is talking"..

XML to use is here - http://plivo.com/docs/xml/conference/

Hint: use the floorevent param.

Nice app

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact