X-Git-Url: http://git.giacomolli.uk/onechat/blobdiff_plain/ec230eee6b06580031637bc97c99ec6db7b41926..0018014ab36f3de61a4b8a5515009dab803d6c38:/README.rst diff --git a/README.rst b/README.rst index 3a2d25b..fd6cb95 100644 --- a/README.rst +++ b/README.rst @@ -177,19 +177,44 @@ daemon. ********** The daemon connects to the WhatsApp account of the user as a linked -device. In the terminal client or in Telegram, the line ``/whatsapp -status`` shows the link: not linked, linked and connected, or linked and -disconnected, with the times of the connection. The answer goes only to -the client that asked, and the line does not go to the agent. - -The session is ``whatsapp/session.db`` in the data directory. It gives -full access to the WhatsApp account, so the daemon refuses the file when -its mode is not 0600. The shell of the agent runs as the user, so it can -read the session. If the session leaks, remove the linked device in -WhatsApp on the phone, and the session stops working. Without the file, -WhatsApp is not linked. When the session holds a linked device, the -daemon connects at its start, and after a network failure it connects -again by itself. +device. The terminal client and Telegram take three commands: + +``/whatsapp pair PHONE`` + Links the account of PHONE, the number with its country code, such as + ``+15550001111``. The daemon answers with the steps and then with a + pairing code in its own message: in WhatsApp on the phone, open + Linked devices, tap Link a device, then tap Link with phone number + instead, and enter the code. The code expires in about 2 minutes, and + the same command gives a new code. When the link succeeds, the daemon + answers with the linked number. + +``/whatsapp status`` + Shows the link: not linked, linked and connected, or linked and + disconnected, with the times of the connection. + +``/whatsapp unlink`` + Ends the link and deletes the session. When WhatsApp is disconnected, + the phone does not get the logout, so remove the device in Linked + devices on the phone. + +The answers go only to the client that asked, and the commands do not go +to the agent, so the agent never gets the phone number or the code. The +chat gets only the notes that WhatsApp is linked or unlinked. + +The session is ``whatsapp/session.db`` in the data directory, with mode +0600 in a directory with mode 0700. It gives full access to the WhatsApp +account, so the daemon refuses the file when its mode is not 0600. The +shell of the agent runs as the user, so it can read the session. If the +session leaks, remove the linked device in WhatsApp on the phone, and +the session stops working. Without the file, WhatsApp is not linked. + +When the session holds a linked device, the daemon connects at its +start, and after a network failure it connects again by itself. When a +disconnection lasts 10 minutes, all clients get one notice, and one more +when the connection comes back. When WhatsApp ends the connection for +good, for example because another program uses the same session, all +clients get a notice at once. When the user removes the device in the +phone, the daemon deletes the session and tells all clients one time. ******* Probe