src/protocols/msn/slpcall.c

branch
cpw.khc.msnp14
changeset 20472
6a6d2ef151e6
parent 13912
463b4fa9f067
parent 20469
b2836a24d81e
child 20473
91e1b3a49d10
--- a/src/protocols/msn/slpcall.c	Wed Oct 18 16:28:51 2006 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,250 +0,0 @@
-/**
- * @file slpcall.c SLP Call Functions
- *
- * gaim
- *
- * Gaim is the legal property of its developers, whose names are too numerous
- * to list here.  Please refer to the COPYRIGHT file distributed with this
- * source distribution.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- */
-#include "msn.h"
-#include "msn-utils.h"
-#include "slpcall.h"
-#include "slpsession.h"
-
-#include "slp.h"
-
-/* #define MSN_DEBUG_SLPCALL */
-
-/**************************************************************************
- * Main
- **************************************************************************/
-
-MsnSlpCall *
-msn_slp_call_new(MsnSlpLink *slplink)
-{
-	MsnSlpCall *slpcall;
-
-	g_return_val_if_fail(slplink != NULL, NULL);
-
-	slpcall = g_new0(MsnSlpCall, 1);
-
-#ifdef MSN_DEBUG_SLPCALL
-	gaim_debug_info("msn", "slpcall_new: slpcall(%p)\n", slpcall);
-#endif
-
-	slpcall->slplink = slplink;
-
-	msn_slplink_add_slpcall(slplink, slpcall);
-
-	slpcall->timer = gaim_timeout_add(MSN_SLPCALL_TIMEOUT, msn_slp_call_timeout, slpcall);
-
-	return slpcall;
-}
-
-void
-msn_slp_call_destroy(MsnSlpCall *slpcall)
-{
-	GList *e;
-	MsnSession *session;
-
-#ifdef MSN_DEBUG_SLPCALL
-	gaim_debug_info("msn", "slpcall_destroy: slpcall(%p)\n", slpcall);
-#endif
-
-	g_return_if_fail(slpcall != NULL);
-
-	if (slpcall->timer)
-		gaim_timeout_remove(slpcall->timer);
-
-	if (slpcall->id != NULL)
-		g_free(slpcall->id);
-
-	if (slpcall->branch != NULL)
-		g_free(slpcall->branch);
-
-	if (slpcall->data_info != NULL)
-		g_free(slpcall->data_info);
-
-	for (e = slpcall->slplink->slp_msgs; e != NULL; )
-	{
-		MsnSlpMessage *slpmsg = e->data;
-		e = e->next;
-
-#ifdef MSN_DEBUG_SLPCALL_VERBOSE
-		gaim_debug_info("msn", "slpcall_destroy: trying slpmsg(%p)\n",
-						slpmsg);
-#endif
-
-		if (slpmsg->slpcall == slpcall)
-		{
-			msn_slpmsg_destroy(slpmsg);
-		}
-	}
-
-	session = slpcall->slplink->session;
-
-	msn_slplink_remove_slpcall(slpcall->slplink, slpcall);
-
-	if (slpcall->end_cb != NULL)
-		slpcall->end_cb(slpcall, session);
-
-	g_free(slpcall);
-}
-
-void
-msn_slp_call_init(MsnSlpCall *slpcall, MsnSlpCallType type)
-{
-	slpcall->session_id = rand() % 0xFFFFFF00 + 4;
-	slpcall->id = rand_guid();
-	slpcall->type = type;
-}
-
-void
-msn_slp_call_session_init(MsnSlpCall *slpcall)
-{
-	MsnSlpSession *slpsession;
-
-	slpsession = msn_slp_session_new(slpcall);
-
-	if (slpcall->session_init_cb)
-		slpcall->session_init_cb(slpsession);
-
-	slpcall->started = TRUE;
-}
-
-void
-msn_slp_call_invite(MsnSlpCall *slpcall, const char *euf_guid,
-					int app_id, const char *context)
-{
-	MsnSlpLink *slplink;
-	MsnSlpMessage *slpmsg;
-	char *header;
-	char *content;
-
-	g_return_if_fail(slpcall != NULL);
-	g_return_if_fail(context != NULL);
-
-	slplink = slpcall->slplink;
-
-	slpcall->branch = rand_guid();
-
-	content = g_strdup_printf(
-		"EUF-GUID: {%s}\r\n"
-		"SessionID: %lu\r\n"
-		"AppID: %d\r\n"
-		"Context: %s\r\n\r\n",
-		euf_guid,
-		slpcall->session_id,
-		app_id,
-		context);
-
-	header = g_strdup_printf("INVITE MSNMSGR:%s MSNSLP/1.0",
-							 slplink->remote_user);
-
-	slpmsg = msn_slpmsg_sip_new(slpcall, 0, header, slpcall->branch,
-								"application/x-msnmsgr-sessionreqbody", content);
-
-#ifdef MSN_DEBUG_SLP
-	slpmsg->info = "SLP INVITE";
-	slpmsg->text_body = TRUE;
-#endif
-
-	msn_slplink_send_slpmsg(slplink, slpmsg);
-
-	g_free(header);
-	g_free(content);
-}
-
-void
-msn_slp_call_close(MsnSlpCall *slpcall)
-{
-	g_return_if_fail(slpcall != NULL);
-	g_return_if_fail(slpcall->slplink != NULL);
-
-	send_bye(slpcall, "application/x-msnmsgr-sessionclosebody");
-	msn_slplink_unleash(slpcall->slplink);
-	msn_slp_call_destroy(slpcall);
-}
-
-gboolean
-msn_slp_call_timeout(gpointer data)
-{
-	MsnSlpCall *slpcall;
-
-	slpcall = data;
-
-#ifdef MSN_DEBUG_SLPCALL
-	gaim_debug_info("msn", "slpcall_timeout: slpcall(%p)\n", slpcall);
-#endif
-
-	if (!slpcall->pending && !slpcall->progress)
-	{
-		msn_slp_call_destroy(slpcall);
-		return FALSE;
-	}
-
-	slpcall->progress = FALSE;
-
-	return TRUE;
-}
-
-MsnSlpCall *
-msn_slp_process_msg(MsnSlpLink *slplink, MsnSlpMessage *slpmsg)
-{
-	MsnSlpCall *slpcall;
-	const guchar *body;
-	gsize body_len;
-
-	slpcall = NULL;
-	body = slpmsg->buffer;
-	body_len = slpmsg->size;
-
-	if (slpmsg->flags == 0x0)
-	{
-		char *body_str;
-
-		body_str = g_strndup((const char *)body, body_len);
-		slpcall = msn_slp_sip_recv(slplink, body_str);
-		g_free(body_str);
-	}
-	else if (slpmsg->flags == 0x20 || slpmsg->flags == 0x1000030)
-	{
-		slpcall = msn_slplink_find_slp_call_with_session_id(slplink, slpmsg->session_id);
-
-		if (slpcall != NULL)
-		{
-			if (slpcall->timer)
-				gaim_timeout_remove(slpcall->timer);
-
-			slpcall->cb(slpcall, body, body_len);
-
-			slpcall->wasted = TRUE;
-		}
-	}
-#if 0
-	else if (slpmsg->flags == 0x100)
-	{
-		slpcall = slplink->directconn->initial_call;
-
-		if (slpcall != NULL)
-			msn_slp_call_session_init(slpcall);
-	}
-#endif
-
-	return slpcall;
-}

mercurial