author | Nicolas Cornu <nicolas.cornu@ensi-bourges.fr> |
Fri, 02 Jul 2010 17:04:41 +0200 | |
changeset 25 | 11694a99f84b |
parent 23 | 9367e144e626 |
child 26 | af14f8f5a2b6 |
permissions | -rw-r--r-- |
14
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
1 |
#ifndef __JINGLE_H__ |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
2 |
#define __JINGLE_H__ 1 |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
3 |
|
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
4 |
#include <glib.h> |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
5 |
#include <loudmouth/loudmouth.h> |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
6 |
|
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
7 |
#define NS_JINGLE "urn:xmpp:jingle:1" |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
8 |
#define NS_JINGLE_ERRORS "urn:xmpp:jingle:errors: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 |
|
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
11 |
typedef enum { |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
12 |
JINGLE_UNKNOWN_ACTION, |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
13 |
JINGLE_CONTENT_ACCEPT, |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
14 |
JINGLE_CONTENT_ADD, |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
15 |
JINGLE_CONTENT_MODIFY, |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
16 |
JINGLE_CONTENT_REJECT, |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
17 |
JINGLE_CONTENT_REMOVE, |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
18 |
JINGLE_DESCRIPTION_INFO, |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
19 |
JINGLE_SECURITY_INFO, |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
20 |
JINGLE_SESSION_ACCEPT, |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
21 |
JINGLE_SESSION_INFO, |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
22 |
JINGLE_SESSION_INITIATE, |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
23 |
JINGLE_SESSION_TERMINATE, |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
24 |
JINGLE_TRANSPORT_ACCEPT, |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
25 |
JINGLE_TRANSPORT_INFO, |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
26 |
JINGLE_TRANSPORT_REJECT, |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
27 |
JINGLE_TRANSPORT_REPLACE, |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
28 |
} JingleAction; |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
29 |
|
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
30 |
typedef enum { |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
31 |
JINGLE_CREATOR_INITIATOR, |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
32 |
JINGLE_CREATOR_RESPONDER, |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
33 |
} JingleCreator; |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
34 |
|
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
35 |
typedef enum { |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
36 |
JINGLE_SENDERS_BOTH, |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
37 |
JINGLE_SENDERS_INITIATOR, |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
38 |
JINGLE_SENDERS_NONE, |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
39 |
JINGLE_SENDERS_RESPONDER, |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
40 |
} JingleSenders; |
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 struct { |
18
d0ddcfd31eb8
Change the way the header files are included.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
15
diff
changeset
|
43 |
/* pointer to the original LmMessage */ |
d0ddcfd31eb8
Change the way the header files are included.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
15
diff
changeset
|
44 |
LmMessage *message; |
d0ddcfd31eb8
Change the way the header files are included.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
15
diff
changeset
|
45 |
|
22
a089f2f49e9f
Produce new LmMessageNode with a struct Jingle
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
21
diff
changeset
|
46 |
/* pointer to the <jingle> element */ |
18
d0ddcfd31eb8
Change the way the header files are included.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
15
diff
changeset
|
47 |
LmMessageNode *node; |
d0ddcfd31eb8
Change the way the header files are included.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
15
diff
changeset
|
48 |
|
14
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
49 |
/* action attribute */ |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
50 |
JingleAction action; |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
51 |
|
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
52 |
/* full JID of the entity that has initiated the session flow. |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
53 |
* may be different from the 'from' address on the IQ-set of the |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
54 |
* session-initiate message. |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
55 |
* recommended for session-initiate, not recommended otherwise. */ |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
56 |
const gchar *initiator; |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
57 |
|
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
58 |
/* full JID of the entity that has replied to the initation. |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
59 |
* can be different from the 'to' address on the IQ-set. |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
60 |
* recommended for session-accept, not recommended otherwise. */ |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
61 |
const gchar *responder; |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
62 |
|
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
63 |
/* Random session identifier generated by the initator. */ |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
64 |
const gchar *sid; |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
65 |
|
21
147f131382dd
Some sessions management code.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
20
diff
changeset
|
66 |
/* Linked list of JingleContent. */ |
18
d0ddcfd31eb8
Change the way the header files are included.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
15
diff
changeset
|
67 |
GSList *content; |
14
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
68 |
|
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
69 |
} JingleNode; |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
70 |
|
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
71 |
typedef struct { |
21
147f131382dd
Some sessions management code.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
20
diff
changeset
|
72 |
/* pointer to the <content> element */ |
147f131382dd
Some sessions management code.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
20
diff
changeset
|
73 |
LmMessageNode *node; |
147f131382dd
Some sessions management code.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
20
diff
changeset
|
74 |
|
14
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
75 |
/* which party originally generated the content type. |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
76 |
* the defined values are "initiator" and "responder" |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
77 |
* (where the default is "initiator"). required. */ |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
78 |
JingleCreator creator; |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
79 |
|
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
80 |
/* how the content definition is to be interpreted by the recipient. |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
81 |
* optional, the default value is "session". */ |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
82 |
const gchar *disposition; // optional, default=session |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
83 |
|
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
84 |
/* A unique name or identifier for the content type |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
85 |
* according to the creator. required.*/ |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
86 |
const gchar *name; |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
87 |
|
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
88 |
/* which parties in the session will be generating content. |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
89 |
* allowable values are both, initiator, none, responder. |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
90 |
* default is both. |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
91 |
* required for content-modify, optional otherwise */ |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
92 |
JingleSenders senders; |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
93 |
|
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
94 |
/* each content element (must) contain one description |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
95 |
* child element that specifies a desired application. |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
96 |
* the content of this node is app specific. */ |
25
11694a99f84b
Build a LMNode from a Jingle struct
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
23
diff
changeset
|
97 |
gconstpointer *description; |
14
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
98 |
|
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
99 |
/* each content element (must) contain one transport |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
100 |
* child element that specifies a potential transport |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
101 |
* method */ |
25
11694a99f84b
Build a LMNode from a Jingle struct
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
23
diff
changeset
|
102 |
gconstpointer *transport; |
11694a99f84b
Build a LMNode from a Jingle struct
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
23
diff
changeset
|
103 |
|
11694a99f84b
Build a LMNode from a Jingle struct
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
23
diff
changeset
|
104 |
const gchar *xmlns_desc; |
11694a99f84b
Build a LMNode from a Jingle struct
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
23
diff
changeset
|
105 |
const gchar *xmlns_trans; |
14
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
106 |
|
20
72e53665328e
Add a function to check a file transfert request.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
18
diff
changeset
|
107 |
} JingleContent; |
14
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
108 |
|
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
109 |
struct JingleActionList { |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
110 |
const gchar *name; |
15
61ffa66f8288
Include config.h. The file transfert module now add the corresponding
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
14
diff
changeset
|
111 |
void (*handler)(LmMessage *, JingleNode *); |
14
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
112 |
}; |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
113 |
|
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
114 |
|
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
115 |
LmMessage *jingle_new_iq_error(LmMessage *m, const gchar *errtype, |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
116 |
const gchar *cond, const gchar *jinglecond); |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
117 |
void jingle_send_iq_error(LmMessage *m, const gchar *errtype, |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
118 |
const gchar *cond, const gchar *jinglecond); |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
119 |
void jingle_ack_iq(LmMessage *m); |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
120 |
JingleAction jingle_action_from_str(const gchar* string); |
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
121 |
|
23
9367e144e626
Some errors in code
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
22
diff
changeset
|
122 |
LmMessageNode* get_lm_from_jingle_struct(const JingleNode* elem); |
9367e144e626
Some errors in code
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
22
diff
changeset
|
123 |
void get_lm_from_content_struct(gpointer data, gpointer userdata); |
14
77966ed56e14
Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff
changeset
|
124 |
#endif |