author | Nicolas Cornu <nicolas.cornu@ensi-bourges.fr> |
Sun, 12 Sep 2010 18:20:53 +0200 | |
changeset 167 | 97f93fa3cd95 |
parent 148 | cb40539b88b7 |
permissions | -rw-r--r-- |
144
efc92c939fef
Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
138
diff
changeset
|
1 |
/** |
efc92c939fef
Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
138
diff
changeset
|
2 |
* @file jingle.h |
efc92c939fef
Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
138
diff
changeset
|
3 |
* @brief jingle.c header file |
efc92c939fef
Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
138
diff
changeset
|
4 |
* @author Nicolas Cornu |
efc92c939fef
Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
138
diff
changeset
|
5 |
*/ |
efc92c939fef
Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
138
diff
changeset
|
6 |
|
14
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
7 |
#ifndef __JINGLE_H__ |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
8 |
#define __JINGLE_H__ 1 |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
9 |
|
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
10 |
#include <glib.h> |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
11 |
#include <loudmouth/loudmouth.h> |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
12 |
|
74 | 13 |
|
144
efc92c939fef
Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
138
diff
changeset
|
14 |
/** Jingle namespace */ |
14
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
15 |
#define NS_JINGLE "urn:xmpp:jingle:1" |
144
efc92c939fef
Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
138
diff
changeset
|
16 |
/** Jingle Errors namespace */ |
14
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
17 |
#define NS_JINGLE_ERRORS "urn:xmpp:jingle:errors:1" |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
18 |
|
137
14ef2cb0bd2b
Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
133
diff
changeset
|
19 |
/** |
144
efc92c939fef
Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
138
diff
changeset
|
20 |
* @enum JingleAction |
efc92c939fef
Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
138
diff
changeset
|
21 |
* @brief Jingle actions constants |
137
14ef2cb0bd2b
Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
133
diff
changeset
|
22 |
*/ |
14
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
23 |
typedef enum { |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
24 |
JINGLE_UNKNOWN_ACTION, |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
25 |
JINGLE_CONTENT_ACCEPT, |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
26 |
JINGLE_CONTENT_ADD, |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
27 |
JINGLE_CONTENT_MODIFY, |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
28 |
JINGLE_CONTENT_REJECT, |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
29 |
JINGLE_CONTENT_REMOVE, |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
30 |
JINGLE_DESCRIPTION_INFO, |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
31 |
JINGLE_SECURITY_INFO, |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
32 |
JINGLE_SESSION_ACCEPT, |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
33 |
JINGLE_SESSION_INFO, |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
34 |
JINGLE_SESSION_INITIATE, |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
35 |
JINGLE_SESSION_TERMINATE, |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
36 |
JINGLE_TRANSPORT_ACCEPT, |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
37 |
JINGLE_TRANSPORT_INFO, |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
38 |
JINGLE_TRANSPORT_REJECT, |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
39 |
JINGLE_TRANSPORT_REPLACE, |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
40 |
} JingleAction; |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
41 |
|
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
42 |
typedef enum { |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
43 |
JINGLE_CREATOR_INITIATOR, |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
44 |
JINGLE_CREATOR_RESPONDER, |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
45 |
} JingleCreator; |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
46 |
|
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
47 |
typedef enum { |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
48 |
JINGLE_SENDERS_BOTH, |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
49 |
JINGLE_SENDERS_INITIATOR, |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
50 |
JINGLE_SENDERS_NONE, |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
51 |
JINGLE_SENDERS_RESPONDER, |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
52 |
} JingleSenders; |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
53 |
|
144
efc92c939fef
Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
138
diff
changeset
|
54 |
/** |
efc92c939fef
Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
138
diff
changeset
|
55 |
* @brief Represent an incoming jingle IQ |
efc92c939fef
Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
138
diff
changeset
|
56 |
* |
efc92c939fef
Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
138
diff
changeset
|
57 |
* This struct is used to represent an incoming jingle IQ. |
efc92c939fef
Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
138
diff
changeset
|
58 |
* It should be destroyed as soon as it is not needed using #jingle_free_jinglenode |
efc92c939fef
Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
138
diff
changeset
|
59 |
*/ |
14
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
60 |
typedef struct { |
144
efc92c939fef
Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
138
diff
changeset
|
61 |
/** |
efc92c939fef
Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
138
diff
changeset
|
62 |
* @brief Pointer to the original LmMessage |
efc92c939fef
Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
138
diff
changeset
|
63 |
*/ |
18
d0ddcfd31eb8
Change the way the header files are included.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
15
diff
changeset
|
64 |
LmMessage *message; |
d0ddcfd31eb8
Change the way the header files are included.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
15
diff
changeset
|
65 |
|
144
efc92c939fef
Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
138
diff
changeset
|
66 |
/** |
efc92c939fef
Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
138
diff
changeset
|
67 |
* @brief Pointer to the <jingle> element |
efc92c939fef
Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
138
diff
changeset
|
68 |
*/ |
18
d0ddcfd31eb8
Change the way the header files are included.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
15
diff
changeset
|
69 |
LmMessageNode *node; |
d0ddcfd31eb8
Change the way the header files are included.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
15
diff
changeset
|
70 |
|
144
efc92c939fef
Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
138
diff
changeset
|
71 |
/** |
efc92c939fef
Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
138
diff
changeset
|
72 |
* @brief Jingle action of the incoming IQ |
efc92c939fef
Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
138
diff
changeset
|
73 |
*/ |
14
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
74 |
JingleAction action; |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
75 |
|
144
efc92c939fef
Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
138
diff
changeset
|
76 |
/** |
efc92c939fef
Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
138
diff
changeset
|
77 |
* @brief Full JID of the entity that has initiated the session flow |
efc92c939fef
Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
138
diff
changeset
|
78 |
* |
efc92c939fef
Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
138
diff
changeset
|
79 |
* May be different from the 'from' address on the IQ-set of the |
14
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
80 |
* session-initiate message. |
144
efc92c939fef
Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
138
diff
changeset
|
81 |
* recommended for session-initiate, not recommended otherwise. |
efc92c939fef
Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
138
diff
changeset
|
82 |
*/ |
14
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
83 |
const gchar *initiator; |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
84 |
|
144
efc92c939fef
Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
138
diff
changeset
|
85 |
/** |
efc92c939fef
Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
138
diff
changeset
|
86 |
* @brief Full JID of the entity that has replied to the initation. |
efc92c939fef
Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
138
diff
changeset
|
87 |
* |
efc92c939fef
Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
138
diff
changeset
|
88 |
* Can be different from the 'to' address on the IQ-set. |
efc92c939fef
Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
138
diff
changeset
|
89 |
* recommended for session-accept, not recommended otherwise. |
efc92c939fef
Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
138
diff
changeset
|
90 |
*/ |
14
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
91 |
const gchar *responder; |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
92 |
|
144
efc92c939fef
Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
138
diff
changeset
|
93 |
/** |
efc92c939fef
Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
138
diff
changeset
|
94 |
* @brief Random session identifier generated by the initator |
efc92c939fef
Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
138
diff
changeset
|
95 |
*/ |
14
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
96 |
const gchar *sid; |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
97 |
|
144
efc92c939fef
Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
138
diff
changeset
|
98 |
/** |
efc92c939fef
Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
138
diff
changeset
|
99 |
* @brief Linked list of JingleContent. |
efc92c939fef
Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
138
diff
changeset
|
100 |
*/ |
18
d0ddcfd31eb8
Change the way the header files are included.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
15
diff
changeset
|
101 |
GSList *content; |
14
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
102 |
|
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
103 |
} JingleNode; |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
104 |
|
144
efc92c939fef
Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
138
diff
changeset
|
105 |
/** |
efc92c939fef
Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
138
diff
changeset
|
106 |
* @brief Struct used to represent a <content> element of an incoming Jingle IQ |
efc92c939fef
Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
138
diff
changeset
|
107 |
*/ |
14
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
108 |
typedef struct { |
137
14ef2cb0bd2b
Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
133
diff
changeset
|
109 |
/** |
144
efc92c939fef
Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
138
diff
changeset
|
110 |
* @brief pointer to the <content> element |
137
14ef2cb0bd2b
Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
133
diff
changeset
|
111 |
*/ |
21
147f131382dd
Some sessions management code.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
20
diff
changeset
|
112 |
LmMessageNode *node; |
147f131382dd
Some sessions management code.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
20
diff
changeset
|
113 |
|
144
efc92c939fef
Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
138
diff
changeset
|
114 |
/** |
efc92c939fef
Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
138
diff
changeset
|
115 |
* which party originally generated the content type. |
14
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
116 |
* the defined values are "initiator" and "responder" |
137
14ef2cb0bd2b
Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
133
diff
changeset
|
117 |
* (where the default is "initiator"). required. |
14ef2cb0bd2b
Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
133
diff
changeset
|
118 |
*/ |
14
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
119 |
JingleCreator creator; |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
120 |
|
144
efc92c939fef
Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
138
diff
changeset
|
121 |
/** |
efc92c939fef
Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
138
diff
changeset
|
122 |
* how the content definition is to be interpreted by the recipient. |
137
14ef2cb0bd2b
Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
133
diff
changeset
|
123 |
* optional, the default value is "session". |
14ef2cb0bd2b
Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
133
diff
changeset
|
124 |
*/ |
14
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
125 |
const gchar *disposition; // optional, default=session |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
126 |
|
137
14ef2cb0bd2b
Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
133
diff
changeset
|
127 |
/** |
14ef2cb0bd2b
Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
133
diff
changeset
|
128 |
* A unique name or identifier for the content type |
14ef2cb0bd2b
Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
133
diff
changeset
|
129 |
* according to the creator. required. |
14ef2cb0bd2b
Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
133
diff
changeset
|
130 |
*/ |
14
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
131 |
const gchar *name; |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
132 |
|
137
14ef2cb0bd2b
Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
133
diff
changeset
|
133 |
/** |
14ef2cb0bd2b
Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
133
diff
changeset
|
134 |
* which parties in the session will be generating content. |
14
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
135 |
* allowable values are both, initiator, none, responder. |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
136 |
* default is both. |
137
14ef2cb0bd2b
Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
133
diff
changeset
|
137 |
* required for content-modify, optional otherwise |
14ef2cb0bd2b
Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
133
diff
changeset
|
138 |
*/ |
14
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
139 |
JingleSenders senders; |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
140 |
|
137
14ef2cb0bd2b
Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
133
diff
changeset
|
141 |
/** |
14ef2cb0bd2b
Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
133
diff
changeset
|
142 |
* each content element (must) contain one description |
14
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
143 |
* child element that specifies a desired application. |
137
14ef2cb0bd2b
Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
133
diff
changeset
|
144 |
* the connt of this node is app specific. |
14ef2cb0bd2b
Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
133
diff
changeset
|
145 |
*/ |
32
72bbe33f151a
Modify the session-initiate handler among other things.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
31
diff
changeset
|
146 |
LmMessageNode *description; |
14
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
147 |
|
137
14ef2cb0bd2b
Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
133
diff
changeset
|
148 |
/** |
14ef2cb0bd2b
Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
133
diff
changeset
|
149 |
* each content element (must) contain one transport |
14
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
150 |
* child element that specifies a potential transport |
137
14ef2cb0bd2b
Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
133
diff
changeset
|
151 |
* method |
14ef2cb0bd2b
Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
133
diff
changeset
|
152 |
*/ |
32
72bbe33f151a
Modify the session-initiate handler among other things.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
31
diff
changeset
|
153 |
LmMessageNode *transport; |
20
72e53665328e
Add a function to check a file transfert request.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
18
diff
changeset
|
154 |
} JingleContent; |
14
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
155 |
|
144
efc92c939fef
Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
138
diff
changeset
|
156 |
/** |
efc92c939fef
Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
138
diff
changeset
|
157 |
* Represent a jingle action and the "handler" |
efc92c939fef
Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
138
diff
changeset
|
158 |
* (defined in action-handlers.c) for that action. |
efc92c939fef
Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
138
diff
changeset
|
159 |
*/ |
14
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
160 |
struct JingleActionList { |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
161 |
const gchar *name; |
45
c007e112dd54
Delete LmMessage * in handlers
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
44
diff
changeset
|
162 |
void (*handler)(JingleNode *); |
14
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
163 |
}; |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
164 |
|
129
2d5c3efda92a
Add a timeout to the AckHandlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
121
diff
changeset
|
165 |
typedef enum { |
2d5c3efda92a
Add a timeout to the AckHandlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
121
diff
changeset
|
166 |
JINGLE_ACK_RESPONSE, |
2d5c3efda92a
Add a timeout to the AckHandlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
121
diff
changeset
|
167 |
JINGLE_ACK_TIMEOUT |
2d5c3efda92a
Add a timeout to the AckHandlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
121
diff
changeset
|
168 |
} JingleAckType; |
2d5c3efda92a
Add a timeout to the AckHandlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
121
diff
changeset
|
169 |
|
2d5c3efda92a
Add a timeout to the AckHandlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
121
diff
changeset
|
170 |
typedef void (*JingleAckCallback) (JingleAckType type, LmMessage *, gpointer); |
52
d803c882a182
Fix the ack handlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
47
diff
changeset
|
171 |
|
d803c882a182
Fix the ack handlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
47
diff
changeset
|
172 |
typedef struct { |
137
14ef2cb0bd2b
Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
133
diff
changeset
|
173 |
/** |
14ef2cb0bd2b
Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
133
diff
changeset
|
174 |
* function to be called when we receive a response to the IQ |
14ef2cb0bd2b
Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
133
diff
changeset
|
175 |
*/ |
52
d803c882a182
Fix the ack handlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
47
diff
changeset
|
176 |
JingleAckCallback callback; |
129
2d5c3efda92a
Add a timeout to the AckHandlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
121
diff
changeset
|
177 |
|
137
14ef2cb0bd2b
Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
133
diff
changeset
|
178 |
/** |
14ef2cb0bd2b
Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
133
diff
changeset
|
179 |
* additional data to pass to callback |
14ef2cb0bd2b
Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
133
diff
changeset
|
180 |
*/ |
52
d803c882a182
Fix the ack handlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
47
diff
changeset
|
181 |
gpointer *user_data; |
129
2d5c3efda92a
Add a timeout to the AckHandlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
121
diff
changeset
|
182 |
|
137
14ef2cb0bd2b
Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
133
diff
changeset
|
183 |
/** |
14ef2cb0bd2b
Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
133
diff
changeset
|
184 |
* if no response was received after timeout seconds, callback |
14ef2cb0bd2b
Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
133
diff
changeset
|
185 |
* will be called with JINGLE_ACK_TIMEOUT as type |
14ef2cb0bd2b
Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
133
diff
changeset
|
186 |
*/ |
129
2d5c3efda92a
Add a timeout to the AckHandlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
121
diff
changeset
|
187 |
guint timeout; |
2d5c3efda92a
Add a timeout to the AckHandlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
121
diff
changeset
|
188 |
|
137
14ef2cb0bd2b
Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
133
diff
changeset
|
189 |
/** |
144
efc92c939fef
Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
138
diff
changeset
|
190 |
* @private |
137
14ef2cb0bd2b
Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
133
diff
changeset
|
191 |
* |
14ef2cb0bd2b
Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
133
diff
changeset
|
192 |
* date at which the handler was inserted using |
14ef2cb0bd2b
Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
133
diff
changeset
|
193 |
* jingle_new_ack_handler |
14ef2cb0bd2b
Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
133
diff
changeset
|
194 |
*/ |
129
2d5c3efda92a
Add a timeout to the AckHandlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
121
diff
changeset
|
195 |
time_t _inserted; |
2d5c3efda92a
Add a timeout to the AckHandlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
121
diff
changeset
|
196 |
|
137
14ef2cb0bd2b
Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
133
diff
changeset
|
197 |
/** |
144
efc92c939fef
Document new functions, improve existing documentation
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
138
diff
changeset
|
198 |
* @private |
137
14ef2cb0bd2b
Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
133
diff
changeset
|
199 |
* |
14ef2cb0bd2b
Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
133
diff
changeset
|
200 |
* a pointer to the LmMessageHandler created |
14ef2cb0bd2b
Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
133
diff
changeset
|
201 |
* using jingle_new_ack_handler |
14ef2cb0bd2b
Add a Doxyfile to generate the reference using Doxygen.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
133
diff
changeset
|
202 |
*/ |
129
2d5c3efda92a
Add a timeout to the AckHandlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
121
diff
changeset
|
203 |
LmMessageHandler *_handler; |
52
d803c882a182
Fix the ack handlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
47
diff
changeset
|
204 |
} JingleAckHandle; |
d803c882a182
Fix the ack handlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
47
diff
changeset
|
205 |
|
107 | 206 |
typedef struct { |
207 |
const gchar *sid; |
|
208 |
const gchar *from; |
|
209 |
const gchar *name; |
|
210 |
} session_content; |
|
52
d803c882a182
Fix the ack handlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
47
diff
changeset
|
211 |
|
d803c882a182
Fix the ack handlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
47
diff
changeset
|
212 |
LmHandlerResult jingle_handle_ack_iq(LmMessageHandler *handler, |
d803c882a182
Fix the ack handlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
47
diff
changeset
|
213 |
LmConnection *connection, |
d803c882a182
Fix the ack handlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
47
diff
changeset
|
214 |
LmMessage *message, gpointer user_data); |
d803c882a182
Fix the ack handlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
47
diff
changeset
|
215 |
LmMessageHandler *jingle_new_ack_handler(JingleAckHandle *ri); |
129
2d5c3efda92a
Add a timeout to the AckHandlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
121
diff
changeset
|
216 |
void jingle_ack_handler_free(JingleAckHandle *ah); |
14
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
217 |
|
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
218 |
LmMessage *jingle_new_iq_error(LmMessage *m, const gchar *errtype, |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
219 |
const gchar *cond, const gchar *jinglecond); |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
220 |
void jingle_send_iq_error(LmMessage *m, const gchar *errtype, |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
221 |
const gchar *cond, const gchar *jinglecond); |
52
d803c882a182
Fix the ack handlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
47
diff
changeset
|
222 |
|
79
a654afc4a74a
Function to detect which jid resource support jingle.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
75
diff
changeset
|
223 |
gchar *jingle_find_compatible_res(const gchar *jid, const gchar *ns[]); |
a654afc4a74a
Function to detect which jid resource support jingle.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
75
diff
changeset
|
224 |
|
14
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
225 |
void jingle_ack_iq(LmMessage *m); |
52
d803c882a182
Fix the ack handlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
47
diff
changeset
|
226 |
|
d803c882a182
Fix the ack handlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
47
diff
changeset
|
227 |
void jingle_free_jinglenode(JingleNode *jn); |
d803c882a182
Fix the ack handlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
47
diff
changeset
|
228 |
|
14
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
229 |
JingleAction jingle_action_from_str(const gchar* string); |
52
d803c882a182
Fix the ack handlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
47
diff
changeset
|
230 |
|
d803c882a182
Fix the ack handlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
47
diff
changeset
|
231 |
gboolean evscallback_jingle(guint evcontext, const gchar *arg, |
d803c882a182
Fix the ack handlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
47
diff
changeset
|
232 |
gpointer userdata); |
54
1c1153f9f945
Handle for jingle
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
52
diff
changeset
|
233 |
|
133
361d8577ebd1
Change the way IBB work
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
129
diff
changeset
|
234 |
void handle_trans_data(gconstpointer data, const gchar *data2, guint len); |
52
d803c882a182
Fix the ack handlers.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
47
diff
changeset
|
235 |
|
79
a654afc4a74a
Function to detect which jid resource support jingle.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
75
diff
changeset
|
236 |
gchar *jingle_generate_sid(void); |
74 | 237 |
|
121
3a3c0e16ea00
Delete some part which wasn't use
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
118
diff
changeset
|
238 |
void handle_trans_next(session_content *sc2); |
3a3c0e16ea00
Delete some part which wasn't use
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
118
diff
changeset
|
239 |
|
14
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
240 |
#endif |