diff --git a/IntroductionClient.md b/IntroductionClient.md index f9c4a12..4046413 100644 --- a/IntroductionClient.md +++ b/IntroductionClient.md @@ -35,7 +35,7 @@ The introduction protocol uses three message types. It should be noted that all * (raw) The session ID **4: ABORT** - This should be send by a contact that encountered an error, so that it can not complete the protocol. The content is a BDF list with two elements: -* (int) The type of the message, here **3** +* (int) The type of the message, here **4** * (raw) The session ID ![IntroductionClient](/uploads/d3ba752c95f938395e7cf4566d107aff/IntroductionClient.png) @@ -53,6 +53,20 @@ Since the messages represent the current state of the introduction protocol, all * All local messages are shared. * All remote messages are shared. +# State Machines + +The client can take two roles in the protocol, either the introducer or the introducee. Both roles have different states and different actions that trigger different transitions. + +## Introducer State Machine +![introducer-state-machine](/uploads/aa817430efef482232c8148c9434118f/introducer-state-machine.png) + +Source: [introducer-state-machine.odg](/uploads/78ae0b41c0e637fa5b5ecb1a4f65ca64/introducer-state-machine.odg) + +## Introducee State Machine +![introducee-state-machine](/uploads/a464d9eb18a471fe69073f3bb01f6016/introducee-state-machine.png) + +Source: [introducee-state-machine.odg](/uploads/0cd56a13dce3909d7b6ce86a8149a156/introducee-state-machine.odg) + # Draft of User Interface ### A user can make the introduction by clicking the toolbar button on the top right of the contact list.