[asterisk-commits] oej: branch oej/rana-dtmf-duration-1.8 r338662 - in /team/oej/rana-dtmf-durat...

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Fri Sep 30 10:38:01 CDT 2011


Author: oej
Date: Fri Sep 30 10:37:55 2011
New Revision: 338662

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=338662
Log:
Upgrade

Modified:
    team/oej/rana-dtmf-duration-1.8/   (props changed)
    team/oej/rana-dtmf-duration-1.8/CHANGES
    team/oej/rana-dtmf-duration-1.8/Makefile
    team/oej/rana-dtmf-duration-1.8/Makefile.rules
    team/oej/rana-dtmf-duration-1.8/UPGRADE.txt
    team/oej/rana-dtmf-duration-1.8/addons/chan_mobile.c
    team/oej/rana-dtmf-duration-1.8/addons/chan_ooh323.c
    team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/ooCalls.c
    team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/ooCalls.h
    team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/ooGkClient.c
    team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/oochannels.c
    team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/ooh323.c
    team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/ooq931.c
    team/oej/rana-dtmf-duration-1.8/agi/agi.xml
    team/oej/rana-dtmf-duration-1.8/apps/app_dial.c
    team/oej/rana-dtmf-duration-1.8/apps/app_directed_pickup.c
    team/oej/rana-dtmf-duration-1.8/apps/app_echo.c
    team/oej/rana-dtmf-duration-1.8/apps/app_followme.c
    team/oej/rana-dtmf-duration-1.8/apps/app_macro.c
    team/oej/rana-dtmf-duration-1.8/apps/app_meetme.c
    team/oej/rana-dtmf-duration-1.8/apps/app_minivm.c
    team/oej/rana-dtmf-duration-1.8/apps/app_mixmonitor.c
    team/oej/rana-dtmf-duration-1.8/apps/app_morsecode.c
    team/oej/rana-dtmf-duration-1.8/apps/app_mp3.c
    team/oej/rana-dtmf-duration-1.8/apps/app_queue.c
    team/oej/rana-dtmf-duration-1.8/apps/app_saycounted.c
    team/oej/rana-dtmf-duration-1.8/apps/app_voicemail.c
    team/oej/rana-dtmf-duration-1.8/bridges/bridge_multiplexed.c
    team/oej/rana-dtmf-duration-1.8/build_tools/cflags-devmode.xml
    team/oej/rana-dtmf-duration-1.8/build_tools/cflags.xml
    team/oej/rana-dtmf-duration-1.8/build_tools/embed_modules.xml
    team/oej/rana-dtmf-duration-1.8/build_tools/mkpkgconfig
    team/oej/rana-dtmf-duration-1.8/cdr/cdr_custom.c
    team/oej/rana-dtmf-duration-1.8/cdr/cdr_manager.c
    team/oej/rana-dtmf-duration-1.8/cdr/cdr_sqlite3_custom.c
    team/oej/rana-dtmf-duration-1.8/cdr/cdr_syslog.c
    team/oej/rana-dtmf-duration-1.8/cel/cel_custom.c
    team/oej/rana-dtmf-duration-1.8/cel/cel_odbc.c   (props changed)
    team/oej/rana-dtmf-duration-1.8/cel/cel_sqlite3_custom.c
    team/oej/rana-dtmf-duration-1.8/channels/chan_agent.c
    team/oej/rana-dtmf-duration-1.8/channels/chan_alsa.c
    team/oej/rana-dtmf-duration-1.8/channels/chan_console.c
    team/oej/rana-dtmf-duration-1.8/channels/chan_dahdi.c
    team/oej/rana-dtmf-duration-1.8/channels/chan_h323.c
    team/oej/rana-dtmf-duration-1.8/channels/chan_iax2.c
    team/oej/rana-dtmf-duration-1.8/channels/chan_mgcp.c
    team/oej/rana-dtmf-duration-1.8/channels/chan_misdn.c
    team/oej/rana-dtmf-duration-1.8/channels/chan_oss.c
    team/oej/rana-dtmf-duration-1.8/channels/chan_sip.c
    team/oej/rana-dtmf-duration-1.8/channels/chan_skinny.c
    team/oej/rana-dtmf-duration-1.8/channels/chan_unistim.c
    team/oej/rana-dtmf-duration-1.8/channels/chan_usbradio.c
    team/oej/rana-dtmf-duration-1.8/channels/chan_vpb.cc
    team/oej/rana-dtmf-duration-1.8/channels/sig_pri.c
    team/oej/rana-dtmf-duration-1.8/channels/sig_ss7.c
    team/oej/rana-dtmf-duration-1.8/channels/sip/include/sip.h
    team/oej/rana-dtmf-duration-1.8/codecs/gsm/Makefile
    team/oej/rana-dtmf-duration-1.8/configs/cel_odbc.conf.sample   (props changed)
    team/oej/rana-dtmf-duration-1.8/configs/manager.conf.sample
    team/oej/rana-dtmf-duration-1.8/configs/res_pktccops.conf.sample
    team/oej/rana-dtmf-duration-1.8/configs/sip.conf.sample
    team/oej/rana-dtmf-duration-1.8/configure
    team/oej/rana-dtmf-duration-1.8/configure.ac
    team/oej/rana-dtmf-duration-1.8/contrib/init.d/rc.archlinux.asterisk
    team/oej/rana-dtmf-duration-1.8/contrib/init.d/rc.redhat.asterisk
    team/oej/rana-dtmf-duration-1.8/contrib/realtime/mysql/iaxfriends.sql   (props changed)
    team/oej/rana-dtmf-duration-1.8/contrib/realtime/mysql/meetme.sql   (props changed)
    team/oej/rana-dtmf-duration-1.8/contrib/realtime/mysql/sipfriends.sql   (props changed)
    team/oej/rana-dtmf-duration-1.8/contrib/realtime/mysql/voicemail.sql   (props changed)
    team/oej/rana-dtmf-duration-1.8/contrib/realtime/postgresql/realtime.sql   (props changed)
    team/oej/rana-dtmf-duration-1.8/contrib/scripts/get_ilbc_source.sh
    team/oej/rana-dtmf-duration-1.8/funcs/func_curl.c
    team/oej/rana-dtmf-duration-1.8/funcs/func_frame_trace.c
    team/oej/rana-dtmf-duration-1.8/funcs/func_odbc.c
    team/oej/rana-dtmf-duration-1.8/include/asterisk/app.h
    team/oej/rana-dtmf-duration-1.8/include/asterisk/autoconfig.h.in
    team/oej/rana-dtmf-duration-1.8/include/asterisk/cel.h
    team/oej/rana-dtmf-duration-1.8/include/asterisk/channel.h
    team/oej/rana-dtmf-duration-1.8/include/asterisk/config.h
    team/oej/rana-dtmf-duration-1.8/include/asterisk/event.h
    team/oej/rana-dtmf-duration-1.8/include/asterisk/frame.h
    team/oej/rana-dtmf-duration-1.8/include/asterisk/logger.h
    team/oej/rana-dtmf-duration-1.8/include/asterisk/manager.h
    team/oej/rana-dtmf-duration-1.8/include/asterisk/optional_api.h
    team/oej/rana-dtmf-duration-1.8/include/asterisk/test.h
    team/oej/rana-dtmf-duration-1.8/main/Makefile
    team/oej/rana-dtmf-duration-1.8/main/app.c
    team/oej/rana-dtmf-duration-1.8/main/asterisk.c
    team/oej/rana-dtmf-duration-1.8/main/cel.c
    team/oej/rana-dtmf-duration-1.8/main/channel.c
    team/oej/rana-dtmf-duration-1.8/main/config.c
    team/oej/rana-dtmf-duration-1.8/main/dial.c
    team/oej/rana-dtmf-duration-1.8/main/event.c
    team/oej/rana-dtmf-duration-1.8/main/features.c
    team/oej/rana-dtmf-duration-1.8/main/file.c
    team/oej/rana-dtmf-duration-1.8/main/logger.c
    team/oej/rana-dtmf-duration-1.8/main/manager.c
    team/oej/rana-dtmf-duration-1.8/main/netsock2.c
    team/oej/rana-dtmf-duration-1.8/main/pbx.c
    team/oej/rana-dtmf-duration-1.8/main/rtp_engine.c
    team/oej/rana-dtmf-duration-1.8/main/test.c
    team/oej/rana-dtmf-duration-1.8/makeopts.in
    team/oej/rana-dtmf-duration-1.8/res/ais/evt.c
    team/oej/rana-dtmf-duration-1.8/res/res_config_odbc.c
    team/oej/rana-dtmf-duration-1.8/res/res_config_pgsql.c
    team/oej/rana-dtmf-duration-1.8/res/res_jabber.c
    team/oej/rana-dtmf-duration-1.8/res/res_musiconhold.c
    team/oej/rana-dtmf-duration-1.8/res/res_rtp_asterisk.c
    team/oej/rana-dtmf-duration-1.8/res/res_srtp.c
    team/oej/rana-dtmf-duration-1.8/sounds/Makefile   (contents, props changed)
    team/oej/rana-dtmf-duration-1.8/tests/test_amihooks.c
    team/oej/rana-dtmf-duration-1.8/tests/test_dlinklists.c
    team/oej/rana-dtmf-duration-1.8/tests/test_gosub.c
    team/oej/rana-dtmf-duration-1.8/tests/test_linkedlists.c
    team/oej/rana-dtmf-duration-1.8/tests/test_locale.c
    team/oej/rana-dtmf-duration-1.8/tests/test_logger.c
    team/oej/rana-dtmf-duration-1.8/tests/test_pbx.c
    team/oej/rana-dtmf-duration-1.8/tests/test_security_events.c
    team/oej/rana-dtmf-duration-1.8/utils/utils.xml

Propchange: team/oej/rana-dtmf-duration-1.8/
------------------------------------------------------------------------------
    automerge = Is-there-life-off-net?

Propchange: team/oej/rana-dtmf-duration-1.8/
            ('svn:mergeinfo' removed)

Propchange: team/oej/rana-dtmf-duration-1.8/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Fri Sep 30 10:37:55 2011
@@ -1,1 +1,1 @@
-/branches/1.8:1-332432
+/branches/1.8:1-338661

Modified: team/oej/rana-dtmf-duration-1.8/CHANGES
URL: http://svnview.digium.com/svn/asterisk/team/oej/rana-dtmf-duration-1.8/CHANGES?view=diff&rev=338662&r1=338661&r2=338662
==============================================================================
--- team/oej/rana-dtmf-duration-1.8/CHANGES (original)
+++ team/oej/rana-dtmf-duration-1.8/CHANGES Fri Sep 30 10:37:55 2011
@@ -44,7 +44,7 @@
  * Slave SIP channels now set HASH(SIP_CAUSE,<slave-channel-name>) on each
    response.  This permits the master channel to know how each channel dialled
    in a multi-channel setup resolved in an individual way. This carries a
-   performance penalty and can be disabled in sip.conf using the
+   performance penalty and must be enabled in sip.conf using the
    'storesipcause' option.
  * Added 'externtcpport' and 'externtlsport' options to allow custom port
    configuration for the externip and externhost options when tcp or tls is used.
@@ -284,7 +284,7 @@
  * A new option, 'I' has been added to both app_queue and app_dial.
    By setting this option, Asterisk will not update the caller with
    connected line changes or redirecting party changes when they occur.
- * A 'relative-peroidic-announce' option has been added to queues.conf.  When
+ * A 'relative-periodic-announce' option has been added to queues.conf.  When
    enabled, this option will cause periodic announce times to be calculated
    from the end of announcements rather than from the beginning.
  * The autopause option in queues.conf can be passed a new value, "all." The

Modified: team/oej/rana-dtmf-duration-1.8/Makefile
URL: http://svnview.digium.com/svn/asterisk/team/oej/rana-dtmf-duration-1.8/Makefile?view=diff&rev=338662&r1=338661&r2=338662
==============================================================================
--- team/oej/rana-dtmf-duration-1.8/Makefile (original)
+++ team/oej/rana-dtmf-duration-1.8/Makefile Fri Sep 30 10:37:55 2011
@@ -278,7 +278,7 @@
 ifneq ($(findstring darwin,$(OSARCH)),)
   _ASTCFLAGS+=-D__Darwin__
   SOLINK=-bundle -Xlinker -macosx_version_min -Xlinker 10.4 -Xlinker -undefined -Xlinker dynamic_lookup -force_flat_namespace
-  ifeq ($(shell /usr/bin/sw_vers -productVersion | cut -c1-4),10.6)
+  ifeq ($(shell if test `/usr/bin/sw_vers -productVersion | cut -c4` -gt 5; then echo 6; else echo 0; fi),6)
     SOLINK+=/usr/lib/bundle1.o
   endif
   _ASTLDFLAGS+=-L/usr/local/lib
@@ -541,6 +541,7 @@
 	$(INSTALL) -d "$(DESTDIR)$(ASTDATADIR)/keys"
 	$(INSTALL) -d "$(DESTDIR)$(ASTDATADIR)/phoneprov"
 	$(INSTALL) -d "$(DESTDIR)$(ASTDATADIR)/static-http"
+	$(INSTALL) -d "$(DESTDIR)$(ASTDATADIR)/sounds"
 	$(INSTALL) -d "$(DESTDIR)$(ASTMANDIR)/man8"
 	$(INSTALL) -d "$(DESTDIR)$(AGI_DIR)"
 	$(INSTALL) -d "$(DESTDIR)$(ASTDBDIR)"
@@ -603,17 +604,7 @@
 	@exit 1
 endif
 
-preinstall_spaces:
-ifneq ($(MAKE_PREINSTALL),)
-	$(MAKE_PREINSTALL)
-endif
-
-postinstall_spaces:
-ifneq ($(MAKE_POSTINSTALL),)
-	$(MAKE_POSTINSTALL)
-endif
-
-install: preinstall_spaces badshell bininstall datafiles postinstall_spaces
+install: badshell bininstall datafiles
 	@if [ -x /usr/sbin/asterisk-post-install ]; then \
 		/usr/sbin/asterisk-post-install "$(DESTDIR)" . ; \
 	fi
@@ -650,32 +641,32 @@
 	$(INSTALL) -d "$(DESTDIR)$(ASTETCDIR)"
 	@for x in configs/*.adsi; do \
 		dst="$(DESTDIR)$(ASTETCDIR)/`$(BASENAME) $$x`" ; \
-		if [ -f $${dst} ] ; then \
+		if [ -f "$${dst}" ] ; then \
 			echo "Overwriting $$x" ; \
 		else \
 			echo "Installing $$x" ; \
 		fi ; \
-		$(INSTALL) -m 644 $$x "$(DESTDIR)$(ASTETCDIR)/`$(BASENAME) $$x`" ; \
+		$(INSTALL) -m 644 "$$x" "$(DESTDIR)$(ASTETCDIR)/`$(BASENAME) $$x`" ; \
 	done
 
 samples: adsi
 	@echo Installing other config files...
 	@for x in configs/*.sample; do \
 		dst="$(DESTDIR)$(ASTETCDIR)/`$(BASENAME) $$x .sample`" ;	\
-		if [ -f $${dst} ]; then \
+		if [ -f "$${dst}" ]; then \
 			if [ "$(OVERWRITE)" = "y" ]; then \
-				if cmp -s $${dst} $$x ; then \
+				if cmp -s "$${dst}" "$$x" ; then \
 					echo "Config file $$x is unchanged"; \
 					continue; \
 				fi ; \
-				mv -f $${dst} $${dst}.old ; \
+				mv -f "$${dst}" "$${dst}.old" ; \
 			else \
 				echo "Skipping config file $$x"; \
 				continue; \
 			fi ;\
 		fi ; \
 		echo "Installing file $$x"; \
-		$(INSTALL) -m 644 $$x $${dst} ;\
+		$(INSTALL) -m 644 "$$x" "$${dst}" ;\
 	done
 	if [ "$(OVERWRITE)" = "y" ]; then \
 		echo "Updating asterisk.conf" ; \
@@ -851,7 +842,7 @@
 	rm -f "$(DESTDIR)$(ASTMANDIR)/man8/safe_asterisk.8"
 	$(MAKE) -C sounds uninstall
 
-uninstall: preinstall_spaces _uninstall postinstall_spaces
+uninstall: _uninstall
 	@echo " +--------- Asterisk Uninstall Complete -----+"  
 	@echo " + Asterisk binaries, sounds, man pages,     +"  
 	@echo " + headers, modules, and firmware builds,    +"  

Modified: team/oej/rana-dtmf-duration-1.8/Makefile.rules
URL: http://svnview.digium.com/svn/asterisk/team/oej/rana-dtmf-duration-1.8/Makefile.rules?view=diff&rev=338662&r1=338661&r2=338662
==============================================================================
--- team/oej/rana-dtmf-duration-1.8/Makefile.rules (original)
+++ team/oej/rana-dtmf-duration-1.8/Makefile.rules Fri Sep 30 10:37:55 2011
@@ -37,8 +37,8 @@
 
 OPTIMIZE?=-O6
 ifneq ($(findstring darwin,$(OSARCH)),)
-  ifeq ($(shell /usr/bin/sw_vers -productVersion | cut -c1-4),10.6)
-    # Snow Leopard has an issue with this optimization flag on large files (like chan_sip)
+  ifeq ($(shell if test `/usr/bin/sw_vers -productVersion | cut -c4` -gt 5; then echo 6; else echo 0; fi),6)
+    # Snow Leopard/Lion has an issue with this optimization flag on large files (like chan_sip)
     OPTIMIZE+=-fno-inline-functions
   endif
 endif

Modified: team/oej/rana-dtmf-duration-1.8/UPGRADE.txt
URL: http://svnview.digium.com/svn/asterisk/team/oej/rana-dtmf-duration-1.8/UPGRADE.txt?view=diff&rev=338662&r1=338661&r2=338662
==============================================================================
--- team/oej/rana-dtmf-duration-1.8/UPGRADE.txt (original)
+++ team/oej/rana-dtmf-duration-1.8/UPGRADE.txt Fri Sep 30 10:37:55 2011
@@ -20,6 +20,10 @@
 
 From 1.6.2 to 1.8:
 
+* chan_sip no longer sets HASH(SIP_CAUSE,<chan name>) on channels by default.
+  This must now be enabled by setting 'sipstorecause' to 'yes' in sip.conf.
+  This carries a performance penalty.
+
 * Asterisk now requires libpri 1.4.11+ for PRI support.
 
 * A couple of CLI commands in res_ais were changed back to their original form:
@@ -142,6 +146,18 @@
   the connected line ID on outgoing call legs.  The timing of some AMI
   events/responses output the connected line ID as caller ID.  These party ID's
   are now separate.
+
+* The Dial application d and H options do not automatically answer the call
+  anymore.  It broke DTMF attended transfers.  Since many SIP and ISDN phones
+  cannot send DTMF before a call is connected, you need to answer the call
+  leg to those phones before using Dial with these options for them to have
+  any effect before the dialed party answers.
+
+* The outgoing directory (where .call files are read) now uses inotify to
+  detect file changes instead of polling the directory on a regular basis.
+  If your outgoing folder is on a NFS mount or another network file system,
+  changes to the files will not be detected.  You can revert to polling the
+  directory by specifying --without-inotify to configure before compiling.
 
 From 1.6.1 to 1.6.2:
 

Modified: team/oej/rana-dtmf-duration-1.8/addons/chan_mobile.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/rana-dtmf-duration-1.8/addons/chan_mobile.c?view=diff&rev=338662&r1=338661&r2=338662
==============================================================================
--- team/oej/rana-dtmf-duration-1.8/addons/chan_mobile.c (original)
+++ team/oej/rana-dtmf-duration-1.8/addons/chan_mobile.c Fri Sep 30 10:37:55 2011
@@ -1321,21 +1321,10 @@
 
 static int mbl_ast_hangup(struct mbl_pvt *pvt)
 {
-	int res = 0;
-	for (;;) {
-		if (pvt->owner) {
-			if (ast_channel_trylock(pvt->owner)) {
-				DEADLOCK_AVOIDANCE(&pvt->lock);
-			} else {
-				res = ast_hangup(pvt->owner);
-				/* no need to unlock, ast_hangup() frees the
-				 * channel */
-				break;
-			}
-		} else
-			break;
-	}
-	return res;
+	if (pvt->owner) {
+		ast_hangup(pvt->owner);
+	}
+	return 0;
 }
 
 /*!

Modified: team/oej/rana-dtmf-duration-1.8/addons/chan_ooh323.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/rana-dtmf-duration-1.8/addons/chan_ooh323.c?view=diff&rev=338662&r1=338661&r2=338662
==============================================================================
--- team/oej/rana-dtmf-duration-1.8/addons/chan_ooh323.c (original)
+++ team/oej/rana-dtmf-duration-1.8/addons/chan_ooh323.c Fri Sep 30 10:37:55 2011
@@ -1226,21 +1226,24 @@
 	 
    	ast_mutex_lock(&p->lock);
 	switch (condition) {
+	case AST_CONTROL_INCOMPLETE:
+		/* While h323 does support overlapped dialing, this channel driver does not
+		 * at this time.  Treat a response of Incomplete as if it were congestion.
+		 */
 	case AST_CONTROL_CONGESTION:
 		if (!ast_test_flag(p, H323_ALREADYGONE)) {
-            		ooHangCall(callToken, OO_REASON_LOCAL_CONGESTED, 
-						AST_CAUSE_SWITCH_CONGESTION);
+			ooHangCall(callToken, OO_REASON_LOCAL_CONGESTED, AST_CAUSE_SWITCH_CONGESTION);
 			ast_set_flag(p, H323_ALREADYGONE);
 		}
 		break;
 	case AST_CONTROL_BUSY:
 		if (!ast_test_flag(p, H323_ALREADYGONE)) {
-            		ooHangCall(callToken, OO_REASON_LOCAL_BUSY, AST_CAUSE_USER_BUSY);
+			ooHangCall(callToken, OO_REASON_LOCAL_BUSY, AST_CAUSE_USER_BUSY);
 			ast_set_flag(p, H323_ALREADYGONE);
 		}
 		break;
 	case AST_CONTROL_HOLD:
-		ast_moh_start(ast, data, NULL);		
+		ast_moh_start(ast, data, NULL);
 		break;
 	case AST_CONTROL_UNHOLD:
 		ast_moh_stop(ast);

Modified: team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/ooCalls.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/ooCalls.c?view=diff&rev=338662&r1=338661&r2=338662
==============================================================================
--- team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/ooCalls.c (original)
+++ team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/ooCalls.c Fri Sep 30 10:37:55 2011
@@ -63,6 +63,7 @@
    } 
    memset(call, 0, sizeof(OOH323CallData));
    ast_cond_init(&call->gkWait, NULL);
+   ast_mutex_init(&call->GkLock);
    ast_mutex_init(&call->Lock);
    call->pctxt = pctxt;
    call->msgctxt = msgctxt;

Modified: team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/ooCalls.h
URL: http://svnview.digium.com/svn/asterisk/team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/ooCalls.h?view=diff&rev=338662&r1=338661&r2=338662
==============================================================================
--- team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/ooCalls.h (original)
+++ team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/ooCalls.h Fri Sep 30 10:37:55 2011
@@ -151,6 +151,7 @@
    OOCTXT               *msgctxt;
    pthread_t		callThread;
    ast_cond_t		gkWait;
+   ast_mutex_t		GkLock;
    ast_mutex_t		Lock;
    OOBOOL 		Monitor;
    OOBOOL		fsSent;

Modified: team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/ooGkClient.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/ooGkClient.c?view=diff&rev=338662&r1=338661&r2=338662
==============================================================================
--- team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/ooGkClient.c (original)
+++ team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/ooGkClient.c Fri Sep 30 10:37:55 2011
@@ -430,7 +430,7 @@
       if(iRet != OO_OK)
       {
          OOTRACEERR1("Error: Failed to handle received RAS message\n");
-         //pGkClient->state = GkClientFailed;
+         pGkClient->state = GkClientFailed;
       }
       memReset(pctxt);
    }
@@ -1920,6 +1920,8 @@
    OOTimer *pTimer = NULL;
    char ip[20];
 
+   ast_mutex_lock(&pGkClient->Lock);
+
    /* Search call in pending calls list */
    for(x=0 ; x<pGkClient->callsPendingList.count; x++)
    {
@@ -1930,6 +1932,9 @@
          OOTRACEDBGC3("Found Pending call(%s, %s)\n", 
                       pCallAdmInfo->call->callType, 
                       pCallAdmInfo->call->callToken);
+
+         ast_mutex_lock(&pCallAdmInfo->call->GkLock);
+
          /* Populate Remote IP */
          if(pAdmissionConfirm->destCallSignalAddress.t != 
                                       T_H225TransportAddress_ipAddress)
@@ -1938,6 +1943,9 @@
                         "Gatekeeper is not an IPv4 address\n");
             OOTRACEINFO1("Ignoring ACF, will wait for timeout and retransmit "
                          "ARQ\n");
+            ast_mutex_unlock(&pCallAdmInfo->call->GkLock);
+            ast_mutex_unlock(&pGkClient->Lock);
+            ast_cond_signal(&pCallAdmInfo->call->gkWait);
             return OO_FAILED;
          }
          ipAddress = pAdmissionConfirm->destCallSignalAddress.u.ipAddress;
@@ -1996,15 +2004,15 @@
                        pCallAdmInfo->call->callToken);
 
 	 pCallAdmInfo->call->callState = OO_CALL_CONNECTING;
-         /* ooH323CallAdmitted( pCallAdmInfo->call); */
 
          dListRemove(&pGkClient->callsPendingList, pNode);
          dListAppend(&pGkClient->ctxt, &pGkClient->callsAdmittedList, 
                                                         pNode->data);
          memFreePtr(&pGkClient->ctxt, pNode);
+         ast_mutex_unlock(&pCallAdmInfo->call->GkLock);
+	 ast_mutex_unlock(&pGkClient->Lock);
 	 ast_cond_signal(&pCallAdmInfo->call->gkWait);
          return OO_OK;
-         break;
       }
       else
       {
@@ -2013,6 +2021,7 @@
    }
    OOTRACEERR1("Error: Failed to process ACF as there is no corresponding "
                "pending call\n");
+   ast_mutex_unlock(&pGkClient->Lock);
    return OO_OK;
 }
 
@@ -2025,6 +2034,8 @@
    DListNode *pNode=NULL, *pNode1=NULL;
    OOH323CallData *call=NULL;
    OOTimer *pTimer = NULL;
+
+   ast_mutex_lock(&pGkClient->Lock);
 
    /* Search call in pending calls list */
    for(x=0 ; x<pGkClient->callsPendingList.count; x++)
@@ -2042,6 +2053,7 @@
       OOTRACEWARN2("Received admission reject with request number %d can not"
                    " be matched with any pending call.\n", 
                    pAdmissionReject->requestSeqNum);
+      ast_mutex_unlock(&pGkClient->Lock);
       return OO_OK;
    }
    else{
@@ -2050,6 +2062,7 @@
       memFreePtr(&pGkClient->ctxt, pCallAdmInfo);
       memFreePtr(&pGkClient->ctxt, pNode);
    }
+   ast_mutex_lock(&pCallAdmInfo->call->GkLock);
 
    /* Delete ARQ timer */
    for(y=0; y<pGkClient->timerList.count; y++)
@@ -2114,6 +2127,8 @@
          break;
    }
 
+   ast_mutex_unlock(&pCallAdmInfo->call->GkLock);
+   ast_mutex_unlock(&pGkClient->Lock);
    ast_cond_signal(&pCallAdmInfo->call->gkWait);
    return OO_OK;   
 }

Modified: team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/oochannels.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/oochannels.c?view=diff&rev=338662&r1=338661&r2=338662
==============================================================================
--- team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/oochannels.c (original)
+++ team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/oochannels.c Fri Sep 30 10:37:55 2011
@@ -949,6 +949,7 @@
    ast_mutex_lock(&call->Lock);
    ast_mutex_unlock(&call->Lock);
    ast_mutex_destroy(&call->Lock);
+   ast_mutex_destroy(&call->GkLock);
    ast_cond_destroy(&call->gkWait);
    pctxt = call->pctxt;
    freeContext(pctxt);

Modified: team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/ooh323.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/ooh323.c?view=diff&rev=338662&r1=338661&r2=338662
==============================================================================
--- team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/ooh323.c (original)
+++ team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/ooh323.c Fri Sep 30 10:37:55 2011
@@ -1628,12 +1628,15 @@
       case Q931SetupMsg: /* SETUP message is received */
          OOTRACEINFO3("Received SETUP message (%s, %s)\n", call->callType,
                        call->callToken);
-         ooOnReceivedSetup(call, q931Msg);
-
+         ret = ooOnReceivedSetup(call, q931Msg);
+         if (ret != OO_OK) {
+           call->callState = OO_CALL_CLEAR;
+         } else {
+           
          /* H225 message callback */
-         if(gH323ep.h225Callbacks.onReceivedSetup)
-            ret = gH323ep.h225Callbacks.onReceivedSetup(call, q931Msg);
-
+            if(gH323ep.h225Callbacks.onReceivedSetup)
+               ret = gH323ep.h225Callbacks.onReceivedSetup(call, q931Msg);
+         }
          /* Free up the mem used by the received message, as it's processing 
             is done. 
          */
@@ -1651,23 +1654,24 @@
             if(gH323ep.gkClient->state == GkClientRegistered)
             {
                call->callState = OO_CALL_WAITING_ADMISSION;
-	       ast_mutex_lock(&call->Lock);
                ret = ooGkClientSendAdmissionRequest(gH323ep.gkClient, call, 
                                                     FALSE);
-				tv = ast_tvnow();
+		tv = ast_tvnow();
                 ts.tv_sec = tv.tv_sec + 24;
-				ts.tv_nsec = tv.tv_usec * 1000;
-                ast_cond_timedwait(&call->gkWait, &call->Lock, &ts);
+		ts.tv_nsec = tv.tv_usec * 1000;
+	        ast_mutex_lock(&call->GkLock);
+		if (call->callState == OO_CALL_WAITING_ADMISSION)
+                   ast_cond_timedwait(&call->gkWait, &call->GkLock, &ts);
                 if (call->callState == OO_CALL_WAITING_ADMISSION)
 			call->callState = OO_CALL_CLEAR;
-                ast_mutex_unlock(&call->Lock);
+                ast_mutex_unlock(&call->GkLock);
 
             }
             else {
-               /* TODO: Should send Release complete with reject reason */
                OOTRACEERR1("Error:Ignoring incoming call as not yet"
                            "registered with Gk\n");
 	       call->callState = OO_CALL_CLEAR;
+               call->callEndReason = OO_REASON_GK_UNREACHABLE;
             }
          }
 	 if (call->callState < OO_CALL_CLEAR) {

Modified: team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/ooq931.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/ooq931.c?view=diff&rev=338662&r1=338661&r2=338662
==============================================================================
--- team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/ooq931.c (original)
+++ team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/ooq931.c Fri Sep 30 10:37:55 2011
@@ -2204,19 +2204,24 @@
 
    if(gH323ep.gkClient && !OO_TESTFLAG(call->flags, OO_M_DISABLEGK))
    {
-     /* No need to check registration status here as it is already checked for
-        MakeCall command */
-
-     call->callState = OO_CALL_WAITING_ADMISSION;
-     ast_mutex_lock(&call->Lock);
-     ret = ooGkClientSendAdmissionRequest(gH323ep.gkClient, call, FALSE);
-	 tv = ast_tvnow();
-     ts.tv_sec = tv.tv_sec + 24;
-	 ts.tv_nsec = tv.tv_usec * 1000;
-     ast_cond_timedwait(&call->gkWait, &call->Lock, &ts);
-     if (call->callState == OO_CALL_WAITING_ADMISSION)
+     if(gH323ep.gkClient->state == GkClientRegistered) {
+       call->callState = OO_CALL_WAITING_ADMISSION;
+       ret = ooGkClientSendAdmissionRequest(gH323ep.gkClient, call, FALSE);
+       tv = ast_tvnow();
+       ts.tv_sec = tv.tv_sec + 24;
+       ts.tv_nsec = tv.tv_usec * 1000;
+       ast_mutex_lock(&call->GkLock);
+       if (call->callState == OO_CALL_WAITING_ADMISSION)
+          ast_cond_timedwait(&call->gkWait, &call->GkLock, &ts);
+       if (call->callState == OO_CALL_WAITING_ADMISSION)
 		call->callState = OO_CALL_CLEAR;
-     ast_mutex_unlock(&call->Lock);
+       ast_mutex_unlock(&call->GkLock);
+     } else {
+       OOTRACEERR1("Error:Aborting outgoing call as not yet"
+                   "registered with Gk\n");
+       call->callState = OO_CALL_CLEAR;
+       call->callEndReason = OO_REASON_GK_UNREACHABLE;
+     }
 
    }
 

Modified: team/oej/rana-dtmf-duration-1.8/agi/agi.xml
URL: http://svnview.digium.com/svn/asterisk/team/oej/rana-dtmf-duration-1.8/agi/agi.xml?view=diff&rev=338662&r1=338661&r2=338662
==============================================================================
--- team/oej/rana-dtmf-duration-1.8/agi/agi.xml (original)
+++ team/oej/rana-dtmf-duration-1.8/agi/agi.xml Fri Sep 30 10:37:55 2011
@@ -1,14 +1,18 @@
 <category name="MENUSELECT_AGIS" displayname="AGI Samples" positive_output="yes">
   <member name="agi-test.agi">
 	<defaultenabled>no</defaultenabled>
+	<support_level>extended</support_level>
   </member>
   <member name="eagi-test">
 	<defaultenabled>no</defaultenabled>
+	<support_level>extended</support_level>
   </member>
   <member name="eagi-sphinx-test">
 	<defaultenabled>no</defaultenabled>
+	<support_level>extended</support_level>
   </member>
   <member name="jukebox.agi">
 	<defaultenabled>no</defaultenabled>
+	<support_level>extended</support_level>
   </member>
 </category>

Modified: team/oej/rana-dtmf-duration-1.8/apps/app_dial.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/rana-dtmf-duration-1.8/apps/app_dial.c?view=diff&rev=338662&r1=338661&r2=338662
==============================================================================
--- team/oej/rana-dtmf-duration-1.8/apps/app_dial.c (original)
+++ team/oej/rana-dtmf-duration-1.8/apps/app_dial.c Fri Sep 30 10:37:55 2011
@@ -120,6 +120,11 @@
 					a call to be answered. Exit to that extension if it exists in the
 					current context, or the context defined in the <variable>EXITCONTEXT</variable> variable,
 					if it exists.</para>
+					<note>
+						<para>Many SIP and ISDN phones cannot send DTMF digits until the call is
+						connected.  If you wish to use this option with these phones, you
+						can use the <literal>Answer</literal> application before dialing.</para>
+					</note>
 				</option>
 				<option name="D" argsep=":">
 					<argument name="called" />
@@ -170,10 +175,18 @@
 					</note>
 				</option>
 				<option name="h">
-					<para>Allow the called party to hang up by sending the <literal>*</literal> DTMF digit.</para>
+					<para>Allow the called party to hang up by sending the DTMF sequence
+					defined for disconnect in <filename>features.conf</filename>.</para>
 				</option>
 				<option name="H">
-					<para>Allow the calling party to hang up by hitting the <literal>*</literal> DTMF digit.</para>
+					<para>Allow the calling party to hang up by sending the DTMF sequence
+					defined for disconnect in <filename>features.conf</filename>.</para>
+					<note>
+						<para>Many SIP and ISDN phones cannot send DTMF digits until the call is
+						connected.  If you wish to allow DTMF disconnect before the dialed
+						party answers with these phones, you can use the <literal>Answer</literal>
+						application before dialing.</para>
+					</note>
 				</option>
 				<option name="i">
 					<para>Asterisk will ignore any forwarding requests it may receive on this dial attempt.</para>
@@ -1351,7 +1364,7 @@
 				case AST_FRAME_VOICE:
 				case AST_FRAME_IMAGE:
 				case AST_FRAME_TEXT:
-					if (ast_write(in, f)) {
+					if (!ast_test_flag64(outgoing, OPT_RINGBACK | OPT_MUSICBACK) && ast_write(in, f)) {
 						ast_log(LOG_WARNING, "Unable to write frametype: %d\n",
 							f->frametype);
 					}
@@ -1759,7 +1772,7 @@
 			*/
 			silencethreshold = ast_dsp_get_threshold_from_settings(THRESHOLD_SILENCE);
 			ast_answer(chan);
-			res = ast_play_and_record(chan, "priv-recordintro", pa->privintro, 4, "sln", &duration, silencethreshold, 2000, 0);  /* NOTE: I've reduced the total time to 4 sec */
+			res = ast_play_and_record(chan, "priv-recordintro", pa->privintro, 4, "sln", &duration, NULL, silencethreshold, 2000, 0);  /* NOTE: I've reduced the total time to 4 sec */
 									/* don't think we'll need a lock removed, we took care of
 									   conflicts by naming the pa.privintro file */
 			if (res == -1) {
@@ -2070,10 +2083,6 @@
 		res = -1; /* reset default */
 	}
 
-	if (ast_test_flag64(&opts, OPT_DTMF_EXIT) || ast_test_flag64(&opts, OPT_CALLER_HANGUP)) {
-		__ast_answer(chan, 0, 0);
-	}
-
 	if (continue_exec)
 		*continue_exec = 0;
 
@@ -2316,7 +2325,9 @@
 			ast_copy_string(tc->exten, chan->exten, sizeof(tc->exten));
 
 		ast_channel_unlock(tc);
+		ast_channel_unlock(chan);
 		res = ast_call(tc, numsubst, 0); /* Place the call, but don't wait on the answer */
+		ast_channel_lock(chan);
 
 		/* Save the info in cdr's that we called them */
 		if (chan->cdr)
@@ -2423,14 +2434,6 @@
 		} else { /* Nobody answered, next please? */
 			res = 0;
 		}
-
-		/* SIP, in particular, sends back this error code to indicate an
-		 * overlap dialled number needs more digits. */
-		if (chan->hangupcause == AST_CAUSE_INVALID_NUMBER_FORMAT) {
-			res = AST_PBX_INCOMPLETE;
-		}
-
-		/* almost done, although the 'else' block is 400 lines */
 	} else {
 		const char *number;
 

Modified: team/oej/rana-dtmf-duration-1.8/apps/app_directed_pickup.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/rana-dtmf-duration-1.8/apps/app_directed_pickup.c?view=diff&rev=338662&r1=338661&r2=338662
==============================================================================
--- team/oej/rana-dtmf-duration-1.8/apps/app_directed_pickup.c (original)
+++ team/oej/rana-dtmf-duration-1.8/apps/app_directed_pickup.c Fri Sep 30 10:37:55 2011
@@ -101,7 +101,6 @@
 
 static const char app[] = "Pickup";
 static const char app2[] = "PickupChan";
-/*! \todo This application should return a result code, like PICKUPRESULT */
 
 struct pickup_by_name_args {
 	const char *name;

Modified: team/oej/rana-dtmf-duration-1.8/apps/app_echo.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/rana-dtmf-duration-1.8/apps/app_echo.c?view=diff&rev=338662&r1=338661&r2=338662
==============================================================================
--- team/oej/rana-dtmf-duration-1.8/apps/app_echo.c (original)
+++ team/oej/rana-dtmf-duration-1.8/apps/app_echo.c Fri Sep 30 10:37:55 2011
@@ -46,6 +46,8 @@
 		<description>
 			<para>Echos back any audio, video or DTMF frames read from the calling 
 			channel back to itself. Note: If '#' detected application exits</para>
+			<para>This application does not automatically answer and should be
+			preceeded by an application such as Answer() or Progress().</para>
 		</description>
 	</application>
  ***/

Modified: team/oej/rana-dtmf-duration-1.8/apps/app_followme.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/rana-dtmf-duration-1.8/apps/app_followme.c?view=diff&rev=338662&r1=338661&r2=338662
==============================================================================
--- team/oej/rana-dtmf-duration-1.8/apps/app_followme.c (original)
+++ team/oej/rana-dtmf-duration-1.8/apps/app_followme.c Fri Sep 30 10:37:55 2011
@@ -1102,7 +1102,7 @@
 	duration = 5;
 
 	if (ast_test_flag(&targs.followmeflags, FOLLOWMEFLAG_RECORDNAME)) 
-		if (ast_play_and_record(chan, "vm-rec-name", namerecloc, 5, "sln", &duration, ast_dsp_get_threshold_from_settings(THRESHOLD_SILENCE), 0, NULL) < 0)
+		if (ast_play_and_record(chan, "vm-rec-name", namerecloc, 5, "sln", &duration, NULL, ast_dsp_get_threshold_from_settings(THRESHOLD_SILENCE), 0, NULL) < 0)
 			goto outrun;
 
 	if (!ast_fileexists(namerecloc, NULL, chan->language))

Modified: team/oej/rana-dtmf-duration-1.8/apps/app_macro.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/rana-dtmf-duration-1.8/apps/app_macro.c?view=diff&rev=338662&r1=338661&r2=338662
==============================================================================
--- team/oej/rana-dtmf-duration-1.8/apps/app_macro.c (original)
+++ team/oej/rana-dtmf-duration-1.8/apps/app_macro.c Fri Sep 30 10:37:55 2011
@@ -26,7 +26,7 @@
  */
 
 /*** MODULEINFO
-	<support_level>deprecated</support_level>
+	<support_level>core</support_level>
 	<replacement>app_stack (GoSub)</replacement>
  ***/
 

Modified: team/oej/rana-dtmf-duration-1.8/apps/app_meetme.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/rana-dtmf-duration-1.8/apps/app_meetme.c?view=diff&rev=338662&r1=338661&r2=338662
==============================================================================
--- team/oej/rana-dtmf-duration-1.8/apps/app_meetme.c (original)
+++ team/oej/rana-dtmf-duration-1.8/apps/app_meetme.c Fri Sep 30 10:37:55 2011
@@ -31,8 +31,7 @@
 
 /*** MODULEINFO
 	<depend>dahdi</depend>
-	<support_level>deprecated</support_level>
-	<replacement>app_confbridge</replacement>
+	<support_level>core</support_level>
  ***/
 
 #include "asterisk.h"
@@ -2458,7 +2457,7 @@
 			 "%s/meetme-username-%s-%d", destdir,
 			 conf->confno, user->user_no);
 		if (ast_test_flag64(confflags, CONFFLAG_INTROUSERNOREVIEW))
-			res = ast_play_and_record(chan, "vm-rec-name", user->namerecloc, 10, "sln", &duration, ast_dsp_get_threshold_from_settings(THRESHOLD_SILENCE), 0, NULL);
+			res = ast_play_and_record(chan, "vm-rec-name", user->namerecloc, 10, "sln", &duration, NULL, ast_dsp_get_threshold_from_settings(THRESHOLD_SILENCE), 0, NULL);
 		else
 			res = ast_record_review(chan, "vm-rec-name", user->namerecloc, 10, "sln", &duration, NULL);
 		if (res == -1)

Modified: team/oej/rana-dtmf-duration-1.8/apps/app_minivm.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/rana-dtmf-duration-1.8/apps/app_minivm.c?view=diff&rev=338662&r1=338661&r2=338662
==============================================================================
--- team/oej/rana-dtmf-duration-1.8/apps/app_minivm.c (original)
+++ team/oej/rana-dtmf-duration-1.8/apps/app_minivm.c Fri Sep 30 10:37:55 2011
@@ -1313,6 +1313,9 @@
 	}
 	/* Allocate channel used for chanvar substitution */
 	ast = ast_dummy_channel_alloc();
+	if (!ast) {
+		return -1;
+	}
 
 	snprintf(dur, sizeof(dur), "%d:%02d", duration / 60, duration % 60);
 
@@ -1473,8 +1476,7 @@
 	ast_safe_system(tmp2);
 	ast_debug(1, "Sent message to %s with command '%s' - %s\n", vmu->email, global_mailcmd, template->attachment ? "(media attachment)" : "");
 	ast_debug(3, "Actual command used: %s\n", tmp2);
-	if (ast)
-		ast = ast_channel_release(ast);
+	ast = ast_channel_unref(ast);
 	ast_free(str1);
 	ast_free(str2);
 	return 0;
@@ -1603,7 +1605,7 @@
 /*!\internal
  * \brief Record voicemail message & let caller review or re-record it, or set options if applicable */
 static int play_record_review(struct ast_channel *chan, char *playfile, char *recordfile, int maxtime, char *fmt,
-			      int outsidecaller, struct minivm_account *vmu, int *duration, const char *unlockdir,
+			      int outsidecaller, struct minivm_account *vmu, int *duration, int *sound_duration, const char *unlockdir,
 			      signed char record_gain)
 {
 	int cmd = 0;
@@ -1653,7 +1655,7 @@
 				ast_channel_setoption(chan, AST_OPTION_RXGAIN, &record_gain, sizeof(record_gain), 0);
 			if (ast_test_flag(vmu, MVM_OPERATOR))
 				canceldtmf = "0";
-			cmd = ast_play_and_record_full(chan, playfile, recordfile, maxtime, fmt, duration, global_silencethreshold, global_maxsilence, unlockdir, acceptdtmf, canceldtmf);
+			cmd = ast_play_and_record_full(chan, playfile, recordfile, maxtime, fmt, duration, sound_duration, global_silencethreshold, global_maxsilence, unlockdir, acceptdtmf, canceldtmf);
 			if (record_gain)
 				ast_channel_setoption(chan, AST_OPTION_RXGAIN, &zero_gain, sizeof(zero_gain), 0);
 			if (cmd == -1) /* User has hung up, no options to give */
@@ -1842,6 +1844,7 @@
 	FILE *txt;
 	int res = 0, txtdes;
 	int duration = 0;
+	int sound_duration = 0;
 	char date[256];
 	char tmpdir[PATH_MAX];
 	char ext_context[256] = "";
@@ -1917,7 +1920,7 @@
 	/* Store information */
 	ast_debug(2, "Open file for metadata: %s\n", tmptxtfile);
 
-	res = play_record_review(chan, NULL, tmptxtfile, global_vmmaxmessage, fmt, 1, vmu, &duration, NULL, options->record_gain);
+	res = play_record_review(chan, NULL, tmptxtfile, global_vmmaxmessage, fmt, 1, vmu, &duration, &sound_duration, NULL, options->record_gain);
 
 	txt = fdopen(txtdes, "w+");
 	if (!txt) {
@@ -1958,8 +1961,8 @@
 			ast_mutex_unlock(&minivmloglock);
 		}
 
-		if (duration < global_vmminmessage) {
-			ast_verb(3, "Recording was %d seconds long but needs to be at least %d - abandoning\n", duration, global_vmminmessage);

[... 7872 lines stripped ...]



More information about the asterisk-commits mailing list