]> nmode's Git Repositories - signal-cli/blobdiff - README.md
Shut down when dbus daemon connection goes away unexpectedly
[signal-cli] / README.md
index b546a62c53764173e189694da7090b419a53764c..e6d6e5ff7d8815d1ff23f605be25e941a749151f 100644 (file)
--- a/README.md
+++ b/README.md
@@ -3,7 +3,7 @@
 signal-cli is a commandline interface for the [Signal messenger](https://signal.org/).
 It supports registering, verifying, sending and receiving messages.
 signal-cli uses a [patched libsignal-service-java](https://github.com/Turasa/libsignal-service-java),
-extracted from the [Signal-Android source code](https://github.com/signalapp/Signal-Android/tree/main/libsignal/service).
+extracted from the [Signal-Android source code](https://github.com/signalapp/Signal-Android/tree/main/libsignal-service).
 For registering you need a phone number where you can receive SMS or incoming calls.
 
 signal-cli is primarily intended to be used on servers to notify admins of important events.
@@ -11,6 +11,10 @@ For this use-case, it has a daemon mode with JSON-RPC interface ([man page](http
 and D-BUS interface ([man page](https://github.com/AsamK/signal-cli/blob/master/man/signal-cli-dbus.5.adoc)) .
 For the JSON-RPC interface there's also a simple [example client](https://github.com/AsamK/signal-cli/tree/master/client), written in Rust.
 
+signal-cli needs to be kept up-to-date to keep up with Signal-Server changes.
+The official Signal clients expire after three months and then the Signal-Server can make incompatible changes.
+So signal-cli releases older than three months may not work correctly.
+
 ## Installation
 
 You can [build signal-cli](#building) yourself or use
@@ -19,7 +23,7 @@ Windows. There's also a [docker image and some Linux packages](https://github.co
 
 System requirements:
 
-- at least Java Runtime Environment (JRE) 17
+- at least Java Runtime Environment (JRE) 21
 - native library: libsignal-client
 
   The native libs are bundled for x86_64 Linux (with recent enough glibc), Windows and MacOS. For other
@@ -32,8 +36,8 @@ See [latest version](https://github.com/AsamK/signal-cli/releases).
 
 ```sh
 export VERSION=<latest version, format "x.y.z">
-wget https://github.com/AsamK/signal-cli/releases/download/v"${VERSION}"/signal-cli-"${VERSION}"-Linux.tar.gz
-sudo tar xf signal-cli-"${VERSION}"-Linux.tar.gz -C /opt
+wget https://github.com/AsamK/signal-cli/releases/download/v"${VERSION}"/signal-cli-"${VERSION}".tar.gz
+sudo tar xf signal-cli-"${VERSION}".tar.gz -C /opt
 sudo ln -sf /opt/signal-cli-"${VERSION}"/bin/signal-cli /usr/local/bin/
 ```
 
@@ -55,8 +59,15 @@ of all country codes.)
 
       signal-cli -a ACCOUNT register
 
-  You can register Signal using a landline number. In this case you can skip SMS verification process and jump directly
-  to the voice call verification by adding the `--voice` switch at the end of above register command.
+  You can register Signal using a landline number. In this case, you need to follow the procedure below:
+   * Attempt a SMS verification process first (`signal-cli -a ACCOUNT register`)
+     * You will get an error `400 (InvalidTransportModeException)`, this is normal
+   * Wait 60 seconds
+   * Attempt a voice call verification by adding the `--voice` switch and wait for the call:
+
+     ```sh
+     signal-cli -a ACCOUNT register --voice
+     ```
 
   Registering may require solving a CAPTCHA
   challenge: [Registration with captcha](https://github.com/AsamK/signal-cli/wiki/Registration-with-captcha)
@@ -127,9 +138,8 @@ version installed, you can replace `./gradlew` with `gradle` in the following st
 It is possible to build a native binary with [GraalVM](https://www.graalvm.org). This is still experimental and will not
 work in all situations.
 
-1. [Install GraalVM and setup the enviroment](https://www.graalvm.org/docs/getting-started/#install-graalvm)
-2. [Install prerequisites](https://www.graalvm.org/reference-manual/native-image/#prerequisites)
-3. Execute Gradle:
+1. [Install GraalVM and setup the environment](https://www.graalvm.org/docs/getting-started/#install-graalvm)
+2. Execute Gradle:
 
        ./gradlew nativeCompile