[asterisk-commits] russell: branch russell/inband_dtmf r62915 - in /team/russell/inband_dtmf: ./...

asterisk-commits at lists.digium.com asterisk-commits at lists.digium.com
Thu May 3 07:53:56 MST 2007


Author: russell
Date: Thu May  3 09:53:56 2007
New Revision: 62915

URL: http://svn.digium.com/view/asterisk?view=rev&rev=62915
Log:
Merged revisions 62789,62797,62807,62842,62883,62912-62913 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

................
r62789 | russell | 2007-05-02 17:59:09 -0500 (Wed, 02 May 2007) | 20 lines

Merge changes from team/russell/inband_dtmf ...

Fix some issues related to generating inband DTMF.  There are two changes here:

1)   The list of DTMF tones in the senddigit_begin() function explicitly
   specified 100ms of the tone followed by 100ms of silence.  This really
   broke things with the way that Asterisk now wants complete control
   over when the digit begins and ends.  So, regardless of what Asterisk
   really wanted to do, this was going to play out the tone at the length it
   wanted to.  This caused various problems like DTMF translation to inband to
   be extremely unreliable.
     The list of tones has been changed so that the correct DTMF tone is played
   indefinitely until Asterisk tells it to stop.

2) ast_write() had to be modified to let a DTMF_END frame get processed even
   when a generator is present.  This is how the tone will finally get stopped.

(issues #8944, #9250, #9348, maybe others.  Thanks to mdu113 from #8944 for
 the testing and feedback!)

................
r62797 | kpfleming | 2007-05-02 18:57:23 -0500 (Wed, 02 May 2007) | 7 lines

improve static Realtime config loading from PostgreSQL:
	don't request sorting on fields that are pointless to sort on
	use ast_build_string() instead of snprintf()
	don't request the list of fieldnames that resulted from the query when we both knew what they were before we ran the query _AND_ we aren't going to do anything with them anyway

(patch by me, inspired by blitzrage's bug report about res_config_odbc)

................
r62807 | kpfleming | 2007-05-02 19:02:57 -0500 (Wed, 02 May 2007) | 15 lines

Merged revisions 62796 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r62796 | kpfleming | 2007-05-02 19:53:46 -0400 (Wed, 02 May 2007) | 7 lines

increase reliability and efficiency of static Realtime config loading via ODBC:
	don't request fields we aren't going to use
	don't request sorting on fields that are pointless to sort on
	explicitly request the fields we want, because we can't expect the database to always return them in the order they were created
	
(reported by blitzrage in person (!), patch by me)

........

................
r62842 | kpfleming | 2007-05-02 19:23:37 -0500 (Wed, 02 May 2007) | 10 lines

Merged revisions 62841 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r62841 | kpfleming | 2007-05-02 20:23:00 -0400 (Wed, 02 May 2007) | 2 lines

doh... initializing the pointer variable will work just a bit better

........

................
r62883 | murf | 2007-05-03 08:54:56 -0500 (Thu, 03 May 2007) | 1 line

These mods fix bug 9623, where an '@' in the eswitch contents causes a syntax error. I also updated the regressions.
................
r62912 | crichter | 2007-05-03 09:36:32 -0500 (Thu, 03 May 2007) | 17 lines

Merged revisions 61357,61770,62885 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r61357 | crichter | 2007-04-11 14:05:57 +0200 (Mi, 11 Apr 2007) | 1 line

some fixes for PMP Hold/Retrieve, it should work now, when briding=no
........
r61770 | crichter | 2007-04-24 15:50:05 +0200 (Di, 24 Apr 2007) | 1 line

added lock for sending messages to avoid double sending. shuffled some empty_chans after the cb_event calls, this avoids that a release_complete from a quite different call releases a fresh created setup by accident.
........
r62885 | crichter | 2007-05-03 15:59:00 +0200 (Do, 03 Mai 2007) | 1 line

fixed the problem that misdn_write did not return -1 when called with 0 samples in a frame this resultet in a deadlock in some circumstances, when the call ended because of a busy extension.  added encoding of keypad.
........

................
r62913 | murf | 2007-05-03 09:41:53 -0500 (Thu, 03 May 2007) | 1 line

updated the ael regressions to match what's in trunk
................

Added:
    team/russell/inband_dtmf/pbx/ael/ael-test/ael-test18/
      - copied from r62913, branches/1.4/pbx/ael/ael-test/ael-test18/
    team/russell/inband_dtmf/pbx/ael/ael-test/ael-test18/extensions.ael
      - copied unchanged from r62913, branches/1.4/pbx/ael/ael-test/ael-test18/extensions.ael
    team/russell/inband_dtmf/pbx/ael/ael-test/ael-test19/
      - copied from r62913, branches/1.4/pbx/ael/ael-test/ael-test19/
    team/russell/inband_dtmf/pbx/ael/ael-test/ael-test19/extensions.ael
      - copied unchanged from r62913, branches/1.4/pbx/ael/ael-test/ael-test19/extensions.ael
    team/russell/inband_dtmf/pbx/ael/ael-test/ael-test20/
      - copied from r62913, branches/1.4/pbx/ael/ael-test/ael-test20/
    team/russell/inband_dtmf/pbx/ael/ael-test/ael-test20/extensions.ael
      - copied unchanged from r62913, branches/1.4/pbx/ael/ael-test/ael-test20/extensions.ael
    team/russell/inband_dtmf/pbx/ael/ael-test/ref.ael-test18
      - copied unchanged from r62913, branches/1.4/pbx/ael/ael-test/ref.ael-test18
    team/russell/inband_dtmf/pbx/ael/ael-test/ref.ael-test19
      - copied unchanged from r62913, branches/1.4/pbx/ael/ael-test/ref.ael-test19
    team/russell/inband_dtmf/pbx/ael/ael-test/ref.ael-test20
      - copied unchanged from r62913, branches/1.4/pbx/ael/ael-test/ref.ael-test20
Modified:
    team/russell/inband_dtmf/   (props changed)
    team/russell/inband_dtmf/channels/chan_misdn.c
    team/russell/inband_dtmf/channels/misdn/ie.c
    team/russell/inband_dtmf/channels/misdn/isdn_lib.c
    team/russell/inband_dtmf/channels/misdn/isdn_lib.h
    team/russell/inband_dtmf/channels/misdn/isdn_lib_intern.h
    team/russell/inband_dtmf/channels/misdn/isdn_msg_parser.c
    team/russell/inband_dtmf/main/channel.c
    team/russell/inband_dtmf/pbx/ael/ael-test/ref.ael-test7
    team/russell/inband_dtmf/pbx/ael/ael-test/ref.ael-vtest13
    team/russell/inband_dtmf/pbx/ael/ael-test/ref.ael-vtest17
    team/russell/inband_dtmf/pbx/ael/ael.tab.c
    team/russell/inband_dtmf/pbx/ael/ael.tab.h
    team/russell/inband_dtmf/pbx/ael/ael.y
    team/russell/inband_dtmf/res/res_config_odbc.c
    team/russell/inband_dtmf/res/res_config_pgsql.c

Propchange: team/russell/inband_dtmf/
------------------------------------------------------------------------------
    automerge = *

Propchange: team/russell/inband_dtmf/
------------------------------------------------------------------------------
Binary property 'branch-1.2-merged' - no diff available.

Propchange: team/russell/inband_dtmf/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Thu May  3 09:53:56 2007
@@ -1,1 +1,1 @@
-/branches/1.4:1-62779
+/branches/1.4:1-62914

Modified: team/russell/inband_dtmf/channels/chan_misdn.c
URL: http://svn.digium.com/view/asterisk/team/russell/inband_dtmf/channels/chan_misdn.c?view=diff&rev=62915&r1=62914&r2=62915
==============================================================================
--- team/russell/inband_dtmf/channels/chan_misdn.c (original)
+++ team/russell/inband_dtmf/channels/chan_misdn.c Thu May  3 09:53:56 2007
@@ -1135,8 +1135,8 @@
 			print_bc_info(fd, help, bc);
 		} else {
 			if (help->state == MISDN_HOLDED) {
-				chan_misdn_log(2, 0, "ITS A HOLDED BC:\n");
-				chan_misdn_log(2,0," --> l3_id: %x\n"
+				ast_cli(fd, "ITS A HOLDED BC:\n");
+				ast_cli(fd, " --> l3_id: %x\n"
 						" --> dad:%s oad:%s\n"
 						" --> hold_port: %d\n"
 						" --> hold_channel: %d\n"
@@ -2628,7 +2628,8 @@
 		chan_misdn_log(1,0,"misdn_read called without ast->pvt\n");
 		return NULL;
 	}
-	if (!tmp->bc) {
+
+	if (!tmp->bc && !(tmp->state==MISDN_HOLDED)) {
 		chan_misdn_log(1,0,"misdn_read called without bc\n");
 		return NULL;
 	}
@@ -4634,7 +4635,11 @@
 	/***************************/
 	case EVENT_RETRIEVE:
 	{
-		ch=find_holded_l3(cl_te, bc->l3_id,1);
+		if (!ch) {
+			chan_misdn_log(4, bc->port, " --> no CH, searching in holded");
+			ch=find_holded_l3(cl_te, bc->l3_id,1);
+		}
+
 		if (!ch) {
 			ast_log(LOG_WARNING, "Found no Holded channel, cannot Retrieve\n");
 			misdn_lib_send_event(bc, EVENT_RETRIEVE_REJECT);

Modified: team/russell/inband_dtmf/channels/misdn/ie.c
URL: http://svn.digium.com/view/asterisk/team/russell/inband_dtmf/channels/misdn/ie.c?view=diff&rev=62915&r1=62914&r2=62915
==============================================================================
--- team/russell/inband_dtmf/channels/misdn/ie.c (original)
+++ team/russell/inband_dtmf/channels/misdn/ie.c Thu May  3 09:53:56 2007
@@ -938,7 +938,7 @@
 #endif
 
 /* IE_KEYPAD */
-#if 0
+#if 1
 static void enc_ie_keypad(unsigned char **ntmode, msg_t *msg, char *keypad, int nt, struct misdn_bchannel *bc)
 {
 	unsigned char *p;

Modified: team/russell/inband_dtmf/channels/misdn/isdn_lib.c
URL: http://svn.digium.com/view/asterisk/team/russell/inband_dtmf/channels/misdn/isdn_lib.c?view=diff&rev=62915&r1=62914&r2=62915
==============================================================================
--- team/russell/inband_dtmf/channels/misdn/isdn_lib.c (original)
+++ team/russell/inband_dtmf/channels/misdn/isdn_lib.c Thu May  3 09:53:56 2007
@@ -1101,6 +1101,10 @@
 	cb_log(8, port, "Init.BC %d.\n",bidx);
 	
 	memset(bc, 0,sizeof(struct misdn_bchannel));
+
+	bc->send_lock=malloc(sizeof(struct send_lock));
+
+	pthread_mutex_init(&bc->send_lock->lock, NULL);
 	
 	if (msn) {
 		int l = sizeof(bc->msn);
@@ -1206,6 +1210,7 @@
 		stack->nt=1;
 		break;
 
+#ifndef MISDN_1_2
 	case ISDN_PID_L0_TE_U:
 		break;
 	case ISDN_PID_L0_NT_U:
@@ -1214,6 +1219,7 @@
 		break;
 	case ISDN_PID_L0_NT_UP2:
 		break;
+#endif
 	case ISDN_PID_L0_TE_E1:
 		cb_log(8, port, "TE S2M Stack\n");
 		stack->nt=0;
@@ -1545,14 +1551,6 @@
 
 		case EVENT_RELEASE_COMPLETE:
 		case EVENT_RELEASE:
-			if (bc->channel>0)
-				empty_chan_in_stack(stack,bc->channel);
-			int tmpcause=bc->cause;	
-			int tmp_out_cause=bc->out_cause;	
-			empty_bc(bc);
-			bc->cause=tmpcause;
-			bc->out_cause=tmp_out_cause;
-			clean_up_bc(bc);
 			break;
 		default:
 			break;
@@ -1607,17 +1605,18 @@
 				cb_log(4, stack->port, " --> lib: CLEANING UP l3id: %x\n",frm->dinfo);
 				if (bc->channel>0)
 					empty_chan_in_stack(stack,bc->channel);
-				empty_bc(bc);
 				
-				clean_up_bc(bc);
-				
-				dump_chan_list(stack);
 				/*bc->pid = 0;*/
 				bc->need_disconnect=0;
 				bc->need_release=0;
 				bc->need_release_complete=0;
-				
+
 				cb_event(EVENT_CLEANUP, bc, glob_mgr->user_data);
+
+				empty_bc(bc);
+				clean_up_bc(bc);
+				dump_chan_list(stack);
+
 				if (bc->stack_holder) {
 					cb_log(4,stack->port, "REMOVEING Holder\n");
 					stack_holder_remove( stack, bc);
@@ -1821,7 +1820,7 @@
 				return 0;
 			}
   
-			cb_log(7, stack->port, " --> new_process: New L3Id: %x\n",hh->dinfo);
+			cb_log(4, stack->port, " --> new_process: New L3Id: %x\n",hh->dinfo);
 			bc->l3_id=hh->dinfo;
 		}
 		break;
@@ -2657,6 +2656,18 @@
 				}
 			}
 
+			if (event == EVENT_RELEASE_COMPLETE) {
+				/* release bchannel only after we've anounced the RELEASE_COMPLETE */
+				if (bc->channel>0)
+					empty_chan_in_stack(stack,bc->channel);
+				int tmpcause=bc->cause;	
+				int tmp_out_cause=bc->out_cause;	
+				empty_bc(bc);
+				bc->cause=tmpcause;
+				bc->out_cause=tmp_out_cause;
+				clean_up_bc(bc);
+			}
+
 			cb_log(5, stack->port, "Freeing Msg on prim:%x \n",frm->prim);
 
 			
@@ -3189,21 +3200,40 @@
 	cb_log(5, stack->port, " --> bc:%x h:%d sh:%d\n", bc, bc->holded, bc->stack_holder);
 }
 
+void misdn_send_lock(struct misdn_bchannel *bc);
+void misdn_send_unlock(struct misdn_bchannel *bc);
+
+#define RETURN(a,b) {retval=a; goto b;}
+
+void misdn_send_lock(struct misdn_bchannel *bc)
+{
+	//cb_log(0,bc->port,"Locking bc->pid:%d\n", bc->pid);
+	pthread_mutex_lock(&bc->send_lock->lock);
+}
+
+void misdn_send_unlock(struct misdn_bchannel *bc)
+{
+	//cb_log(0,bc->port,"UnLocking bc->pid:%d\n", bc->pid);
+	pthread_mutex_unlock(&bc->send_lock->lock);
+}
+
 int misdn_lib_send_event(struct misdn_bchannel *bc, enum event_e event )
 {
 	msg_t *msg; 
-	int err = -1 ;
-	int ret=0;
-  
-	if (!bc) goto ERR; 
+	int retval=0;
+  
+	if (!bc) RETURN(-1,OUT_POST_UNLOCK);
 	
 	struct misdn_stack *stack=get_stack_by_bc(bc);
 	
 	if (!stack) {
 		cb_log(0,bc->port,"SENDEVENT: no Stack for event:%s oad:%s dad:%s \n", isdn_get_info(msgs_g, event, 0), bc->oad, bc->dad);
-		return -1;
-	}
-	
+		RETURN(-1,OUT);
+	}
+	
+	misdn_send_lock(bc);
+
+
 	cb_log(6,stack->port,"SENDEVENT: stack->nt:%d stack->uperid:%x\n",stack->nt, stack->upper_id);
 
 	if ( stack->nt && !stack->l1link) {
@@ -3211,7 +3241,7 @@
 		bc->evq=event;
 		cb_log(1, stack->port, "Queueing Event %s because L1 is down (btw. Activating L1)\n", isdn_get_info(msgs_g, event, 0));
 		misdn_lib_get_l1_up(stack);
-		return 0;
+		RETURN(0,OUT);
 	}
 	
 	cb_log(1, stack->port, "I SEND:%s oad:%s dad:%s pid:%d\n", isdn_get_info(msgs_g, event, 0), bc->oad, bc->dad, bc->pid);
@@ -3223,8 +3253,7 @@
 		if (create_process(glob_mgr->midev, bc)<0) {
 			cb_log(0,  stack->port, " No free channel at the moment @ send_event\n");
 
-			err=-ENOCHAN;
-			goto ERR;
+			RETURN(-ENOCHAN,OUT);
 		}
 #if 0
 	if (stack->nt) {
@@ -3240,8 +3269,6 @@
 	case EVENT_ALERTING:
 	case EVENT_PROCEEDING:
 	case EVENT_SETUP_ACKNOWLEDGE:
-		if (!bc->nt && !stack->ptp) break;
-
 	case EVENT_CONNECT:
 	case EVENT_RETRIEVE_ACKNOWLEDGE:
 
@@ -3250,21 +3277,19 @@
 				if (!find_free_chan_in_stack(stack, bc, 0,0)) {
 					cb_log(0, stack->port, " No free channel at the moment\n");
 					/*FIXME: add disconnect*/
-					err=-ENOCHAN;
-					goto ERR;
+					RETURN(-ENOCHAN,OUT);
 				}
 				
 				if (set_chan_in_stack(stack ,bc->channel)<0) {
 					/*FIXME: add disconnect*/
-					err=-ENOCHAN;
-					goto ERR;
+					RETURN(-ENOCHAN,OUT);
 				}
 			}
 			/* Its that i generate channels */
 		}
 
-		ret=setup_bc(bc);
-		if (ret == -EINVAL) {
+		retval=setup_bc(bc);
+		if (retval == -EINVAL) {
 			cb_log(0,bc->port,"send_event: setup_bc failed\n");
 		}
 
@@ -3297,7 +3322,7 @@
 		struct misdn_bchannel *holded_bc=malloc(sizeof(struct misdn_bchannel));
 		if (!holded_bc) {
 			cb_log(0,bc->port, "Could not allocate holded_bc!!!\n");
-			return -1;
+			RETURN(-1,OUT);
 		}
 
 		/*backup the bc*/
@@ -3312,10 +3337,11 @@
 			if (bc->bc_state == BCHAN_BRIDGED) {
 				misdn_split_conf(bc,bc->conf_id);
 				struct misdn_bchannel *bc2=find_bc_by_confid(bc->conf_id);
-				if (!bc2) 
+				if (!bc2) {
 					cb_log(0,bc->port,"We have no second bc in bridge???\n");
-				else 
+				} else {
 					misdn_split_conf(bc2,bc->conf_id);
+				}
 			}
 
 			if (bc->channel>0)
@@ -3331,7 +3357,7 @@
 	case EVENT_DISCONNECT:
 		if (!bc->need_disconnect) {
 			cb_log(0,bc->port," --> we have already send Disconnect\n");
-			return -1;
+			RETURN(-1,OUT);
 		}
 		
 		bc->need_disconnect=0;
@@ -3339,7 +3365,7 @@
 	case EVENT_RELEASE:
 		if (!bc->need_release) {
 			cb_log(0,bc->port," --> we have already send Release\n");
-			return -1;
+			RETURN(-1,OUT);
 		}
 		bc->need_disconnect=0;
 		bc->need_release=0;
@@ -3347,7 +3373,7 @@
 	case EVENT_RELEASE_COMPLETE:
 		if (!bc->need_release_complete) {
 			cb_log(0,bc->port," --> we have already send Release_complete\n");
-			return -1;
+			RETURN(-1,OUT);
 		}
 		bc->need_disconnect=0;
 		bc->need_release=0;
@@ -3369,13 +3395,12 @@
 	case EVENT_CONNECT_ACKNOWLEDGE:
 
 		if ( bc->nt || misdn_cap_is_speech(bc->capability)) {
-			int ret=setup_bc(bc);
-			if (ret == -EINVAL){
+			int retval=setup_bc(bc);
+			if (retval == -EINVAL){
 				cb_log(0,bc->port,"send_event: setup_bc failed\n");
 				
 			}
 		}
-	
 		
 		if (misdn_cap_is_speech(bc->capability)) {
 			if (  !bc->nodsp) manager_ph_control(bc,  DTMF_TONE_START, 0);
@@ -3401,10 +3426,11 @@
 	msg_queue_tail(&stack->downqueue, msg);
 	sem_post(&glob_mgr->new_msg);
   
-	return 0;
-  
- ERR:
-	return -1; 
+OUT:
+	misdn_send_unlock(bc);
+
+OUT_POST_UNLOCK:
+	return retval; 
 }
 
 

Modified: team/russell/inband_dtmf/channels/misdn/isdn_lib.h
URL: http://svn.digium.com/view/asterisk/team/russell/inband_dtmf/channels/misdn/isdn_lib.h?view=diff&rev=62915&r1=62914&r2=62915
==============================================================================
--- team/russell/inband_dtmf/channels/misdn/isdn_lib.h (original)
+++ team/russell/inband_dtmf/channels/misdn/isdn_lib.h Thu May  3 09:53:56 2007
@@ -199,6 +199,7 @@
 
 
 struct misdn_bchannel {
+	struct send_lock *send_lock;
 
 	int nt;
 	int port;

Modified: team/russell/inband_dtmf/channels/misdn/isdn_lib_intern.h
URL: http://svn.digium.com/view/asterisk/team/russell/inband_dtmf/channels/misdn/isdn_lib_intern.h?view=diff&rev=62915&r1=62914&r2=62915
==============================================================================
--- team/russell/inband_dtmf/channels/misdn/isdn_lib_intern.h (original)
+++ team/russell/inband_dtmf/channels/misdn/isdn_lib_intern.h Thu May  3 09:53:56 2007
@@ -28,6 +28,10 @@
 
 ibuffer_t *astbuf;
 ibuffer_t *misdnbuf;
+
+struct send_lock {
+	pthread_mutex_t lock;
+};
 
 
 struct isdn_msg {

Modified: team/russell/inband_dtmf/channels/misdn/isdn_msg_parser.c
URL: http://svn.digium.com/view/asterisk/team/russell/inband_dtmf/channels/misdn/isdn_msg_parser.c?view=diff&rev=62915&r1=62914&r2=62915
==============================================================================
--- team/russell/inband_dtmf/channels/misdn/isdn_msg_parser.c (original)
+++ team/russell/inband_dtmf/channels/misdn/isdn_msg_parser.c Thu May  3 09:53:56 2007
@@ -296,6 +296,10 @@
 			enc_ie_redir_nr(&setup->REDIR_NR, msg, 1, 1,  bc->pres, bc->screen, 0, bc->rad, nt,bc);
 	}
 
+	{
+		if (bc->keypad[0])
+			enc_ie_keypad(&setup->CALLED_PN, msg, bc->keypad, nt,bc);
+	}
 	
   
 	if (*bc->display) {

Modified: team/russell/inband_dtmf/main/channel.c
URL: http://svn.digium.com/view/asterisk/team/russell/inband_dtmf/main/channel.c?view=diff&rev=62915&r1=62914&r2=62915
==============================================================================
--- team/russell/inband_dtmf/main/channel.c (original)
+++ team/russell/inband_dtmf/main/channel.c Thu May  3 09:53:56 2007
@@ -2705,6 +2705,7 @@
 				ast_channel_unlock(chan);
 				res = ast_senddigit_end(chan, fr->subclass, fr->len);
 				ast_channel_lock(chan);
+				CHECK_BLOCKING(chan);
 			}
 
 			res = 0;	/* XXX explain, why 0 ? */

Modified: team/russell/inband_dtmf/pbx/ael/ael-test/ref.ael-test7
URL: http://svn.digium.com/view/asterisk/team/russell/inband_dtmf/pbx/ael/ael-test/ref.ael-test7?view=diff&rev=62915&r1=62914&r2=62915
==============================================================================
--- team/russell/inband_dtmf/pbx/ael/ael-test/ref.ael-test7 (original)
+++ team/russell/inband_dtmf/pbx/ael/ael-test/ref.ael-test7 Thu May  3 09:53:56 2007
@@ -2,13 +2,13 @@
 (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:3910 func: pbx_load_module  Starting AEL load process.
-LOG: lev:2 file:pbx_ael.c  line:3917 func: pbx_load_module  AEL load process: calculated config file name './extensions.ael'.
-LOG: lev:2 file:pbx_ael.c  line:3925 func: pbx_load_module  AEL load process: parsed config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c  line:3915 func: pbx_load_module  Starting AEL load process.
+LOG: lev:2 file:pbx_ael.c  line:3922 func: pbx_load_module  AEL load process: calculated config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c  line:3930 func: pbx_load_module  AEL load process: parsed config file name './extensions.ael'.
 LOG: lev:4 file:pbx_ael.c  line:2339 func: check_pval_item  Error: file ./extensions.ael, line 98-98: The macro call to checkanddial has 5 arguments, but the macro definition has 7 arguments
 LOG: lev:4 file:pbx_ael.c  line:2339 func: check_pval_item  Error: file ./extensions.ael, line 107-107: The macro call to checkanddial has 5 arguments, but the macro definition has 7 arguments
 LOG: lev:4 file:pbx_ael.c  line:2339 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:2339 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:2320 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:3938 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:2320 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:3943 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/inband_dtmf/pbx/ael/ael-test/ref.ael-vtest13
URL: http://svn.digium.com/view/asterisk/team/russell/inband_dtmf/pbx/ael/ael-test/ref.ael-vtest13?view=diff&rev=62915&r1=62914&r2=62915
==============================================================================
--- team/russell/inband_dtmf/pbx/ael/ael-test/ref.ael-vtest13 (original)
+++ team/russell/inband_dtmf/pbx/ael/ael-test/ref.ael-vtest13 Thu May  3 09:53:56 2007
@@ -14,16 +14,16 @@
 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 => 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)
 
 
 [macro-std-priv-exten_1]
@@ -35,19 +35,19 @@
 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 => _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)
 
 
 [macro-std-priv-exten_2]
@@ -59,19 +59,19 @@
 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 => _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)
 
 
 [macro-std-priv-exten_3]
@@ -83,19 +83,19 @@
 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 => _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)
 
 
 [macro-std-priv-exten_4]
@@ -107,19 +107,19 @@
 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 => _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)
 
 
 [macro-std-priv-exten_5]
@@ -131,19 +131,19 @@
 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 => _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)
 
 
 [macro-std-priv-exten_6]
@@ -155,19 +155,19 @@
 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 => _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)
 
 
 [macro-std-priv-exten_7]
@@ -179,19 +179,19 @@
 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 => _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)
 
 
 [macro-std-priv-exten_8]
@@ -203,19 +203,19 @@
 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 => _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)
 
 
 [macro-std-priv-exten_9]
@@ -227,19 +227,19 @@
 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 => _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)
 
 
 [macro-std-priv-exten_10]
@@ -251,19 +251,19 @@
 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 => _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)
 
 
 [macro-std-priv-exten_11]
@@ -275,19 +275,19 @@
 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 => _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)
+exten => sw-13-DONTCALL,10,Goto(${dontcont}|s|begin)
+exten => sw-13-DONTCALL,11,Goto(s|10)
+exten => sw-13-TORTURE,10,Goto(${torcont}|s|begin)
+exten => sw-13-TORTURE,11,Goto(s|10)
 
 
 [macro-std-priv-exten_12]
@@ -299,19 +299,19 @@
 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-14-${DIALSTATUS}|1)
+exten => s,9,Goto(sw-14-${DIALSTATUS}|10)
 exten => s,10,NoOp(Finish switch-std-priv-exten_12-14)
-exten => _sw-14-.,1,Voicemail(u${ext})
-exten => _sw-14-.,2,Goto(s|10)
-exten => sw-14-NOANSWER,1,Voicemail(u${ext})
-exten => sw-14-NOANSWER,2,Goto(s|10)
-exten => sw-14-ANSWER,1,Goto(s|10)
-exten => sw-14-BUSY,1,Voicemail(b${ext})
-exten => sw-14-BUSY,2,Goto(s|10)
-exten => sw-14-DONTCALL,1,Goto(${dontcont}|s|begin)
-exten => sw-14-DONTCALL,2,Goto(s|10)
-exten => sw-14-TORTURE,1,Goto(${torcont}|s|begin)
-exten => sw-14-TORTURE,2,Goto(s|10)
+exten => _sw-14-.,10,Voicemail(u${ext})
+exten => _sw-14-.,11,Goto(s|10)
+exten => sw-14-NOANSWER,10,Voicemail(u${ext})
+exten => sw-14-NOANSWER,11,Goto(s|10)
+exten => sw-14-ANSWER,10,Goto(s|10)
+exten => sw-14-BUSY,10,Voicemail(b${ext})
+exten => sw-14-BUSY,11,Goto(s|10)
+exten => sw-14-DONTCALL,10,Goto(${dontcont}|s|begin)
+exten => sw-14-DONTCALL,11,Goto(s|10)
+exten => sw-14-TORTURE,10,Goto(${torcont}|s|begin)
+exten => sw-14-TORTURE,11,Goto(s|10)
 
 
 [macro-std-priv-exten_13]
@@ -323,19 +323,19 @@
 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-15-${DIALSTATUS}|1)
+exten => s,9,Goto(sw-15-${DIALSTATUS}|10)
 exten => s,10,NoOp(Finish switch-std-priv-exten_13-15)
-exten => _sw-15-.,1,Voicemail(u${ext})
-exten => _sw-15-.,2,Goto(s|10)
-exten => sw-15-NOANSWER,1,Voicemail(u${ext})
-exten => sw-15-NOANSWER,2,Goto(s|10)
-exten => sw-15-ANSWER,1,Goto(s|10)
-exten => sw-15-BUSY,1,Voicemail(b${ext})
-exten => sw-15-BUSY,2,Goto(s|10)
-exten => sw-15-DONTCALL,1,Goto(${dontcont}|s|begin)
-exten => sw-15-DONTCALL,2,Goto(s|10)
-exten => sw-15-TORTURE,1,Goto(${torcont}|s|begin)
-exten => sw-15-TORTURE,2,Goto(s|10)
+exten => _sw-15-.,10,Voicemail(u${ext})
+exten => _sw-15-.,11,Goto(s|10)
+exten => sw-15-NOANSWER,10,Voicemail(u${ext})
+exten => sw-15-NOANSWER,11,Goto(s|10)
+exten => sw-15-ANSWER,10,Goto(s|10)
+exten => sw-15-BUSY,10,Voicemail(b${ext})
+exten => sw-15-BUSY,11,Goto(s|10)
+exten => sw-15-DONTCALL,10,Goto(${dontcont}|s|begin)
+exten => sw-15-DONTCALL,11,Goto(s|10)
+exten => sw-15-TORTURE,10,Goto(${torcont}|s|begin)
+exten => sw-15-TORTURE,11,Goto(s|10)
 
 
 [macro-std-priv-exten_14]
@@ -347,19 +347,19 @@
 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-16-${DIALSTATUS}|1)
+exten => s,9,Goto(sw-16-${DIALSTATUS}|10)
 exten => s,10,NoOp(Finish switch-std-priv-exten_14-16)
-exten => _sw-16-.,1,Voicemail(u${ext})
-exten => _sw-16-.,2,Goto(s|10)
-exten => sw-16-NOANSWER,1,Voicemail(u${ext})
-exten => sw-16-NOANSWER,2,Goto(s|10)
-exten => sw-16-ANSWER,1,Goto(s|10)
-exten => sw-16-BUSY,1,Voicemail(b${ext})
-exten => sw-16-BUSY,2,Goto(s|10)
-exten => sw-16-DONTCALL,1,Goto(${dontcont}|s|begin)
-exten => sw-16-DONTCALL,2,Goto(s|10)
-exten => sw-16-TORTURE,1,Goto(${torcont}|s|begin)
-exten => sw-16-TORTURE,2,Goto(s|10)
+exten => _sw-16-.,10,Voicemail(u${ext})
+exten => _sw-16-.,11,Goto(s|10)
+exten => sw-16-NOANSWER,10,Voicemail(u${ext})
+exten => sw-16-NOANSWER,11,Goto(s|10)
+exten => sw-16-ANSWER,10,Goto(s|10)
+exten => sw-16-BUSY,10,Voicemail(b${ext})
+exten => sw-16-BUSY,11,Goto(s|10)
+exten => sw-16-DONTCALL,10,Goto(${dontcont}|s|begin)
+exten => sw-16-DONTCALL,11,Goto(s|10)
+exten => sw-16-TORTURE,10,Goto(${torcont}|s|begin)
+exten => sw-16-TORTURE,11,Goto(s|10)
 
 
 [macro-std-priv-exten_15]
@@ -371,19 +371,19 @@
 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-17-${DIALSTATUS}|1)
+exten => s,9,Goto(sw-17-${DIALSTATUS}|10)
 exten => s,10,NoOp(Finish switch-std-priv-exten_15-17)
-exten => _sw-17-.,1,Voicemail(u${ext})

[... 3177 lines stripped ...]


More information about the asterisk-commits mailing list