[asterisk-commits] lmadsen: tag 1.8.1.1 r298203 - in /tags/1.8.1.1: ./ channels/ main/

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Mon Dec 13 11:19:04 CST 2010


Author: lmadsen
Date: Mon Dec 13 11:18:57 2010
New Revision: 298203

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=298203
Log:
Update ChangeLog and .version file. Merge fixes for CDR crash and chan_gtalk fixup.

Modified:
    tags/1.8.1.1/.version
    tags/1.8.1.1/ChangeLog
    tags/1.8.1.1/channels/chan_gtalk.c
    tags/1.8.1.1/main/features.c

Modified: tags/1.8.1.1/.version
URL: http://svnview.digium.com/svn/asterisk/tags/1.8.1.1/.version?view=diff&rev=298203&r1=298202&r2=298203
==============================================================================
--- tags/1.8.1.1/.version (original)
+++ tags/1.8.1.1/.version Mon Dec 13 11:18:57 2010
@@ -1,1 +1,1 @@
-1.8.1
+1.8.1.1

Modified: tags/1.8.1.1/ChangeLog
URL: http://svnview.digium.com/svn/asterisk/tags/1.8.1.1/ChangeLog?view=diff&rev=298203&r1=298202&r2=298203
==============================================================================
--- tags/1.8.1.1/ChangeLog (original)
+++ tags/1.8.1.1/ChangeLog Mon Dec 13 11:18:57 2010
@@ -1,3 +1,31 @@
+2010-12-13  Leif Madsen <lmadsen at digium.com>
+
+	* Asterisk 1.8.1.1 Released.
+
+2010-12-09 15:32:20 -0600  David Vossel <dvossel at digium.com>
+
+	* Fixes issue with outbound google voice calls not working.
+
+	  Thanks to az1234 and nevermind_quack for their input in helping debug
+	  the issue.
+
+	  (closes issue #18412)
+	  Reported by: nevermind_quack
+	  Patches:
+	        fix uploaded by dvossel (license 671)
+
+2010-12-09 14:48:44 -0600  Terry Wilson <twilson at digium.com>
+
+	* Don't crash after Set(CDR(userfield)=...) in ast_bridge_call
+
+	  Instead of setting peer->cdr = NULL, set it to not post.
+
+	  (closes issue #18415)
+	  Reported by: macbrody
+	  Patches: 
+	        patch-18415 uploaded by jsolares (license 1167)
+	  Tested by: jsolares, twilson
+
 2010-12-02  Leif Madsen <lmadsen at digium.com>
 
 	* Asterisk 1.8.1 Released.

Modified: tags/1.8.1.1/channels/chan_gtalk.c
URL: http://svnview.digium.com/svn/asterisk/tags/1.8.1.1/channels/chan_gtalk.c?view=diff&rev=298203&r1=298202&r2=298203
==============================================================================
--- tags/1.8.1.1/channels/chan_gtalk.c (original)
+++ tags/1.8.1.1/channels/chan_gtalk.c Mon Dec 13 11:18:57 2010
@@ -193,6 +193,8 @@
 /* static char *gtalk_do_reload(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a); */
 static char *gtalk_show_channels(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a);
 static int gtalk_update_externip(void);
+static int gtalk_parser(void *data, ikspak *pak);
+static int gtalk_create_candidates(struct gtalk *client, struct gtalk_pvt *p, char *sid, char *from, char *to);
 
 /*! \brief PBX interface structure for channel registration */
 static const struct ast_channel_tech gtalk_tech = {
@@ -458,12 +460,46 @@
 static int gtalk_ringing_ack(void *data, ikspak *pak)
 {
 	struct gtalk_pvt *p = data;
-
-	if (p->ringrule)
+	struct ast_channel *owner;
+
+	ast_mutex_lock(&p->lock);
+
+	if (p->ringrule) {
 		iks_filter_remove_rule(p->parent->connection->f, p->ringrule);
+	}
 	p->ringrule = NULL;
-	if (p->owner)
-		ast_queue_control(p->owner, AST_CONTROL_RINGING);
+
+	/* this may be a redirect */
+	if (!strcmp(S_OR(iks_find_attrib(pak->x, "type"), ""), "error")) {
+		char *name = NULL;
+		char *redirect = NULL;
+		iks *traversenodes = NULL;
+		traversenodes = pak->query;
+		while (traversenodes) {
+			if (!(name = iks_name(traversenodes))) {
+				break;
+			}
+			if (!strcasecmp(name, "error") &&
+				(redirect = iks_find_cdata(traversenodes, "redirect")) &&
+				(redirect = strstr(redirect, "xmpp:"))) {
+				redirect += 5;
+				ast_log(LOG_DEBUG, "redirect %s\n", redirect);
+				ast_copy_string(p->them, redirect, sizeof(p->them));
+
+				gtalk_invite(p, p->them, p->us, p->sid, 1);
+				break;
+			}
+			traversenodes = iks_next_tag(traversenodes);
+		}
+	}
+	gtalk_create_candidates(p->parent, p, p->sid, p->them, p->us);
+	owner = p->owner;
+	ast_mutex_unlock(&p->lock);
+
+	if (owner) {
+		ast_queue_control(owner, AST_CONTROL_RINGING);
+	}
+
 	return IKS_FILTER_EAT;
 }
 
@@ -965,7 +1001,7 @@
 		if (resources) {
 			snprintf(idroster, sizeof(idroster), "%s/%s", them, resources->resource);
 		} else if ((*them == '+') || (strstr(them, "@voice.google.com"))) {
-			snprintf(idroster, sizeof(idroster), "%s/srvres", them);
+			snprintf(idroster, sizeof(idroster), "%s", them);
 		} else {
 			ast_log(LOG_ERROR, "no gtalk capable clients to talk to.\n");
 			return NULL;
@@ -1775,7 +1811,6 @@
 	}
 
 	gtalk_invite(p, p->them, p->us, p->sid, 1);
-	gtalk_create_candidates(p->parent, p, p->sid, p->them, p->us);
 
 	return 0;
 }

Modified: tags/1.8.1.1/main/features.c
URL: http://svnview.digium.com/svn/asterisk/tags/1.8.1.1/main/features.c?view=diff&rev=298203&r1=298202&r2=298203
==============================================================================
--- tags/1.8.1.1/main/features.c (original)
+++ tags/1.8.1.1/main/features.c Mon Dec 13 11:18:57 2010
@@ -3091,6 +3091,7 @@
 	int hasfeatures=0;
 	int hadfeatures=0;
 	int autoloopflag;
+	int we_disabled_peer_cdr = 0;
 	struct ast_option_header *aoh;
 	struct ast_cdr *bridge_cdr = NULL;
 	struct ast_cdr *orig_peer_cdr = NULL;
@@ -3158,9 +3159,9 @@
 			ast_cdr_appenduserfield(chan, tmp);
 		} else
 			ast_cdr_setuserfield(chan, peer->cdr->userfield);
-		/* free the peer's cdr without ast_cdr_free complaining */
-		ast_free(peer->cdr);
-		peer->cdr = NULL;
+		/* Don't delete the CDR; just disable it. */
+		ast_set_flag(peer->cdr, AST_CDR_FLAG_POST_DISABLED);
+		we_disabled_peer_cdr = 1;
 	}
 	ast_copy_string(orig_channame,chan->name,sizeof(orig_channame));
 	ast_copy_string(orig_peername,peer->name,sizeof(orig_peername));
@@ -3600,6 +3601,9 @@
 				ast_cdr_specialized_reset(new_peer_cdr, 0);
 			}
 		} else {
+			if (we_disabled_peer_cdr) {
+				ast_clear_flag(peer->cdr, AST_CDR_FLAG_POST_DISABLED);
+			}
 			ast_cdr_specialized_reset(peer->cdr, 0); /* nothing changed, reset the peer cdr  */
 		}
 	}




More information about the asterisk-commits mailing list