TELEGRAM-CLI

Telegram Messenger voor de commando-regel

Als redactie gebruiken we het programma Telegram voor onze “redactie vergaderingen”.

Figuur 1. $ telegram-cli

Telegram CLI

Enkele voordelen voor ons zijn oa. dat de berichten versleuteld worden en dat dit programma beschikbaar is voor bijna ieder platform (Android/iOS , Windows/Mac/Linux en een webclient). Het nadeel is dat er geen versie is voor de mensen die werken vanuit de commando-regel. Maar er is wel een niet-officiële CLI versie beschikbaar op Github.

Vandaag gaan we kijken hoe we dit programma installeren. In het bijzonder op Debian GNU/Linux en Raspbian (Debian op een Raspberry pi).

Als eerste moeten we de broncode van het programma downloaden, hiervoor gebruiken we git dus zorg ervoor dat dit geïnstalleerd is (op Debian bijv. $ sudo apt install git).

De “doel” directory kun je zelf kiezen, maar ik gebruik ~/Downloads/ dus ik ga naar ~/Downloads/ en geeft het commando in: git clone --recursive https://github.com/vysheng/tg.git && cd tg

Dit download de broncode naar de directory ~/Downloads/tg en zal daarna deze directory ingaan (het Ampersand teken koppelt commando’s).

Nu moeten we nog enkele extra pakketten installeren om de installatie te doen slagen. De programma’s staan in de Readme, maar ik heb gemerkt dat Debian ook het programma libgcrypt11-dev nodig heeft maar dit staat niet vermeldt in de Readme.

De commando’s voor enkele verschillende distributies zijn:

Debian GNU/Linux:
  • $ sudo apt install libreadline-dev libconfig-dev libssl-dev lua5.2 liblua5.2-dev libevent-dev libjansson-dev libpython-dev libgcrypt11-dev make
Gentoo:
  • $ sudo emerge -av sys-libs/readline dev-libs/libconfig dev-libs/openssl dev-lang/lua dev-libs/libevent dev-libs/jansson dev-lang/python
Fedora:
  • $ sudo dnf install lua-devel openssl-devel libconfig-devel deadline-devel libevent-devel libjansson-devel python-devel
openSuSE:
  • $sudo zypper in lua-devel libconfig-devel readline-devel libevent-devel libjansson-devel python-devel libopenssl-devel

De volgende stap is het configureren met het commando $ ./configure

Figuur 2. $ ./configure
Figuur 3. $ make

Foutmelding onder Debian Stretch

Een oplossing voor het probleem op oa Debian Stretch is het gebruiken van een aangepast rsa_pem_openssl.c bestand. De oorzaak is een aanpassing in de API van OpenSSL vanaf versie 1.1 welke niet werkt met het originele rsa_pem_openssl.c bestand. Je kunt het aangepaste bestand hier vinden of gewoon downloaden vanaf onze website. Dit bestand plaats je in tgl/crypto in de broncode direcory (tg). hierna voer je $ ./configure en $ make opnieuw uit en telegram-cli zou zonder problemen moeten compileren.

Figuur 4. $ ./configure --disable-openssl
Figuur 5. $ make
Figuur 6. $ make (vervolg)

Nu is telegram-cli klaar om gebruikt te worden.

Het uitvoerbare programma bevindt zich nu in ~/Downloads/tg/bin/ en heet telegram-cli. Je kunt dit nu opstarten met $ ./telegram-cli of eventueel een symlink maken in /usr/bin/ (sudo ln -s ~/Downloads/tg/bin/telegram-cli /usr/bin/telegram-cli).

Figuur 7. $ telegram-cli

De eerste keer dat je het programma opstart zal je enkele gegevens moeten ingeven (let op, je hebt wel al een Telegram account nodig, dus je moet deze APP eerst installeren op een Smartphone of ander officieel ondersteund OS). De eerste vraag is jouw telefoonnummer +LANDCODE en volledig nummer).

Daarna krijg je een activatiecode via SMS of in Telegram op jouw Smartphone of desktop/laptop).

Figuur 8. telegram-cli telefoongegevens (nummer en toegestuurde activatiecode) ingeven.
Figuur 9. Wachtwoord ingeven en telegram-cli is klaar voor gebruik.

Nu kan ik Telegram-cli gebruiken. Door 2 keer op de TAB toets te drukken krijg ik een list met mogelijke commando’s.

Figuur 10. Alle mogelijke commando's
Figuur 11. telegram-cli : bericht sturen naar een groep.

Met het commando help, krijg je alle mogelijke commando’s met extra informatie over hoe te gebruiken, maar dit is te veel voor op 1 scherm:

Figuur 12. telegram-cli : help

Het is dus gemakkelijker om help voor een specifiek commando te gebruiken (bijv. help msg_kbd)

Figuur 13. telegram-cli : help msg_kbd

Als je Telegram-cli wil installeren op een Raspberry pi met Raspbian, zul je bij het opstarten nog een andere foutmelding ivm assert 0 krijgen. De oplossing hiervoor is het bestand tgl/mtproto-utils.c aanpassen (bijv. $ vim ~/Downloads/tg/tgl/mtproto-utils.c) en de tekst op regels 101 en 115 “commenten” ofwel twee "forward slashes" // aan het begin plaatsen.

Figuur 14. oplossing voor "assert 0" foutmelding op Raspberry Pi met Raspbian.

Nu moet je het make proces opnieuw uitvoeren en dan zal telegram-cli ook moeten werken op de Raspberry Pi (denk er aan dat bij configure ook de –disable-openssl parameter moet meegegeven worden om het make proces succesvol af te kunnen ronden).