--- a/jingle/jingle.c Thu Aug 05 04:33:11 2010 +0200
+++ b/jingle/jingle.c Mon Aug 09 23:01:24 2010 +0200
@@ -388,6 +388,49 @@
lm_message_handler_unref(jingle_iq_handler);
}
+LmMessage *lm_message_from_jinglesession(const JingleSession *js,
+ const gchar *to,
+ JingleAction action)
+{
+ LmMessage* m;
+ LmMessageNode *jnode;
+ const gchar *actionstr;
+
+ m = lm_message_new_with_sub_type(to, LM_MESSAGE_TYPE_IQ,
+ LM_MESSAGE_SUB_TYPE_SET);
+ jnode = lm_message_node_add_child(m->node, "jingle", NULL);
+
+ if (actionstr = jingle_action_list[action].name)
+ lm_message_node_set_attribute(jnode, "action", actionstr);
+ else
+ return NULL;
+
+ if (js->sid)
+ lm_message_node_set_attribute(jnode, "sid", js->sid);
+ else
+ return NULL;
+
+ g_slist_foreach(js->content, lm_insert_sessioncontent, jnode);
+ return m;
+}
+
+static void lm_insert_sessioncontent(gpointer data, gpointer userdata)
+{
+ const gchar *xmlns;
+ JingleTransportFuncs *tfunc;
+ JingleAppFuncs *afunc;
+ SessionContent *content = (SessionContent*) data;
+ LmMessageNode *jnode = (LmMessageNode*) userdata;
+ LmMessageNode *node = lm_message_node_add_child(jnode, "content", NULL);
+
+ if (content->name)
+ lm_message_node_set_attribute(node, "name", content->name);
+
+ content->transfuncs->tomessage(content->description, node);
+
+ content->appfuncs->tomessage(content->transport, node);
+}
+
LmMessage *lm_message_from_jinglenode(const JingleNode *jn, const gchar *to)
{
LmMessage* m;
@@ -420,25 +463,6 @@
return m;
}
-static void lm_insert_sessioncontent(gpointer data, gpointer userdata)
-{
- const gchar *xmlns;
- JingleTransportFuncs *tfunc;
- JingleAppFuncs *afunc;
- SessionContent* content = (SessionContent*) data;
- LmMessageNode* dad = (LmMessageNode*) userdata;
- LmMessageNode* node = (LmMessageNode*) lm_message_node_add_child(dad,
- "content", NULL);
-
- if (content->name)
- lm_message_node_set_attribute(node, "name", content->name);
-
- //tfunc->handle(tfunc->check(content, NULL), node);
-
- //afunc->handle(afunc->check(content, NULL), node);
-
-}
-
static void lm_insert_jinglecontent(gpointer data, gpointer userdata)
{
const gchar *xmlns;