diff --git a/Forum-Sharing-Client.md b/Forum-Sharing-Client.md index 5d8cab2..64c1c91 100644 --- a/Forum-Sharing-Client.md +++ b/Forum-Sharing-Client.md @@ -1,14 +1,24 @@ -The forum sharing client is a [BSP client](BSP) that allows users to share forums with their contacts, who may accept or decline the invitations. +The forum sharing client is a [BSP client](BSP) that allows users to share forums with their contacts, who may accept or decline the invitations. It is used in conjunction with the [forum client](forum client). -### Group identifiers +### Identifier -The client's identifier is `org.briarproject.briar.forum.sharing`. +The client's identifier is `org.briarproject.briar.forum.sharing`. The major version is 0. -The client uses a separate BSP group for each pair of contacts. The [group descriptor](BSP#group-identifiers) is a [BDF list](BDF) containing the unique IDs of the contacts' identities, sorted in ascending order as byte strings. +### Groups + +The client uses a separate BSP group for communicating with each contact. The [group descriptor](BSP#group-identifiers) is a [BDF list](BDF) containing the unique IDs of the contacts' identities, sorted in ascending order as byte strings. + +### Roles + +All communication happens between two contacts, who have symmetrical roles. + +### Sessions + +The messages exchanged between two contacts referring to a given forum constitute a session. The forum's unique ID is used as the session ID. ### Message types -The sharing protocol uses five message types. All communication happens between two contacts, who have symmetrical roles. The messages referring to each forum constitute a session. +The protocol uses five message types. **0: INVITE** - Sent by either party to start or restart a session. The message body is a BDF list with four elements: `messageType` (int), `previousMessageId` (unique ID or null), `descriptor` (list), and `message` (string or null).