2161 Commits

Author SHA1 Message Date
Shaheen Gandhi
32ada51c44 Add JSON-RPC commands for voice call control
Add startCall, acceptCall, hangupCall, rejectCall, and listCalls
commands for the JSON-RPC daemon interface. Register commands and
update GraalVM metadata for native image support.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 16:16:07 -08:00
Shaheen Gandhi
fafc5e3563 Add call state notification mechanism for JSON-RPC clients
Implement CallEventListener callback pattern that fires on every call
state transition (RINGING_INCOMING, RINGING_OUTGOING, CONNECTING,
CONNECTED, ENDED). The JSON-RPC layer auto-subscribes and pushes
callEvent notifications alongside receive notifications.

Changes:
- Manager.java: Add CallEventListener interface and methods
- ManagerImpl.java: Implement add/removeCallEventListener with cleanup
- DbusManagerImpl.java: Add stub implementation (not supported over DBus)
- JsonCallEvent.java: JSON notification record for call events
- SignalJsonRpcDispatcherHandler.java: Auto-subscribe call event listeners

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-03-05 16:16:07 -08:00
Shaheen Gandhi
fa010d03cf Implement call signaling state machine and message routing
Add CallSignalingHelper for x25519 key generation and HKDF-based SRTP
key derivation. Add CallManager for tracking active calls, spawning
call tunnel subprocesses, and handling call lifecycle (offer, answer,
ICE candidates, hangup, busy). Wire call message routing in
IncomingMessageHandler and implement Manager call methods in ManagerImpl.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 16:16:07 -08:00
Shaheen Gandhi
0ea4838e01 Add voice call API types, protobuf definitions, and build dependencies
Define call method interfaces in Manager, create API records (CallInfo,
CallOffer, TurnServer), and hand-coded protobuf parsers for RingRTC
signaling messages (ConnectionParametersV4, RtpDataMessage).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 14:34:53 -08:00
AsamK
2885ffeee8 Prepare next release 2026-03-03 17:50:00 +01:00
moppman
6071291f16
Expose a chat's isArchived status in JSON output (#1957)
Closes #1955
2026-03-03 12:46:34 +01:00
Zachary Johnson
37b8a4a996 enforce poll choices are between 2 and 10 2026-03-03 08:37:10 +01:00
AsamK
af56a28b94 Fix client folder name v0.14.0 2026-03-01 10:30:02 +01:00
AsamK
dfc7e3b495 Bump version to 0.14.0 2026-03-01 10:14:45 +01:00
AsamK
e9114ae8fc Add signal-cli-client to release and create container 2026-03-01 10:14:45 +01:00
AsamK
f77a74d93f Fix optional name parameter in client link command 2026-03-01 10:14:45 +01:00
AsamK
5cda87ee0e Fix native access warning in native build 2026-03-01 10:14:45 +01:00
AsamK
7384407823 Update man page 2026-03-01 09:50:22 +01:00
AsamK
7fa56a37fd Update CI actions 2026-03-01 09:29:19 +01:00
AsamK
8fcd953ece Always download long text attachments and use them as message body
Fixes #1901
2026-03-01 09:29:19 +01:00
AsamK
775236efc3 Update tests 2026-02-28 14:05:55 +01:00
AsamK
4b8dec26a9 Downgrade jackson library 2026-02-28 13:45:56 +01:00
AsamK
d94e05c38c Update test file 2026-02-28 13:45:56 +01:00
AsamK
1bbf98fac0 Update dependencies 2026-02-28 13:45:30 +01:00
AsamK
c70515035f Add missing flags to jsonrpc client 2026-02-28 13:45:30 +01:00
AsamK
a9d235b7f1 Add new commands to jsonrpc client 2026-02-28 13:45:30 +01:00
AsamK
92ded3fdf2 Fix incorrect cli definition 2026-02-28 13:45:30 +01:00
AsamK
aa1ed9e233 Add support for sending adminDelete messages 2026-02-28 11:59:31 +01:00
AsamK
3b6c199b1d Add pinMessage and unpinMessage commands
Closes #1923
2026-02-28 11:50:44 +01:00
AsamK
6d22ceef24 Support receiving admin delete messages 2026-02-28 11:30:33 +01:00
AsamK
54ff59737e Update libsignal-service-java
Fixes #1937
2026-02-28 11:14:53 +01:00
AsamK
516a37ba69 Fix accepting group invite using PNI
Fixes #1841
2026-02-28 10:15:05 +01:00
AsamK
6a6bebd503 Add support for receiving pin/unpin messages
Related #1923
2026-02-28 09:37:29 +01:00
AsamK
f9cbfa6d6c Invert urgent boolean in Message to be consistent 2026-02-25 21:43:52 +01:00
Kai Kozlov
d4b3816c5d
Add --no-urgent flag to send command (#1933)
* Add --no-push flag to send command

Expose the server's `urgent` parameter so callers can skip sending a
push notification (FCM/APNs) to the recipient. The message is still
delivered in real-time over WebSocket if the recipient's app is active.

The flag is added to the Message record (following the same pattern as
viewOnce) and threaded through ManagerImpl and SendHelper, keeping the
Manager interface unchanged.

* Rename --no-push flag to --no-urgent

Align with the protocol naming as suggested by the maintainer.
The flag controls the 'urgent' parameter on the server request.
2026-02-25 21:42:51 +01:00
AsamK
4a35d47515 Set explicit console colors for qr code 2026-02-25 21:37:41 +01:00
AsamK
52d4d61e2b Improve aci/pni handling in storage contact sync 2026-02-25 21:36:10 +01:00
AsamK
5bff902394 Configure signal service logger 2026-02-25 21:02:22 +01:00
AsamK
f33eb86335 Fix remote updates of unregistered contacts 2026-02-25 20:23:44 +01:00
AsamK
2ea26b9d1b Load recipient profiles in listContacts command if required 2026-02-25 20:08:23 +01:00
AsamK
10fa3e1619 Load unregistered_timestamp for recipient 2026-02-25 20:08:01 +01:00
AsamK
956e17c81c Improve aci/pni comparison in contact record processor 2026-02-25 19:49:29 +01:00
AsamK
6f749352d8 Split unregistered recipients when loading profile fails with 404 2026-02-25 19:48:58 +01:00
AsamK
5f3f6c071b Update libsignal-service-java
Fixes #1931
2026-02-25 00:50:20 +01:00
Karel Vervaeke
5795d43d0d print qr code when producing a device link uri, but only if System.console is not null 2026-02-19 18:35:04 +01:00
Denys Filonenko
de42f55e37 Fix typo in SendPollCreateCommand.java
Fix typo in error message, when options < 2
2026-02-16 18:22:38 +01:00
AsamK
7e93a15204 Add missing dbus reachability metadata
Fixes #1925
2026-02-15 14:29:13 +01:00
AsamK
715f819c3e Move graalvm reachability-metadata to resources 2026-02-15 14:07:47 +01:00
AsamK
345de8fb5d Update reachability metadata 2026-02-14 15:20:12 +01:00
AsamK
667a47c03a Update dependencies 2026-02-14 13:15:37 +01:00
AsamK
5dd5e304bd Update gradle wrapper 2026-02-14 12:54:45 +01:00
AsamK
60a1589616 Use new graalvm metadata format 2026-02-14 12:54:29 +01:00
AsamK
4d1d28672d Refactor message receive 2026-02-14 12:15:27 +01:00
Brian (bex) Exelbierd
fefca7d837 Add --ignore-avatars and --ignore-stickers CLI flags
Implement two new CLI flags to disable downloading avatars and sticker
packs during message reception, following the existing pattern of
--ignore-attachments and --ignore-stories flags.

Changes:
- Add --ignore-avatars and --ignore-stickers flags to ReceiveCommand,
  DaemonCommand, and JsonRpcDispatcherCommand
- Extend ReceiveConfig record with ignoreAvatars and ignoreStickers
  fields
- Pass ignoreAvatars as explicit boolean parameter to ProfileHelper,
  SyncHelper, and GroupHelper methods (per maintainer feedback)
- Gate avatar downloads in ProfileHelper (profile avatars), SyncHelper
  (contact avatars), and GroupHelper (group avatars for V1 and V2)
- Gate sticker pack downloads in IncomingMessageHandler for both
  direct sticker messages and sync sticker pack operations
- Update handleSignalServiceDataMessage and handleSyncMessage to pass
  full ReceiveConfig instead of individual boolean flags
- Update man page (signal-cli.1.adoc) with flag documentation
- Add entries to CHANGELOG.md

When these flags are set, the respective content is not downloaded
during message reception. Metadata (avatar paths, sticker pack IDs)
is still stored, and existing FileNotFoundException handling will
surface if content is later requested but wasn't downloaded.

Fixes #1903
Closes #1904
2026-02-14 12:15:13 +01:00
AsamK
d9f5a573cd Update graalvm jni config
Fixes #1919
2026-02-06 19:26:07 +01:00