Voice Calls: Secure, Crystal-Clear, AI-Powered
telegram.org
telegram.org
But the most annoying problem with any internet voice chat is not so much the quality but the latency. Landline phones have noticeably lower voice quality but one can still enjoy a conversation perfectly well. High latency, on the other hand, absolutely ruins the experience.
I always see these services talking about "crystal clear quality", but never latency, which is a shame. Maybe there is simply nothing they can do about it. I've noticed latency get worse and worse on the Internet since I started using it in the 90s and nobody seems to talk about it.
There are so many more sources of latency on every layer on the modern internet and it's a damn shame. I remember when interleaving got enabled on my ADSL and latency to everything doubled overnight. Then there are NATs, and all kinds of filtering shit that ISPs insist on. Sigh...
Well, the first problem at home is likely your wireless. Live in an apartment and you can pick up 30 other routers in your wifi search. Chances are you're going to have latency and re-transmit issues to your AP.
Second problem, your router. Most of them suck. If you're lucky and yours doesn't setup QoS/shaping rules. I use fd_codel on mine to attempt to minimize the amount of buffer bloat that occurs. In the race to make your internet 'fast' huge buffers act like buckets for data, which is really bad if you want your data instantly. And if you search buffer bloat you'll see a lot of people talk about it, very few ISPs want to do anything about it though.
Lastly, the one you can't do anything about is the path that your data takes to the remote user. If it is overloaded or has capacity induced latency there isn't much you can do, other than change ISPs maybe.
thewirecutter.com/reviews/best-wi-fi-router/
The documentation is still not stellar, but it has gotten better, and the configuration more consistent. It's quite easy to set up ssh-access with a key, and simply get a copy of configuration files with scp - ready to set up identical configurations on new router installs.
You're remembering incorrectly then. Dialup latency was in the range of hundreds of ms. Early high speed internet access also had higher latency than modern connections.
If you have latency problems it's likely a problem with your hardware.
What is interleaving in this context?
Any plans to make this available to developers as a service via AWS?
Lots of people who had ISDN kit plugged their old POTS phones into their TAs anyway.
I've experienced this with multiple NPR affiliate stations where it's particularly noticeable for their generally high audio quality.
My suspicion is that audio is recorded with different codecs or at different bitrates, though I've never been able to establish this.
I've also not noted the problem for a few years, so it may have been addressed.
Maybe this is because traditional communications were built by people working exclusively in that field - and they eventually became true experts, with a deep understanding of the real issues.
Nowadays Internet chat services are cobbled together by happy-go-lucky engineers who, prior to this, maybe did an ads firehose on Twitter, and after this project will perhaps move on to work on Facebook games or whatever. Smart people to be sure, but their understanding of the field is necessarily superficial.
The fast rate of change in this industry explains many of the things that are ailing it currently.
Skype has been around for 13 years. It isn't a young startup full of ex-node.js programmers.
WhatsApp also has some excellent infrastructure built on top of Erlang which has decades of experience and refinement of heavy-duty telecom usage baked into the framework.
If anything the experience of previous development trickles down and younger engineers benefit from that knowledge. But I'm not sure I buy the idea that you can only build great systems if you've only been doing that one category for your whole career.
The rate of jobs changes faster and in front-end development the pace of toolset changes pretty fast. But even in front-end development it's still the same languages. usually just the tools are the trendy part. And if it's switching languages every 5-7 yrs that knowledge of languages is transferable. I've only benefited as a programmer from exposure to many other languages (and projects).
Regardless, the hardcore backend guys you get to build this type of infrastructure isn't the same hipster front-end devs that Twitter hired in the early years to build out a consumer product. Consumer is very different than building out telecom infrastructure in Erlang/C++.
Another problem is cell phones add ~150ms latency (pre VoLTE) and people that route calls through Google Voice adds an additional 150ms+ latency on top. If you ever talk to someone on a cell phone on google voice, it sounds like they're calling from the moon.
150ms is about the human limit before turn-taking and talking over each other becomes an annoyance. That's why cell-to-landline conversations (150ms one way) were tolerable, but cell-to-cell (300ms one way) conversations are abysmal. And that's all in the same area code. Once you add long distance, it gets worse.
Opus is an evolution of SILK which is/was used in Skype.
As for the sample rate, 8 khz is a bit low, but you can make it sound significantly better with a bit of equalization; usually turning down frequencies near 1 khz a little goes a long way. Sometimes too, it doesn't hurt to gently (and I stress, gently) reduce frequencies near ~300 hertz if it sounds too muffled.
The latency is almost palpable.
Is it just me or does this sound like serious bullshit? Unless you have some hard evidence of course...
In fact, it's probably just a TCP-like algorithm, i.e. decrease rate of packet sending if not getting ACKs back. One day, Intel might come out and say their microprocessors are AI-powered, since it has branch prediction.
"Neural network spotted deep inside Samsung's Galaxy S7 silicon brain (theregister.co.uk)" - https://news.ycombinator.com/item?id=12340348
What sort of parameters are adjusted?
This is HN. A link to an example would be appreciated.
Edit: To clarify, I work with audio codecs too, and can't really think of parameters (other than the compression level?) that would make much sense to adjust on the fly.
If "AI" is used for more than just a buzzword here, then I imagine the answer must be quite interesting.
They might also prioritize traffic depending on how full your buffers are.
I can only assume Youtube and Netflix do similar parameter tweaks to optimize their video delivery based on the connection (totally filling the buffer to a max size all the time would waste bandwidth, but if the client has lots of packet loss they need a larger safety net).
I hope not... VBR can easily leak all sorts of information (including the actual content of the conversation)
Do you have a link discussing this?
https://www.cs.jhu.edu/~cwright/oakland08.pdf
https://www.cs.jhu.edu/~cwright/voip-vbr.pdf
It's fundamentally very similar to the sorts of issues you end up with if you compress then encrypt. If the attacker can make some educated guesses about the plaintext prior to the compression, the compression ratio can be a very powerful tool in their arsenal.
Logs of speed, ping times, packet loss, would likely be more useful in good old, non-AI reports...to identify regional issues, peering opportunities, etc.
I don't think you need AI for voip calls that upgrade/degrade quality based on network health.
From their API doc: https://core.telegram.org/api/end-to-end/voice-calls#key-ver...
> Party A will generate a shared key with B — or whoever pretends to be B — without having a second chance to change its exponent a depending on the value g_b received from the other side; and the impostor will not have a chance to adapt his value of b depending on g_a, because it has to commit to a value of g_b before learning g_a.
> The use of hash commitment in the DH exchange constrains the attacker to only one guess to generate the correct visualization in their attack, which means that using just over 33 bits of entropy represented by four emoji in the visualization is enough to make a successful attack highly improbable.
> reading about the emoticon generation thingy, it's actually worth a read
> they use a DH KEX[1], but wrapped with something which is interesting. Client A generates a, client B generates b, and g seems to be an already-exchanged finite group generator. That's all standard.
[1] diffie-hellman key exchange
> now before A sends g^a to B, it will send hash(g^a) to B. B responds as normal (with g^b) to which A will respond with what it normally would send first: g^a.
> after receiving g^a, B can check whether the initially received hash(g^a) matches. This means that A can't brute force a specific value of a, so it doesn't matter that it's only 33 bits of entropy in that emoticon thingy. Any brute forcing will change the hash (unless you collide, iirc, sha256) and B will go "dude wtf" and kill the connection
> I tried to summarize in more understandable terms, but if it's too shortened or something, the original thing is here: https://core.telegram.org/api/end-to-end/voice-calls#key-ver...
PS: on mobile. Could not.search.
tldr: First message from TelegramApp has some marketing copy ("acm winner phds") but not horrible. The TelegramApp user remains calm/careful and mostly polite in every message after that. There are only a few cases of sideways slapping and they come from HN users. Despite this the conversation between TelegramApp and HN users remain informative debate and discussion.
By the way, it is also worth noting that Nikolai Durov, designer of MTProto, is completely absent from any public discussions of that protocol. Doesn't like talking to the plebs, I suppose.
Cryptographers can't seem to make sense of a lot of their design decisions in the MTProto protocol. Their response to criticism has mostly been in the form of: if you can't demonstrate a break directly, then we don't care.
Given how fragile cryptography can be, this is an absurdly irresponsible way to maintain a cryptosystem. Modern cryptographic designs try to be very principled, and steps are taken to prevent any kind of theoretical weakness, even if we don't know how to break it in practice. This is because cryptographic breaks only ever get stronger — never weaker.
As an example, TLS 1.0 using doing authentication for CBC modes with MAC-then-Encrypt was known to be weak, but it was only years later when researchers were able to turn this into a plaintext-leaking break. And MTProto is absolutely littered with unconventional or known-weak constructs, giving a lot of potential levers attackers can use to break it.
You might argue that it's fine for this to be the case, as long as they respond quickly to protocol breaks. The problem is, the good guys only learned how to break TLS 1.0 CBC when the attack was published. Did the NSA/CIA/GRU/FSB know about these attacks before we did? There's no way to know. But if it had conservatively chosen an Encrypt-then-MAC scheme to begin with, such an attack would have never been possible in the first place.
That's not to throw the TLS 1.0 authors under the bus here. The weaknesses of that type of scheme were yet to be widely known. In the case of MTProto, weaknesses in their use of certain constructs are widely known, and they don't seem o care.
The Telegram designers built a protocol with anticipation of some constraints. But rather than debate the plausability of the percieved constraints, the HN-crowd just dug into whatever they already knew and threw in a lot of snark in their response to close the door.
> Their response to criticism has mostly been in the form of: if you can't demonstrate a break directly, then we don't care.
I haven't seen that. I went looking for it. If you have the patience and time please dig up a link or quote.
> That's not to throw the TLS 1.0 authors under the bus here. The weaknesses of that type of scheme were yet to be widely known. In the case of MTProto, weaknesses in their use of certain constructs are widely known, and they don't seem o care.
I did see a good bit of discussion about the feasability of some of the weakness pointed out. They responded in a way that seemed to indicate they fully understood the issue but "chose" to take the risk. I'm not sure this means "they don't care". Perhaps it does. But this is where I started to see that the rift here was really about the perception of constraints, not lack of knowledge or, in my opinion, lack of care.
Voice calls are an excellent addition. If these could now also be extended to video calls, I could likely ditch Skype forever.
[1] - https://wire.com/en/
[1] https://github.com/wireapp [2]https://medium.com/wire-news/wires-independent-security-revi...
It's not as good as Telegram's UI and featureset, but they're much newer/younger still. I'm starting to use it more and more.
The desktop client is electron, and there's no way their Android app is native, it feels like a WebView.
Native apps really do make the experience that much better.
Most of my family is on iPhone's, while I'm using Android. I tried using Wire as a substitute for Facetime (my 3 year old doesn't consider it a real phone call unless there's video), but it was way too buggy and people would just get annoyed.
Signal's new video chat, however, has worked really well after it got out of beta. There aren't many apps that manage to do video calls well between Android and iPhone, I'm a bit surprised that that feature hasn't gotten more attention.
Telegram is not too bad but has too many grey areas at this moment.
Unless you strictly use end to end, only after having verified the keys, you are trusting the server quite a lot.
https://github.com/telegramdesktop/tdesktop seems fairly up to date?
And yes, that's the official location of the Android app, linked here: https://telegram.org/apps
> Definitely, updated source codes will be online later today.
And the Desktop client[1] is kept very up to date. My biggest complaint is that they have stopped updating the API documentation [2] which has lead me to become a rather lukewarm telegram developer (though I still have a few projects I am work with)
[1] https://github.com/telegramdesktop/tdesktop [2] https://core.telegram.org/#updates-log
A bit too late, now that you're using as your main system.
I'm using UP for a beta-testing purpose so no big deal.
I've never looked into logs though, so a fix might be obvious
Once in a while I got a blank screen opening Telegram, but closing it and open it again solves the problem.
Are you running OTA-15?
Second, have you tried to delete the cache (.cache/com.ubuntu.telegram)? That will erase your secret chats too, so you can make a copy before deleting it.
Curious as to why your getting a different result though.
EDIT: I'd also be curious as to your opinion of Touch in general?
My opinion: I love it. I'm not a huge fan of Unity, or Ubuntu, and it's definitely in the beta stage. I like that most of the problems that I have were solvable on my own via shell-script or whatever hacks I come up with.
In that thread someone said deleting .config/com.ubuntu.telegram/<number>/auth.lock solved the problem with Telegram not starting [1].
So look for .lock file/s and delete it/them.
I still love Debian way more than Ubuntu, but I think they're doing a great work with Touch.
[0] https://bugs.launchpad.net/ubuntu/+source/qtbase-opensource-...
[1] https://bugs.launchpad.net/ubuntu/+source/qtbase-opensource-...
They are one of the newer kids on the block. Open sourced in March 2016, End to End encrypted (everything and by default) since June 2016 (or the other way around). Supports chats, calls, video calls, file transfers and multiple devices (including Linux, though Electron...).
The idea comes from the STU-3 secure phone, where there was a 2-digit number display to be read back by voice. It's one of the ways to detect a man-in-the-middle attack. If there's a MITM, the crypto bits sent and received are different, because the MITM is re-encrypting, and this is detectable if you have some out of band channel for comparing them. A MITM would thus have to be able to fake the voice of the other party.
With techniques like this, you can make an MITM work arbitrarily hard to maintain the illusion that it's the other party. I've proposed some ways to do this for web pages.
There are bots that relay huge media files
It's probably (imo) the fastest & most complete cloud based chat app
Everything.. Literally everything you share can be retrived over the cloud
& and now calling
That must be super expensive infrastructure? No investors no monetization
"If you look at Telegram today, every month it burns over $1 million. It might seem that it’s just going nowhere, but if you want to come up with business model, you need to get to a decent size first. We have 62 million users at the moment, which is enough userbase to attract third-party developers to create products on top of your platform. You can’t do that from day one. It’s difficult."
http://kernelmag.dailydot.com/issue-sections/features-issue-...
I suspect the cost is even higher now.
Also, experience has taught that users are fickle and that products that are free that transition to paid products quickly lose their users.
I'm sure they will find ways monetize this. Data is the "new gold", as they say[1]...
Q: Will you have ads? Or sell my data? Or steal my beloved and enslave my children? No.
So I don't think they will make money by selling data.
[1] https://telegram.org/faq#q-will-you-have-ads-or-sell-my-data...
> An FAQ isn't binding.
Probably not, but please beware that this service is not subject to US law, but the laws of the Russian Federation.
> What does their TOS say?
TOS are subject to change, right? And even if it wasn't, do you really think the TOS will stop a company run by a russian nationalist[1] offering a free service with a million dollar bill will stick by their word (which, in this case is literally a single word)?
They are not registered in Russia, afaik.
> russian nationalist[1] … [1] https://www.instagram.com/p/-MrPWGr7aL/
That's just Pavel's usual populism. He says the same things about Russia or pretty much anything.
They are writing the software in Russia (right next to the VK's door to be precise), though. Source: local Saint-Petersburg newspapers.
Sadly it was the only nice alternative when the snowden stuff was published. That means those of my peers who made it away from skype/fb/whatsapp are now on telegram.
They seem to focus on bringing new features (like an alien voice FX feature) when they should try to fix the basics first.
The worst thing that happened to me was that UI told me I was in a chat with Alice, but I soon realized I was actually chatting with Bob. So much for E2E...
Now we use https://riot.im. I'm kind of surprised a federated solution offers a decent UX and is less buggy.
Wire is buggy but generally works. The main problem with it is that metadata is collected by default.
I'd say we had a 40% chance of actually connecting a call with Wire. Suddenly there was an update to the app and calling didn't work _at all_ until the next update came (this happened more than once).
A close relative finally gave up and yelled something along the lines of "who the f* uses this POS app", and I couldn't really argue. :)
I'm a firm believer that Matrix is the future. But right now I wouldn't recommend it to anyone that isn't an early adopter.
All official clients are open source so you can fork them or create a new one from scratch.
That's not what you get when you have a secure system, that's what you get when you design a system that can collect (and possibly monetize) the data of millions of users.
Telegram is secure from device to device, not from account to account. If I send you a secure message from my iPad I don't have to worry about the web session I opened a week ago on someone else laptop.
https://timtaubert.de/blog/2016/01/build-your-own-signal-des...
The second layer (Megolm) encrypts each sent message once per room, using a ratchet described by session key data. The session key data is shared 1:1 between the appropriate devices (past and future) over Olm.
How do you accomplish a seamless swap from desktop to a mobile session using end-to-end encryption?
The thing which is really sad is that there are no end to end encrypted group chats.
In iMessage specifically, or in general? WhatsApp/Signal do use E2E-crypto for group chats.
e2e is in beta still, but they have key list management/verification in place already.
If it's because Apple tells me so then I think can see that the end to end encryption is broken and interception is possible.
Are old messages re-encrypted with the new key?
This would be even worse.
It would still be possible to implement this in a secure way (including out-of-band key verification) by having the "original" key (the one you've compared out-of-band) sign keys for new devices and have the server deliver that signature (which the sender can then verify). I don't know if there are any implementations of this.
Most seamless end-to-end encrypted solution I've come across. And it's still in beta. Every piece is open source (I'm running my own server), it's federated, supports history sync as a first-citizen feature, individual read receipts for group messages. The UX is not as polished as Telegram, but it's improving rapidly and is more than usable as a daily driver.
This whole, "don't roll your own encryption" argument is getting really old. Everything was new at one point.
6 months later, a russian guy showed that the server could MITM every newly started or renegotiated secret chat.
Sure, they manned up to their promises and gave him something like $80k, but it is a rather telling story about how good they are at crypto.
Their crypto today? Yup, still weird.
I do not use Telegrams security features though, so whether they are any good isn't relevant to me(and many other people).
There simply are situations where I do not care whether my messages are encrypted or not, in which case I use the app that works the best for me, which in this case is Telegram.
Only when QoS will be honored by all internet routers will we reach something that is consistently reliable.
Is anyone familiar with solid published work on applying ML/AI to optimize network control (or, as done here, optimize application parameters depending on network conditions).
† turned out MS launched instant play adaptative 1080p streaming some years later on Xbox 360, which was exactly that.
[0] Supervision d'une Application à Base de Composants afin de Respecter des Contraintes Temporelles - https://hal.inria.fr/inria-00000787
I just placed my first Wire audio call from my phone a few minutes ago: great quality (better than my actual phone service), no noticeable lag.
How long ago are you referring to?
I tried to use it around the end of 2016 to chat with friends and it was nearly impossible to use. We would try to add a contact but the other person would not appear online, despite having the app open in front of us.
Messages would frequently not be delivered, or take exceedingly long times to be delivered (hours). Notifications of a new message were also quite hit and miss.
Overall I liked the functionality of Wire, but the reliability was terribad.
Actually, thinking about it now, I haven't used video much lately, but audio has been much better the past 1-2 months.
1: https://core.telegram.org/api/end-to-end/voice-calls#key-ver...
In theory this makes MitM attack impractical.
https://core.telegram.org/techfaq#q-how-are-voice-calls-auth...
https://core.telegram.org/api/end-to-end/voice-calls#key-ver...
33 bits of entropy seems quite low to me.
https://core.telegram.org/techfaq#q-how-are-voice-calls-auth...
Bad thing: this tech is trapped in Telegram which is quite political of an app. I wish they'd break it out into something like duo.
However, WhatsApp is already at 1bn users [0][1]. Expanding from that is going to be very hard.
0 - http://www.theverge.com/2016/2/1/10889534/whats-app-1-billio...
1 - https://en.wikipedia.org/wiki/List_of_virtual_communities_wi...
Globaly - maybe, for now. in some countries, however, it's not as popular as Telegram or Viber, for instance. (like Iran, for example)
Frequently i get kicked off of Whatsapp because my phone has been idle for too long. Frequently my messages are out of order between the web client and the android client. Semi-frequently Whatsapp hangs when sending messages, sometimes dropping them (i assume due to my phone going idle).
I wouldn't recommend anyone to Whatsapp.. for UX, at least.
[1] https://info.seibert-media.net/display/Atlassian/Comparison+...
However, how can you take as unbiased a comparison table that uses adjectives as "Incredibly fast loading times", "UNRIVALED", etc.?
I'd say, except for its security/encryption...
And, it is quite easy to verify that WhatsApp's encryption is doing what we think. A friend of mine managed to reverse engineer their protocol in 2012 in less than 24 hours, by himself. And there is quite a big chunk of the computer security market that would disagree with the claim that something has to be open source to be verifiably secure.
Note that they're both listed in the table as having "End-to-end encrypted chats" (value: "medium"?!)
1. most of the features that whatsapp lack are features I find annoying in Telegram.
2. Whatsapp is encrypted by default, which Telegram is not. I don't think I have ever used a secret chat, despite having oven 50 people with whom I regularly talk to over Telegram.
The client being open source is somewhat of a stretch. They have released many new versions, yet the github repo hasn't been updated in 7 months.
QML/QtQuick apps only support integer scaling for whatever ridiculous reason ("fuck your monitor we need to be pixel perfect" or whatever) so they're either tiny or huge.
Life's a little different now than in the old XP days. Disk space and ram aren't as limiting as before and the slow redraw times of qt and other cross-platform libraries have been taken care of by GPU hardware acceleration, faster ram, and faster CPUs.
These complaints were valid back then and our opinions didn't change because of things like Electron, as much as our hardware is so much more powerful. I remember dreading running Java desktop apps and now I can barely see the difference between them and native win32 apps. Heck, running an app on a virtualized OS on top of my native OS is often fairly performant nowadays.
The latter lost bindings like ctrl-a, ctrl-u.
If I could be bothered, I'd delete the "Desktop" release and go back to the App Store version.
The Mac-specific App Store version is a better app, but has been abandoned in favor of the (crappy) "Telegram Desktop."
But I must admit that amount of clients is confusing.
I thought Qt still bypassed the native user interface and drew all their own controls?
Native these days seems to mean "without a web browser under the hood".
The word has lost meaning as to nontechnical users, it's mostly about "can i install it directly on my device". We need better terms.
But it being a window that runs a second web browser, that is OK.