[svn-commits] russell: branch russell/events r59251 - in /team/russell/events: ./ apps/ cha...

svn-commits at lists.digium.com svn-commits at lists.digium.com
Mon Mar 26 22:15:59 MST 2007


Author: russell
Date: Tue Mar 27 00:15:58 2007
New Revision: 59251

URL: http://svn.digium.com/view/asterisk?view=rev&rev=59251
Log:
Merged revisions 59224,59226,59229,59231,59233-59234,59236 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/trunk

................
r59224 | file | 2007-03-26 14:35:24 -0500 (Mon, 26 Mar 2007) | 10 lines

Merged revisions 59223 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r59223 | file | 2007-03-26 16:34:14 -0300 (Mon, 26 Mar 2007) | 2 lines

Add ability to specify no timeout. This means as soon as the prompt is done playing it moves on to the next priority.

........

................
r59226 | murf | 2007-03-26 15:27:02 -0500 (Mon, 26 Mar 2007) | 9 lines

Merged revisions 59225 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r59225 | murf | 2007-03-26 14:06:12 -0600 (Mon, 26 Mar 2007) | 1 line

Fix for 9257; by eliminating the globals in main/config.c, we make it thread-safe, which is a minimum requirement.
........

................
r59229 | tilghman | 2007-03-26 16:44:59 -0500 (Mon, 26 Mar 2007) | 10 lines

Merged revisions 59227 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r59227 | tilghman | 2007-03-26 16:37:41 -0500 (Mon, 26 Mar 2007) | 2 lines

Change this to a single dp function to make oej happy.

........

................
r59231 | tilghman | 2007-03-26 16:46:32 -0500 (Mon, 26 Mar 2007) | 9 lines

Blocked revisions 59230 via svnmerge

........
r59230 | tilghman | 2007-03-26 16:45:44 -0500 (Mon, 26 Mar 2007) | 2 lines

Oops, this should be case insensitive

........

................
r59233 | murf | 2007-03-26 16:47:37 -0500 (Mon, 26 Mar 2007) | 9 lines

Merged revisions 59228 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r59228 | murf | 2007-03-26 15:41:32 -0600 (Mon, 26 Mar 2007) | 1 line

fix for 9373 (duplicate context in AEL crashes asterisk). I turned a duplicate context from a WARNING to an ERROR. Now you get a module load failure, and asterisk just exits. That's better than a crash, right\?
........

................
r59234 | murf | 2007-03-26 17:17:37 -0500 (Mon, 26 Mar 2007) | 1 line

updated the regressions with regards to 9373, the crash on double contexts, and brought other regressions up to date
................
r59236 | murf | 2007-03-26 17:24:16 -0500 (Mon, 26 Mar 2007) | 1 line

added the no. 18 regression test
................

Added:
    team/russell/events/pbx/ael/ael-test/ael-test18/
      - copied from r59236, trunk/pbx/ael/ael-test/ael-test18/
    team/russell/events/pbx/ael/ael-test/ael-test18/extensions.ael
      - copied unchanged from r59236, trunk/pbx/ael/ael-test/ael-test18/extensions.ael
    team/russell/events/pbx/ael/ael-test/ael-test19/
      - copied from r59236, trunk/pbx/ael/ael-test/ael-test19/
    team/russell/events/pbx/ael/ael-test/ael-test19/extensions.ael
      - copied unchanged from r59236, trunk/pbx/ael/ael-test/ael-test19/extensions.ael
    team/russell/events/pbx/ael/ael-test/ref.ael-test18
      - copied unchanged from r59236, trunk/pbx/ael/ael-test/ref.ael-test18
    team/russell/events/pbx/ael/ael-test/ref.ael-test19
      - copied unchanged from r59236, trunk/pbx/ael/ael-test/ref.ael-test19
Modified:
    team/russell/events/   (props changed)
    team/russell/events/apps/app_speech_utils.c
    team/russell/events/channels/chan_sip.c
    team/russell/events/main/config.c
    team/russell/events/pbx/ael/ael-test/ref.ael-test7
    team/russell/events/pbx/ael/ael-test/ref.ael-vtest13
    team/russell/events/pbx/ael/ael-test/ref.ael-vtest17
    team/russell/events/pbx/pbx_ael.c

Propchange: team/russell/events/
------------------------------------------------------------------------------
Binary property 'branch-1.4-blocked' - no diff available.

Propchange: team/russell/events/
------------------------------------------------------------------------------
Binary property 'branch-1.4-merged' - no diff available.

Propchange: team/russell/events/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Tue Mar 27 00:15:58 2007
@@ -1,1 +1,1 @@
-/trunk:1-59218
+/trunk:1-59250

Modified: team/russell/events/apps/app_speech_utils.c
URL: http://svn.digium.com/view/asterisk/team/russell/events/apps/app_speech_utils.c?view=diff&rev=59251&r1=59250&r2=59251
==============================================================================
--- team/russell/events/apps/app_speech_utils.c (original)
+++ team/russell/events/apps/app_speech_utils.c Tue Mar 27 00:15:58 2007
@@ -544,8 +544,11 @@
         if (argc > 0) {
                 /* Yay sound file */
                 filename_tmp = ast_strdupa(argv[0]);
-                if (argv[1] != NULL)
-                        timeout = atoi(argv[1]);
+		if (!ast_strlen_zero(argv[1])) {
+			if ((timeout = atoi(argv[1])) == 0)
+				timeout = -1;
+		} else
+			timeout = 0;
         }
 
         /* Before we go into waiting for stuff... make sure the structure is ready, if not - start it again */
@@ -611,7 +614,13 @@
                         /* If audio playback has stopped do a check for timeout purposes */
                         if (chan->streamid == -1 && chan->timingfunc == NULL)
                                 ast_stopstream(chan);
-                        if (!quieted && chan->stream == NULL && timeout > 0 && started == 0 && !filename_tmp) {
+                        if (!quieted && chan->stream == NULL && timeout && started == 0 && !filename_tmp) {
+				if (timeout == -1) {
+					done = 1;
+					if (f)
+						ast_frfree(f);
+					break;
+				}
 				time(&start);
 				started = 1;
                         }

Modified: team/russell/events/channels/chan_sip.c
URL: http://svn.digium.com/view/asterisk/team/russell/events/channels/chan_sip.c?view=diff&rev=59251&r1=59250&r2=59251
==============================================================================
--- team/russell/events/channels/chan_sip.c (original)
+++ team/russell/events/channels/chan_sip.c Tue Mar 27 00:15:58 2007
@@ -14822,11 +14822,16 @@
 	}
 }
 
-static int acf_audiortpqos_read(struct ast_channel *chan, const char *funcname, char *args, char *buf, size_t buflen)
+static int acf_rtpqos_read(struct ast_channel *chan, const char *funcname, char *preparse, char *buf, size_t buflen)
 {
 	struct ast_rtp_quality qos;
 	struct sip_pvt *p = chan->tech_pvt;
-	char *all = "";
+	char *all = "", *parse = ast_strdupa(preparse);
+	AST_DECLARE_APP_ARGS(args,
+		AST_APP_ARG(type);
+		AST_APP_ARG(field);
+	);
+	AST_STANDARD_APP_ARGS(args, parse);
 
 	/* Sanity check */
 	if (chan->tech != &sip_tech && chan->tech != &sip_tech_info) {
@@ -14836,36 +14841,36 @@
 	memset(buf, 0, buflen);
 	memset(&qos, 0, sizeof(qos));
 
-	if (strcmp(funcname, "RTPAUDIOQOS") == 0) {
+	if (strcasecmp(args.type, "AUDIO") == 0) {
 		all = ast_rtp_get_quality(p->rtp, &qos);
-	} else if (strcmp(funcname, "RTPVIDEOQOS") == 0) {
+	} else if (strcasecmp(args.type, "VIDEO") == 0) {
 		all = ast_rtp_get_quality(p->vrtp, &qos);
-	} else if (strcmp(funcname, "RTPTEXTQOS") == 0) {
+	} else if (strcasecmp(args.type, "TEXT") == 0) {
 		all = ast_rtp_get_quality(p->trtp, &qos);
 	}
 
-	if (strcasecmp(args, "local_ssrc") == 0)
+	if (strcasecmp(args.field, "local_ssrc") == 0)
 		snprintf(buf, buflen, "%u", qos.local_ssrc);
-	else if (strcasecmp(args, "local_lostpackets") == 0)
+	else if (strcasecmp(args.field, "local_lostpackets") == 0)
 		snprintf(buf, buflen, "%u", qos.local_lostpackets);
-	else if (strcasecmp(args, "local_jitter") == 0)
+	else if (strcasecmp(args.field, "local_jitter") == 0)
 		snprintf(buf, buflen, "%.0lf", qos.local_jitter * 1000.0);
-	else if (strcasecmp(args, "local_count") == 0)
+	else if (strcasecmp(args.field, "local_count") == 0)
 		snprintf(buf, buflen, "%u", qos.local_count);
-	else if (strcasecmp(args, "remote_ssrc") == 0)
+	else if (strcasecmp(args.field, "remote_ssrc") == 0)
 		snprintf(buf, buflen, "%u", qos.remote_ssrc);
-	else if (strcasecmp(args, "remote_lostpackets") == 0)
+	else if (strcasecmp(args.field, "remote_lostpackets") == 0)
 		snprintf(buf, buflen, "%u", qos.remote_lostpackets);
-	else if (strcasecmp(args, "remote_jitter") == 0)
+	else if (strcasecmp(args.field, "remote_jitter") == 0)
 		snprintf(buf, buflen, "%.0lf", qos.remote_jitter * 1000.0);
-	else if (strcasecmp(args, "remote_count") == 0)
+	else if (strcasecmp(args.field, "remote_count") == 0)
 		snprintf(buf, buflen, "%u", qos.remote_count);
-	else if (strcasecmp(args, "rtt") == 0)
+	else if (strcasecmp(args.field, "rtt") == 0)
 		snprintf(buf, buflen, "%.0lf", qos.rtt * 1000.0);
-	else if (strcasecmp(args, "all") == 0)
+	else if (strcasecmp(args.field, "all") == 0)
 		ast_copy_string(buf, all, buflen);
 	else {
-		ast_log(LOG_WARNING, "Unrecognized argument '%s' to %s\n", args, funcname);
+		ast_log(LOG_WARNING, "Unrecognized argument '%s' to %s\n", preparse, funcname);
 		return -1;
 	}
 	return 0;
@@ -18131,9 +18136,9 @@
 	sip_reload_usage },
 };
 
-struct ast_custom_function acf_audiortpqos = {
-	.name = "RTPAUDIOQOS",
-	.synopsis = "Retrieve statistics about an RTP audio stream",
+struct ast_custom_function acf_rtpqos = {
+	.name = "RTPQOS",
+	.synopsis = "Retrieve statistics about an RTP stream",
 	.desc =
 "The following statistics may be retrieved:\n"
 "  local_ssrc         - Local SSRC (stream ID)\n"
@@ -18145,47 +18150,11 @@
 "  remote_jitter      - Remote reported jitter\n"
 "  remote_count       - Number of transmitted packets\n"
 "  rtt                - Round trip time\n"
-"  all                - All statistics (in a form suited to logging, but not for parsing)",
-	.syntax = "RTPAUDIOQOS(<field>)",
-	.read = acf_audiortpqos_read,
-};
-
-struct ast_custom_function acf_videortpqos = {
-	.name = "RTPVIDEOQOS",
-	.synopsis = "Retrieve statistics about an RTP video stream",
-	.desc =
-"The following statistics may be retrieved:\n"
-"  local_ssrc         - Local SSRC (stream ID)\n"
-"  local_lostpackets  - Local lost packets\n"
-"  local_jitter       - Local calculated jitter\n"
-"  local_count        - Number of received packets\n"
-"  remote_ssrc        - Remote SSRC (stream ID)\n"
-"  remote_lostpackets - Remote lost packets\n"
-"  remote_jitter      - Remote reported jitter\n"
-"  remote_count       - Number of transmitted packets\n"
-"  rtt                - Round trip time\n"
-"  all                - All statistics (in a form suited to logging, but not for parsing)",
-	.syntax = "RTPVIDEOQOS(<field>)",
-	.read = acf_audiortpqos_read,
-};
-
-struct ast_custom_function acf_textrtpqos = {
-	.name = "RTPTEXTQOS",
-	.synopsis = "Retrieve statistics about an RTP text stream",
-	.desc =
-"The following statistics may be retrieved:\n"
-"  local_ssrc         - Local SSRC (stream ID)\n"
-"  local_lostpackets  - Local lost packets\n"
-"  local_jitter       - Local calculated jitter\n"
-"  local_count        - Number of received packets\n"
-"  remote_ssrc        - Remote SSRC (stream ID)\n"
-"  remote_lostpackets - Remote lost packets\n"
-"  remote_jitter      - Remote reported jitter\n"
-"  remote_count       - Number of transmitted packets\n"
-"  rtt                - Round trip time\n"
-"  all                - All statistics (in a form suited to logging, but not for parsing)",
-	.syntax = "RTPTEXTQOS(<field>)",
-	.read = acf_audiortpqos_read,
+"  all                - All statistics (in a form suited to logging, but not for parsing)\n"
+"\n"
+"Type may be specified as \"audio\", \"video\", or \"text\".\n",
+	.syntax = "RTPQOS(<type>|<field>)",
+	.read = acf_rtpqos_read,
 };
 
 /*! \brief PBX load module - initialization */
@@ -18237,9 +18206,7 @@
 	ast_custom_function_register(&sippeer_function);
 	ast_custom_function_register(&sipchaninfo_function);
 	ast_custom_function_register(&checksipdomain_function);
-	ast_custom_function_register(&acf_audiortpqos);
-	ast_custom_function_register(&acf_videortpqos);
-	ast_custom_function_register(&acf_textrtpqos);
+	ast_custom_function_register(&acf_rtpqos);
 
 	/* Register manager commands */
 	ast_manager_register2("SIPpeers", EVENT_FLAG_SYSTEM, manager_sip_show_peers,
@@ -18269,9 +18236,7 @@
 	ast_custom_function_unregister(&sippeer_function);
 	ast_custom_function_unregister(&sip_header_function);
 	ast_custom_function_unregister(&checksipdomain_function);
-	ast_custom_function_unregister(&acf_audiortpqos);
-	ast_custom_function_unregister(&acf_videortpqos);
-	ast_custom_function_unregister(&acf_textrtpqos);
+	ast_custom_function_unregister(&acf_rtpqos);
 
 	/* Unregister dial plan applications */
 	ast_unregister_application(app_dtmfmode);

Modified: team/russell/events/main/config.c
URL: http://svn.digium.com/view/asterisk/team/russell/events/main/config.c?view=diff&rev=59251&r1=59250&r2=59251
==============================================================================
--- team/russell/events/main/config.c (original)
+++ team/russell/events/main/config.c Tue Mar 27 00:15:58 2007
@@ -62,14 +62,8 @@
 
 static char *extconfig_conf = "extconfig.conf";
 
-/*! Growable string buffer */
-static char *comment_buffer;   /*!< this will be a comment collector.*/
-static int   comment_buffer_size;  /*!< the amount of storage so far alloc'd for the comment_buffer */
-
-static char *lline_buffer;    /*!< A buffer for stuff behind the ; */
-static int  lline_buffer_size;
-
-
+
+/*! \brief Structure to keep comments for rewriting configuration files */
 /*! \brief Structure to keep comments for rewriting configuration files */
 struct ast_comment {
 	struct ast_comment *next;
@@ -78,71 +72,70 @@
 
 #define CB_INCR 250
 
-static void CB_INIT(void)
-{
-	if (!comment_buffer) {
-		comment_buffer = ast_malloc(CB_INCR);
-		if (!comment_buffer)
+static void CB_INIT(char **comment_buffer, int *comment_buffer_size, char **lline_buffer, int *lline_buffer_size)
+{
+	if (!(*comment_buffer)) {
+		*comment_buffer = ast_malloc(CB_INCR);
+		if (!(*comment_buffer))
 			return;
-		comment_buffer[0] = 0;
-		comment_buffer_size = CB_INCR;
-		lline_buffer = ast_malloc(CB_INCR);
-		if (!lline_buffer)
+		(*comment_buffer)[0] = 0;
+		*comment_buffer_size = CB_INCR;
+		*lline_buffer = ast_malloc(CB_INCR);
+		if (!(*lline_buffer))
 			return;
-		lline_buffer[0] = 0;
-		lline_buffer_size = CB_INCR;
+		(*lline_buffer)[0] = 0;
+		*lline_buffer_size = CB_INCR;
 	} else {
-		comment_buffer[0] = 0;
-		lline_buffer[0] = 0;
-	}
-}
-
-static void  CB_ADD(char *str)
-{
-	int rem = comment_buffer_size - strlen(comment_buffer) - 1;
+		(*comment_buffer)[0] = 0;
+		(*lline_buffer)[0] = 0;
+	}
+}
+
+static void  CB_ADD(char **comment_buffer, int *comment_buffer_size, char *str)
+{
+	int rem = *comment_buffer_size - strlen(*comment_buffer) - 1;
 	int siz = strlen(str);
 	if (rem < siz+1) {
-		comment_buffer = ast_realloc(comment_buffer, comment_buffer_size + CB_INCR + siz + 1);
-		if (!comment_buffer)
+		*comment_buffer = ast_realloc(*comment_buffer, *comment_buffer_size + CB_INCR + siz + 1);
+		if (!(*comment_buffer))
 			return;
-		comment_buffer_size += CB_INCR+siz+1;
-	}
-	strcat(comment_buffer,str);
-}
-
-static void  CB_ADD_LEN(char *str, int len)
-{
-	int cbl = strlen(comment_buffer) + 1;
-	int rem = comment_buffer_size - cbl;
+		*comment_buffer_size += CB_INCR+siz+1;
+	}
+	strcat(*comment_buffer,str);
+}
+
+static void  CB_ADD_LEN(char **comment_buffer, int *comment_buffer_size, char *str, int len)
+{
+	int cbl = strlen(*comment_buffer) + 1;
+	int rem = *comment_buffer_size - cbl;
 	if (rem < len+1) {
-		comment_buffer = ast_realloc(comment_buffer, comment_buffer_size + CB_INCR + len + 1);
-		if (!comment_buffer)
+		*comment_buffer = ast_realloc(*comment_buffer, *comment_buffer_size + CB_INCR + len + 1);
+		if (!(*comment_buffer))
 			return;
-		comment_buffer_size += CB_INCR+len+1;
-	}
-	strncat(comment_buffer,str,len);
-	comment_buffer[cbl+len-1] = 0;
-}
-
-static void  LLB_ADD(char *str)
-{
-	int rem = lline_buffer_size - strlen(lline_buffer) - 1;
+		*comment_buffer_size += CB_INCR+len+1;
+	}
+	strncat(*comment_buffer,str,len);
+	(*comment_buffer)[cbl+len-1] = 0;
+}
+
+static void  LLB_ADD(char **lline_buffer, int *lline_buffer_size, char *str)
+{
+	int rem = *lline_buffer_size - strlen(*lline_buffer) - 1;
 	int siz = strlen(str);
 	if (rem < siz+1) {
-		lline_buffer = ast_realloc(lline_buffer, lline_buffer_size + CB_INCR + siz + 1);
-		if (!lline_buffer) 
+		*lline_buffer = ast_realloc(*lline_buffer, *lline_buffer_size + CB_INCR + siz + 1);
+		if (!(*lline_buffer)) 
 			return;
-		lline_buffer_size += CB_INCR + siz + 1;
-	}
-	strcat(lline_buffer,str);
-}
-
-static void CB_RESET(void )  
+		*lline_buffer_size += CB_INCR + siz + 1;
+	}
+	strcat(*lline_buffer,str);
+}
+
+static void CB_RESET(char **comment_buffer, char **lline_buffer)  
 { 
-	comment_buffer[0] = 0; 
-	lline_buffer[0] = 0;
-}
-		
+	(*comment_buffer)[0] = 0; 
+	(*lline_buffer)[0] = 0;
+}
 
 
 static struct ast_comment *ALLOC_COMMENT(const char *buffer)
@@ -600,7 +593,8 @@
 	cfg->current = (struct ast_category *) cat;
 }
 
-static int process_text_line(struct ast_config *cfg, struct ast_category **cat, char *buf, int lineno, const char *configfile, int withcomments)
+static int process_text_line(struct ast_config *cfg, struct ast_category **cat, char *buf, int lineno, const char *configfile, int withcomments,
+				char **comment_buffer, int *comment_buffer_size, char **lline_buffer, int *lline_buffer_size)
 {
 	char *c;
 	char *cur = buf;
@@ -628,14 +622,14 @@
 			return -1;
 		}
 		/* add comments */
-		if (withcomments && comment_buffer && comment_buffer[0] ) {
-			newcat->precomments = ALLOC_COMMENT(comment_buffer);
-		}
-		if (withcomments && lline_buffer && lline_buffer[0] ) {
-			newcat->sameline = ALLOC_COMMENT(lline_buffer);
+		if (withcomments && *comment_buffer && (*comment_buffer)[0] ) {
+			newcat->precomments = ALLOC_COMMENT(*comment_buffer);
+		}
+		if (withcomments && *lline_buffer && (*lline_buffer)[0] ) {
+			newcat->sameline = ALLOC_COMMENT(*lline_buffer);
 		}
 		if ( withcomments )
-			CB_RESET();
+			CB_RESET(comment_buffer, lline_buffer);
 		
  		/* If there are options or categories to inherit from, process them now */
  		if (c) {
@@ -649,7 +643,7 @@
 					(*cat)->ignored = 1;
 				} else if (!strcasecmp(cur, "+")) {
 					*cat = category_get(cfg, catname, 1);
-					if (!*cat) {
+					if (!(*cat)) {
 						ast_config_destroy(cfg);
 						if (newcat)
 							ast_category_destroy(newcat);
@@ -684,7 +678,7 @@
 			*c = '\0';
 			/* Find real argument */
 			c = ast_skip_blanks(c + 1);
-			if (!*c)
+			if (!(*c))
 				c = NULL;
 		} else 
 			c = NULL;
@@ -738,7 +732,7 @@
 			ast_log(LOG_WARNING, "Unknown directive '%s' at line %d of %s\n", cur, lineno, configfile);
 	} else {
 		/* Just a line (variable = value) */
-		if (!*cat) {
+		if (!(*cat)) {
 			ast_log(LOG_WARNING,
 				"parse error: No category context for line %d of %s\n", lineno, configfile);
 			return -1;
@@ -760,14 +754,14 @@
 				v->blanklines = 0;
 				ast_variable_append(*cat, v);
 				/* add comments */
-				if (withcomments && comment_buffer && comment_buffer[0] ) {
-					v->precomments = ALLOC_COMMENT(comment_buffer);
+				if (withcomments && *comment_buffer && (*comment_buffer)[0] ) {
+					v->precomments = ALLOC_COMMENT(*comment_buffer);
 				}
-				if (withcomments && lline_buffer && lline_buffer[0] ) {
-					v->sameline = ALLOC_COMMENT(lline_buffer);
+				if (withcomments && *lline_buffer && (*lline_buffer)[0] ) {
+					v->sameline = ALLOC_COMMENT(*lline_buffer);
 				}
 				if ( withcomments )
-					CB_RESET();
+					CB_RESET(comment_buffer, lline_buffer);
 				
 			} else {
 				return -1;
@@ -790,6 +784,13 @@
 	struct ast_category *cat = NULL;
 	int count = 0;
 	struct stat statbuf;
+	/*! Growable string buffer */
+	char *comment_buffer=0;   /*!< this will be a comment collector.*/
+	int   comment_buffer_size=0;  /*!< the amount of storage so far alloc'd for the comment_buffer */
+
+	char *lline_buffer=0;    /*!< A buffer for stuff behind the ; */
+	int  lline_buffer_size=0;
+
 	
 	cat = ast_config_get_current_category(cfg);
 
@@ -800,7 +801,7 @@
 	}
 
 	if (withcomments) {
-		CB_INIT();
+		CB_INIT(&comment_buffer, &comment_buffer_size, &lline_buffer, &lline_buffer_size);
 		if (!lline_buffer || !comment_buffer) {
 			ast_log(LOG_ERROR, "Failed to initialize the comment buffer!\n");
 			return NULL;
@@ -856,7 +857,7 @@
 			lineno++;
 			if (fgets(buf, sizeof(buf), f)) {
 				if ( withcomments ) {
-					CB_ADD(lline_buffer);       /* add the current lline buffer to the comment buffer */
+					CB_ADD(&comment_buffer, &comment_buffer_size, lline_buffer);       /* add the current lline buffer to the comment buffer */
 					lline_buffer[0] = 0;        /* erase the lline buffer */
 				}
 				
@@ -894,8 +895,8 @@
 								char *oldptr;
 								oldptr = process_buf + strlen(process_buf);
 								if ( withcomments ) {
-									CB_ADD(";");
-									CB_ADD_LEN(oldptr+1,new_buf-oldptr-1);
+									CB_ADD(&comment_buffer, &comment_buffer_size, ";");
+									CB_ADD_LEN(&comment_buffer, &comment_buffer_size, oldptr+1, new_buf-oldptr-1);
 								}
 								
 								memmove(oldptr, new_buf, strlen(new_buf) + 1);
@@ -908,7 +909,7 @@
 							/* If ; is found, and we are not nested in a comment, 
 							   we immediately stop all comment processing */
 							if ( withcomments ) {
-								LLB_ADD(comment_p);
+								LLB_ADD(&lline_buffer, &lline_buffer_size, comment_p);
 							}
 							*comment_p = '\0'; 
 							new_buf = comment_p;
@@ -918,13 +919,13 @@
 				}
 				if ( withcomments && comment && !process_buf )
 				{
-					CB_ADD(buf);  /* the whole line is a comment, store it */
+					CB_ADD(&comment_buffer, &comment_buffer_size, buf);  /* the whole line is a comment, store it */
 				}
 				
 				if (process_buf) {
 					char *buf = ast_strip(process_buf);
 					if (!ast_strlen_zero(buf)) {
-						if (process_text_line(cfg, &cat, buf, lineno, fn, withcomments)) {
+						if (process_text_line(cfg, &cat, buf, lineno, fn, withcomments, &comment_buffer, &comment_buffer_size, &lline_buffer, &lline_buffer_size)) {
 							cfg = NULL;
 							break;
 						}

Modified: team/russell/events/pbx/ael/ael-test/ref.ael-test7
URL: http://svn.digium.com/view/asterisk/team/russell/events/pbx/ael/ael-test/ref.ael-test7?view=diff&rev=59251&r1=59250&r2=59251
==============================================================================
--- team/russell/events/pbx/ael/ael-test/ref.ael-test7 (original)
+++ team/russell/events/pbx/ael/ael-test/ref.ael-test7 Tue Mar 27 00:15:58 2007
@@ -2,9 +2,9 @@
 (If you find progress and other non-error messages irritating, you can use -q to suppress them)
 
 (You can use the -w option to dump extensions.conf format to extensions.conf.aeldump)
-LOG: lev:2 file:pbx_ael.c  line:4021 func: pbx_load_module  Starting AEL load process.
-LOG: lev:2 file:pbx_ael.c  line:4028 func: pbx_load_module  AEL load process: calculated config file name './extensions.ael'.
-LOG: lev:2 file:pbx_ael.c  line:4036 func: pbx_load_module  AEL load process: parsed config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c  line:4026 func: pbx_load_module  Starting AEL load process.
+LOG: lev:2 file:pbx_ael.c  line:4033 func: pbx_load_module  AEL load process: calculated config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c  line:4041 func: pbx_load_module  AEL load process: parsed config file name './extensions.ael'.
 LOG: lev:3 file:pbx_ael.c  line:734 func: check_macro_returns  Warning: file ./extensions.ael, line 22-42: The macro stdexten does not end with a return; I will insert one.
 LOG: lev:3 file:pbx_ael.c  line:734 func: check_macro_returns  Warning: file ./extensions.ael, line 44-49: The macro announce_minutes does not end with a return; I will insert one.
 LOG: lev:3 file:pbx_ael.c  line:734 func: check_macro_returns  Warning: file ./extensions.ael, line 59-89: The macro checkanddial does not end with a return; I will insert one.
@@ -15,6 +15,6 @@
 LOG: lev:3 file:pbx_ael.c  line:734 func: check_macro_returns  Warning: file ./extensions.ael, line 114-119: The macro autodial does not end with a return; I will insert one.
 LOG: lev:4 file:pbx_ael.c  line:2459 func: check_pval_item  Error: file ./extensions.ael, line 284-284: The macro call to checkanddial has 5 arguments, but the macro definition has 7 arguments
 LOG: lev:4 file:pbx_ael.c  line:2459 func: check_pval_item  Error: file ./extensions.ael, line 287-287: The macro call to checkanddial has 5 arguments, but the macro definition has 7 arguments
-LOG: lev:3 file:pbx_ael.c  line:2440 func: check_pval_item  Error: file ./extensions.ael, line 452-452: macro call to non-existent std-exten-ael ! Hopefully it is present in extensions.conf! 
-LOG: lev:4 file:pbx_ael.c  line:4049 func: pbx_load_module  Sorry, but 0 syntax errors and 4 semantic errors were detected. It doesn't make sense to compile.
+LOG: lev:3 file:pbx_ael.c  line:2440 func: check_pval_item  Warning: file ./extensions.ael, line 452-452: macro call to non-existent std-exten-ael ! Hopefully it is present in extensions.conf! 
+LOG: lev:4 file:pbx_ael.c  line:4054 func: pbx_load_module  Sorry, but 0 syntax errors and 4 semantic errors were detected. It doesn't make sense to compile.
 LOG: lev:4 file:ael2_parse  line:512 func: main  0 contexts, 0 extensions, 0 priorities

Modified: team/russell/events/pbx/ael/ael-test/ref.ael-vtest13
URL: http://svn.digium.com/view/asterisk/team/russell/events/pbx/ael/ael-test/ref.ael-vtest13?view=diff&rev=59251&r1=59250&r2=59251
==============================================================================
--- team/russell/events/pbx/ael/ael-test/ref.ael-vtest13 (original)
+++ team/russell/events/pbx/ael/ael-test/ref.ael-vtest13 Tue Mar 27 00:15:58 2007
@@ -14,17 +14,17 @@
 exten => s,1,Set(ext=${ARG1})
 exten => s,2,Set(dev=${ARG2})
 exten => s,3,Dial(${dev}/${ext}|20)
-exten => s,4,Goto(sw-1-${DIALSTATUS}|1)
+exten => s,4,Goto(sw-1-${DIALSTATUS}|10)
 exten => s,5,NoOp(Finish switch-std-exten-1)
 exten => s,6,Return()
 exten => a,1,VoiceMailMain(${ext})
-exten => _sw-1-.,1,Voicemail(u${ext})
-exten => _sw-1-.,2,Goto(s|5)
-exten => sw-1-ANSWER,1,Goto(s|5)
-exten => sw-1-NOANSWER,1,Voicemail(u${ext})
-exten => sw-1-NOANSWER,2,Goto(s|5)
-exten => sw-1-BUSY,1,Voicemail(b${ext})
-exten => sw-1-BUSY,2,Goto(s|5)
+exten => _sw-1-.,10,Voicemail(u${ext})
+exten => _sw-1-.,11,Goto(s|5)
+exten => sw-1-ANSWER,10,Goto(s|5)
+exten => sw-1-NOANSWER,10,Voicemail(u${ext})
+exten => sw-1-NOANSWER,11,Goto(s|5)
+exten => sw-1-BUSY,10,Voicemail(b${ext})
+exten => sw-1-BUSY,11,Goto(s|5)
 
 
 [std-priv-exten_1]
@@ -36,20 +36,20 @@
 exten => s,6,Set(dontcont=${ARG6})
 exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
-exten => s,9,Goto(sw-3-${DIALSTATUS}|1)
+exten => s,9,Goto(sw-3-${DIALSTATUS}|10)
 exten => s,10,NoOp(Finish switch-std-priv-exten_1-3)
 exten => s,11,Return()
-exten => _sw-3-.,1,Voicemail(u${ext})
-exten => _sw-3-.,2,Goto(s|10)
-exten => sw-3-NOANSWER,1,Voicemail(u${ext})
-exten => sw-3-NOANSWER,2,Goto(s|10)
-exten => sw-3-ANSWER,1,Goto(s|10)
-exten => sw-3-BUSY,1,Voicemail(b${ext})
-exten => sw-3-BUSY,2,Goto(s|10)
-exten => sw-3-DONTCALL,1,Goto(${dontcont}|s|begin)
-exten => sw-3-DONTCALL,2,Goto(s|10)
-exten => sw-3-TORTURE,1,Goto(${torcont}|s|begin)
-exten => sw-3-TORTURE,2,Goto(s|10)
+exten => _sw-3-.,10,Voicemail(u${ext})
+exten => _sw-3-.,11,Goto(s|10)
+exten => sw-3-NOANSWER,10,Voicemail(u${ext})
+exten => sw-3-NOANSWER,11,Goto(s|10)
+exten => sw-3-ANSWER,10,Goto(s|10)
+exten => sw-3-BUSY,10,Voicemail(b${ext})
+exten => sw-3-BUSY,11,Goto(s|10)
+exten => sw-3-DONTCALL,10,Goto(${dontcont}|s|begin)
+exten => sw-3-DONTCALL,11,Goto(s|10)
+exten => sw-3-TORTURE,10,Goto(${torcont}|s|begin)
+exten => sw-3-TORTURE,11,Goto(s|10)
 
 
 [std-priv-exten_2]
@@ -61,20 +61,20 @@
 exten => s,6,Set(dontcont=${ARG6})
 exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
-exten => s,9,Goto(sw-4-${DIALSTATUS}|1)
+exten => s,9,Goto(sw-4-${DIALSTATUS}|10)
 exten => s,10,NoOp(Finish switch-std-priv-exten_2-4)
 exten => s,11,Return()
-exten => _sw-4-.,1,Voicemail(u${ext})
-exten => _sw-4-.,2,Goto(s|10)
-exten => sw-4-NOANSWER,1,Voicemail(u${ext})
-exten => sw-4-NOANSWER,2,Goto(s|10)
-exten => sw-4-ANSWER,1,Goto(s|10)
-exten => sw-4-BUSY,1,Voicemail(b${ext})
-exten => sw-4-BUSY,2,Goto(s|10)
-exten => sw-4-DONTCALL,1,Goto(${dontcont}|s|begin)
-exten => sw-4-DONTCALL,2,Goto(s|10)
-exten => sw-4-TORTURE,1,Goto(${torcont}|s|begin)
-exten => sw-4-TORTURE,2,Goto(s|10)
+exten => _sw-4-.,10,Voicemail(u${ext})
+exten => _sw-4-.,11,Goto(s|10)
+exten => sw-4-NOANSWER,10,Voicemail(u${ext})
+exten => sw-4-NOANSWER,11,Goto(s|10)
+exten => sw-4-ANSWER,10,Goto(s|10)
+exten => sw-4-BUSY,10,Voicemail(b${ext})
+exten => sw-4-BUSY,11,Goto(s|10)
+exten => sw-4-DONTCALL,10,Goto(${dontcont}|s|begin)
+exten => sw-4-DONTCALL,11,Goto(s|10)
+exten => sw-4-TORTURE,10,Goto(${torcont}|s|begin)
+exten => sw-4-TORTURE,11,Goto(s|10)
 
 
 [std-priv-exten_3]
@@ -86,20 +86,20 @@
 exten => s,6,Set(dontcont=${ARG6})
 exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
-exten => s,9,Goto(sw-5-${DIALSTATUS}|1)
+exten => s,9,Goto(sw-5-${DIALSTATUS}|10)
 exten => s,10,NoOp(Finish switch-std-priv-exten_3-5)
 exten => s,11,Return()
-exten => _sw-5-.,1,Voicemail(u${ext})
-exten => _sw-5-.,2,Goto(s|10)
-exten => sw-5-NOANSWER,1,Voicemail(u${ext})
-exten => sw-5-NOANSWER,2,Goto(s|10)
-exten => sw-5-ANSWER,1,Goto(s|10)
-exten => sw-5-BUSY,1,Voicemail(b${ext})
-exten => sw-5-BUSY,2,Goto(s|10)
-exten => sw-5-DONTCALL,1,Goto(${dontcont}|s|begin)
-exten => sw-5-DONTCALL,2,Goto(s|10)
-exten => sw-5-TORTURE,1,Goto(${torcont}|s|begin)
-exten => sw-5-TORTURE,2,Goto(s|10)
+exten => _sw-5-.,10,Voicemail(u${ext})
+exten => _sw-5-.,11,Goto(s|10)
+exten => sw-5-NOANSWER,10,Voicemail(u${ext})
+exten => sw-5-NOANSWER,11,Goto(s|10)
+exten => sw-5-ANSWER,10,Goto(s|10)
+exten => sw-5-BUSY,10,Voicemail(b${ext})
+exten => sw-5-BUSY,11,Goto(s|10)
+exten => sw-5-DONTCALL,10,Goto(${dontcont}|s|begin)
+exten => sw-5-DONTCALL,11,Goto(s|10)
+exten => sw-5-TORTURE,10,Goto(${torcont}|s|begin)
+exten => sw-5-TORTURE,11,Goto(s|10)
 
 
 [std-priv-exten_4]
@@ -111,20 +111,20 @@
 exten => s,6,Set(dontcont=${ARG6})
 exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
-exten => s,9,Goto(sw-6-${DIALSTATUS}|1)
+exten => s,9,Goto(sw-6-${DIALSTATUS}|10)
 exten => s,10,NoOp(Finish switch-std-priv-exten_4-6)
 exten => s,11,Return()
-exten => _sw-6-.,1,Voicemail(u${ext})
-exten => _sw-6-.,2,Goto(s|10)
-exten => sw-6-NOANSWER,1,Voicemail(u${ext})
-exten => sw-6-NOANSWER,2,Goto(s|10)
-exten => sw-6-ANSWER,1,Goto(s|10)
-exten => sw-6-BUSY,1,Voicemail(b${ext})
-exten => sw-6-BUSY,2,Goto(s|10)
-exten => sw-6-DONTCALL,1,Goto(${dontcont}|s|begin)
-exten => sw-6-DONTCALL,2,Goto(s|10)
-exten => sw-6-TORTURE,1,Goto(${torcont}|s|begin)
-exten => sw-6-TORTURE,2,Goto(s|10)
+exten => _sw-6-.,10,Voicemail(u${ext})
+exten => _sw-6-.,11,Goto(s|10)
+exten => sw-6-NOANSWER,10,Voicemail(u${ext})
+exten => sw-6-NOANSWER,11,Goto(s|10)
+exten => sw-6-ANSWER,10,Goto(s|10)
+exten => sw-6-BUSY,10,Voicemail(b${ext})
+exten => sw-6-BUSY,11,Goto(s|10)
+exten => sw-6-DONTCALL,10,Goto(${dontcont}|s|begin)
+exten => sw-6-DONTCALL,11,Goto(s|10)
+exten => sw-6-TORTURE,10,Goto(${torcont}|s|begin)
+exten => sw-6-TORTURE,11,Goto(s|10)
 
 
 [std-priv-exten_5]
@@ -136,20 +136,20 @@
 exten => s,6,Set(dontcont=${ARG6})
 exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
-exten => s,9,Goto(sw-7-${DIALSTATUS}|1)
+exten => s,9,Goto(sw-7-${DIALSTATUS}|10)
 exten => s,10,NoOp(Finish switch-std-priv-exten_5-7)
 exten => s,11,Return()
-exten => _sw-7-.,1,Voicemail(u${ext})
-exten => _sw-7-.,2,Goto(s|10)
-exten => sw-7-NOANSWER,1,Voicemail(u${ext})
-exten => sw-7-NOANSWER,2,Goto(s|10)
-exten => sw-7-ANSWER,1,Goto(s|10)
-exten => sw-7-BUSY,1,Voicemail(b${ext})
-exten => sw-7-BUSY,2,Goto(s|10)
-exten => sw-7-DONTCALL,1,Goto(${dontcont}|s|begin)
-exten => sw-7-DONTCALL,2,Goto(s|10)
-exten => sw-7-TORTURE,1,Goto(${torcont}|s|begin)
-exten => sw-7-TORTURE,2,Goto(s|10)
+exten => _sw-7-.,10,Voicemail(u${ext})
+exten => _sw-7-.,11,Goto(s|10)
+exten => sw-7-NOANSWER,10,Voicemail(u${ext})
+exten => sw-7-NOANSWER,11,Goto(s|10)
+exten => sw-7-ANSWER,10,Goto(s|10)
+exten => sw-7-BUSY,10,Voicemail(b${ext})
+exten => sw-7-BUSY,11,Goto(s|10)
+exten => sw-7-DONTCALL,10,Goto(${dontcont}|s|begin)
+exten => sw-7-DONTCALL,11,Goto(s|10)
+exten => sw-7-TORTURE,10,Goto(${torcont}|s|begin)
+exten => sw-7-TORTURE,11,Goto(s|10)
 
 
 [std-priv-exten_6]
@@ -161,20 +161,20 @@
 exten => s,6,Set(dontcont=${ARG6})
 exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
-exten => s,9,Goto(sw-8-${DIALSTATUS}|1)
+exten => s,9,Goto(sw-8-${DIALSTATUS}|10)
 exten => s,10,NoOp(Finish switch-std-priv-exten_6-8)
 exten => s,11,Return()
-exten => _sw-8-.,1,Voicemail(u${ext})
-exten => _sw-8-.,2,Goto(s|10)
-exten => sw-8-NOANSWER,1,Voicemail(u${ext})
-exten => sw-8-NOANSWER,2,Goto(s|10)
-exten => sw-8-ANSWER,1,Goto(s|10)
-exten => sw-8-BUSY,1,Voicemail(b${ext})
-exten => sw-8-BUSY,2,Goto(s|10)
-exten => sw-8-DONTCALL,1,Goto(${dontcont}|s|begin)
-exten => sw-8-DONTCALL,2,Goto(s|10)
-exten => sw-8-TORTURE,1,Goto(${torcont}|s|begin)
-exten => sw-8-TORTURE,2,Goto(s|10)
+exten => _sw-8-.,10,Voicemail(u${ext})
+exten => _sw-8-.,11,Goto(s|10)
+exten => sw-8-NOANSWER,10,Voicemail(u${ext})
+exten => sw-8-NOANSWER,11,Goto(s|10)
+exten => sw-8-ANSWER,10,Goto(s|10)
+exten => sw-8-BUSY,10,Voicemail(b${ext})
+exten => sw-8-BUSY,11,Goto(s|10)
+exten => sw-8-DONTCALL,10,Goto(${dontcont}|s|begin)
+exten => sw-8-DONTCALL,11,Goto(s|10)
+exten => sw-8-TORTURE,10,Goto(${torcont}|s|begin)
+exten => sw-8-TORTURE,11,Goto(s|10)
 
 
 [std-priv-exten_7]
@@ -186,20 +186,20 @@
 exten => s,6,Set(dontcont=${ARG6})
 exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
-exten => s,9,Goto(sw-9-${DIALSTATUS}|1)
+exten => s,9,Goto(sw-9-${DIALSTATUS}|10)
 exten => s,10,NoOp(Finish switch-std-priv-exten_7-9)
 exten => s,11,Return()
-exten => _sw-9-.,1,Voicemail(u${ext})
-exten => _sw-9-.,2,Goto(s|10)
-exten => sw-9-NOANSWER,1,Voicemail(u${ext})
-exten => sw-9-NOANSWER,2,Goto(s|10)
-exten => sw-9-ANSWER,1,Goto(s|10)
-exten => sw-9-BUSY,1,Voicemail(b${ext})
-exten => sw-9-BUSY,2,Goto(s|10)
-exten => sw-9-DONTCALL,1,Goto(${dontcont}|s|begin)
-exten => sw-9-DONTCALL,2,Goto(s|10)
-exten => sw-9-TORTURE,1,Goto(${torcont}|s|begin)
-exten => sw-9-TORTURE,2,Goto(s|10)
+exten => _sw-9-.,10,Voicemail(u${ext})
+exten => _sw-9-.,11,Goto(s|10)
+exten => sw-9-NOANSWER,10,Voicemail(u${ext})
+exten => sw-9-NOANSWER,11,Goto(s|10)
+exten => sw-9-ANSWER,10,Goto(s|10)
+exten => sw-9-BUSY,10,Voicemail(b${ext})
+exten => sw-9-BUSY,11,Goto(s|10)
+exten => sw-9-DONTCALL,10,Goto(${dontcont}|s|begin)
+exten => sw-9-DONTCALL,11,Goto(s|10)
+exten => sw-9-TORTURE,10,Goto(${torcont}|s|begin)
+exten => sw-9-TORTURE,11,Goto(s|10)
 
 
 [std-priv-exten_8]
@@ -211,20 +211,20 @@
 exten => s,6,Set(dontcont=${ARG6})
 exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
-exten => s,9,Goto(sw-10-${DIALSTATUS}|1)
+exten => s,9,Goto(sw-10-${DIALSTATUS}|10)
 exten => s,10,NoOp(Finish switch-std-priv-exten_8-10)
 exten => s,11,Return()
-exten => _sw-10-.,1,Voicemail(u${ext})
-exten => _sw-10-.,2,Goto(s|10)
-exten => sw-10-NOANSWER,1,Voicemail(u${ext})
-exten => sw-10-NOANSWER,2,Goto(s|10)
-exten => sw-10-ANSWER,1,Goto(s|10)
-exten => sw-10-BUSY,1,Voicemail(b${ext})
-exten => sw-10-BUSY,2,Goto(s|10)
-exten => sw-10-DONTCALL,1,Goto(${dontcont}|s|begin)
-exten => sw-10-DONTCALL,2,Goto(s|10)
-exten => sw-10-TORTURE,1,Goto(${torcont}|s|begin)
-exten => sw-10-TORTURE,2,Goto(s|10)
+exten => _sw-10-.,10,Voicemail(u${ext})
+exten => _sw-10-.,11,Goto(s|10)
+exten => sw-10-NOANSWER,10,Voicemail(u${ext})
+exten => sw-10-NOANSWER,11,Goto(s|10)
+exten => sw-10-ANSWER,10,Goto(s|10)
+exten => sw-10-BUSY,10,Voicemail(b${ext})
+exten => sw-10-BUSY,11,Goto(s|10)
+exten => sw-10-DONTCALL,10,Goto(${dontcont}|s|begin)
+exten => sw-10-DONTCALL,11,Goto(s|10)
+exten => sw-10-TORTURE,10,Goto(${torcont}|s|begin)
+exten => sw-10-TORTURE,11,Goto(s|10)
 
 
 [std-priv-exten_9]
@@ -236,20 +236,20 @@
 exten => s,6,Set(dontcont=${ARG6})
 exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
-exten => s,9,Goto(sw-11-${DIALSTATUS}|1)
+exten => s,9,Goto(sw-11-${DIALSTATUS}|10)
 exten => s,10,NoOp(Finish switch-std-priv-exten_9-11)
 exten => s,11,Return()
-exten => _sw-11-.,1,Voicemail(u${ext})
-exten => _sw-11-.,2,Goto(s|10)
-exten => sw-11-NOANSWER,1,Voicemail(u${ext})
-exten => sw-11-NOANSWER,2,Goto(s|10)
-exten => sw-11-ANSWER,1,Goto(s|10)
-exten => sw-11-BUSY,1,Voicemail(b${ext})
-exten => sw-11-BUSY,2,Goto(s|10)
-exten => sw-11-DONTCALL,1,Goto(${dontcont}|s|begin)
-exten => sw-11-DONTCALL,2,Goto(s|10)
-exten => sw-11-TORTURE,1,Goto(${torcont}|s|begin)
-exten => sw-11-TORTURE,2,Goto(s|10)
+exten => _sw-11-.,10,Voicemail(u${ext})
+exten => _sw-11-.,11,Goto(s|10)
+exten => sw-11-NOANSWER,10,Voicemail(u${ext})
+exten => sw-11-NOANSWER,11,Goto(s|10)
+exten => sw-11-ANSWER,10,Goto(s|10)
+exten => sw-11-BUSY,10,Voicemail(b${ext})
+exten => sw-11-BUSY,11,Goto(s|10)
+exten => sw-11-DONTCALL,10,Goto(${dontcont}|s|begin)
+exten => sw-11-DONTCALL,11,Goto(s|10)
+exten => sw-11-TORTURE,10,Goto(${torcont}|s|begin)
+exten => sw-11-TORTURE,11,Goto(s|10)
 
 
 [std-priv-exten_10]
@@ -261,20 +261,20 @@
 exten => s,6,Set(dontcont=${ARG6})
 exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
-exten => s,9,Goto(sw-12-${DIALSTATUS}|1)
+exten => s,9,Goto(sw-12-${DIALSTATUS}|10)
 exten => s,10,NoOp(Finish switch-std-priv-exten_10-12)
 exten => s,11,Return()
-exten => _sw-12-.,1,Voicemail(u${ext})
-exten => _sw-12-.,2,Goto(s|10)
-exten => sw-12-NOANSWER,1,Voicemail(u${ext})
-exten => sw-12-NOANSWER,2,Goto(s|10)
-exten => sw-12-ANSWER,1,Goto(s|10)
-exten => sw-12-BUSY,1,Voicemail(b${ext})
-exten => sw-12-BUSY,2,Goto(s|10)
-exten => sw-12-DONTCALL,1,Goto(${dontcont}|s|begin)
-exten => sw-12-DONTCALL,2,Goto(s|10)
-exten => sw-12-TORTURE,1,Goto(${torcont}|s|begin)
-exten => sw-12-TORTURE,2,Goto(s|10)
+exten => _sw-12-.,10,Voicemail(u${ext})
+exten => _sw-12-.,11,Goto(s|10)
+exten => sw-12-NOANSWER,10,Voicemail(u${ext})
+exten => sw-12-NOANSWER,11,Goto(s|10)
+exten => sw-12-ANSWER,10,Goto(s|10)
+exten => sw-12-BUSY,10,Voicemail(b${ext})
+exten => sw-12-BUSY,11,Goto(s|10)
+exten => sw-12-DONTCALL,10,Goto(${dontcont}|s|begin)
+exten => sw-12-DONTCALL,11,Goto(s|10)
+exten => sw-12-TORTURE,10,Goto(${torcont}|s|begin)
+exten => sw-12-TORTURE,11,Goto(s|10)
 
 
 [std-priv-exten_11]
@@ -286,20 +286,20 @@
 exten => s,6,Set(dontcont=${ARG6})
 exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
-exten => s,9,Goto(sw-13-${DIALSTATUS}|1)
+exten => s,9,Goto(sw-13-${DIALSTATUS}|10)
 exten => s,10,NoOp(Finish switch-std-priv-exten_11-13)
 exten => s,11,Return()
-exten => _sw-13-.,1,Voicemail(u${ext})
-exten => _sw-13-.,2,Goto(s|10)
-exten => sw-13-NOANSWER,1,Voicemail(u${ext})
-exten => sw-13-NOANSWER,2,Goto(s|10)
-exten => sw-13-ANSWER,1,Goto(s|10)
-exten => sw-13-BUSY,1,Voicemail(b${ext})
-exten => sw-13-BUSY,2,Goto(s|10)
-exten => sw-13-DONTCALL,1,Goto(${dontcont}|s|begin)
-exten => sw-13-DONTCALL,2,Goto(s|10)
-exten => sw-13-TORTURE,1,Goto(${torcont}|s|begin)
-exten => sw-13-TORTURE,2,Goto(s|10)
+exten => _sw-13-.,10,Voicemail(u${ext})
+exten => _sw-13-.,11,Goto(s|10)
+exten => sw-13-NOANSWER,10,Voicemail(u${ext})
+exten => sw-13-NOANSWER,11,Goto(s|10)
+exten => sw-13-ANSWER,10,Goto(s|10)
+exten => sw-13-BUSY,10,Voicemail(b${ext})
+exten => sw-13-BUSY,11,Goto(s|10)

[... 2170 lines stripped ...]


More information about the svn-commits mailing list