9 ms·
WebRTC 1.0 telephony app using “hifi” Opus codec with up to 500kbs bitrate
- pfalafel 6y agoI am the developer of this web-app and you can use the link (say, for the next hour or so) to give me a direct voice call. I am interested in finding out about audio quality in the real world. Thanks
- vkdelta 6y agoIs there a source code or more details? Does it connect to SIP or PSTN gatewaY?
- pfalafel 6y agoNo 3rd party services involved at all. All server components are running on a single server of mine. Sorry, no source code released yet.
- mfkp 6y agoI keep getting a busy signal, you must be popular!
- Dowwie 6y agoNice speaking with you! (your new friend from New Jersey)
- ud_0 6y agoIf you can still edit the title, I suggest prepending "Show HN".
- pfraze 6y agoThe codec is interesting but I’m actually curious how you’re arranging the calls without signaling servers, per your about page. Can you share a bit about that?
- bhaney 6y agoThe about page says "no 3rd party servers," not "no signaling servers." The STUN and TURN servers configured in the source code are the same IP that timur.mobi resolves to, so the web server is just also running the signaling servers.
- cgb_ 6y agoHey there! What would be required to host my own version of this style of call access? adapter-latest.js and caller.js from the HTML source? Is there any more information to do something similar?
- Dowwie 6y agoI had no idea what I was getting into when I clicked "Call Now" but wound up having a great conversation with a new friend-- Timur! The audio quality was excellent. This project has great potential. Best of luck to the author!
- denimnerd42 6y agoMumble uses Opus by default. You can definitely tell the audio sounds much better than competitors although mumble is more fussy about mic and background noise as it does less processing than Skype for example. Opus was originally intended to be a general purpose codec that maintained fidelity at even low bitrates which makes it suitable for telephony as it's also low latency. On the other hand it also sounds good at higher bit rates and I use it as my codec for my music when I convert them from flac for mobile devices.
- DiabloD3 6y agoDiscord and TeamSpeak also use Opus, and Skype transitioned to Opus near the end. Opus became the de facto codec for phone applications over the past decade.
- vel0city 6y agoOpus is the de facto codec for phone applications, other than you know, the publicly switched telephone network which is still mostly stuck on G.711 and only finally rolling out "HD Voice" G.722.
- centimeter 6y agoIf the device manufacturers could get their shit together and come up with some cross-manufacturer federated standard, we could easily dump the public telephony network once and for all. I’ve never been anywhere (rural or urban) where public telephone was better quality than some kind of VoIP. Even out in the boonies, data is usually more reliable than voice (at least with google fi).
- deleted 6y ago[deleted]
- vel0city 6y agoThe craziest thing is its not even really the device manufacturers, its usually the networks themselves. I've had SIP phones capable of good quality codecs for a long time but getting a carrier to actually support them and have a handshake actually complete with those is nearly impossible. My handshakes out always signal I'm Opus capable (along with a lot of other codecs) but almost every call in and out of my phone system is G.711. Calls internally sound wonderful though :)
- tincholio 6y agoOpus at over 40 or 60Kbps for voice sounds like overkill, nevermind 500kbps. What's the rationale for using such high bitrates?
- pfalafel 6y agoI configured the max possible bitrate in the spec. I wanted to find out what is being used in the end. And how it sounds. Most people are calling without a microphone. Please use a headset.
- tincholio 6y agoYou should look up some subjective quality test results for Opus (voice). The MOS curve flattens at about 40kbps, IIRC.
- pfalafel 6y agoOpusFAQ: "Opus scales from about 6 to 512 kb/s" - https://wiki.xiph.org/OpusFAQ#In_what_ways_is_Opus_optimized_for_the_Internet https://wiki.xiph.org/OpusFAQ#In_what_ways_is_Opus_optimized...? Edit: quote from section 1.14 (direct link does not work bc of the question mark in their section ID)
- Zenst 6y agoProbably marketing and the HiFi industry has demonstrated that such people are a nice niche income stream. Some say a fool and their money, I say each to their own and their choice. But I'm sure there are always edge-case valid uses for such audio quality. Maybe talk to bats and dolphins in the future is now one step closer than before is another way of looking at this.
- astrange 6y agoOpus doesn't support any sample rates higher than 48khz, so no bat encoding. Some other audio codecs do, but it doesn't really make a lot of sense and I doubt they've been properly tuned for it.
- sjg 6y agoTried to call a few times and got the busy signal. Just a thought but I would maybe not log the number in the console as it might be leaking your actual phone number to the wider world. Hope it's a burner number.
- pfalafel 6y agoYour phone number is not getting leaked by an WebRTC app. Definitely not. Your IP address might, in case a true P2P connection is established.
- maxk42 6y agoNot even that - WebRTC obfuscates your IP via intermediary servers.
- Chabsff 6y agoTURN/STUN servers are not always used, and more often than not only as a fallback if a direct link is not established.
- eis 6y agoSmall addition to avoid confusion: the purpose of STUN is kind of the opposite of TURN in this context. TURN will tunnel the traffic through the server and the clients don't need to know each others real IP addresses. STUN on the other hand is used in order for the clients to learn their real IPs despite NAT and be able to establish a direct connection.
- aclatuts 6y agoAdding a "I am not a robot" button to initiate the call would be really cool way to avoid bots in the future if this ever catches on.
- simlevesque 6y agoIt's WebRTC... millions of bots would not affect a thing.
- itisbjorn 6y agoTimur is a really fun guy. He also wrote and maintained the (since quite famous) kernel patches and userspace utils for Nexus7 devices to allow USB host mode and charging simultaneously. The hack itself was modest enough but it since enabled a whole new world for DIY in-car entertainment enthusiasts, providing the modding community with a simple and affordable way to fully integrate a working tablet into their cars with USB DACs, DAB dongles, back-up cameras, etc - which was pretty slick stuff back in 2012-2013.
- deleted 6y ago[deleted]
- Black101 6y ago> It works best in Chrome, Chromium and Firefox (all v80+). I'm assuming Edge also?
- pfalafel 6y agoI made a lot of phone calls tonight. Two quick observations: 1) Many people think I'm a bot. And they want to test me with smart questions in order to find out if I'm a bot. How do you prove that you are not a bot? 2) It seems that aprox 90% of the calls are getting relayed. I expected more calls to come through as P2P. The audio quality is still excellent in most cases. If both sides use a headset, it is almost better than sitting next to each other. This is much better than normal telephony.
- steelegbr 6y agoOoh... reminds me of a throwaway experiment I did a few years back - WebRTC for radio outside broadcasts. It never went far as we ended up going down the SIP path instead. Nice to see the idea going further though there are commerical products now that work on this basis (IPDTL is one that rings a bell). Both approaches were a great improvment over the need for an ISDN line but you could run into problems running higher bitrates on "spotty" networks. Thankfully you didn't need more than 128/192kbps for broadcast quality most of the time and could get away with even less for voice. Call Server: https://bitbucket.org/marcsteelesoftware/g-rtc-call-server/src/master/ https://bitbucket.org/marcsteelesoftware/g-rtc-call-server/s... Frontend: https://bitbucket.org/marcsteelesoftware/g-rtc/src/master/ https://bitbucket.org/marcsteelesoftware/g-rtc/src/master/
- joshspankit 6y agoIs there any way this could be integrated with Twilio Voice?