Telegram Connection Manager (Morse) released.

I am happy to announce the second release of Telepathy-Morse — Qt-based Telepathy Connection Manager for Telegram network.

If you don’t know about the project, then you can read the previous post with an introduction.

Please note that although I also work on KDE Telepathy, there is no any dependency on KDE, so the Connection Manager can benefit Empathy, Jolla (Messages), Ubuntu IM client and any other software, powered by Telepathy.

Since the last post, the project got a basic group chat implementation, migrated to native (telegram) identifiers, got two-step verification support and so on. If you want to try the CM right now, then skip a couple of paragraphs and scroll down to the Links section at the end of this post.

Let’s dive into details.

Read more ›

Tagged with: , , ,
Posted in Uncategorized

Telegram Connection Manager — The first release is going on

After a long period of silence I’m coming with a news: Telepathy-Morse project is “still alive” and the first release is going on.

Short introduction: I’m working on the Qt-based Telegram Connection Manager for KDE Telepathy. Actually, there are two subprojects:

  1. TelegramQt — Qt-based library which supports messaging, contact-list operations and other telegram client capabilities. The purpose of the library is to abstract from the telegram protocol details and provide a convenient API for a client application development.
  2. Telepathy-Morse — Qt-based Telegram client (connection manager) for Telepathy communication framework. Uses TelegramQt under the hood.

Note: In order to use Morse, you need to have a complementary Telepathy Client application, such as KDE-Telepathy or Empathy.
Note: Telepathy-Morse depends on the latest telepathy-qt version (0.9.6), which might be not available yet.
Now, let’s talk about the development, current progress and plans for the near future.

Read more ›

Tagged with: , , ,
Posted in Uncategorized

Telegram Connection Manager — GSoC 2014 task overview


My name is Alexandr Akulich and this year I’m accepted for GSoC 2014 to work on Qt-based Telegram Connection Manager for KDE Telepathy.
In this post I’ll tell you about my goals and let you know, what is already done.

Creation of Qt-based Telegram CM for KDE Telepathy is a task, that requires work throughout the entire stack, so I split task into three smaller and easier to handle.
Only small high-level part will depend on KDE, while most of that stack is shared between several operation systems and desktop environments, so it will work for Jolla, Empathy, Ubuntu’s IM client and any other software, powered by Telepathy.

On lower level, I decide to develop some core library, named libTelegramQt. This library will transparently do all low-level tasks (establish connection to Telegram server, handle data centers, do all cryptographic and RPC stuff) and provide convenient API for messaging, files transferring, contact-list operations and other actions.

On medium level, I have to implement connection manager itself. This sub-task is complicated due to lack of TelepathyQt Service bindings operability and documentation. For our luck, there is a branch with all needed stuff. With big support from my fantastic, excellent and irreplaceable mentor, David Edmundson, this branch is going to be tested and merged into master.

On high level, there will be plugin for KDE Telepathy, which will provide Telegram accounts setup. This task have need some trick, because Telegram requires confirmation code to be obtaining via SMS. My plan is to provide DBus method (like “send auth code to <phone number>”) in Connection Manager and to invoke it from KDE Control Module.

What is done by now:
Implemented supporting app to generate enum with Telegram Schema constants.
Implemented authorization key creation. It means, that library is able to talk with server in Diffie-Hellman encrypted session to get it’s secret numbers to turn on primary AES encryption. (passed all this stuff)
As next step, implemented package’s AES encryption/decryption with control sums checking. To test that thing, implemented Data Centers configuration obtaining, but that config is not used yet.

To be able to rely on quality of the library and to simplify refactor and porting to new platforms, I implemented automatic tests, which already saved me few hours of manual testing.
As means to test the library in real action, I created small application that connects to the server, passes authentication and gets the DC Config.

Telegram Qt TestApp

My next steps are to implement DC configuration usage, send acknowledgment packages and, finally, to send request for SMS with confirmation code.

Thank you for reading and stay tuned to know about Telegram Connection Manager progress.

Links: telegram-qt repository

Tagged with: , , , ,
Posted in Uncategorized