28 #include <mcabber/hooks.h> |
28 #include <mcabber/hooks.h> |
29 #include <mcabber/modules.h> |
29 #include <mcabber/modules.h> |
30 #include <mcabber/logprint.h> |
30 #include <mcabber/logprint.h> |
31 #include <mcabber/xmpp_helper.h> |
31 #include <mcabber/xmpp_helper.h> |
32 #include <mcabber/xmpp_defines.h> |
32 #include <mcabber/xmpp_defines.h> |
|
33 #include <mcabber/events.h> |
33 |
34 |
34 #include <jingle/jingle.h> |
35 #include <jingle/jingle.h> |
35 #include <jingle/check.h> |
36 #include <jingle/check.h> |
36 #include <jingle/action-handlers.h> |
37 #include <jingle/action-handlers.h> |
37 #include <jingle/register.h> |
38 #include <jingle/register.h> |
313 else if (content->senders == JINGLE_SENDERS_INITIATOR) |
314 else if (content->senders == JINGLE_SENDERS_INITIATOR) |
314 lm_message_node_set_attribute(node, "senders", "initiator"); |
315 lm_message_node_set_attribute(node, "senders", "initiator"); |
315 else if (content->senders == JINGLE_SENDERS_RESPONDER) |
316 else if (content->senders == JINGLE_SENDERS_RESPONDER) |
316 lm_message_node_set_attribute(node, "senders", "responder"); |
317 lm_message_node_set_attribute(node, "senders", "responder"); |
317 } |
318 } |
|
319 |
|
320 gboolean evscallback_jingle(guint evcontext, const gchar *arg, gpointer userdata) |
|
321 { |
|
322 JingleNode *jn = userdata; |
|
323 |
|
324 // Demande à mcKael l'utilité de ce truc |
|
325 /* |
|
326 if (G_UNLIKELY(!jn)) { |
|
327 scr_LogPrint(LPRINT_LOGNORM, "Error in evs callback."); |
|
328 return FALSE; |
|
329 } |
|
330 */ |
|
331 |
|
332 if (evcontext == EVS_CONTEXT_TIMEOUT) { |
|
333 scr_LogPrint(LPRINT_LOGNORM, "Jingle event from %s timed out, cancelled.", jn->initiator); |
|
334 jingle_free_jinglenode(jn); |
|
335 return FALSE; |
|
336 } |
|
337 if (evcontext = EVS_CONTEXT_CANCEL) { |
|
338 scr_LogPrint(LPRINT_LOGNORM, "Jingle event from %s cancelled.", jn->initiator); |
|
339 jingle_free_jinglenode(jn); |
|
340 return FALSE; |
|
341 } |
|
342 if (!(evcontext == EVS_CONTEXT_ACCEPT || evcontext == EVS_CONTEXT_REJECT)) { |
|
343 jingle_free_jinglenode(jn); |
|
344 return FALSE; |
|
345 } |
|
346 |
|
347 if (evcontext == EVS_CONTEXT_ACCEPT) { |
|
348 jingle_send_session_accept(jn); |
|
349 } else { |
|
350 // TODO: detroy the JingleNode and send a session-reject |
|
351 jingle_free_jinglenode(jn); |
|
352 } |
|
353 |
|
354 return FALSE; |
|
355 } |