Upgrade libsignal-service-java
This should resolve #30 (closed) and might help with #28 (closed), #24 (closed) and maybe others. It updates the version of libsignal-service-java to the latest one published by the signal-cli author, which seems to roughly line up with the latest one published by Signal themselves.
Client Protocol Changes
This merge request creates some changes to the signald client protocol. Some of these were difficult to avoid, others were long overdue. I haven't tracked down all of the changes, but here is a partial list:
- Most fields whose value's were phone numbers are now of type
JsonAddress
.-
recipientNumber
is being replaced withrecipientAddress
, aJsonAddress
, in all commands that supportedrecipientNumber
. -
JsonAddress
is intended to include multiple possible identifiers for an account, but right now you will realistically only need to worry aboutnumber
, notuuid
. That will likely change in the future when I figure out UUIDs. signal-cli doesn't have much UUID support, so I can't just copy what they did.
-
- in
JsonDataMessage
:-
message
has been renamed tobody
. -
groupInfo
has been renamed togroup
.
-
-
send
command now responds with a list ofJsonSendMessageResult
objects.-
attachmentFilenames
has been fully removed fromsend
. Useattachments
instead.
-
-
react
command is now available to send reactions. - There have been some tweaks to incoming message data structure. While I don't currently have any good documentation of what changed, I do have documentation of the new structure of
JsonDataMessage
(the only messages most clients care about) andJsonSyncMessage
.
Most of the protocol is documented on the wiki page I made for it. Not all of the request types are documented there, but the major changes are and everything is up to date in the README.md. Only the wiki documents the incoming message protocol though. I'm trying to move the remaining parts of the request types over to the wiki.
Protocol changes
No further changes to the client protocol are expected for this MR. In the future, I'm working on a way to make protocol changes less painful. If you are interested in trying this, get in touch (IRC, email me or just file an issue)
Clients
If you are a client author that I haven't already spoken with, please let me know in the comments below. I'd like to avoid merging this until most clients have updated. Known clients:
- libpurple-signald - Updated to support the new protocol.
- semaphore - Updated to support the new protocol.
In the future, I'm looking for ways to make this less painful for client authors. If you're a client author and you have some input on this topic, leave a comment below or otherwise get in touch with me (always available via email)
please comment below with any questions or concerns. At this point I'm also interested in any stack traces you see using this branch. I'm not aware of much that should cause an exception.