[asterisk-commits] murf: branch murf/CDRfix5 r67917 - /team/murf/CDRfix5/res/res_features.c

asterisk-commits at lists.digium.com asterisk-commits at lists.digium.com
Wed Jun 6 16:11:13 MST 2007


Author: murf
Date: Wed Jun  6 18:11:12 2007
New Revision: 67917

URL: http://svn.digium.com/view/asterisk?view=rev&rev=67917
Log:
Scenarios 4 and 5 now resolved. 6 might be OK

Modified:
    team/murf/CDRfix5/res/res_features.c

Modified: team/murf/CDRfix5/res/res_features.c
URL: http://svn.digium.com/view/asterisk/team/murf/CDRfix5/res/res_features.c?view=diff&rev=67917&r1=67916&r2=67917
==============================================================================
--- team/murf/CDRfix5/res/res_features.c (original)
+++ team/murf/CDRfix5/res/res_features.c Wed Jun  6 18:11:12 2007
@@ -1668,6 +1668,7 @@
 	char peer_featurecode[FEATURE_MAX_LEN + 1]="";
 	char orig_channame[AST_MAX_EXTENSION];
 	char orig_peername[AST_MAX_EXTENSION];
+
 	int res;
 	int diff;
 	int hasfeatures=0;
@@ -1928,14 +1929,19 @@
 
 	/* last minute mods -- a transfer will change the CHAN to point to a different
 	   channel; recopy the src, clid info for CHAN into the bridge cdr now */
-	if (strcmp(orig_channame,chan->name) != 0) {
+	if (strcmp(orig_channame,chan->name) != 0 && (strlen(chan->name) <= 8 || strcmp(chan->name+strlen(chan->name)-8 ,"<ZOMBIE>") != 0)) {
 		ast_verbose(VERBOSE_PREFIX_3 "EO Bridge: Chan name changed. %s -> %s\n", orig_channame, chan->name);
 
 		ast_copy_string(bridge_cdr->channel, chan->name, sizeof(bridge_cdr->channel));
 		ast_copy_string(bridge_cdr->uniqueid, chan->uniqueid, sizeof(bridge_cdr->uniqueid));
 		ast_cdr_setcid(bridge_cdr, chan);
 		ast_copy_string(bridge_cdr->accountcode, chan->accountcode, sizeof(bridge_cdr->accountcode));
-	}
+	} else if (strcmp(orig_channame,chan->name) != 0 && strlen(chan->name) > 8 && strcmp(chan->name+strlen(chan->name)-8 ,"<ZOMBIE>") == 0) {
+		/* modify the lastapp, lastdata to reflect the Blind Xfer */
+		strcpy(bridge_cdr->lastapp,"BLINDXFER");
+		bridge_cdr->lastdata[0] = 0;
+	}
+	
 
 	if (chan->cdr && strcmp(orig_channame,chan->name) != 0 && !chan->masqr) { /* for when bridge ends after only 1 HF (blind assisted xfer) */
 		ast_verbose(VERBOSE_PREFIX_3 "Chan name change: blind xfer implied, reset start/answer\n");



More information about the asterisk-commits mailing list