diff -r cac87df18e6d -r 3922f5c96973 jingle/action-handlers.c --- 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;