[asterisk-commits] oej: branch oej/pinedanish-copybridgeflags-1.8 r342763 - in /team/oej/pinedan...

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Mon Oct 31 08:40:34 CDT 2011


Author: oej
Date: Mon Oct 31 08:40:19 2011
New Revision: 342763

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

Modified:
    team/oej/pinedanish-copybridgeflags-1.8/   (props changed)
    team/oej/pinedanish-copybridgeflags-1.8/Makefile.moddir_rules
    team/oej/pinedanish-copybridgeflags-1.8/Makefile.rules
    team/oej/pinedanish-copybridgeflags-1.8/UPGRADE.txt
    team/oej/pinedanish-copybridgeflags-1.8/addons/chan_ooh323.c
    team/oej/pinedanish-copybridgeflags-1.8/addons/ooh323c/src/memheap.c
    team/oej/pinedanish-copybridgeflags-1.8/agi/agi.xml
    team/oej/pinedanish-copybridgeflags-1.8/apps/app_celgenuserevent.c
    team/oej/pinedanish-copybridgeflags-1.8/apps/app_dial.c
    team/oej/pinedanish-copybridgeflags-1.8/apps/app_directed_pickup.c
    team/oej/pinedanish-copybridgeflags-1.8/apps/app_echo.c
    team/oej/pinedanish-copybridgeflags-1.8/apps/app_fax.c
    team/oej/pinedanish-copybridgeflags-1.8/apps/app_followme.c
    team/oej/pinedanish-copybridgeflags-1.8/apps/app_macro.c
    team/oej/pinedanish-copybridgeflags-1.8/apps/app_meetme.c
    team/oej/pinedanish-copybridgeflags-1.8/apps/app_minivm.c
    team/oej/pinedanish-copybridgeflags-1.8/apps/app_mixmonitor.c
    team/oej/pinedanish-copybridgeflags-1.8/apps/app_morsecode.c
    team/oej/pinedanish-copybridgeflags-1.8/apps/app_mp3.c
    team/oej/pinedanish-copybridgeflags-1.8/apps/app_queue.c
    team/oej/pinedanish-copybridgeflags-1.8/apps/app_saycounted.c
    team/oej/pinedanish-copybridgeflags-1.8/apps/app_system.c
    team/oej/pinedanish-copybridgeflags-1.8/apps/app_url.c
    team/oej/pinedanish-copybridgeflags-1.8/apps/app_voicemail.c
    team/oej/pinedanish-copybridgeflags-1.8/autoconf/ast_ext_lib.m4
    team/oej/pinedanish-copybridgeflags-1.8/bridges/bridge_multiplexed.c
    team/oej/pinedanish-copybridgeflags-1.8/build_tools/cflags-devmode.xml
    team/oej/pinedanish-copybridgeflags-1.8/build_tools/cflags.xml
    team/oej/pinedanish-copybridgeflags-1.8/build_tools/embed_modules.xml
    team/oej/pinedanish-copybridgeflags-1.8/build_tools/prep_tarball
    team/oej/pinedanish-copybridgeflags-1.8/cdr/cdr_custom.c
    team/oej/pinedanish-copybridgeflags-1.8/cdr/cdr_manager.c
    team/oej/pinedanish-copybridgeflags-1.8/cdr/cdr_sqlite3_custom.c
    team/oej/pinedanish-copybridgeflags-1.8/cel/cel_custom.c
    team/oej/pinedanish-copybridgeflags-1.8/cel/cel_sqlite3_custom.c
    team/oej/pinedanish-copybridgeflags-1.8/channels/chan_agent.c
    team/oej/pinedanish-copybridgeflags-1.8/channels/chan_dahdi.c
    team/oej/pinedanish-copybridgeflags-1.8/channels/chan_gtalk.c
    team/oej/pinedanish-copybridgeflags-1.8/channels/chan_h323.c
    team/oej/pinedanish-copybridgeflags-1.8/channels/chan_iax2.c
    team/oej/pinedanish-copybridgeflags-1.8/channels/chan_mgcp.c
    team/oej/pinedanish-copybridgeflags-1.8/channels/chan_misdn.c
    team/oej/pinedanish-copybridgeflags-1.8/channels/chan_sip.c
    team/oej/pinedanish-copybridgeflags-1.8/channels/chan_unistim.c
    team/oej/pinedanish-copybridgeflags-1.8/channels/chan_usbradio.c
    team/oej/pinedanish-copybridgeflags-1.8/channels/sig_analog.c
    team/oej/pinedanish-copybridgeflags-1.8/channels/sig_pri.c
    team/oej/pinedanish-copybridgeflags-1.8/channels/sig_ss7.c
    team/oej/pinedanish-copybridgeflags-1.8/channels/sig_ss7.h
    team/oej/pinedanish-copybridgeflags-1.8/channels/sip/include/dialog.h
    team/oej/pinedanish-copybridgeflags-1.8/channels/sip/include/sip.h
    team/oej/pinedanish-copybridgeflags-1.8/codecs/codec_dahdi.c
    team/oej/pinedanish-copybridgeflags-1.8/codecs/gsm/Makefile
    team/oej/pinedanish-copybridgeflags-1.8/configs/queues.conf.sample
    team/oej/pinedanish-copybridgeflags-1.8/configs/res_pktccops.conf.sample
    team/oej/pinedanish-copybridgeflags-1.8/configure.ac
    team/oej/pinedanish-copybridgeflags-1.8/contrib/init.d/rc.archlinux.asterisk
    team/oej/pinedanish-copybridgeflags-1.8/contrib/init.d/rc.redhat.asterisk
    team/oej/pinedanish-copybridgeflags-1.8/contrib/scripts/get_ilbc_source.sh
    team/oej/pinedanish-copybridgeflags-1.8/doc/appdocsxml.dtd
    team/oej/pinedanish-copybridgeflags-1.8/funcs/func_callerid.c
    team/oej/pinedanish-copybridgeflags-1.8/funcs/func_curl.c
    team/oej/pinedanish-copybridgeflags-1.8/funcs/func_frame_trace.c
    team/oej/pinedanish-copybridgeflags-1.8/funcs/func_odbc.c
    team/oej/pinedanish-copybridgeflags-1.8/funcs/func_realtime.c
    team/oej/pinedanish-copybridgeflags-1.8/include/asterisk/app.h
    team/oej/pinedanish-copybridgeflags-1.8/include/asterisk/autoconfig.h.in
    team/oej/pinedanish-copybridgeflags-1.8/include/asterisk/cel.h
    team/oej/pinedanish-copybridgeflags-1.8/include/asterisk/channel.h
    team/oej/pinedanish-copybridgeflags-1.8/include/asterisk/config.h
    team/oej/pinedanish-copybridgeflags-1.8/include/asterisk/event.h
    team/oej/pinedanish-copybridgeflags-1.8/include/asterisk/features.h
    team/oej/pinedanish-copybridgeflags-1.8/include/asterisk/frame.h
    team/oej/pinedanish-copybridgeflags-1.8/include/asterisk/linkedlists.h
    team/oej/pinedanish-copybridgeflags-1.8/include/asterisk/logger.h
    team/oej/pinedanish-copybridgeflags-1.8/include/asterisk/manager.h
    team/oej/pinedanish-copybridgeflags-1.8/include/asterisk/module.h
    team/oej/pinedanish-copybridgeflags-1.8/include/asterisk/optional_api.h
    team/oej/pinedanish-copybridgeflags-1.8/include/asterisk/sha1.h
    team/oej/pinedanish-copybridgeflags-1.8/include/asterisk/strings.h
    team/oej/pinedanish-copybridgeflags-1.8/include/asterisk/xmldoc.h
    team/oej/pinedanish-copybridgeflags-1.8/main/Makefile
    team/oej/pinedanish-copybridgeflags-1.8/main/app.c
    team/oej/pinedanish-copybridgeflags-1.8/main/asterisk.c
    team/oej/pinedanish-copybridgeflags-1.8/main/astobj2.c
    team/oej/pinedanish-copybridgeflags-1.8/main/cel.c
    team/oej/pinedanish-copybridgeflags-1.8/main/channel.c
    team/oej/pinedanish-copybridgeflags-1.8/main/config.c
    team/oej/pinedanish-copybridgeflags-1.8/main/event.c
    team/oej/pinedanish-copybridgeflags-1.8/main/features.c
    team/oej/pinedanish-copybridgeflags-1.8/main/file.c
    team/oej/pinedanish-copybridgeflags-1.8/main/loader.c
    team/oej/pinedanish-copybridgeflags-1.8/main/logger.c
    team/oej/pinedanish-copybridgeflags-1.8/main/manager.c
    team/oej/pinedanish-copybridgeflags-1.8/main/pbx.c
    team/oej/pinedanish-copybridgeflags-1.8/main/rtp_engine.c
    team/oej/pinedanish-copybridgeflags-1.8/main/say.c
    team/oej/pinedanish-copybridgeflags-1.8/main/sha1.c
    team/oej/pinedanish-copybridgeflags-1.8/main/udptl.c
    team/oej/pinedanish-copybridgeflags-1.8/main/xmldoc.c
    team/oej/pinedanish-copybridgeflags-1.8/pbx/pbx_lua.c
    team/oej/pinedanish-copybridgeflags-1.8/pbx/pbx_realtime.c
    team/oej/pinedanish-copybridgeflags-1.8/pbx/pbx_spool.c
    team/oej/pinedanish-copybridgeflags-1.8/res/ais/evt.c
    team/oej/pinedanish-copybridgeflags-1.8/res/res_agi.c
    team/oej/pinedanish-copybridgeflags-1.8/res/res_config_sqlite.c
    team/oej/pinedanish-copybridgeflags-1.8/res/res_curl.c
    team/oej/pinedanish-copybridgeflags-1.8/res/res_fax.c
    team/oej/pinedanish-copybridgeflags-1.8/res/res_jabber.c
    team/oej/pinedanish-copybridgeflags-1.8/res/res_musiconhold.c
    team/oej/pinedanish-copybridgeflags-1.8/res/res_rtp_asterisk.c
    team/oej/pinedanish-copybridgeflags-1.8/res/res_rtp_multicast.c
    team/oej/pinedanish-copybridgeflags-1.8/res/res_srtp.c
    team/oej/pinedanish-copybridgeflags-1.8/tests/test_amihooks.c
    team/oej/pinedanish-copybridgeflags-1.8/tests/test_dlinklists.c
    team/oej/pinedanish-copybridgeflags-1.8/tests/test_gosub.c
    team/oej/pinedanish-copybridgeflags-1.8/tests/test_linkedlists.c
    team/oej/pinedanish-copybridgeflags-1.8/tests/test_locale.c
    team/oej/pinedanish-copybridgeflags-1.8/tests/test_logger.c
    team/oej/pinedanish-copybridgeflags-1.8/tests/test_pbx.c
    team/oej/pinedanish-copybridgeflags-1.8/tests/test_security_events.c
    team/oej/pinedanish-copybridgeflags-1.8/utils/utils.xml

Propchange: team/oej/pinedanish-copybridgeflags-1.8/
            ('svnmerge-integrated' removed)

Modified: team/oej/pinedanish-copybridgeflags-1.8/Makefile.moddir_rules
URL: http://svnview.digium.com/svn/asterisk/team/oej/pinedanish-copybridgeflags-1.8/Makefile.moddir_rules?view=diff&rev=342763&r1=342762&r2=342763
==============================================================================
--- team/oej/pinedanish-copybridgeflags-1.8/Makefile.moddir_rules (original)
+++ team/oej/pinedanish-copybridgeflags-1.8/Makefile.moddir_rules Mon Oct 31 08:40:19 2011
@@ -1,6 +1,6 @@
 #
 # Asterisk -- A telephony toolkit for Linux.
-# 
+#
 # Makefile rules for subdirectories containing modules
 #
 # Copyright (C) 2006, Digium, Inc.
@@ -46,7 +46,7 @@
 C_MODS:=$(filter-out $(MENUSELECT_$(MENUSELECT_CATEGORY)),$(ALL_C_MODS))
 CC_MODS:=$(filter-out $(MENUSELECT_$(MENUSELECT_CATEGORY)),$(ALL_CC_MODS))
 
-ifneq ($(findstring $(MENUSELECT_CATEGORY),$(MENUSELECT_EMBED)),)
+ifneq ($(findstring EMBED_$(MENUSELECT_CATEGORY),$(MENUSELECT_EMBED)),)
     EMBEDDED_MODS:=$(C_MODS) $(CC_MODS)
 else
     LOADABLE_MODS:=$(C_MODS) $(CC_MODS)

Modified: team/oej/pinedanish-copybridgeflags-1.8/Makefile.rules
URL: http://svnview.digium.com/svn/asterisk/team/oej/pinedanish-copybridgeflags-1.8/Makefile.rules?view=diff&rev=342763&r1=342762&r2=342763
==============================================================================
--- team/oej/pinedanish-copybridgeflags-1.8/Makefile.rules (original)
+++ team/oej/pinedanish-copybridgeflags-1.8/Makefile.rules Mon Oct 31 08:40:19 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/pinedanish-copybridgeflags-1.8/UPGRADE.txt
URL: http://svnview.digium.com/svn/asterisk/team/oej/pinedanish-copybridgeflags-1.8/UPGRADE.txt?view=diff&rev=342763&r1=342762&r2=342763
==============================================================================
--- team/oej/pinedanish-copybridgeflags-1.8/UPGRADE.txt (original)
+++ team/oej/pinedanish-copybridgeflags-1.8/UPGRADE.txt Mon Oct 31 08:40:19 2011
@@ -147,6 +147,18 @@
   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:
 
 * SIP no longer sends the 183 progress message for early media by

Modified: team/oej/pinedanish-copybridgeflags-1.8/addons/chan_ooh323.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/pinedanish-copybridgeflags-1.8/addons/chan_ooh323.c?view=diff&rev=342763&r1=342762&r2=342763
==============================================================================
--- team/oej/pinedanish-copybridgeflags-1.8/addons/chan_ooh323.c (original)
+++ team/oej/pinedanish-copybridgeflags-1.8/addons/chan_ooh323.c Mon Oct 31 08:40:19 2011
@@ -353,10 +353,10 @@
 
 	/* Don't hold a h323 pvt lock while we allocate a channel */
 	ast_mutex_unlock(&i->lock);
+   	ast_mutex_lock(&ooh323c_cn_lock);
    	ch = ast_channel_alloc(1, state, i->callerid_num, i->callerid_name, 
 				i->accountcode, i->exten, i->context, linkedid, i->amaflags,
 				"OOH323/%s-%ld", host, callnumber);
-   	ast_mutex_lock(&ooh323c_cn_lock);
    	callnumber++;
    	ast_mutex_unlock(&ooh323c_cn_lock);
    

Modified: team/oej/pinedanish-copybridgeflags-1.8/addons/ooh323c/src/memheap.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/pinedanish-copybridgeflags-1.8/addons/ooh323c/src/memheap.c?view=diff&rev=342763&r1=342762&r2=342763
==============================================================================
--- team/oej/pinedanish-copybridgeflags-1.8/addons/ooh323c/src/memheap.c (original)
+++ team/oej/pinedanish-copybridgeflags-1.8/addons/ooh323c/src/memheap.c Mon Oct 31 08:40:19 2011
@@ -1062,6 +1062,7 @@
 void memHeapRelease (void** ppvMemHeap)
 {
    OSMemHeap** ppMemHeap = (OSMemHeap**)ppvMemHeap;
+   OSMemHeap* pMemHeap = *ppMemHeap;
 
    if (ppMemHeap != 0 && *ppMemHeap != 0 && --(*ppMemHeap)->refCnt == 0) {
       OSMemLink* pMemLink, *pMemLink2;
@@ -1078,9 +1079,10 @@
          free (pMemLink2);
       }
 
-      if ((*ppMemHeap)->flags & RT_MH_FREEHEAPDESC)
+      if ((*ppMemHeap)->flags & RT_MH_FREEHEAPDESC) {
+         ast_mutex_destroy(&pMemHeap->pLock);
          free (*ppMemHeap);
-
+      }
       *ppMemHeap = 0;
    }
 }

Modified: team/oej/pinedanish-copybridgeflags-1.8/agi/agi.xml
URL: http://svnview.digium.com/svn/asterisk/team/oej/pinedanish-copybridgeflags-1.8/agi/agi.xml?view=diff&rev=342763&r1=342762&r2=342763
==============================================================================
--- team/oej/pinedanish-copybridgeflags-1.8/agi/agi.xml (original)
+++ team/oej/pinedanish-copybridgeflags-1.8/agi/agi.xml Mon Oct 31 08:40:19 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/pinedanish-copybridgeflags-1.8/apps/app_celgenuserevent.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/pinedanish-copybridgeflags-1.8/apps/app_celgenuserevent.c?view=diff&rev=342763&r1=342762&r2=342763
==============================================================================
--- team/oej/pinedanish-copybridgeflags-1.8/apps/app_celgenuserevent.c (original)
+++ team/oej/pinedanish-copybridgeflags-1.8/apps/app_celgenuserevent.c Mon Oct 31 08:40:19 2011
@@ -22,6 +22,10 @@
  *
  * \ingroup applications
  */
+
+/*** MODULEINFO
+	<support_level>core</support_level>
+ ***/
 
 #include "asterisk.h"
 

Modified: team/oej/pinedanish-copybridgeflags-1.8/apps/app_dial.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/pinedanish-copybridgeflags-1.8/apps/app_dial.c?view=diff&rev=342763&r1=342762&r2=342763
==============================================================================
--- team/oej/pinedanish-copybridgeflags-1.8/apps/app_dial.c (original)
+++ team/oej/pinedanish-copybridgeflags-1.8/apps/app_dial.c Mon Oct 31 08:40:19 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" />
@@ -147,12 +152,23 @@
 					<argument name="context" required="false" />
 					<argument name="exten" required="false" />
 					<argument name="priority" required="true" />
-					<para>When the caller hangs up, transfer the called party
-					to the specified destination and continue execution at that location.</para>
+					<para>When the caller hangs up, transfer the <emphasis>called</emphasis> party
+					to the specified destination and <emphasis>start</emphasis> execution at that location.</para>
+					<note>
+						<para>Any channel variables you want the called channel to inherit from the caller channel must be
+						prefixed with one or two underbars ('_').</para>
+					</note>
 				</option>
 				<option name="F">
-					<para>Proceed with dialplan execution at the next priority in the current extension if the
-					source channel hangs up.</para>
+					<para>When the caller hangs up, transfer the <emphasis>called</emphasis> party to the next priority of the current extension
+					and <emphasis>start</emphasis> execution at that location.</para>
+					<note>
+						<para>Any channel variables you want the called channel to inherit from the caller channel must be
+						prefixed with one or two underbars ('_').</para>
+					</note>
+					<note>
+						<para>Using this option from a Macro() or GoSub() might not make sense as there would be no return points.</para>
+					</note>
 				</option>
 				<option name="g">
 					<para>Proceed with dialplan execution at the next priority in the current extension if the
@@ -170,10 +186,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 +1375,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 +1783,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 +2094,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 +2336,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)

Modified: team/oej/pinedanish-copybridgeflags-1.8/apps/app_directed_pickup.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/pinedanish-copybridgeflags-1.8/apps/app_directed_pickup.c?view=diff&rev=342763&r1=342762&r2=342763
==============================================================================
--- team/oej/pinedanish-copybridgeflags-1.8/apps/app_directed_pickup.c (original)
+++ team/oej/pinedanish-copybridgeflags-1.8/apps/app_directed_pickup.c Mon Oct 31 08:40:19 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/pinedanish-copybridgeflags-1.8/apps/app_echo.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/pinedanish-copybridgeflags-1.8/apps/app_echo.c?view=diff&rev=342763&r1=342762&r2=342763
==============================================================================
--- team/oej/pinedanish-copybridgeflags-1.8/apps/app_echo.c (original)
+++ team/oej/pinedanish-copybridgeflags-1.8/apps/app_echo.c Mon Oct 31 08:40:19 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/pinedanish-copybridgeflags-1.8/apps/app_fax.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/pinedanish-copybridgeflags-1.8/apps/app_fax.c?view=diff&rev=342763&r1=342762&r2=342763
==============================================================================
--- team/oej/pinedanish-copybridgeflags-1.8/apps/app_fax.c (original)
+++ team/oej/pinedanish-copybridgeflags-1.8/apps/app_fax.c Mon Oct 31 08:40:19 2011
@@ -46,7 +46,7 @@
 #include "asterisk/manager.h"
 
 /*** DOCUMENTATION
-	<application name="SendFAX" language="en_US">
+	<application name="SendFAX" language="en_US" module="app_fax">
 		<synopsis>
 			Send a Fax
 		</synopsis>
@@ -91,7 +91,7 @@
 			</variablelist>
 		</description>
 	</application>
-	<application name="ReceiveFAX" language="en_US">
+	<application name="ReceiveFAX" language="en_US" module="app_fax">
 		<synopsis>
 			Receive a Fax
 		</synopsis>

Modified: team/oej/pinedanish-copybridgeflags-1.8/apps/app_followme.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/pinedanish-copybridgeflags-1.8/apps/app_followme.c?view=diff&rev=342763&r1=342762&r2=342763
==============================================================================
--- team/oej/pinedanish-copybridgeflags-1.8/apps/app_followme.c (original)
+++ team/oej/pinedanish-copybridgeflags-1.8/apps/app_followme.c Mon Oct 31 08:40:19 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/pinedanish-copybridgeflags-1.8/apps/app_macro.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/pinedanish-copybridgeflags-1.8/apps/app_macro.c?view=diff&rev=342763&r1=342762&r2=342763
==============================================================================
--- team/oej/pinedanish-copybridgeflags-1.8/apps/app_macro.c (original)
+++ team/oej/pinedanish-copybridgeflags-1.8/apps/app_macro.c Mon Oct 31 08:40:19 2011
@@ -26,7 +26,7 @@
  */
 
 /*** MODULEINFO
-	<support_level>deprecated</support_level>
+	<support_level>core</support_level>
 	<replacement>app_stack (GoSub)</replacement>
  ***/
 

Modified: team/oej/pinedanish-copybridgeflags-1.8/apps/app_meetme.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/pinedanish-copybridgeflags-1.8/apps/app_meetme.c?view=diff&rev=342763&r1=342762&r2=342763
==============================================================================
--- team/oej/pinedanish-copybridgeflags-1.8/apps/app_meetme.c (original)
+++ team/oej/pinedanish-copybridgeflags-1.8/apps/app_meetme.c Mon Oct 31 08:40:19 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"
@@ -143,10 +142,13 @@
 					</option>
 					<option name="p" hasparams="optional">
 						<para>Allow user to exit the conference by pressing <literal>#</literal> (default)
-						or any of the defined keys. If keys contain <literal>*</literal> this will override
-						option <literal>s</literal>. The key used is set to channel variable
+						or any of the defined keys.  The key used is set to channel variable
 						<variable>MEETME_EXIT_KEY</variable>.</para>
 						<argument name="keys" required="true" />
+						<note>
+							<para>Option <literal>s</literal> has priority for <literal>*</literal>
+							since it cannot change its activation code.</para>
+						</note>
 					</option>
 					<option name="P">
 						<para>Always prompt for the pin even if it is specified.</para>
@@ -181,6 +183,10 @@
 						<para>Allow user to exit the conference by entering a valid single digit
 						extension <variable>MEETME_EXIT_CONTEXT</variable> or the current context
 						if that variable is not defined.</para>
+						<note>
+							<para>Option <literal>s</literal> has priority for <literal>*</literal>
+							since it cannot change its activation code.</para>
+						</note>
 					</option>
 					<option name="1">
 						<para>Do not play message when first person enters</para>
@@ -2458,7 +2464,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)
@@ -3536,7 +3542,10 @@
 					}
 
 					conf_flush(fd, chan);
-				/* Since this option could absorb DTMF meant for the previous (menu), we have to check this one last */
+				/*
+				 * Since options using DTMF could absorb DTMF meant for the
+				 * conference menu, we have to check them after the menu.
+				 */
 				} else if ((f->frametype == AST_FRAME_DTMF) && ast_test_flag64(confflags, CONFFLAG_EXIT_CONTEXT) && ast_exists_extension(chan, exitcontext, dtmfstr, 1, "")) {
 					if (ast_test_flag64(confflags, CONFFLAG_PASS_DTMF)) {
 						conf_queue_dtmf(conf, user, f);

Modified: team/oej/pinedanish-copybridgeflags-1.8/apps/app_minivm.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/pinedanish-copybridgeflags-1.8/apps/app_minivm.c?view=diff&rev=342763&r1=342762&r2=342763
==============================================================================
--- team/oej/pinedanish-copybridgeflags-1.8/apps/app_minivm.c (original)
+++ team/oej/pinedanish-copybridgeflags-1.8/apps/app_minivm.c Mon Oct 31 08:40:19 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);
+		if (sound_duration < global_vmminmessage) {
+			ast_verb(3, "Recording was %d seconds long but needs to be at least %d - abandoning\n", sound_duration, global_vmminmessage);
 			fclose(txt);
 			ast_filedelete(tmptxtfile, NULL);
 			unlink(tmptxtfile);
@@ -2536,7 +2539,7 @@
 	}
 	snprintf(filename,sizeof(filename), "%s%s/%s/%s", MVM_SPOOL_DIR, vmu->domain, vmu->username, message);
 	/* Maybe we should check the result of play_record_review ? */
-	play_record_review(chan, prompt, filename, global_maxgreet, default_vmformat, 0, vmu, &duration, NULL, FALSE);
+	play_record_review(chan, prompt, filename, global_maxgreet, default_vmformat, 0, vmu, &duration, NULL, NULL, FALSE);
 
 	ast_debug(1, "Recorded new %s message in %s (duration %d)\n", message, filename, duration);
 

Modified: team/oej/pinedanish-copybridgeflags-1.8/apps/app_mixmonitor.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/pinedanish-copybridgeflags-1.8/apps/app_mixmonitor.c?view=diff&rev=342763&r1=342762&r2=342763
==============================================================================
--- team/oej/pinedanish-copybridgeflags-1.8/apps/app_mixmonitor.c (original)
+++ team/oej/pinedanish-copybridgeflags-1.8/apps/app_mixmonitor.c Mon Oct 31 08:40:19 2011
@@ -103,6 +103,8 @@
 		</syntax>
 		<description>
 			<para>Records the audio on the current channel to the specified file.</para>
+			<para>This application does not automatically answer and should be preceeded by
+			an application such as Answer or Progress().</para>
 			<variablelist>
 				<variable name="MIXMONITOR_FILENAME">
 					<para>Will contain the filename used to record.</para>

Modified: team/oej/pinedanish-copybridgeflags-1.8/apps/app_morsecode.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/pinedanish-copybridgeflags-1.8/apps/app_morsecode.c?view=diff&rev=342763&r1=342762&r2=342763
==============================================================================
--- team/oej/pinedanish-copybridgeflags-1.8/apps/app_morsecode.c (original)
+++ team/oej/pinedanish-copybridgeflags-1.8/apps/app_morsecode.c Mon Oct 31 08:40:19 2011
@@ -50,7 +50,8 @@
 		</syntax>
 		<description>
 			<para>Plays the Morse code equivalent of the passed string.</para>
-
+			<para>This application does not automatically answer and should be preceeded by
+			an application such as Answer() or Progress().</para>
 			<para>This application uses the following variables:</para>
 			<variablelist>
 				<variable name="MORSEDITLEN">

Modified: team/oej/pinedanish-copybridgeflags-1.8/apps/app_mp3.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/pinedanish-copybridgeflags-1.8/apps/app_mp3.c?view=diff&rev=342763&r1=342762&r2=342763
==============================================================================
--- team/oej/pinedanish-copybridgeflags-1.8/apps/app_mp3.c (original)
+++ team/oej/pinedanish-copybridgeflags-1.8/apps/app_mp3.c Mon Oct 31 08:40:19 2011
@@ -65,9 +65,11 @@
 		<description>
 			<para>Executes mpg123 to play the given location, which typically would be a mp3 filename
 			or m3u playlist filename or a URL. Please read http://en.wikipedia.org/wiki/M3U
-			to see how M3U playlist file format is like, Example usage would be 
+			to see how M3U playlist file format is like, Example usage would be
 			exten => 1234,1,MP3Player(/var/lib/asterisk/playlist.m3u)
 			User can exit by pressing any key on the dialpad, or by hanging up.</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/pinedanish-copybridgeflags-1.8/apps/app_queue.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/pinedanish-copybridgeflags-1.8/apps/app_queue.c?view=diff&rev=342763&r1=342762&r2=342763
==============================================================================
--- team/oej/pinedanish-copybridgeflags-1.8/apps/app_queue.c (original)
+++ team/oej/pinedanish-copybridgeflags-1.8/apps/app_queue.c Mon Oct 31 08:40:19 2011
@@ -224,6 +224,8 @@
 			up by another user.</para>
 			<para>This application will return to the dialplan if the queue does not exist, or
 			any of the join options cause the caller to not enter the queue.</para>
+			<para>This application does not automatically answer and should be preceeded
+			by an application such as Answer(), Progress(), or Ringing().</para>
 			<para>This application sets the following channel variable upon completion:</para>
 			<variablelist>
 				<variable name="QUEUESTATUS">
@@ -1168,12 +1170,6 @@
 	int autofill;                       /*!< Ignore the head call status and ring an available agent */
 	
 	struct ao2_container *members;             /*!< Head of the list of members */
-	/*! 
-	 * \brief Number of members _logged in_
-	 * \note There will be members in the members container that are not logged
-	 *       in, so this can not simply be replaced with ao2_container_count(). 
-	 */
-	int membercount;
 	struct queue_ent *head;             /*!< Head of the list of callers */
 	AST_LIST_ENTRY(call_queue) list;    /*!< Next call queue */
 	AST_LIST_HEAD_NOLOCK(, penalty_rule) rules; /*!< The list of penalty rules to invoke */
@@ -2134,7 +2130,6 @@
 			ao2_link(q->members, m);
 			ao2_ref(m, -1);
 			m = NULL;
-			q->membercount++;
 		}
 	}
 }
@@ -2149,7 +2144,6 @@
 	while ((cur = ao2_iterator_next(&mem_iter))) {
 		if (all || !cur->dynamic) {
 			ao2_unlink(q->members, cur);
-			q->membercount--;
 		}
 		ao2_ref(cur, -1);
 	}
@@ -2252,7 +2246,6 @@
 		ao2_lock(q);
 		clear_queue(q);
 		q->realtime = 1;
-		q->membercount = 0;
 		/*Before we initialize the queue, we need to set the strategy, so that linear strategy
 		 * will allocate the members properly
 		 */
@@ -2292,11 +2285,9 @@
 		queue_set_param(q, tmp_name, v->value, -1, 0);
 	}
 
-	/* Temporarily set realtime members dead so we can detect deleted ones. 
-	 * Also set the membercount correctly for realtime*/
+	/* Temporarily set realtime members dead so we can detect deleted ones. */
 	mem_iter = ao2_iterator_init(q->members, 0);
 	while ((m = ao2_iterator_next(&mem_iter))) {
-		q->membercount++;
 		if (m->realtime)
 			m->dead = 1;
 		ao2_ref(m, -1);
@@ -2318,7 +2309,6 @@
 		if (m->dead) {
 			ast_queue_log(q->name, "REALTIME", m->interface, "REMOVEMEMBER", "%s", "");
 			ao2_unlink(q->members, m);
-			q->membercount--;
 		}
 		ao2_ref(m, -1);
 	}
@@ -2366,13 +2356,11 @@
 			queue_t_unref(q, "Need to find realtime queue");
 		}
 
-		ao2_lock(queues);
-
 		q = find_queue_by_name_rt(queuename, queue_vars, member_config);
 		ast_config_destroy(member_config);
 		ast_variables_destroy(queue_vars);
 
-		/* update the use_weight value if the queue's has gained or lost a weight */ 
+		/* update the use_weight value if the queue's has gained or lost a weight */
 		if (q) {
 			if (!q->weight && prev_weight) {
 				ast_atomic_fetchadd_int(&use_weight, -1);
@@ -2382,8 +2370,6 @@
 			}
 		}
 		/* Other cases will end up with the proper value for use_weight */
-		ao2_unlock(queues);
-
 	} else {
 		update_realtime_members(q);
 	}
@@ -2417,10 +2403,9 @@
 		return;
 	}
 
-	ao2_lock(queues);
 	ao2_lock(q);
-	
-	/* Temporarily set realtime  members dead so we can detect deleted ones.*/ 
+
+	/* Temporarily set realtime  members dead so we can detect deleted ones.*/
 	mem_iter = ao2_iterator_init(q->members, 0);
 	while ((m = ao2_iterator_next(&mem_iter))) {
 		if (m->realtime)
@@ -2444,13 +2429,11 @@
 		if (m->dead) {
 			ast_queue_log(q->name, "REALTIME", m->interface, "REMOVEMEMBER", "%s", "");
 			ao2_unlink(q->members, m);
-			q->membercount--;
 		}
 		ao2_ref(m, -1);
 	}
 	ao2_iterator_destroy(&mem_iter);
 	ao2_unlock(q);
-	ao2_unlock(queues);
 	ast_config_destroy(member_config);
 }
 
@@ -2465,7 +2448,6 @@
 	if (!(q = load_realtime_queue(queuename)))
 		return res;
 
-	ao2_lock(queues);
 	ao2_lock(q);
 
 	/* This is our one */
@@ -2474,7 +2456,6 @@
 		if ((status = get_member_status(q, qe->max_penalty, qe->min_penalty, q->joinempty))) {
 			*reason = QUEUE_JOINEMPTY;
 			ao2_unlock(q);
-			ao2_unlock(queues);
 			queue_t_unref(q, "Done with realtime queue");
 			return res;
 		}
@@ -2538,7 +2519,6 @@
 		ast_debug(1, "Queue '%s' Join, Channel '%s', Position '%d'\n", q->name, qe->chan->name, qe->pos );
 	}
 	ao2_unlock(q);
-	ao2_unlock(queues);
 	queue_t_unref(q, "Done with realtime queue");
 
 	return res;
@@ -2923,9 +2903,7 @@
 	struct member *mem;
 	int found = 0;
 	struct ao2_iterator queue_iter;
-	
-	/* q's lock and rq's lock already set by try_calling()
-	 * to solve deadlock */
+
 	queue_iter = ao2_iterator_init(queues, 0);
 	while ((q = ao2_t_iterator_next(&queue_iter, "Iterate through queues"))) {
 		if (q == rq) { /* don't check myself, could deadlock */
@@ -4063,7 +4041,8 @@
 static int calc_metric(struct call_queue *q, struct member *mem, int pos, struct queue_ent *qe, struct callattempt *tmp)
 {
 	/* disregarding penalty on too few members? */
-	unsigned char usepenalty = (q->membercount <= q->penaltymemberslimit) ? 0 : 1;
+	int membercount = ao2_container_count(q->members);
+	unsigned char usepenalty = (membercount <= q->penaltymemberslimit) ? 0 : 1;
 
 	if (usepenalty) {
 		if ((qe->max_penalty && (mem->penalty > qe->max_penalty)) ||
@@ -4072,7 +4051,7 @@
 		}
 	} else {
 		ast_debug(1, "Disregarding penalty, %d members and %d in penaltymemberslimit.\n",
-			  q->membercount, q->penaltymemberslimit);
+			  membercount, q->penaltymemberslimit);
 	}
 

[... 10601 lines stripped ...]



More information about the asterisk-commits mailing list