Skip to content

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 with recipientAddress, a JsonAddress, in all commands that supported recipientNumber.
    • JsonAddress is intended to include multiple possible identifiers for an account, but right now you will realistically only need to worry about number, not uuid. 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 to body.
    • groupInfo has been renamed to group.
  • send command now responds with a list of JsonSendMessageResult objects.
    • attachmentFilenames has been fully removed from send. Use attachments 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) and JsonSyncMessage.

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:

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.

Edited by Finn

Merge request reports