jingle/action-handlers.c
changeset 96 3922f5c96973
parent 84 cdff1771155d
child 99 3463ce93975a
--- 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;