[asterisk-commits] branch mogorman/asterisk-xmpp r19093 - in /team/mogorman/asterisk-xmpp: ./ ch...

asterisk-commits at lists.digium.com asterisk-commits at lists.digium.com
Mon Apr 10 22:26:39 MST 2006


Author: mogorman
Date: Tue Apr 11 00:26:38 2006
New Revision: 19093

URL: http://svn.digium.com/view/asterisk?rev=19093&view=rev
Log:
broken to bits but updated

Added:
    team/mogorman/asterisk-xmpp/channels/chan_jingle.c   (contents, props changed)
      - copied, changed from r18748, team/mogorman/asterisk-xmpp/channels/chan_xmpp.c
    team/mogorman/asterisk-xmpp/configs/jingle.conf.sample   (with props)
Removed:
    team/mogorman/asterisk-xmpp/channels/chan_xmpp.c
Modified:
    team/mogorman/asterisk-xmpp/app.c
    team/mogorman/asterisk-xmpp/channels/Makefile
    team/mogorman/asterisk-xmpp/channels/chan_agent.c
    team/mogorman/asterisk-xmpp/configs/agents.conf.sample
    team/mogorman/asterisk-xmpp/include/asterisk/app.h
    team/mogorman/asterisk-xmpp/include/asterisk/xmpp.h
    team/mogorman/asterisk-xmpp/res/res_xmpp.c

Modified: team/mogorman/asterisk-xmpp/app.c
URL: http://svn.digium.com/view/asterisk/team/mogorman/asterisk-xmpp/app.c?rev=19093&r1=19092&r2=19093&view=diff
==============================================================================
--- team/mogorman/asterisk-xmpp/app.c (original)
+++ team/mogorman/asterisk-xmpp/app.c Tue Apr 11 00:26:38 2006
@@ -49,7 +49,6 @@
 #include "asterisk/utils.h"
 #include "asterisk/lock.h"
 #include "asterisk/indications.h"
-#include "asterisk/xmpp.h"
 
 #define MAX_OTHER_FORMATS 10
 
@@ -230,62 +229,6 @@
 
 static int (*ast_has_voicemail_func)(const char *mailbox, const char *folder) = NULL;
 static int (*ast_messagecount_func)(const char *mailbox, int *newmsgs, int *oldmsgs) = NULL;
-
-static int (*astjab_register_func)(const char *action,  int (*func)(struct axi_client *client, char *user, char *m,int type), const char *synopsis, const char *description)=NULL;
-static int (*astjab_send)(struct axi_client *client, char *address, char *message) =NULL;
-static int (*astjab_check_roster)(void)=NULL;
-
-void ast_install_xmpp_functions(int (*axi_check_roster)(void), int (*axi_send)(struct axi_client *client, char *address, char *message), int (*axi_register)(const char *action,  int (*func)(struct axi_client *client,char *user, char *m, int type), const char *synopsis, const char *description))
-{
-	astjab_send = axi_send;
-	astjab_register_func=axi_register;
-	astjab_check_roster=axi_check_roster;
-}
-
-void ast_uninstall_xmpp_functions(void)
-{
-	astjab_send=NULL;
-	astjab_register_func=NULL;
-	astjab_check_roster=NULL;
-}
-
-int ast_xmpp_check_roster(void)
-{
-	static int warned = 0;
-	if (astjab_check_roster)
-		return astjab_check_roster();
-
-	if (option_verbose > 2) {
-		warned++;
-		ast_verbose(VERBOSE_PREFIX_3 "XMPP check_roster was not used because res_xmpp.so is not loaded.\nyou have been warned %itimes.\n",warned);
-	}
-	return 0;
-}
-int ast_xmpp_send(struct axi_client *client, char *address, char *message)
-{
-	static int warned = 0;
-	if (astjab_send)
-		return astjab_send(client,address,message);
-
-	if (option_verbose > 2 ) {
-		warned++;
-		ast_verbose(VERBOSE_PREFIX_3 "XMPP %s was not sent because res_xmpp.so is not loaded.\nyou have been warned %itimes.\n",message,warned);
-	}
-	return 0;
-}
-
-int ast_xmpp_register(const char *action,  int (*func)(struct axi_client *client, char *user, char *m, int type), const char *synopsis, const char *description)
-{
-	static int warned = 0;
-	if (astjab_register_func)
-		return astjab_register_func(action,func,synopsis,description);
-
-	if (option_verbose > 2) {
-		warned++;
-		ast_verbose(VERBOSE_PREFIX_3 "XMPP function%s was not loaded because  res_xmpp.so is not loaded.\nyou have been warned %itimes.\n",action,warned);
-	}
-	return 0;
-}
 
 void ast_install_vm_functions(int (*has_voicemail_func)(const char *mailbox, const char *folder),
 			      int (*messagecount_func)(const char *mailbox, int *newmsgs, int *oldmsgs))

Modified: team/mogorman/asterisk-xmpp/channels/Makefile
URL: http://svn.digium.com/view/asterisk/team/mogorman/asterisk-xmpp/channels/Makefile?rev=19093&r1=19092&r2=19093&view=diff
==============================================================================
--- team/mogorman/asterisk-xmpp/channels/Makefile (original)
+++ team/mogorman/asterisk-xmpp/channels/Makefile Tue Apr 11 00:26:38 2006
@@ -90,7 +90,7 @@
 
 #ifneq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/local/include/iksemel.h),)
 #  ifneq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/include/iksemel.h),)
-#     MODS:=$(filter-out chan_xmpp.so,$(MODS))
+#     MODS:=$(filter-out chan_jingle.so,$(MODS))
 #  endif
 #endif
 
@@ -252,7 +252,7 @@
 chan_misdn.o: chan_misdn.c
 	$(CC) $(CFLAGS) -DCHAN_MISDN_VERSION=\"0.3.0\" -c $< -o $@
 
-chan_xmpp.so: chan_xmpp.o
+chan_jingle.so: chan_jingle.o
 	$(CC) $(SOLINK) -o $@ $< $(XMPPLIB) 
 
 misdn_config.o: misdn_config.c misdn/chan_misdn_config.h

Modified: team/mogorman/asterisk-xmpp/channels/chan_agent.c
URL: http://svn.digium.com/view/asterisk/team/mogorman/asterisk-xmpp/channels/chan_agent.c?rev=19093&r1=19092&r2=19093&view=diff
==============================================================================
--- team/mogorman/asterisk-xmpp/channels/chan_agent.c (original)
+++ team/mogorman/asterisk-xmpp/channels/chan_agent.c Tue Apr 11 00:26:38 2006
@@ -71,7 +71,6 @@
 #include "asterisk/astdb.h"
 #include "asterisk/devicestate.h"
 #include "asterisk/monitor.h"
-#include "asterisk/xmpp.h"
 #include "asterisk/stringfields.h"
 
 static const char desc[] = "Agent Proxy Channel";
@@ -161,7 +160,6 @@
 static int multiplelogin = 1;
 static int autologoffunavail = 0;
 
-static int xmpplogon=1,xmpplogoff=6;
 static int maxlogintries = 3;
 static char agentgoodbye[AST_MAX_FILENAME_LEN] = "vm-goodbye";
 
@@ -204,9 +202,6 @@
 	struct ast_channel *owner;     /**< Agent */
 	char loginchan[80];            /**< channel they logged in from */
 	char logincallerid[80];        /**< Caller ID they had when they logged in */
-	int xmpplogoff;		       /**< Logout agent based on xmpp presence */
-	int xmpplogon;		       /**< Logon agent based on xmpp presence */
-	char xuser[AST_MAX_AGENT];     /**< Username for xmpp presence */
 	struct ast_channel *chan;      /**< Channel we use */
 	AST_LIST_ENTRY(agent_pvt) list;	/**< Next Agent in the linked list. */
 };
@@ -259,8 +254,6 @@
 static int agent_indicate(struct ast_channel *ast, int condition);
 static int agent_fixup(struct ast_channel *oldchan, struct ast_channel *newchan);
 static struct ast_channel *agent_bridgedchannel(struct ast_channel *chan, struct ast_channel *bridge);
-static int xmpp_agent_status(struct axi_client *client,char *user,char *message, int type);
-static int xmpp_login(char *agent,char *exten, char *context);
 static void set_agentbycallerid(const char *callerid, const char *agent);
 
 static const struct ast_channel_tech agent_tech = {
@@ -298,17 +291,10 @@
 		AST_APP_ARG(agt);
 		AST_APP_ARG(password);
 		AST_APP_ARG(name);
-		AST_APP_ARG(xlogon);
-		AST_APP_ARG(xlogoff);
 	);
 	char *password = NULL;
 	char *name = NULL;
 	char *agt = NULL;
-	char *xuser = NULL;
-	int xlogon=0,xlogoff=0;
-	xlogon=xmpplogon;
-	xlogoff=xmpplogoff;
-	char status[100];
 	struct agent_pvt *p;
 
 	if (!(parse = ast_strdupa(agent)))
@@ -335,36 +321,6 @@
 	if(!ast_strlen_zero(args.name)) {
 		name = args.name;
 		while (*name && *name < 33) name++;
-	}
-	
-	if(!ast_strlen_zero(args.xlogon)) {
-		if(!strcasecmp(args.xlogon, "online"))
-			xlogon=1;
-		if(!strcasecmp(args.xlogon, "chatty"))
-			xlogon=2;
-		if(!strcasecmp(args.xlogon, "away"))
-			xlogon=3;
-		if(!strcasecmp(args.xlogon, "xaway"))
-			xlogon=4;
-		if(!strcasecmp(args.xlogon, "dnd"))
-			xlogon=5;
-		if(!strcasecmp(args.xlogon, "offline"))
-			xlogon=6;
-	}
-
-	if(!ast_strlen_zero(args.xlogoff)) {
-		if(!strcasecmp(args.xlogoff, "online"))
-			xlogon=1;
-		if(!strcasecmp(args.xlogoff, "chatty"))
-			xlogon=2;
-		if(!strcasecmp(args.xlogoff, "away"))
-			xlogon=3;
-		if(!strcasecmp(args.xlogoff, "xaway"))
-			xlogon=4;
-		if(!strcasecmp(args.xlogoff, "dnd"))
-			xlogon=5;
-		if(!strcasecmp(args.xlogoff, "offline"))
-			xlogon=6;	
 	}
 	
 	/* Are we searching for the agent here ? To see if it exists already ? */
@@ -389,18 +345,9 @@
 	ast_copy_string(p->password, password ? password : "", sizeof(p->password));
 	ast_copy_string(p->name, name ? name : "", sizeof(p->name));
 	ast_copy_string(p->moh, moh, sizeof(p->moh));
-	ast_copy_string(p->xuser,xuser ? xuser :"",sizeof(p->xuser));
-	p->xmpplogon=xlogon;
-	p->xmpplogoff=xlogoff;
 	p->ackcall = ackcall;
 	p->autologoff = autologoff;
 
-	if(p->xuser)
-	{
-		sprintf(status,"axi_agent%s",p->xuser);
-		ast_xmpp_register(status,xmpp_agent_status,"Handles Agent status.\n",mandescr_agent_logoff);
-	}
-	
 	/* If someone reduces the wrapuptime and reloads, we want it
 	 * to change the wrapuptime immediately on all calls */
 	if (p->wrapuptime > wrapuptime) {
@@ -1085,32 +1032,6 @@
 			autologoff = atoi(v->value);
 			if (autologoff < 0)
 				autologoff = 0;
-		} else if (!strcasecmp(v->name, "xmpplogon")) {
-			if(!strcasecmp(v->value,"online"))
-				xmpplogon=1;
-			if(!strcasecmp(v->value,"chatty"))
-				xmpplogon=2;
-			if(!strcasecmp(v->value,"away"))
-				xmpplogon=3;
-			if(!strcasecmp(v->value,"xaway"))
-				xmpplogon=4;
-			if(!strcasecmp(v->value,"dnd"))
-				xmpplogon=5;
-			if(!strcasecmp(v->value,"offline"))
-				xmpplogon=6;
-		} else if (!strcasecmp(v->name, "xmpplogoff")) {
-			if(!strcasecmp(v->value,"online"))
-				xmpplogoff=1;
-			if(!strcasecmp(v->value,"chatty"))
-				xmpplogoff=2;
-			if(!strcasecmp(v->value,"away"))
-				xmpplogoff=3;
-			if(!strcasecmp(v->value,"xaway"))
-				xmpplogoff=4;
-			if(!strcasecmp(v->value,"dnd"))
-				xmpplogoff=5;
-			if(!strcasecmp(v->value,"offline"))
-				xmpplogoff=6;
 		} else if (!strcasecmp(v->name, "ackcall")) {
 			if (!strcasecmp(v->value, "always"))
 				ackcall = 2;
@@ -1627,42 +1548,6 @@
 		astman_send_error(s, m, "No such agent");
 
 	return 0;
-}
-
-static int xmpp_agent_status(struct axi_client *client,char *user,char *message, int type)
-{
-	char *m=NULL;
-	m=(char*)malloc(strlen(message));
-	//ast_copy_string(m, message, sizeof(m));
-	strcpy(m,message);
-	char *context=NULL;
-	char *extension=NULL;
-	struct agent_pvt *p;
-
-	if(m){
-		context=strchr(m,'@');
-		*context='\0';
-		context++;
-		extension=m;
-	}
-
-	AST_LIST_TRAVERSE(&agents, p, list) {
-		if(!strncasecmp(p->xuser,user,strlen(p->xuser)))
-		{
-			if(p->xmpplogon >= type){
-				xmpp_login(p->agent,extension,context);
-				ast_xmpp_send(client,user,"Agent is logged in.");
-			}
-			if(p->xmpplogoff <= type){
-				agent_logoff(p->agent, 1);
-				ast_xmpp_send(client,user,"Agent is logged out.");
-			}
-
-		}
-	}
-
-	free(m);
-	return 1;
 }
 
 static char *complete_agent_logoff_cmd(const char *line, const char *word, int pos, int state)
@@ -2237,58 +2122,6 @@
 	return __login_exec(chan, data, 1);
 }
 
-static int xmpp_login(char *agent,char *exten, char *context)
-{
-	char *wrapuptime_s=NULL;
-	char *ackcall_s=NULL;
-	struct agent_pvt *p;
-	int login_state = 0;
-
-	AST_LIST_TRAVERSE(&agents, p, list) {
-		if (strncmp(p->agent, agent,strlen(p->agent)) || p->pending) {
-			continue;
-		}
-		if (p->chan) {
-			login_state = 2; /* already logged in (and on the phone)*/
-			break;
-		}
-		login_state = 1; /* Successful Login */
-		ast_copy_string(p->loginchan, exten, sizeof(p->loginchan));
-		
-		if (ast_strlen_zero(context))
-			snprintf(p->loginchan, sizeof(p->loginchan), "%s", exten);
-		else
-			snprintf(p->loginchan, sizeof(p->loginchan), "%s@%s", exten, context);
-
-		if (wrapuptime_s && !ast_strlen_zero(wrapuptime_s)) {
-			p->wrapuptime = atoi(wrapuptime_s);
-			if (p->wrapuptime < 0)
-				p->wrapuptime = 0;
-		}
-
-		if (ast_true(ackcall_s))
-			p->ackcall = 1;
-		else
-			p->ackcall = 0;
-
-		if (p->loginstart == 0)
-			time(&p->loginstart);
-		ast_queue_log("NONE", "NONE", agent, "AGENTCALLBACKLOGIN", "%s", p->loginchan);
-		if (option_verbose > 1)
-			ast_verbose(VERBOSE_PREFIX_2 "Callback Agent '%s' logged in on %s\n", p->agent, p->loginchan);
-		ast_device_state_changed("Agent/%s", p->agent);
-	}
-
-	if (login_state == 1)
-		ast_verbose("Agent logged in\n");
-	else if (login_state == 0)
-		ast_verbose("No such agent\n");
-	else if (login_state == 2)
-		ast_verbose("Agent already logged in\n");
-
-	return 0;
-}
-
 /**
  * Sets an agent as logged in by callback in the Manager API.
  * It is registered on load_module() and it gets called by the manager backend.
@@ -2675,7 +2508,6 @@
 	read_agent_config();
 	if (persistent_agents)
 		reload_agents();
-	ast_xmpp_check_roster();
 	return 0;
 }
 
@@ -2684,7 +2516,6 @@
 	read_agent_config();
 	if (persistent_agents)
 		reload_agents();
-	ast_xmpp_check_roster();
 	return 0;
 }
 

Copied: team/mogorman/asterisk-xmpp/channels/chan_jingle.c (from r18748, team/mogorman/asterisk-xmpp/channels/chan_xmpp.c)
URL: http://svn.digium.com/view/asterisk/team/mogorman/asterisk-xmpp/channels/chan_jingle.c?p2=team/mogorman/asterisk-xmpp/channels/chan_jingle.c&p1=team/mogorman/asterisk-xmpp/channels/chan_xmpp.c&r1=18748&r2=19093&rev=19093&view=diff
==============================================================================
--- team/mogorman/asterisk-xmpp/channels/chan_xmpp.c (original)
+++ team/mogorman/asterisk-xmpp/channels/chan_jingle.c Tue Apr 11 00:26:38 2006
@@ -1,9 +1,9 @@
-/*
+jingle/*
  * Asterisk -- An open source telephony toolkit.
  *
  * Copyright (C) 1999 - 2005, Digium, Inc.
  *
- * Matthew O'Gorman <mogorman at digium.com>
+ * Matt O'Gorman <mogorman at digium.com>
  *
  * See http://www.asterisk.org for more information about
  * the Asterisk project. Please do not directly contact
@@ -18,13 +18,14 @@
 
 /*! \file
  *
- * \author Matthew O'Gorman <mogorman at digium.com>
+ * \author Matt O'Gorman <mogorman at digium.com>
  *
- * \brief XMPP Channel Driver
+ * \brief Jingle Channel Driver
  * 
  * \ingroup channel_drivers
  */
 
+#include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
 #include <unistd.h>
@@ -40,7 +41,7 @@
 
 #include "asterisk.h"
 
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 1 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 
 #include "asterisk/lock.h"
 #include "asterisk/channel.h"
@@ -63,54 +64,59 @@
 #include "asterisk/stringfields.h"
 #include "asterisk/utils.h"
 #include "asterisk/xmpp.h"
-
-static const char desc[] = "XMPP Channel";
-static const char type[] = "XMPP";
-static const char tdesc[] = "XMPP Channel Driver";
+#include "asterisk/jingle.h"
+
+#define JINGLE_CONFIG "jingle.conf"
+
+static const char desc[] = "Jingle Channel";
+static const char type[] = "Jingle";
+static const char tdesc[] = "Jingle Channel Driver";
 
 static int usecnt =0;
 AST_MUTEX_DEFINE_STATIC(usecnt_lock);
 
 
+static int global_capability = AST_FORMAT_ULAW | AST_FORMAT_ALAW | AST_FORMAT_GSM | AST_FORMAT_H263;
+
 /* Protect the interface list (of sip_pvt's) */
-AST_MUTEX_DEFINE_STATIC(xmpplock);
+AST_MUTEX_DEFINE_STATIC(jinglelock);
 
 AST_MUTEX_DEFINE_STATIC(rand_lock);			/*!< Lock for thread-safe random generator */
 
 
-static struct ast_channel *xmpp_request(const char *type, int format, void *data, int *cause);
-static int xmpp_digit(struct ast_channel *ast, char digit);
-static int xmpp_call(struct ast_channel *ast, char *dest, int timeout);
-static int xmpp_hangup(struct ast_channel *ast);
-static int xmpp_answer(struct ast_channel *ast);
-static int xmpp_answer2(struct axi_client *client, ikspak *pak);
-static struct ast_frame *xmpp_read(struct ast_channel *ast);
-static int xmpp_write(struct ast_channel *ast, struct ast_frame *f);
-static int xmpp_indicate(struct ast_channel *ast, int condition);
-static int xmpp_fixup(struct ast_channel *oldchan, struct ast_channel *newchan);
-static int xmpp_sendhtml(struct ast_channel *ast, int subclass, const char *data, int datalen);
-static struct xmpp_pvt *xmpp_alloc(char *data, int format);
+static struct ast_channel *jingle_request(const char *type, int format, void *data, int *cause);
+static int jingle_digit(struct ast_channel *ast, char digit);
+static int jingle_call(struct ast_channel *ast, char *dest, int timeout);
+static int jingle_hangup(struct ast_channel *ast);
+static int jingle_answer(struct ast_channel *ast);
+static int jingle_answer2(struct axi_client *client, ikspak *pak);
+static struct ast_frame *jingle_read(struct ast_channel *ast);
+static int jingle_write(struct ast_channel *ast, struct ast_frame *f);
+static int jingle_indicate(struct ast_channel *ast, int condition);
+static int jingle_fixup(struct ast_channel *oldchan, struct ast_channel *newchan);
+static int jingle_sendhtml(struct ast_channel *ast, int subclass, const char *data, int datalen);
+static struct jingle_pvt *jingle_alloc(char *data, int format);
 
 /* PBX interface structure for channel registration */
-static const struct ast_channel_tech xmpp_tech = {
+static const struct ast_channel_tech jingle_tech = {
 	.type = type,
 	.description = tdesc,
 	.capabilities = ((AST_FORMAT_MAX_AUDIO << 1) - 1),
-	.requester = xmpp_request,
-	.send_digit = xmpp_digit,
-//	.requester = xmpp_request_call,
-//	.devicestate = xmpp_devicestate,
-//	.transfer = xmpp_transfer,
+	.requester = jingle_request,
+	.send_digit = jingle_digit,
+//	.requester = jingle_request_call,
+//	.devicestate = jingle_devicestate,
+//	.transfer = jingle_transfer,
 	.bridge = ast_rtp_bridge,
-	.call = xmpp_call,
-	.hangup = xmpp_hangup,
-	.answer = xmpp_answer,
-	.read = xmpp_read,
-	.write = xmpp_write,
-	.exception = xmpp_read,
-	.indicate = xmpp_indicate,
-	.fixup = xmpp_fixup,
-	.send_html = xmpp_sendhtml,
+	.call = jingle_call,
+	.hangup = jingle_hangup,
+	.answer = jingle_answer,
+	.read = jingle_read,
+	.write = jingle_write,
+	.exception = jingle_read,
+	.indicate = jingle_indicate,
+	.fixup = jingle_fixup,
+	.send_html = jingle_sendhtml,
 };
 
 static struct sockaddr_in bindaddr = { 0, };	/*!< The address we bind to */
@@ -119,20 +125,39 @@
 static struct io_context *io;		/*!< The IO context */
 static struct in_addr __ourip;
 /*----- RTP interface functions */
-static int xmpp_set_rtp_peer(struct ast_channel *chan, struct ast_rtp *rtp, int codecs, int nat_active);
-static struct ast_rtp *xmpp_get_rtp_peer(struct ast_channel *chan);
-static int xmpp_get_codec(struct ast_channel *chan);
-
-static struct ast_rtp_protocol xmpp_rtp = {
-	type: "XMPP",
-	get_rtp_info: xmpp_get_rtp_peer,
-	set_rtp_peer: xmpp_set_rtp_peer,
-	get_codec: xmpp_get_codec,
+static int jingle_set_rtp_peer(struct ast_channel *chan, struct ast_rtp *rtp, int codecs, int nat_active);
+static struct ast_rtp *jingle_get_rtp_peer(struct ast_channel *chan);
+static int jingle_get_codec(struct ast_channel *chan);
+
+static struct ast_rtp_protocol jingle_rtp = {
+	type: "jingle",
+	get_rtp_info: jingle_get_rtp_peer,
+	set_rtp_peer: jingle_set_rtp_peer,
+	get_codec: jingle_get_codec,
 };
 
+char externip[16];
+char localip[16];
+
+struct jingle_container jingles;
+
 static int flipflop = 0;
 
-static int xmpp_queue_frame(struct xmpp_pvt *p, int isoutbound, struct ast_frame *f, struct ast_channel *us)
+struct jingle *find_jingle(struct axi_client *client, ikspak *pak)
+{
+	struct jingle *res=NULL;
+	ASTOBJ_CONTAINER_TRAVERSE(&jingles,1, {
+			ASTOBJ_RDLOCK(iterator);
+			if(iterator->connection==client ) {
+				if(!strncasecmp(iterator->user,pak->from->full,sizeof(iterator->user)))
+					res = iterator;
+			}
+			ASTOBJ_UNLOCK(iterator);
+		});
+	return res;
+}
+
+static int jingle_queue_frame(struct jingle_pvt *p, int isoutbound, struct ast_frame *f, struct ast_channel *us)
 {
 	struct ast_channel *other;
 retrylock:		
@@ -180,16 +205,16 @@
 	return 0;
 }
 
-static int xmpp_answer(struct ast_channel *ast)
-{
-	struct xmpp_pvt *p = ast->tech_pvt;
+static int jingle_answer(struct ast_channel *ast)
+{
+	struct jingle_pvt *p = ast->tech_pvt;
 	int isoutbound =1;
 	int res = -1;
 
 	ast_mutex_lock(&p->lock);
 	// Pass along answer since somebody answered us 
 	struct ast_frame answer = { AST_FRAME_CONTROL, AST_CONTROL_ANSWER };
-	res = xmpp_queue_frame(p, isoutbound, &answer, ast);
+	res = jingle_queue_frame(p, isoutbound, &answer, ast);
 	ast_mutex_unlock(&p->lock);
 	return res;
 }
@@ -205,9 +230,9 @@
 	return val;
 }
 
-static struct ast_rtp *xmpp_get_rtp_peer(struct ast_channel *chan)
-{
-	struct xmpp_pvt *p;
+static struct ast_rtp *jingle_get_rtp_peer(struct ast_channel *chan)
+{
+	struct jingle_pvt *p;
 	struct ast_rtp *rtp = NULL;
 	p = chan->tech_pvt;
 	if (!p)
@@ -219,15 +244,15 @@
 	return rtp;
 }
 
-static int xmpp_get_codec(struct ast_channel *chan)
-{
-	struct xmpp_pvt *p = chan->tech_pvt;
+static int jingle_get_codec(struct ast_channel *chan)
+{
+	struct jingle_pvt *p = chan->tech_pvt;
 	return p->peercapability;
 }
 
-static int xmpp_set_rtp_peer(struct ast_channel *chan, struct ast_rtp *rtp, int codecs, int nat_active)
-{
-	struct xmpp_pvt *p;
+static int jingle_set_rtp_peer(struct ast_channel *chan, struct ast_rtp *rtp, int codecs, int nat_active)
+{
+	struct jingle_pvt *p;
 
 	p = chan->tech_pvt;
 	if (!p) 
@@ -245,16 +270,19 @@
 	return 0;
 }
 
-static int xmpp_bridge_call(struct axi_client *client,ikspak *pak)
+static int jingle_bridge_call(struct axi_client *client,ikspak *pak)
 {
 	char *data, sid[100];
-	struct xmpp_pvt *p = client->xmpps;
+	struct jingle_pvt *p=NULL;
+	struct jingle *peer=NULL;
 	struct ast_channel *bridgepeer = NULL;
 	struct hostent *hp;
 	struct ast_hostent ahp;
 	char iabuf[INET_ADDRSTRLEN];
 	struct sockaddr_in sin;
-
+	
+	if((peer = find_jingle(client,pak)))
+		p = peer->p;
 	ast_verbose("ONLY A Little further %s\n",(iks_find_attrib(pak->x,"id")));
 	data = iks_find_attrib(pak->x,"id");
 	data = data + 9;
@@ -270,7 +298,7 @@
 	hp = ast_gethostbyname(p->candidates->ip, &ahp);
         sin.sin_family = AF_INET;
 	memcpy(&sin.sin_addr, hp->h_addr, sizeof(sin.sin_addr));
-	sin.sin_port = htons(client->candidates->port);
+	sin.sin_port = htons(p->candidates->port);
 	if (p->rtp && sin.sin_port) {
 		ast_rtp_set_peer(p->rtp, &sin);
 		ast_verbose("Peer audio RTP is at port %s:%d\n", ast_inet_ntoa(iabuf,sizeof(iabuf), sin.sin_addr), ntohs(sin.sin_port));
@@ -284,7 +312,7 @@
 		ast_log(LOG_DEBUG, "Oooh, we need to change our formats since our peer supports only %s and not %s\n", 
 				ast_getformatname_multiple(s1, slen, p->jointcapability),
 				ast_getformatname_multiple(s2, slen, p->owner->nativeformats));
-		p->owner->nativeformats = ast_codec_choose(&client->prefs, p->jointcapability, 1);
+		p->owner->nativeformats = ast_codec_choose(&peer->prefs, p->jointcapability, 1);
 		ast_set_read_format(p->owner, p->owner->readformat);
 		ast_set_write_format(p->owner, p->owner->writeformat);
 	}
@@ -337,29 +365,33 @@
 	return 1;
 }
 
-static int xmpp_hangup_farend(struct axi_client *client,ikspak *pak)
+static int jingle_hangup_farend(struct axi_client *client,ikspak *pak)
 {
 	ast_verbose("END CALL\n");
 	return 1;
 }
 
-static int xmpp_create_candidates(struct axi_client *client,ikspak *pak)
-{
-	struct axi_candidate *tmp;
-	struct xmpp_pvt *p = client->xmpps;
+static int jingle_create_candidates(struct axi_client *client,ikspak *pak)
+{
+	struct jingle_candidate *tmp;
+	struct jingle_pvt *p = NULL;
+	struct jingle *peer= NULL;
 	struct sockaddr_in sin;
 	struct sockaddr_in dest;
 	char iabuf[INET_ADDRSTRLEN];
 
 	iks *iq, *jingle, *candidate;
 	char user[17], pass[17], preference[5], port[7];
-	tmp = client->candidates;
+	if((peer = find_jingle(client,pak)))
+		p = peer->p;
+	tmp = p->candidates;
 	iq = iks_new("iq");
 	jingle = iks_new(GOOGLE_NODE);
 	candidate = iks_new("candidate");
 	iks_insert_node(iq,jingle);
 	iks_insert_node(jingle,candidate);
 	
+	
 	while(p) {
 		if(!strcasecmp(p->sid,iks_find_attrib(pak->query,GOOGLE_SID))) {
 			break;
@@ -373,7 +405,7 @@
 	
 	ast_verbose("We're at %s port %d\n", ast_inet_ntoa(iabuf, sizeof(iabuf), __ourip), ntohs(sin.sin_port)); /// THIS IS BAD NEED TO FIX
 	snprintf(port, sizeof(port),"%d",ntohs(sin.sin_port));
-	snprintf(client->localip, sizeof(client->localip),"%s",ast_inet_ntoa(iabuf, sizeof(iabuf), __ourip)); // hack
+	snprintf(localip, sizeof(localip),"%s",ast_inet_ntoa(iabuf, sizeof(iabuf), __ourip)); // hack
 
 	while(tmp) { /*send standard candidates*/
 		snprintf(user, sizeof(user),"%08x%08x",thread_safe_rand() ,thread_safe_rand());
@@ -389,7 +421,7 @@
 		iks_insert_attrib(jingle,"initiator",iks_find_attrib(pak->x,"from"));
 		iks_insert_attrib(jingle,"xmlns", GOOGLE_NS);
 		iks_insert_attrib(candidate, "name", tmp->name);
-		iks_insert_attrib(candidate, "address", client->localip); /*FIX ME*/
+		iks_insert_attrib(candidate, "address",localip); /*FIX ME*/
 		iks_insert_attrib(candidate, "port", port);
 		iks_insert_attrib(candidate, "username", user);
 		iks_insert_attrib(candidate, "password", pass);
@@ -410,7 +442,7 @@
 		iks_send(client->p,iq);
 		tmp=tmp->next;
 	}
-	if(!client->candidates) { /*send default stun, and local, and relay */
+	if(!p->candidates) { /*send default stun, and local, and relay */
 		snprintf(user, sizeof(user),"%08x%08x",thread_safe_rand(),thread_safe_rand());
 		snprintf(pass, sizeof(pass),"%08x%08x",thread_safe_rand(),thread_safe_rand());
 		iks_insert_attrib(iq,"from", client->jid->full);
@@ -423,7 +455,7 @@
 		iks_insert_attrib(jingle,"initiator",iks_find_attrib(pak->x,"from"));
 		iks_insert_attrib(jingle,"xmlns", GOOGLE_NS);
 		iks_insert_attrib(candidate, "name", "rtp");
-		iks_insert_attrib(candidate, "address", client->localip);
+		iks_insert_attrib(candidate, "address",localip);
 		iks_insert_attrib(candidate, "port", port); /*FIX ME*/
 		iks_insert_attrib(candidate, "username", user);
 		iks_insert_attrib(candidate, "password", pass);
@@ -438,7 +470,7 @@
 		snprintf(pass, sizeof(pass),"%08x%08x",thread_safe_rand(),thread_safe_rand());
 		iks_insert_attrib(iq,"id", client->mid);
 		axi_increment_mid(client->mid);
-		iks_insert_attrib(candidate, "address", client->externip);
+		iks_insert_attrib(candidate, "address", externip);
 		iks_insert_attrib(candidate, "port", port);
 		iks_insert_attrib(candidate, "username", user);
 		iks_insert_attrib(candidate, "password", pass);
@@ -450,7 +482,7 @@
 		snprintf(pass, sizeof(pass),"%08x%08x",thread_safe_rand(),thread_safe_rand());
 		iks_insert_attrib(iq,"id", client->mid);
 		axi_increment_mid(client->mid);
-		iks_insert_attrib(candidate, "address", client->localip);
+		iks_insert_attrib(candidate, "address", localip);
 		iks_insert_attrib(candidate, "port", port); /*FIX ME*/
 		iks_insert_attrib(candidate, "username", user);
 		iks_insert_attrib(candidate, "password", pass);
@@ -465,7 +497,7 @@
 	return 1;
 }
 
-static void add_codec_to_answer(const struct xmpp_pvt *p, int codec, iks *description)
+static void add_codec_to_answer(const struct jingle_pvt *p, int codec, iks *description)
 {
 	ast_verbose("Adding codec 0x%x (%s) to SDP\n", codec, ast_getformatname(codec));
 	if(!strcasecmp("ulaw",ast_getformatname(codec))) {
@@ -513,14 +545,19 @@
 	ast_rtp_lookup_code(p->rtp, 1, codec);
 }
 
-static int xmpp_accept_call(struct axi_client *client, ikspak *pak)
-{
-	struct xmpp_pvt *tmp = client->xmpps;
+static int jingle_accept_call(struct axi_client *client, ikspak *pak)
+{
+	struct jingle_pvt *tmp = NULL;
+	struct jingle *peer = NULL;
 	iks *iq, *jingle, *description, /* *payload_ipcmwb, *payload_isac,*/ *payload_red, *payload_audio, *payload_cn;
 	int x;
 	int pref_codec = 0;
 	int alreadysent = 0;
 	char mid[50];
+
+	if((peer = find_jingle(client,pak)))
+		tmp = peer->p;
+
 	while(tmp) {
 		if(!strcasecmp(tmp->sid,iks_find_attrib(pak->query,GOOGLE_SID))) {
 			iq = iks_new("iq");
@@ -529,9 +566,9 @@
 			iks_insert_attrib(description,"xmlns",GOOGLE_NS);
 
 			for (x = 0; x < 32; x++) {
-				if (!(pref_codec = ast_codec_pref_index(&client->prefs, x)))
+				if (!(pref_codec = ast_codec_pref_index(&peer->prefs, x)))
 					 break;
-				if (!(client->capability & pref_codec))
+				if (!(peer->capability & pref_codec))
 					continue;
 				if (alreadysent & pref_codec)
 					continue;
@@ -596,9 +633,13 @@
 	return 1;
 }
 
-static struct xmpp_pvt *xmpp_alloc2(struct axi_client *client)
-{
-	struct xmpp_pvt *tmp;
+static struct jingle_pvt *jingle_alloc2(struct axi_client *client, ikspak *pak)
+{
+	struct jingle_pvt *tmp = NULL;
+	struct jingle *peer =NULL;
+
+	if((peer = find_jingle(client,pak)))
+		tmp = peer->p;
 
 	if (!(tmp = ast_calloc(1, sizeof(*tmp)))) {
 		return NULL;
@@ -606,21 +647,26 @@
 	tmp->rtp =  ast_rtp_new_with_bindaddr(sched, io, 1, 0, bindaddr.sin_addr);
 
 	ast_mutex_init(&tmp->lock);
-	ast_mutex_lock(&xmpplock);
-	tmp->next = client->xmpps;
-	client->xmpps = tmp;
-	ast_mutex_unlock(&xmpplock);
+	ast_mutex_lock(&jinglelock);
+	tmp->next = peer->p;
+	peer->p = tmp;
+	ast_mutex_unlock(&jinglelock);
 	return tmp;
 }
 
-static int xmpp_answer2(struct axi_client *client,ikspak *pak)
-{
-	struct xmpp_pvt *p ,*tmp = client->xmpps;
+static int jingle_answer2(struct axi_client *client,ikspak *pak)
+{
+	struct jingle_pvt *p ,*tmp = NULL;
+	struct jingle *peer = NULL;
 	struct ast_channel *chan;
 	iks *accept, *codec;
+
+	if((peer = find_jingle(client,pak)))
+		tmp = peer->p;
+
 	codec = iks_child(iks_child(iks_child(pak->x)));
 	chan = ast_channel_alloc(1);
-	chan->tech = &xmpp_tech;
+	chan->tech = &jingle_tech;
 	while(tmp) {
 		if(iks_find_with_attrib(pak->x,GOOGLE_NODE,GOOGLE_SID,tmp->sid))
 		{
@@ -628,7 +674,7 @@
 		}
 		tmp=tmp->next;
 	}
-	p = xmpp_alloc2(client);
+	p = jingle_alloc2(client, pak);
 	ast_mutex_lock(&p->lock);
 	if(iks_find_attrib(pak->x,"from"))
 		ast_copy_string(p->from,iks_find_attrib(pak->x,"from"),sizeof(p->from));
@@ -652,24 +698,25 @@
 	iks_insert_attrib(accept,"id",iks_find_attrib(pak->x,"id"));
 	iks_send(client->p,accept);
 	iks_delete(accept);
-	xmpp_create_candidates(client,pak);
+	jingle_create_candidates(client,pak);
 	return 1;
 }
 
-static int xmpp_add_candidate(struct axi_client *client,ikspak *pak)
-{
-	struct xmpp_pvt *p =NULL,*tmp = client->xmpps;
-	struct axi_candidate *newcandidate = NULL;
+static int jingle_add_candidate(struct axi_client *client,ikspak *pak)
+{
+	struct jingle_pvt *p =NULL,*tmp = NULL;
+	struct jingle *peer = NULL;
+	struct jingle_candidate *newcandidate = NULL;
 	struct sockaddr_in sin;
 	struct hostent *hp;
 	struct ast_hostent ahp;
 	char iabuf[INET_ADDRSTRLEN];
 	iks *candidate_node = NULL;
 	iks *receipt = NULL;
-	newcandidate = (struct axi_candidate *)malloc(sizeof(struct axi_candidate));
+	newcandidate = (struct jingle_candidate *)malloc(sizeof(struct jingle_candidate));
 	if(!newcandidate)
 		return NULL;
-	memset(newcandidate,0,sizeof(struct axi_candidate));
+	memset(newcandidate,0,sizeof(struct jingle_candidate));
 	candidate_node = iks_find(pak->query,"candidate");
 	ast_copy_string(newcandidate->name,iks_find_attrib(candidate_node, "name"),sizeof(newcandidate->name));
 	ast_copy_string(newcandidate->ip, iks_find_attrib(candidate_node, "address"),sizeof(newcandidate->ip));
@@ -727,11 +774,11 @@
 	return 0;
 }
 
-static void check_bridge(struct xmpp_pvt *p, int isoutbound)
-{
-}
-
-static struct ast_frame *xmpp_rtp_read(struct ast_channel *ast, struct xmpp_pvt *p)
+static void check_bridge(struct jingle_pvt *p, int isoutbound)
+{
+}
+
+static struct ast_frame *jingle_rtp_read(struct ast_channel *ast, struct jingle_pvt *p)
 {
 	struct ast_frame *f;
 	if (!p->rtp) {
@@ -758,20 +805,20 @@
 	return f;
 }
 
-static struct ast_frame  *xmpp_read(struct ast_channel *ast)
+static struct ast_frame  *jingle_read(struct ast_channel *ast)
 {
 	struct ast_frame *fr;
-	struct xmpp_pvt *p = ast->tech_pvt;
+	struct jingle_pvt *p = ast->tech_pvt;
 	
 	ast_mutex_lock(&p->lock);
-	fr = xmpp_rtp_read(ast, p);
+	fr = jingle_rtp_read(ast, p);
 	ast_mutex_unlock(&p->lock);
 	return fr;
 }
 
-static int xmpp_write(struct ast_channel *ast, struct ast_frame *f)
-{
-	struct xmpp_pvt *p = ast->tech_pvt;
+static int jingle_write(struct ast_channel *ast, struct ast_frame *f)
+{
+	struct jingle_pvt *p = ast->tech_pvt;
 	int res = -1;
 	int isoutbound;
 
@@ -781,7 +828,7 @@
 	if (f && (f->frametype == AST_FRAME_VOICE)) 
 		check_bridge(p, isoutbound);
 //	if (!p->alreadymasqed)
-//		res = xmpp_queue_frame(p, isoutbound, f, ast);
+//		res = jingle_queue_frame(p, isoutbound, f, ast);
 //	else {
 //		ast_log(LOG_DEBUG, "Not posting to queue since already masked on '%s'\n", ast->name);
 //		res = 0;
@@ -790,9 +837,9 @@
 	return res;
 }
 
-static int xmpp_fixup(struct ast_channel *oldchan, struct ast_channel *newchan)
-{
-	struct xmpp_pvt *p = newchan->tech_pvt;
+static int jingle_fixup(struct ast_channel *oldchan, struct ast_channel *newchan)
+{
+	struct jingle_pvt *p = newchan->tech_pvt;
 	ast_mutex_lock(&p->lock);
 
 	if ((p->owner != oldchan) ) {
@@ -805,9 +852,9 @@
 	return 0;
 }
 
-static int xmpp_indicate(struct ast_channel *ast, int condition)
-{
-	struct xmpp_pvt *p = ast->tech_pvt;
+static int jingle_indicate(struct ast_channel *ast, int condition)
+{
+	struct jingle_pvt *p = ast->tech_pvt;
 	int res = -1;
 	struct ast_frame f = { AST_FRAME_CONTROL, };
 	int isoutbound;
@@ -816,14 +863,14 @@
 	ast_mutex_lock(&p->lock);
 //	isoutbound = IS_OUTBOUND(ast, p);
 	f.subclass = condition;
-	res = xmpp_queue_frame(p, isoutbound, &f, ast);
+	res = jingle_queue_frame(p, isoutbound, &f, ast);
 	ast_mutex_unlock(&p->lock);
 	return res;
 }
 
-static int xmpp_digit(struct ast_channel *ast, char digit)
-{
-	struct xmpp_pvt *p = ast->tech_pvt;
+static int jingle_digit(struct ast_channel *ast, char digit)
+{
+	struct jingle_pvt *p = ast->tech_pvt;
 	int res = -1;
 	struct ast_frame f = { AST_FRAME_DTMF, };
 	int isoutbound;
@@ -831,14 +878,14 @@
 	ast_mutex_lock(&p->lock);
 //	isoutbound = IS_OUTBOUND(ast, p);
 	f.subclass = digit;
-	res = xmpp_queue_frame(p, isoutbound, &f, ast);
+	res = jingle_queue_frame(p, isoutbound, &f, ast);
 	ast_mutex_unlock(&p->lock);
 	return res;
 }
 
-static int xmpp_sendhtml(struct ast_channel *ast, int subclass, const char *data, int datalen)
-{
-	struct xmpp_pvt *p = ast->tech_pvt;
+static int jingle_sendhtml(struct ast_channel *ast, int subclass, const char *data, int datalen)
+{
+	struct jingle_pvt *p = ast->tech_pvt;
 	int res = -1;
 	struct ast_frame f = { AST_FRAME_HTML, };
 	int isoutbound;
@@ -848,16 +895,16 @@
 	f.subclass = subclass;
 	f.data = (char *)data;
 	f.datalen = datalen;
-	res = xmpp_queue_frame(p, isoutbound, &f, ast);
+	res = jingle_queue_frame(p, isoutbound, &f, ast);
 	ast_mutex_unlock(&p->lock);
 	return res;
 }
 
 /*! \brief Initiate new call, part of PBX interface 
  * 	dest is the dial string */
-static int xmpp_call(struct ast_channel *ast, char *dest, int timeout)
-{
-	struct xmpp_pvt *p = ast->tech_pvt;
+static int jingle_call(struct ast_channel *ast, char *dest, int timeout)
+{
+	struct jingle_pvt *p = ast->tech_pvt;
 	int res;
 	struct ast_var_t *varptr = NULL, *new;
 	size_t len, namelen;
@@ -894,17 +941,17 @@
 }
 
 #if 0
-static void xmpp_destroy(struct xmpp_pvt *p)
-{
-	struct xmpp_pvt *cur, *prev = NULL;
-	ast_mutex_lock(&xmpplock);
-	cur = client->xmpps;
+static void jingle_destroy(struct jingle_pvt *p)
+{
+	struct jingle_pvt *cur, *prev = NULL;
+	ast_mutex_lock(&jinglelock);
+	cur = jingles->p;
 	while(cur) {
 		if (cur == p) {
 			if (prev)
 				prev->next = cur->next;
 			else
-				client->xmpps = cur->next;
+				jingles->p = cur->next;
 			ast_mutex_destroy(cur);
 			free(cur);
 			break;
@@ -912,22 +959,23 @@
 		prev = cur;
 		cur = cur->next;
 	}
-	ast_mutex_unlock(&xmpplock);
+	ast_mutex_unlock(&jinglelock);
 	if (!cur)
-		ast_log(LOG_WARNING, "Unable ot find xmpp '%s@%s' in xmpp list\n", p->exten, p->context);
+		ast_log(LOG_WARNING, "Unable ot find jingle '%s@%s' in jingle list\n", p->exten, p->context);
 }
 #endif
 
-/*! \brief Hangup a call through the xmpp proxy channel */
-static int xmpp_hangup(struct ast_channel *ast)
-{
-	return 0;
-	struct xmpp_pvt *p = ast->tech_pvt;
+/*! \brief Hangup a call through the jingle proxy channel */
+static int jingle_hangup(struct ast_channel *ast)
+{
+#if 0 
+	struct jingle_pvt *p = ast->tech_pvt;
+	struct jingle *peer = NULL;
 	struct axi_client *client = NULL;
 	client = ast_axi_get_client("asterisk");
 	int isoutbound;
 	struct ast_frame f = { AST_FRAME_CONTROL, AST_CONTROL_HANGUP };
-	struct xmpp_pvt *cur, *prev=NULL;
+	struct jingle_pvt *cur, *prev=NULL;
 	struct ast_channel *ochan = NULL;
 	int glaredetect;
 	const char *status;
@@ -951,25 +999,27 @@
 		/* Okay, done with the private part now, too. */
 //		glaredetect = p->glaredetect;
 		/* If we have a queue holding, don't actually destroy p yet, but
-		   let xmpp_queue do it. */
+		   let jingle_queue do it. */
 //		if (p->glaredetect)
 //			p->cancelqueue = 1;
 		ast_mutex_unlock(&p->lock);
 		/* Remove from list */
-		ast_mutex_lock(&xmpplock);
-		cur = client->xmpps;
+		ast_mutex_lock(&jinglelock);
+
+		if((peer = find_jingle(client,pak)))
+			cur = peer->p;
 		while(cur) {
 			if (cur == p) {
 				if (prev)
 					prev->next = cur->next;
 				else
-					client->xmpps = cur->next;
+					peer->p = cur->next;
 				break;
 			}
 			prev = cur;
 			cur = cur->next;
 		}
-		ast_mutex_unlock(&xmpplock);
+		ast_mutex_unlock(&jinglelock);
 		/* Grab / release lock just in case */
 		ast_mutex_lock(&p->lock);
 		ast_mutex_unlock(&p->lock);
@@ -984,17 +1034,18 @@
 //		/* Need to actually hangup since there is no PBX */
 //		ochan = p->chan;
 //	else
-//		xmpp_queue_frame(p, isoutbound, &f, NULL);
+//		jingle_queue_frame(p, isoutbound, &f, NULL);
 	ast_mutex_unlock(&p->lock);
 	if (ochan)
 		ast_hangup(ochan);
+#endif
 	return 0;
 }
 
 /*! \brief Create a call structure */
-static struct xmpp_pvt *xmpp_alloc(char *data, int format)
-{
-	struct xmpp_pvt *tmp;
+static struct jingle_pvt *jingle_alloc(char *data, int format)
+{
+	struct jingle_pvt *tmp;
 
 	if (!(tmp = ast_calloc(1, sizeof(*tmp)))) {
 		return NULL;
@@ -1002,8 +1053,8 @@
 	return tmp;
 }
 
-/*! \brief Start new xmpp channel */
-static struct ast_channel *xmpp_new(struct xmpp_pvt *p, int state)
+/*! \brief Start new jingle channel */
+static struct ast_channel *jingle_new(struct jingle_pvt *p, int state)
 {
 	struct ast_channel *tmp;
 
@@ -1017,29 +1068,31 @@
 
 
 /*! \brief Part of PBX interface */
-static struct ast_channel *xmpp_request(const char *type, int format, void *data, int *cause)
-{
-	struct xmpp_pvt *p;
+static struct ast_channel *jingle_request(const char *type, int format, void *data, int *cause)
+{
+	struct jingle_pvt *p;
 	struct ast_channel *chan = NULL;
 
-	p = xmpp_alloc(data, format);
+	p = jingle_alloc(data, format);
 	if (p)
-		chan = xmpp_new(p, AST_STATE_DOWN);
+		chan = jingle_new(p, AST_STATE_DOWN);
 	return chan;
 }
 
-/*! \brief CLI command "xmpp show channels" */
-static int xmpp_show(int fd, int argc, char **argv)
-{
-	struct xmpp_pvt *p;
-	struct axi_candidate *tmp;
+#if 0 
+/*! \brief CLI command "jingle show channels" */
+static int jingle_show(int fd, int argc, char **argv)
+{
+	struct jingle_pvt *p=NULL;
+	struct jingle *peer=NULL;
+	struct jingle_candidate *tmp;
 	struct axi_client *client = NULL;
 	client = ast_axi_get_client("asterisk");
 	if (argc != 3)
 		return RESULT_SHOWUSAGE;
-	ast_mutex_lock(&xmpplock);
+	ast_mutex_lock(&jinglelock);
 	if(client)
-		p = client->xmpps;
+		p = jingles->p;
 	while(p) {
 		ast_mutex_lock(&p->lock);
 		ast_cli(fd, "SID = %s\n",p->sid );
@@ -1051,33 +1104,33 @@
 		ast_mutex_unlock(&p->lock);
 		p = p->next;
 	}
-	if (!client->xmpps)
-		ast_cli(fd, "No xmpp channels in use\n");
-	ast_mutex_unlock(&xmpplock);
+	if (!jingles->p)
+		ast_cli(fd, "No jingle channels in use\n");
+	ast_mutex_unlock(&jinglelock);
 	return RESULT_SUCCESS;
 }
-
-static char show_xmpps_usage[] = 
-"Usage: xmpp show channels\n"
-"       Provides summary information on active xmpp proxy channels.\n";
-
-static struct ast_cli_entry cli_show_xmpps = {
-	{ "xmpp", "show", "channels", NULL }, xmpp_show, 
-	"Show status of xmpp channels", show_xmpps_usage, NULL };
-
-
-static int xmpp_parser(struct axi_client *client, iks *node)
-{
+#endif
+static char show_jingle_usage[] = 
+"Usage: jingle show channels\n"

[... 844 lines stripped ...]


More information about the asterisk-commits mailing list