doc.txt
author Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
Sun, 12 Sep 2010 18:20:53 +0200
changeset 167 97f93fa3cd95
parent 136 405f99d8f3c5
permissions -rw-r--r--
Change socks5.c to s5b.c in the headers and cmakelist
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
113
cb5adb25ad87 The start of doc
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
     1
DOCUMENTATION:
cb5adb25ad87 The start of doc
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
     2
cb5adb25ad87 The start of doc
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
     3
I: Jingle
132
4fef4ced1e97 Fix the doc
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 113
diff changeset
     4
Jingle is a module whose purpose is to allow other modules to work together.
4fef4ced1e97 Fix the doc
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 113
diff changeset
     5
There are two sorts of modules jingle can work with: application modules
4fef4ced1e97 Fix the doc
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 113
diff changeset
     6
handle or produce data (e.g. File Transfer, Voice) and transport modules
4fef4ced1e97 Fix the doc
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 113
diff changeset
     7
transport the data using some method/protocol (e.g In-Band Bytestreams, SOCKS5
4fef4ced1e97 Fix the doc
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 113
diff changeset
     8
Bytestreams).
4fef4ced1e97 Fix the doc
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 113
diff changeset
     9
The "sub-modules" must implement a set of functions and register to the jingle
4fef4ced1e97 Fix the doc
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 113
diff changeset
    10
module.
4fef4ced1e97 Fix the doc
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 113
diff changeset
    11
The jingle module will catch and dispatch incoming jingle iqs and also offer an
4fef4ced1e97 Fix the doc
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 113
diff changeset
    12
interface between apps and trans modules. The module also keep track of all
4fef4ced1e97 Fix the doc
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 113
diff changeset
    13
initialized sessions in a linked list of JingleSession structures. This
4fef4ced1e97 Fix the doc
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 113
diff changeset
    14
structure contains all the relevant informations about a session together with a
4fef4ced1e97 Fix the doc
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 113
diff changeset
    15
linked list of SessionContent, a structure containing information about a
4fef4ced1e97 Fix the doc
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 113
diff changeset
    16
specific content.
4fef4ced1e97 Fix the doc
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 113
diff changeset
    17
SessionContent contains pointer to fonctions in the application and transport
4fef4ced1e97 Fix the doc
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 113
diff changeset
    18
modules and opaque pointers to the internal representation of the app and
4fef4ced1e97 Fix the doc
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 113
diff changeset
    19
transport by the corresponding app and transport modules.
113
cb5adb25ad87 The start of doc
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    20
cb5adb25ad87 The start of doc
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    21
An application module must provide:
cb5adb25ad87 The start of doc
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    22
- check: check if the description of a JingleContent is correct;
cb5adb25ad87 The start of doc
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    23
- handle: each application have some options not conventional, so handle is the
cb5adb25ad87 The start of doc
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    24
          less option. We give him all the jingle iqs than other function doesn't
cb5adb25ad87 The start of doc
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    25
          handle;
cb5adb25ad87 The start of doc
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    26
- tomessage: add the gconstpointer to a given node;
cb5adb25ad87 The start of doc
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    27
- handle_data: when the peer send data to us, the trans module catch it and
cb5adb25ad87 The start of doc
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    28
               give it to jingle. After jingle give it to the apps via this
cb5adb25ad87 The start of doc
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    29
               function;
cb5adb25ad87 The start of doc
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    30
- start: the session have been accepted we can init our transfer;
cb5adb25ad87 The start of doc
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    31
- send: it's call until there is datas to send;
cb5adb25ad87 The start of doc
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    32
- stop: we've got a session-terminate, we need to close transfer, files, ...
136
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 132
diff changeset
    33
- info: give printable informations to show before accept content.
113
cb5adb25ad87 The start of doc
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    34
cb5adb25ad87 The start of doc
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    35
An transport module must provide:
cb5adb25ad87 The start of doc
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    36
- check: the same as application;
cb5adb25ad87 The start of doc
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    37
- tomessage: idem;
cb5adb25ad87 The start of doc
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    38
- xmlns: util when we got only funcs, to know who are we;
cb5adb25ad87 The start of doc
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    39
- new: to create a new transport node, with default options;
136
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 132
diff changeset
    40
- send: to send data given by apps via jingle;
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 132
diff changeset
    41
- info: give printable informations to show before accept content.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 132
diff changeset
    42
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 132
diff changeset
    43
More over the sub-modules can handle jingle.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 132
diff changeset
    44
The applications modules would handle jingle to send theirs data and the
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 132
diff changeset
    45
transports modules to say they handle data.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 132
diff changeset
    46
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 132
diff changeset
    47
II: Jingle File Transfer (JFT)
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 132
diff changeset
    48
JFT is an application module design for the file transfer (XEP 234).
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 132
diff changeset
    49
It provides 1 commande (/jft) with several options.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 132
diff changeset
    50
Options are :
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 132
diff changeset
    51
- send: to send a file.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 132
diff changeset
    52
- info: to see a list of files incoming and outgoing.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 132
diff changeset
    53
- flush: to remove error / rejected / ended file.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 132
diff changeset
    54
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 132
diff changeset
    55
III: Jingle In Band Bytestream (JIBB)
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 132
diff changeset
    56
Nothing to say on this module. He send and got data.