--- a/jingle/action-handlers.c Tue Aug 10 22:14:17 2010 +0200
+++ b/jingle/action-handlers.c Tue Aug 10 23:21:55 2010 +0200
@@ -336,6 +336,39 @@
g_free(disp);
}
+void handle_session_accept(JingleNode *jn)
+{
+ JingleSession *sess;
+ JingleContent *jc;
+ SessionContent *sc;
+
+ GSList *el;
+ const gchar *from = lm_message_get_from(jn->message);
+
+ // We're looking if the session exist
+ sess = session_find_by_sid(jn->sid, from);
+ if (sess == NULL) {
+ // TODO: send unknow-session
+ return;
+ }
+
+ jingle_ack_iq(jn->message);
+
+ for (el = jn->content; el; el = el->next) {
+ jc = (JingleContent*)el->data;
+ session_changestate_sessioncontent(sess, jc->name,
+ JINGLE_SESSION_STATE_ACTIVE);
+ }
+
+ // We delete content who have been refuse
+ for (el = sess->content; el; el = el->next) {
+ sc = (SessionContent*) el->data;
+ if (sc->state == JINGLE_SESSION_STATE_PENDING) {
+ session_remove_sessioncontent(sess, sc->name);
+ }
+ }
+}
+
void handle_session_terminate(JingleNode *jn)
{
JingleSession *sess;
--- a/jingle/action-handlers.h Tue Aug 10 22:14:17 2010 +0200
+++ b/jingle/action-handlers.h Tue Aug 10 23:21:55 2010 +0200
@@ -8,6 +8,7 @@
void handle_content_add(JingleNode *jn);
void handle_content_reject(JingleNode *jn);
void handle_content_remove(JingleNode *jn);
+void handle_session_accept(JingleNode *jn);
void handle_session_initiate(JingleNode *jn);
void handle_session_terminate(JingleNode *jn);
#endif
--- a/jingle/jingle.c Tue Aug 10 22:14:17 2010 +0200
+++ b/jingle/jingle.c Tue Aug 10 23:21:55 2010 +0200
@@ -72,7 +72,7 @@
{ "session-info", NULL },
{ "session-initiate", handle_session_initiate },
{ "session-terminate", handle_session_terminate },
- { "transport-accept", NULL },
+ { "transport-accept", handle_session_accept },
{ "transport-info", NULL },
{ "transport-reject", NULL },
{ "transport-replace", NULL },
@@ -417,9 +417,7 @@
return NULL;
g_slist_foreach(jn->content, lm_insert_jinglecontent, jnode);
- scr_LogPrint(LPRINT_LOGNORM, "%s",
- lm_message_node_to_string(m->node));
- return m;
+ return m;
}
static void lm_insert_jinglecontent(gpointer data, gpointer userdata)