Structured Information Management Transfer Protocol (SIMTP) definition Version 0.1.4 2005-12-14 MERIGHI Marcus McMer (a) Tor dot AT Changelog: (this is _very_ fragmentary) 2005-12-14 Incremented version to 0.1.4 since there are new options: KEYB, SRCHRES, TREEVIEW, COLL, EXPAND 2005-06-24 Removed WAIT; ``Upgraded'' to 0.1.1. 2005-06-23 Copied example conversation from real daemon output. Yeah! ``Upgraded'' to 0.1.0 since there's something that works. 2005-06-19 Integrated simap S: Server; C: Client rule 1: Client always answers only! Exceptions: END TRANS, SESS. See below. rule 2: if C: speaks without beeing asked, S: has to confirm with same statement. rule 3: every line of communication is prepended with a transaction identifier (tid). Exceptions: BEGIN, END. These are followed by the tid. rule 4: after S: issues TRANS, only transfers of mode "ALRM" are permitted. rule 5: S: only listens when TRANS was sent; otherwise it says "shut up, it's my turn!". Just kidding, - Synopsis: Command $tid [ Mode ] Type Options - Commands: - BEGIN Starts a transaction type Always followed by an unused (within the session) $tid and a type, optionally followed by (an) option(s). - END Ends a transaction Always followed by the $tid of the transaction that is to be ended. - Modes Since Types are non-ambiguous the Mode can be omitted! - SYST Will be handled between S: and C:, no user interference. Types: - SESS Session ID ($sid) negotiation. An extra Type is required since C: might need to know it's about session negotiation and answers without user interaction: a web page, for instance. Used only once at the beginning of a _new_ Session. Transfered by C: to S: right at the start of talks if C: wants to resume. - TRANS 'Transfer' - S: tells C: to transfer user input. - QUIET 'Shut up, stupid!' - if C: speaks without S: having sent "TRANS" it gets BEGIN tid-001 SYST QUIET HUGE tid-001 Shut up stupid, it's my turn END tid-001 - CONT 'Container' Types: - SUBM 'Submit' This container type surrounds one or more FORM entries. It tells the client to transfer all surrounded FORM entries when TRANS is issued by S: - PULL 'Pulldown' lets user select among given entries. Options: - MULTI User may select more then one item. The item should therefore be displayed with more than one option visible. - TREEVIEW 'tree view' - make a tree of the entries. Useful for pathed entries. - COLL [TREEVIEW] 'collapse tree' - fully collapse tree in TREEVIEW - EXPAND 1|2|N|ALL [TREEVIEW] 'expand tree' - expand as many hirarchy levels as stated after "EXPAND" in TREEVIEW. - MENU Options: - KEYB "a" Client should make menu entry triggered by control key (i386: ctrl) plus the key following "KEYB". - PATH Options: - SRCHRES "Search Result" indicates that this entry has to be pointed out. Useful, if pathed entries are used and therefore not all container entries are of interest (apart from telling the user where she is navigating). May occurr multiple in one container. - FORM User will have to interact by supplying data The data given by the user has therefore to be returned to S: Types: - SEL 'Selection' - User has choice between given options What user sees (and chooses) is not, what is transfered; in this case $tid is followed by a whitespace, an id a whitespace and the text to show. Options: - NOMOD 'No modify' - tells C: to show- but not to make editable. - SELECTED 'Selected' - tells C: to show this entry as selected. - INPUT options - STR 'String' - User has to use his/her keyboard! Options: - NOMOD 'No modify' - tells C: to show- but not to make editable. - PWD 'Password' - tells C: to not to print or mask what user types. Maybe obsolete since authentication and session negotiation is done by siap. - CAL 'Calendar' - SIZE options - INPUT options - STR - BIN 'Binary' - User has to supply some binary data, like a file. - MIME 'mime type' - apart Options: - text/x-sim-areaconf - text/x-sim-spotsel - text/x-sim-ticketprint - DISP User will be presented some data, no input required and allowed by user. The focus of the types and options is formatting and display of information. There should be more meta information usable to the client. This means more types an options, though. Types: - TEXT 'Text' Options - CAL 'Calendar' - Size Options - IMAG 'Image' Options - JPG - GIF - PNG - PDF 'Portable Document Format (sic! ;-)'. - CAPT 'Caption' Options - Size Options - Hirarchy Options - DESC 'Description'. This is not "core" information and thus not required to to the job. But yet it is always displayed. Somewhere between caption and help. Options - Size Options - HELP Not necessarely displayed right from the start. May be just a user selectable area which triggers display of the helping information. Options: - Size Options - WARN - ERROR An error message; Options: - Size Options - X-FOOBAR Custom Type; SITP will never use X-* by protocol! But yet such Types should honor the rule of "Types are non- ambiguous", which implies writing an e-mail to simtp (at) tor (dot) at if you use one. - ALRM This mode is intended use after TRANS only; when S: is listening for C: to return user input data and has to say something. - DISC 'Disconnect' - Disconnection message; _must_ provide remaining time before disconnection. - UNKNOWN 'unknown' - An unknown error occurred. - SEC 'Security' - Security alerts. - PROTO 'Protocol error' - DATA 'Data' - Some data (management) error. - CONF 'config' - something was found in an un- or misconfigured state. - X-BARFOO - Options Groups These are refered to from above as a group instead of mentioning each option multiple times. These are just relative and real sizes in inches/mm depend on the client (html-o-phil)! - SIZE Options - TINY - SMALL - MEDIUM - Default - BIG - HUGE - INPUT Options - REQ (required) - OPT (optional) - HIRARCHY Options - H1 (highest level) - H2 - H3 - H4 - H5 (lowest level) - FORMAT options: - BGC - Background colour - TXTC - Text colour Example Conversation C: SESS sid-000 C: USER FOOBAR C: PASS S0mTH1ng S: BEGIN 465313 SYST SESS S: 465313 699437 S: END 465313 S: BEGIN 828827 FORM SEL MENU TINY S: 828827 Dienste S: END 828827 S: BEGIN 538754 FORM SEL MENU TINY S: 538754 Gruppen S: END 538754 S: BEGIN 244424 FORM SEL MENU TINY S: 244424 Immobilien S: END 244424 S: BEGIN 275109 FORM SEL MENU TINY S: 275109 Mobilien S: END 275109 S: BEGIN 324628 FORM SEL MENU TINY S: 324628 Personen S: END 324628 S: BEGIN 674859 FORM SEL MENU TINY S: 674859 Server S: END 674859 S: BEGIN 217818 CONT SUBM S: BEGIN 91589 FORM STR SMALL S: 91589 Suchbegriff S: END 91589 S: END 217818 S: BEGIN 925551 SYST TRANS C: 91589 Pers* C: END 925551 S: END 925551 S: BEGIN 997511 FORM SEL MENU TINY S: 997511 Personen S: END 997511 S: BEGIN 448590 SYST TRANS C: 997511 Personen C: END 448590 S: END 448590 S: BEGIN 796537 FORM SEL MENU SMALL S: 796537 Marcus Merighi S: END 796537 S: BEGIN 812555 SYST TRANS C: 244424 Immobilien C: END 812555 S: END 812555 S: BEGIN 25664 FORM SEL MENU SMALL S: 25664 Theater Phoenix LINZ S: END 25664 S: BEGIN 401719 SYST TRANS S: BEGIN 495019 ALRM PROTO S: 495019 prot_sep missing S: END 495019