-
-
Notifications
You must be signed in to change notification settings - Fork 308
Feature Matrix
John Freed edited this page Aug 23, 2021
·
96 revisions
feature | plaintext CLI | json CLI8 | dbus |
---|---|---|---|
addDevice | ✅ | ✅ | ✅1 |
block | ✅ | ✅ | ✅3 |
daemon2 | ✅ | NA18, 22 | ✅ |
getObjectPath | NA22 | NA22 | ✅ |
getUserStatus | ✅ | ✅ | ✅1, 13 |
isAdmin | ❌ | ❌ | ✅1 |
isMember | ❌ | ❌ | ✅ |
isRegistered | ❌ | ❌ | ✅1 |
joinGroup | ✅ | ✅ | ✅ |
jsonRpc | ✅ | ✅ | NA22 |
link | ✅ | ❌ | ✅ |
listContacts | ✅ | ❌ | ✅15 |
> getContactName | ✅ | ❌ | ✅ |
> getContactNumber | ✅ | ❌ | ✅ |
> isContactBlocked | ✅ | ❌ | ✅ |
> listNumbers | ✅ | ❌ | ✅ |
listDevices | ✅ | ❌ | ✅1 |
listGroups | ✅ | ✅ | ✅19 |
> getGroupAdminMembers | ✅26 | ✅26 | ✅1 |
> getGroupIds | ✅26 | ✅26 | ✅ |
> getGroupInviteUri | ✅26 | ✅26 | ✅1 |
> getGroupMembers | ✅26 | ✅26 | ✅ |
> getGroupName | ✅26 | ✅26 | ✅ |
> getGroupPendingMembers | ✅26 | ✅26 | ✅1 |
> getGroupRequestingMembers | ✅26 | ✅26 | ✅1 |
> isGroupBlocked | ✅26 | ✅26 | ✅ |
listIdentities | ✅ | ❌ | ✅1, 16 |
> listIdentity | ✅17 | ❌ | ✅1 |
listen | ❌ | ❌ | ✅1 |
quitGroup | ✅ | ✅ | ✅ |
receive | ✅ | ✅ | ✅ |
register | ✅ | ❌ | ✅ |
> registerWithCaptcha | ✅12 | ❌ | ✅ |
remoteDelete | ✅ | ✅ | ✅ |
> sendGroupRemoteDeleteMessage | ✅ | ✅ | ✅ |
> sendRemoteDeleteMessage | ✅ | ✅ | ✅ |
removeDevice | ✅ | ✅ | ✅1 |
removePin | ✅ | ✅ | ✅1 |
send | ✅ | ✅ | ✅ |
> sendEndSessionMessage | ✅ | ✅ | ✅ |
> sendMessage | ✅ | ✅ | ✅ |
> sendMessageV2 | ❌ | ❌ | ✅1 |
> send URL as attachment | ❌ | ❌ | ✅1 |
> sendGroupMessage | ✅ | ✅ | ✅ |
> sendGroupMessageV2 | ❌ | ❌ | ✅1 |
> sendNoteToSelfMessage | ✅ | ✅ | ✅ |
> sendNoteToSelfMessageV2 | ❌ | ❌ | ✅1 |
> groupCallUpdate | ❌ | ❌ | ❌ |
> payment | ❌ | ❌ | ❌ |
> preview | ❌ | ❌ | ❌ |
> sticker | ❌ | ❌ | ❌ |
> viewOnce | ❌ | ❌ | ❌ |
sendContacts | ✅ | ✅ | ✅ |
sendReaction | ✅ | ✅ | ✅ |
> sendMessageReaction | ✅ | ✅ | ✅ |
> sendGroupMessageReaction | ✅ | ✅ | ✅ |
sendSyncRequest | ✅ | ✅ | ✅1, 23 |
sendTyping | ✅ | ✅ | ✅1 |
setPin | ✅ | ✅ | ✅1 |
trust | ✅ | ✅ | ✅1, 25 |
unblock | ✅ | ✅ | ✅4 |
unlisten | ❌ | ❌ | ✅1 |
unregister | ✅ | ❌ | ✅1, 21 |
updateAccount | ✅ | ✅ | ✅1 |
updateContact | ✅ | ✅ | ✅10 |
> setContactName | ✅ | ✅ | ✅ |
> setExpirationTimer | ✅ | ✅ | ✅1 |
updateGroup27 | ✅ | ✅ | ✅20 |
updateProfile | ✅ | ✅ | ✅ |
uploadStickerPack | ✅ | ❌ | ✅1 |
verify | ✅ | ❌ | ✅ |
> verifyWithPin | ✅14 | ❌ | ✅ |
version | ✅ | ✅ | ✅ |
feature | daemon | dbus |
---|---|---|
CallMessageReceived | ❌ | ❌ |
MessageReceived | ✅ | ✅ |
> receive attachments11 | ✅ | ✅ |
OutgoingPaymentMessageReceived | ❌ | ❌ |
ReceiptReceived | ✅ | ✅ |
SyncMessageReceived | ✅ | ✅ |
TypingMessageReceived | ❌ | ❌ |
feature | plaintext CLI | json CLI8 | dbus |
---|---|---|---|
Call messages | ❌ | ❌ | ❌ |
Attachment progress listener | ❌ | ❌ | ❌ |
Payment Notifications | ❌ | ❌ | ❌ |
Receive typing messages | ❌ | ❌ | ❌ |
feature | plaintext CLI | json CLI8 | dbus |
---|---|---|---|
getAttachments | ✅ | ✅ | ✅ |
getDataPath | ❌ | ❌ | ✅1 |
getDestination | ✅ | ✅ | ✅ |
getGroupId | ✅ | ✅ | ✅ |
getMessage | ✅ | ✅ | ✅ |
getSender | ✅ | ✅ | ✅ |
getSource | ✅ | ✅ | ✅ |
getTimestamp | ✅ | ✅ | ✅ |
feature | plaintext CLI | json CLI8 | dbus |
---|---|---|---|
content | ✅ | ✅ | ✅ |
thumbnail9 | ✅ | ✅ | ❔ |
contentType | ✅ | ✅ | ✅1, 6 |
filename | ✅ | ✅ | ✅1 |
remoteId | ✅ | ✅ | ✅1, 6 |
size | ✅ | ✅ | ✅1, 6 |
keyLength | ✅ | ✅1 | ✅1 |
width | ✅ | ✅1 | ✅1 |
height | ✅ | ✅1 | ✅1 |
voiceNote | ✅ | ✅1 | ✅1 |
caption | ✅ | ✅1 | ✅1 |
borderless | ❌ | ❌ | ❌ |
gif7 | NA22 | NA22 | NA22 |
preview | ❌ | ❌ | ❌ |
digest | ❌ | ❌ | ❌ |
uploadTimestamp | ❌ | ❌ | ❌ |
listener | ❌ | ❌ | ❌ |
> cancelationSignal | ❌ | ❌ | ❌ |
resumableUploadSpec | ✅ | ❌ | ❌ |
feature | plaintext CLI | json CLI8 | dbus |
---|---|---|---|
timestamp | ✅ | ✅ | ❔ |
message | ✅ | ✅ | ❔ |
expiresInSeconds | ✅ | ✅ | ❔ |
viewOnce | ✅ | ✅ | ❔ |
reaction | ✅ | ✅ | ❔ |
quote | ✅ | ✅ | ❔ |
mentions | ✅ | ✅ | ❔ |
attachments | ✅ | ✅ | ❔ |
sticker | ✅ | ✅ | ❔ |
remoteDelete | ✅ | ✅ | ❔ |
contacts | ✅ | ✅ | ❔ |
groupInfo | ✅ | ✅ | ❔ |
feature | plaintext CLI | json CLI8 | dbus |
---|---|---|---|
id | ✅ | ✅ | ❔ |
author | ✅ | ✅ | ❔ |
text | ✅ | ✅ | ❔ |
attachments9 | ✅ | ✅ | ❔ |
- Proposed https://github.com/johnfreed/signal-cli
- Runs daemon or communicates with running daemon
- Implemented indirectly:
setContactBlocked=true
orsetGroupBlocked=true
- Implemented indirectly:
setContactBlocked=false
orsetGroupBlocked=false
- Data is provided to output stream (if available from Signal servers) or accepted from input stream
- Provided indirectly by interpreting content file written to disk
- Obsolete (no longer part of Signal API)
- Supports JsonRpc command.
- A thumbnail has the data of an attachment, but is also part of a quoted attachment
-
updateContact
is implemented indirectly through two subcommands:setContactName
andsetExpirationTimer
- Attachments are written to disk, with remoteId sent over DBus
- Provided via the
--captcha
option - Provided via the
isRegistered
command - Provided via the
--pin
option - Provided indirectly by the
listNumbers
command, which returns an array of contact numbers, followed by a series of calls togetContactName
andisContactBlocked
- Provided indirectly by the
listNumbers
command, which returns an array of contact numbers, followed by a series of calls tolistIdentity
, which returns a four-element array - Provided via the
--number
option -
daemon
command supports Json output, but not input. Use theJsonRpc
command for Json input. - Provided indirectly by
getGroupIds
and a series of calls to
> getGroupAdminMembers
> getGroupIds
> getGroupInviteUri
> getGroupMembers
> getGroupName
> getGroupPendingMembers
> getGroupRequestingMembers
> isGroupBlocked
- Send the name of a zero-length file to delete the group avatar
- Kills daemon upon successful unregister command
- NA = Not Applicable
- Only works if a secondary device is running the daemon.
- Only works if a primary device is running the daemon.
- Does not implement the
-a, --trust-all-known-keys
option - Provided as part of the subcommand's
-d, --detailed
option or signal-cli's--output=json
option. - Creates a new group if the groupId or base64GroupId is omitted.