[svn-commits] russell: branch russell/ast_channel_ao2 r183389 - in /team/russell/ast_channe...

SVN commits to the Digium repositories svn-commits at lists.digium.com
Thu Mar 19 15:02:33 CDT 2009


Author: russell
Date: Thu Mar 19 15:02:23 2009
New Revision: 183389

URL: http://svn.digium.com/svn-view/asterisk?view=rev&rev=183389
Log:
sync with trunk, resolve conflicts (this isn't going to compile anymore...)

Added:
    team/russell/ast_channel_ao2/apps/app_confbridge.c
      - copied unchanged from r183345, trunk/apps/app_confbridge.c
    team/russell/ast_channel_ao2/bridges/   (props changed)
      - copied from r183345, trunk/bridges/
    team/russell/ast_channel_ao2/bridges/Makefile
      - copied unchanged from r183345, trunk/bridges/Makefile
    team/russell/ast_channel_ao2/bridges/bridge_builtin_features.c
      - copied unchanged from r183345, trunk/bridges/bridge_builtin_features.c
    team/russell/ast_channel_ao2/bridges/bridge_multiplexed.c
      - copied unchanged from r183345, trunk/bridges/bridge_multiplexed.c
    team/russell/ast_channel_ao2/bridges/bridge_simple.c
      - copied unchanged from r183345, trunk/bridges/bridge_simple.c
    team/russell/ast_channel_ao2/bridges/bridge_softmix.c
      - copied unchanged from r183345, trunk/bridges/bridge_softmix.c
    team/russell/ast_channel_ao2/channels/chan_bridge.c
      - copied unchanged from r183345, trunk/channels/chan_bridge.c
    team/russell/ast_channel_ao2/contrib/editors/
      - copied from r183345, trunk/contrib/editors/
    team/russell/ast_channel_ao2/contrib/editors/ael.vim
      - copied unchanged from r183345, trunk/contrib/editors/ael.vim
    team/russell/ast_channel_ao2/contrib/editors/asterisk.vim
      - copied unchanged from r183345, trunk/contrib/editors/asterisk.vim
    team/russell/ast_channel_ao2/contrib/editors/asteriskvm.vim
      - copied unchanged from r183345, trunk/contrib/editors/asteriskvm.vim
    team/russell/ast_channel_ao2/default.exports
      - copied unchanged from r183345, trunk/default.exports
    team/russell/ast_channel_ao2/doc/database_transactions.txt
      - copied unchanged from r183345, trunk/doc/database_transactions.txt
    team/russell/ast_channel_ao2/doc/google-soc2009-ideas.txt
      - copied unchanged from r183345, trunk/doc/google-soc2009-ideas.txt
    team/russell/ast_channel_ao2/doc/timing.txt
      - copied unchanged from r183345, trunk/doc/timing.txt
    team/russell/ast_channel_ao2/include/asterisk/bridging.h
      - copied unchanged from r183345, trunk/include/asterisk/bridging.h
    team/russell/ast_channel_ao2/include/asterisk/bridging_features.h
      - copied unchanged from r183345, trunk/include/asterisk/bridging_features.h
    team/russell/ast_channel_ao2/include/asterisk/bridging_technology.h
      - copied unchanged from r183345, trunk/include/asterisk/bridging_technology.h
    team/russell/ast_channel_ao2/main/asterisk.exports
      - copied unchanged from r183345, trunk/main/asterisk.exports
    team/russell/ast_channel_ao2/main/bridging.c
      - copied unchanged from r183345, trunk/main/bridging.c
    team/russell/ast_channel_ao2/res/res_adsi.exports
      - copied unchanged from r183345, trunk/res/res_adsi.exports
    team/russell/ast_channel_ao2/res/res_ael_share.exports
      - copied unchanged from r183345, trunk/res/res_ael_share.exports
    team/russell/ast_channel_ao2/res/res_agi.exports
      - copied unchanged from r183345, trunk/res/res_agi.exports
    team/russell/ast_channel_ao2/res/res_features.exports
      - copied unchanged from r183345, trunk/res/res_features.exports
    team/russell/ast_channel_ao2/res/res_jabber.exports
      - copied unchanged from r183345, trunk/res/res_jabber.exports
    team/russell/ast_channel_ao2/res/res_monitor.exports
      - copied unchanged from r183345, trunk/res/res_monitor.exports
    team/russell/ast_channel_ao2/res/res_odbc.exports
      - copied unchanged from r183345, trunk/res/res_odbc.exports
    team/russell/ast_channel_ao2/res/res_smdi.exports
      - copied unchanged from r183345, trunk/res/res_smdi.exports
    team/russell/ast_channel_ao2/res/res_speech.exports
      - copied unchanged from r183345, trunk/res/res_speech.exports
Removed:
    team/russell/ast_channel_ao2/build_tools/strip_nonapi
Modified:
    team/russell/ast_channel_ao2/   (props changed)
    team/russell/ast_channel_ao2/CHANGES
    team/russell/ast_channel_ao2/CREDITS
    team/russell/ast_channel_ao2/Makefile
    team/russell/ast_channel_ao2/Makefile.rules
    team/russell/ast_channel_ao2/README
    team/russell/ast_channel_ao2/UPGRADE.txt
    team/russell/ast_channel_ao2/apps/app_dial.c
    team/russell/ast_channel_ao2/apps/app_directed_pickup.c
    team/russell/ast_channel_ao2/apps/app_fax.c
    team/russell/ast_channel_ao2/apps/app_meetme.c
    team/russell/ast_channel_ao2/apps/app_mp3.c
    team/russell/ast_channel_ao2/apps/app_nbscat.c
    team/russell/ast_channel_ao2/apps/app_osplookup.c
    team/russell/ast_channel_ao2/apps/app_queue.c
    team/russell/ast_channel_ao2/apps/app_read.c
    team/russell/ast_channel_ao2/apps/app_rpt.c
    team/russell/ast_channel_ao2/apps/app_speech_utils.c
    team/russell/ast_channel_ao2/apps/app_system.c
    team/russell/ast_channel_ao2/apps/app_voicemail.c
    team/russell/ast_channel_ao2/autoconf/ast_check_gnu_make.m4
    team/russell/ast_channel_ao2/autoconf/ast_check_openh323.m4
    team/russell/ast_channel_ao2/autoconf/ast_ext_lib.m4
    team/russell/ast_channel_ao2/autoconf/ast_prog_sed.m4
    team/russell/ast_channel_ao2/build_tools/make_version
    team/russell/ast_channel_ao2/cdr/cdr_sqlite3_custom.c
    team/russell/ast_channel_ao2/channels/chan_alsa.c
    team/russell/ast_channel_ao2/channels/chan_dahdi.c
    team/russell/ast_channel_ao2/channels/chan_h323.c
    team/russell/ast_channel_ao2/channels/chan_iax2.c
    team/russell/ast_channel_ao2/channels/chan_local.c
    team/russell/ast_channel_ao2/channels/chan_sip.c
    team/russell/ast_channel_ao2/channels/chan_skinny.c
    team/russell/ast_channel_ao2/channels/h323/ast_h323.cxx
    team/russell/ast_channel_ao2/channels/h323/ast_h323.h
    team/russell/ast_channel_ao2/channels/h323/chan_h323.h
    team/russell/ast_channel_ao2/channels/h323/compat_h323.cxx
    team/russell/ast_channel_ao2/channels/h323/compat_h323.h
    team/russell/ast_channel_ao2/channels/iax2-parser.h
    team/russell/ast_channel_ao2/configs/ais.conf.sample
    team/russell/ast_channel_ao2/configs/chan_dahdi.conf.sample
    team/russell/ast_channel_ao2/configs/extensions.conf.sample
    team/russell/ast_channel_ao2/configs/features.conf.sample
    team/russell/ast_channel_ao2/configs/queues.conf.sample
    team/russell/ast_channel_ao2/configs/res_odbc.conf.sample
    team/russell/ast_channel_ao2/configs/res_snmp.conf.sample
    team/russell/ast_channel_ao2/configs/sip.conf.sample
    team/russell/ast_channel_ao2/configs/voicemail.conf.sample
    team/russell/ast_channel_ao2/configure
    team/russell/ast_channel_ao2/configure.ac
    team/russell/ast_channel_ao2/contrib/asterisk-ng-doxygen
    team/russell/ast_channel_ao2/contrib/init.d/rc.archlinux.asterisk
    team/russell/ast_channel_ao2/contrib/init.d/rc.debian.asterisk
    team/russell/ast_channel_ao2/contrib/scripts/safe_asterisk
    team/russell/ast_channel_ao2/doc/distributed_devstate.txt
    team/russell/ast_channel_ao2/doc/manager_1_1.txt
    team/russell/ast_channel_ao2/doc/tex/channelvariables.tex
    team/russell/ast_channel_ao2/funcs/func_channel.c
    team/russell/ast_channel_ao2/funcs/func_env.c
    team/russell/ast_channel_ao2/funcs/func_odbc.c
    team/russell/ast_channel_ao2/include/asterisk/app.h
    team/russell/ast_channel_ao2/include/asterisk/astmm.h
    team/russell/ast_channel_ao2/include/asterisk/astobj2.h
    team/russell/ast_channel_ao2/include/asterisk/audiohook.h
    team/russell/ast_channel_ao2/include/asterisk/autoconfig.h.in
    team/russell/ast_channel_ao2/include/asterisk/callerid.h
    team/russell/ast_channel_ao2/include/asterisk/channel.h
    team/russell/ast_channel_ao2/include/asterisk/config.h
    team/russell/ast_channel_ao2/include/asterisk/datastore.h
    team/russell/ast_channel_ao2/include/asterisk/devicestate.h
    team/russell/ast_channel_ao2/include/asterisk/dlinkedlists.h
    team/russell/ast_channel_ao2/include/asterisk/dnsmgr.h
    team/russell/ast_channel_ao2/include/asterisk/doxyref.h
    team/russell/ast_channel_ao2/include/asterisk/dsp.h
    team/russell/ast_channel_ao2/include/asterisk/enum.h
    team/russell/ast_channel_ao2/include/asterisk/event.h
    team/russell/ast_channel_ao2/include/asterisk/extconf.h
    team/russell/ast_channel_ao2/include/asterisk/features.h
    team/russell/ast_channel_ao2/include/asterisk/frame.h
    team/russell/ast_channel_ao2/include/asterisk/hashtab.h
    team/russell/ast_channel_ao2/include/asterisk/heap.h
    team/russell/ast_channel_ao2/include/asterisk/http.h
    team/russell/ast_channel_ao2/include/asterisk/indications.h
    team/russell/ast_channel_ao2/include/asterisk/io.h
    team/russell/ast_channel_ao2/include/asterisk/linkedlists.h
    team/russell/ast_channel_ao2/include/asterisk/lock.h
    team/russell/ast_channel_ao2/include/asterisk/logger.h
    team/russell/ast_channel_ao2/include/asterisk/manager.h
    team/russell/ast_channel_ao2/include/asterisk/pbx.h
    team/russell/ast_channel_ao2/include/asterisk/poll-compat.h
    team/russell/ast_channel_ao2/include/asterisk/res_odbc.h
    team/russell/ast_channel_ao2/include/asterisk/rtp.h
    team/russell/ast_channel_ao2/include/asterisk/sched.h
    team/russell/ast_channel_ao2/include/asterisk/strings.h
    team/russell/ast_channel_ao2/include/asterisk/taskprocessor.h
    team/russell/ast_channel_ao2/include/asterisk/tcptls.h
    team/russell/ast_channel_ao2/include/asterisk/threadstorage.h
    team/russell/ast_channel_ao2/include/asterisk/timing.h
    team/russell/ast_channel_ao2/include/asterisk/udptl.h
    team/russell/ast_channel_ao2/include/asterisk/utils.h
    team/russell/ast_channel_ao2/main/Makefile
    team/russell/ast_channel_ao2/main/abstract_jb.c
    team/russell/ast_channel_ao2/main/acl.c
    team/russell/ast_channel_ao2/main/aescrypt.c
    team/russell/ast_channel_ao2/main/alaw.c
    team/russell/ast_channel_ao2/main/app.c
    team/russell/ast_channel_ao2/main/ast_expr2.c
    team/russell/ast_channel_ao2/main/ast_expr2.fl
    team/russell/ast_channel_ao2/main/ast_expr2.h
    team/russell/ast_channel_ao2/main/ast_expr2.y
    team/russell/ast_channel_ao2/main/ast_expr2f.c
    team/russell/ast_channel_ao2/main/asterisk.c
    team/russell/ast_channel_ao2/main/astobj2.c
    team/russell/ast_channel_ao2/main/audiohook.c
    team/russell/ast_channel_ao2/main/callerid.c
    team/russell/ast_channel_ao2/main/channel.c
    team/russell/ast_channel_ao2/main/db.c
    team/russell/ast_channel_ao2/main/devicestate.c
    team/russell/ast_channel_ao2/main/editline/configure
    team/russell/ast_channel_ao2/main/editline/configure.in
    team/russell/ast_channel_ao2/main/editline/np/unvis.c
    team/russell/ast_channel_ao2/main/editline/sys.h
    team/russell/ast_channel_ao2/main/enum.c
    team/russell/ast_channel_ao2/main/features.c
    team/russell/ast_channel_ao2/main/file.c
    team/russell/ast_channel_ao2/main/frame.c
    team/russell/ast_channel_ao2/main/hashtab.c
    team/russell/ast_channel_ao2/main/heap.c
    team/russell/ast_channel_ao2/main/indications.c
    team/russell/ast_channel_ao2/main/io.c
    team/russell/ast_channel_ao2/main/loader.c
    team/russell/ast_channel_ao2/main/manager.c
    team/russell/ast_channel_ao2/main/pbx.c
    team/russell/ast_channel_ao2/main/poll.c
    team/russell/ast_channel_ao2/main/rtp.c
    team/russell/ast_channel_ao2/main/sched.c
    team/russell/ast_channel_ao2/main/stdtime/localtime.c
    team/russell/ast_channel_ao2/main/strings.c
    team/russell/ast_channel_ao2/main/tcptls.c
    team/russell/ast_channel_ao2/main/translate.c
    team/russell/ast_channel_ao2/main/utils.c
    team/russell/ast_channel_ao2/makeopts.in
    team/russell/ast_channel_ao2/pbx/pbx_config.c
    team/russell/ast_channel_ao2/pbx/pbx_spool.c
    team/russell/ast_channel_ao2/res/ael/ael.tab.c
    team/russell/ast_channel_ao2/res/ael/ael.y
    team/russell/ast_channel_ao2/res/res_agi.c
    team/russell/ast_channel_ao2/res/res_ais.c
    team/russell/ast_channel_ao2/res/res_config_ldap.c
    team/russell/ast_channel_ao2/res/res_config_odbc.c
    team/russell/ast_channel_ao2/res/res_config_pgsql.c
    team/russell/ast_channel_ao2/res/res_config_sqlite.c
    team/russell/ast_channel_ao2/res/res_curl.c
    team/russell/ast_channel_ao2/res/res_musiconhold.c
    team/russell/ast_channel_ao2/res/res_odbc.c
    team/russell/ast_channel_ao2/res/res_phoneprov.c
    team/russell/ast_channel_ao2/res/res_snmp.c
    team/russell/ast_channel_ao2/res/res_timing_dahdi.c
    team/russell/ast_channel_ao2/res/res_timing_timerfd.c
    team/russell/ast_channel_ao2/sounds/Makefile
    team/russell/ast_channel_ao2/tests/test_sched.c
    team/russell/ast_channel_ao2/utils/Makefile
    team/russell/ast_channel_ao2/utils/astcanary.c
    team/russell/ast_channel_ao2/utils/expr2.testinput
    team/russell/ast_channel_ao2/utils/extconf.c

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

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

Propchange: team/russell/ast_channel_ao2/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Thu Mar 19 15:02:23 2009
@@ -1,1 +1,1 @@
-/trunk:1-177208
+/trunk:1-183388

Modified: team/russell/ast_channel_ao2/CHANGES
URL: http://svn.digium.com/svn-view/asterisk/team/russell/ast_channel_ao2/CHANGES?view=diff&rev=183389&r1=183388&r2=183389
==============================================================================
--- team/russell/ast_channel_ao2/CHANGES (original)
+++ team/russell/ast_channel_ao2/CHANGES Thu Mar 19 15:02:23 2009
@@ -7,6 +7,20 @@
 === and the other UPGRADE files for older releases.
 ===
 ======================================================================
+
+------------------------------------------------------------------------------
+--- Functionality changes from Asterisk 1.6.2 to Asterisk 1.6.3  -------------
+------------------------------------------------------------------------------
+
+Applications
+------------
+ * Added progress option to the app_dial D() option.  When progress DTMF is
+   present, those values are sent immediatly upon receiving a PROGRESS message
+   regardless if the call has been answered or not.
+
+Functions
+---------
+ * The CHANNEL() function now supports the "name" option.
 
 ------------------------------------------------------------------------------
 --- Functionality changes from Asterisk 1.6.1 to Asterisk 1.6.2  -------------
@@ -44,12 +58,20 @@
  * The parsing of register => lines in sip.conf has been modified to allow a port
    to be present in the "user" portion. Please see the sip.conf.sample file for more
    information
+ * Added support for subscribing to MWI on a remote server and making the status available
+   as a mailbox. Please see the sip.conf.sample file for more information.
  * Added a function to remove SIP headers added in the dialplan before the
    first INVITE is generated - SIPRemoveHeader()
  * Channel variables set with setvar= in a device configuration is now 
    set both for inbound and outbound calls.
  * Added support for ITU G.722.1 and G.722.1C (Siren7 and Siren14) media streams.
 
+IAX2 changes
+------------
+  * Added immediate option to iax.conf
+  * Added forceencryption option to iax.conf
+  * Added Encryption and Trunk status to manager command "iaxpeers"
+
 Skinny Changes
 --------------
  * The configuration file now holds separate sections for devices and lines.
@@ -58,6 +80,8 @@
 
 DAHDI Changes
 -------------
+ * chan_dahdi now supports MFC/R2 signaling when Asterisk is compiled with
+   support for LibOpenR2.  http://www.libopenr2.org/
  * The UK option waitfordialtone has been added for use with BT analog
    lines.
  * Added a 'faxbuffers' configuration option to chan_dahdi.conf.  This option
@@ -92,6 +116,7 @@
    of "core show function AES_ENCRYPT" from the CLI
  * Added AES_DECRYPT. For information on its use, please see the output
    of "core show function AES_DECRYPT" from the CLI
+ * func_odbc now supports database transactions across multiple queries.
 
 Applications
 ------------
@@ -106,6 +131,11 @@
    specified in the initial argument.
  * A new application, Originate, has been introduced, that allows asynchronous
    call origination from the dialplan.
+ * Voicemail now permits setting the emailsubject and emailbody per mailbox,
+   in addition to the setting in the "general" context.
+ * Added ConfBridge dialplan application which does conference bridges without
+   DAHDI. For information on its use, please see the output of
+   "core show application ConfBridge" from the CLI.
 
 Miscellaneous
 -------------
@@ -138,6 +168,12 @@
    externhost and localnet settings.
  * The Asterisk core now supports ITU G.722.1 and G.722.1C media streams, and
    can connect calls in passthrough mode, as well as record and play back files.
+ * Successful and unsuccessful call pickup can now be alerted through sounds, by
+   using pickupsound and pickupfailsound in features.conf.
+ * ASTVARRUNDIR is now set to $(localstatedir)/run/asterisk by default. 
+   This means the asterisk pid file will now be in /var/run/asterisk/asterisk.pid on LINUX
+   instead of the /var/run/asterisk.pid where it used to be. This will make
+   installs as non-root easier to manage.
 
 Asterisk Manager Interface
 --------------------------
@@ -153,6 +189,12 @@
    Pragma: SuppressEvents
 
    If this is included, the server supports event suppression.
+
+ * Added 4 new Actions to list skinny device(s) and line(s)
+   SKINNYdevices
+   SKINNYshowdevice
+   SKINNYlines
+   SKINNYshowline
 
 ------------------------------------------------------------------------------
 --- Functionality changes from Asterisk 1.6.0 to Asterisk 1.6.1  -------------
@@ -555,8 +597,6 @@
   * Added the srvlookup option to iax.conf
   * Added support for OSP.  The token is set and retrieved through the CHANNEL()
      dialplan function.
-  * Added immediate option to iax.conf
-  * Added forceencryption option to iax.conf
 
 XMPP Google Talk/Jingle changes
 -------------------------------

Modified: team/russell/ast_channel_ao2/CREDITS
URL: http://svn.digium.com/svn-view/asterisk/team/russell/ast_channel_ao2/CREDITS?view=diff&rev=183389&r1=183388&r2=183389
==============================================================================
--- team/russell/ast_channel_ao2/CREDITS (original)
+++ team/russell/ast_channel_ao2/CREDITS Thu Mar 19 15:02:23 2009
@@ -194,6 +194,9 @@
 
 Klaus Darillon - the SIPremoveHeader function in chan_sip
 
+Moises Silva (moy) - for writing LibOpenR2, and providing support for it in chan_dahdi
+     moises.silva(AT)gmail.com
+
 === OTHER CONTRIBUTIONS ===
 John Todd - Monkey sounds and associated teletorture prompt
 Michael Jerris - bug marshaling

Modified: team/russell/ast_channel_ao2/Makefile
URL: http://svn.digium.com/svn-view/asterisk/team/russell/ast_channel_ao2/Makefile?view=diff&rev=183389&r1=183388&r2=183389
==============================================================================
--- team/russell/ast_channel_ao2/Makefile (original)
+++ team/russell/ast_channel_ao2/Makefile Thu Mar 19 15:02:23 2009
@@ -146,7 +146,7 @@
   ASTSBINDIR=$(sbindir)
   ASTSPOOLDIR=$(localstatedir)/spool/asterisk
   ASTLOGDIR=$(localstatedir)/log/asterisk
-  ASTVARRUNDIR=$(localstatedir)/run
+  ASTVARRUNDIR=$(localstatedir)/run/asterisk
   ASTMANDIR=$(mandir)
 ifneq ($(findstring BSD,$(OSARCH)),)
   ASTVARLIBDIR=$(prefix)/share/asterisk
@@ -293,7 +293,7 @@
 #	value directly to ASTCFLAGS
 ASTCFLAGS+=$(MALLOC_DEBUG)$(OPTIONS)
 
-MOD_SUBDIRS:=channels pbx apps codecs formats cdr funcs tests main res $(LOCAL_MOD_SUBDIRS)
+MOD_SUBDIRS:=channels pbx apps codecs formats cdr bridges funcs tests main res $(LOCAL_MOD_SUBDIRS)
 OTHER_SUBDIRS:=utils agi
 SUBDIRS:=$(OTHER_SUBDIRS) $(MOD_SUBDIRS)
 SUBDIRS_INSTALL:=$(SUBDIRS:%=%-install)
@@ -805,22 +805,28 @@
 config:
 	@if [ "${OSARCH}" = "linux-gnu" ]; then \
 		if [ -f /etc/redhat-release -o -f /etc/fedora-release ]; then \
-			$(INSTALL) -m 755 contrib/init.d/rc.redhat.asterisk $(DESTDIR)/etc/rc.d/init.d/asterisk; \
+			cat contrib/init.d/rc.redhat.asterisk | sed 's|__ASTERISK_ETC_DIR__|$(ASTETCDIR)|;s|__ASTERISK_SBIN_DIR__|$(ASTSBINDIR)|;s|__ASTERISK_VARRUN_DIR__|$(ASTVARRUNDIR)|;' > $(DESTDIR)/etc/rc.d/init.d/asterisk ;\
+			chmod 755 $(DESTDIR)/etc/rc.d/init.d/asterisk;\
 			if [ -z "$(DESTDIR)" ]; then /sbin/chkconfig --add asterisk; fi; \
 		elif [ -f /etc/debian_version ]; then \
-			$(INSTALL) -m 755 contrib/init.d/rc.debian.asterisk $(DESTDIR)/etc/init.d/asterisk; \
+			cat contrib/init.d/rc.debian.asterisk | sed 's|__ASTERISK_ETC_DIR__|$(ASTETCDIR)|;s|__ASTERISK_SBIN_DIR__|$(ASTSBINDIR)|;s|__ASTERISK_VARRUN_DIR__|$(ASTVARRUNDIR)|;' > $(DESTDIR)/etc/init.d/asterisk ;\
+			chmod 755 $(DESTDIR)/etc/init.d/asterisk;\
 			if [ -z "$(DESTDIR)" ]; then /usr/sbin/update-rc.d asterisk start 50 2 3 4 5 . stop 91 2 3 4 5 .; fi; \
 		elif [ -f /etc/gentoo-release ]; then \
-			$(INSTALL) -m 755 contrib/init.d/rc.gentoo.asterisk $(DESTDIR)/etc/init.d/asterisk; \
+			cat contrib/init.d/rc.gentoo.asterisk | sed 's|__ASTERISK_ETC_DIR__|$(ASTETCDIR)|;s|__ASTERISK_SBIN_DIR__|$(ASTSBINDIR)|;s|__ASTERISK_VARRUN_DIR__|$(ASTVARRUNDIR)|;' > $(DESTDIR)/etc/init.d/asterisk ;\
+			chmod 755 $(DESTDIR)/etc/init.d/asterisk;\
 			if [ -z "$(DESTDIR)" ]; then /sbin/rc-update add asterisk default; fi; \
 		elif [ -f /etc/mandrake-release -o -f /etc/mandriva-release ]; then \
-			$(INSTALL) -m 755 contrib/init.d/rc.mandriva.asterisk $(DESTDIR)/etc/rc.d/init.d/asterisk; \
+			cat contrib/init.d/rc.mandriva.asterisk | sed 's|__ASTERISK_ETC_DIR__|$(ASTETCDIR)|;s|__ASTERISK_SBIN_DIR__|$(ASTSBINDIR)|;s|__ASTERISK_VARRUN_DIR__|$(ASTVARRUNDIR)|;' > $(DESTDIR)/etc/rc.d/init.d/asterisk ;\
+			chmod 755 $(DESTDIR)/etc/rc.d/init.d/asterisk;\
 			if [ -z "$(DESTDIR)" ]; then /sbin/chkconfig --add asterisk; fi; \
 		elif [ -f /etc/SuSE-release -o -f /etc/novell-release ]; then \
-			$(INSTALL) -m 755 contrib/init.d/rc.suse.asterisk $(DESTDIR)/etc/init.d/asterisk; \
+			cat contrib/init.d/rc.suse.asterisk | sed 's|__ASTERISK_ETC_DIR__|$(ASTETCDIR)|;s|__ASTERISK_SBIN_DIR__|$(ASTSBINDIR)|;s|__ASTERISK_VARRUN_DIR__|$(ASTVARRUNDIR)|;' > $(DESTDIR)/etc/init.d/asterisk ;\
+			chmod 755 $(DESTDIR)/etc/init.d/asterisk;\
 			if [ -z "$(DESTDIR)" ]; then /sbin/chkconfig --add asterisk; fi; \
 		elif [ -f /etc/arch-release -o -f /etc/arch-release ]; then \
-			$(INSTALL) -m 755 contrib/init.d/rc.archlinux.asterisk $(DESTDIR)/etc/rc.d/asterisk; \
+			cat contrib/init.d/rc.archlinux.asterisk | sed 's|__ASTERISK_ETC_DIR__|$(ASTETCDIR)|;s|__ASTERISK_SBIN_DIR__|$(ASTSBINDIR)|;s|__ASTERISK_VARRUN_DIR__|$(ASTVARRUNDIR)|;' > $(DESTDIR)/etc/rc.d/asterisk ;\
+			chmod 755 $(DESTDIR)/etc/rc.d/asterisk;\
 		elif [ -f /etc/slackware-version ]; then \
 			echo "Slackware is not currently supported, although an init script does exist for it." \
 		else \

Modified: team/russell/ast_channel_ao2/Makefile.rules
URL: http://svn.digium.com/svn-view/asterisk/team/russell/ast_channel_ao2/Makefile.rules?view=diff&rev=183389&r1=183388&r2=183389
==============================================================================
--- team/russell/ast_channel_ao2/Makefile.rules (original)
+++ team/russell/ast_channel_ao2/Makefile.rules Thu Mar 19 15:02:23 2009
@@ -51,8 +51,13 @@
 # per-target settings will be applied
 CC_CFLAGS=$(PTHREAD_CFLAGS) $(ASTCFLAGS)
 CXX_CFLAGS=$(PTHREAD_CFLAGS) $(filter-out -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations $(AST_DECLARATION_AFTER_STATEMENT),$(ASTCFLAGS))
-CC_LDFLAGS_SO=$(PTHREAD_CFLAGS) $(ASTLDFLAGS) $(SOLINK)
-CXX_LDFLAGS_SO=$(PTHREAD_CFLAGS) $(ASTLDFLAGS) $(SOLINK)
+
+ifeq ($(GNU_LD),1)
+SO_SUPPRESS_SYMBOLS=-Wl,--version-script,$(if $(wildcard $(subst .so,.exports,$@)),$(subst .so,.exports,$@),$(ASTTOPDIR)/default.exports)
+endif
+
+CC_LDFLAGS_SO=$(PTHREAD_CFLAGS) $(ASTLDFLAGS) $(SOLINK) $(SO_SUPPRESS_SYMBOLS)
+CXX_LDFLAGS_SO=$(PTHREAD_CFLAGS) $(ASTLDFLAGS) $(SOLINK) $(SO_SUPPRESS_SYMBOLS)
 CC_LIBS=$(PTHREAD_LIBS) $(LIBS)
 CXX_LIBS=$(PTHREAD_LIBS) $(LIBS)
 

Modified: team/russell/ast_channel_ao2/README
URL: http://svn.digium.com/svn-view/asterisk/team/russell/ast_channel_ao2/README?view=diff&rev=183389&r1=183388&r2=183389
==============================================================================
--- team/russell/ast_channel_ao2/README (original)
+++ team/russell/ast_channel_ao2/README Thu Mar 19 15:02:23 2009
@@ -4,7 +4,7 @@
 ===                   by Mark Spencer <markster at digium.com>
 ===                  and the Asterisk.org developer community
 ===
-===                    Copyright (C) 2001-2008 Digium, Inc.
+===                    Copyright (C) 2001-2009 Digium, Inc.
 ===                       and other copyright holders.
 ===============================================================================
 
@@ -68,8 +68,8 @@
 	* All Analog and Digital Interface cards from Digium (www.digium.com)
 	* QuickNet Internet PhoneJack and LineJack (http://www.quicknet.net)
 	* any full duplex sound card supported by ALSA, OSS, or PortAudio
-	* any ISDN card supported by mISDN on Linux (BRI)
-	* The Xorcom AstriBank channel bank
+	* any ISDN card supported by mISDN on Linux
+	* The Xorcom Astribank channel bank
 	* VoiceTronix OpenLine products
 
 -------------------------------------------------------------------------------

Modified: team/russell/ast_channel_ao2/UPGRADE.txt
URL: http://svn.digium.com/svn-view/asterisk/team/russell/ast_channel_ao2/UPGRADE.txt?view=diff&rev=183389&r1=183388&r2=183389
==============================================================================
--- team/russell/ast_channel_ao2/UPGRADE.txt (original)
+++ team/russell/ast_channel_ao2/UPGRADE.txt Thu Mar 19 15:02:23 2009
@@ -17,6 +17,10 @@
 === UPGRADE-1.6.txt -- Upgrade info for 1.4 to 1.6
 ===
 ===========================================================
+
+From 1.6.2 to 1.6.3:
+
+* Nothing, yet!
 
 From 1.6.1 to 1.6.2:
 
@@ -45,6 +49,13 @@
   operations.
 
 From 1.6.0.x to 1.6.1:
+
+* In previous versions of Asterisk, due to the way objects were arranged in
+  memory by chan_sip, the order of entries in sip.conf could be adjusted to
+  control the behavior of matching against peers and users.  The way objects
+  are managed has been significantly changed for reasons involving performance
+  and stability.  A side effect of these changes is that the order of entries
+  in sip.conf can no longer be relied upon to control behavior.
 
 * The following core commands dealing with dialplan have been deprecated: 'core
   show globals', 'core set global' and 'core set chanvar'. Use the equivalent

Modified: team/russell/ast_channel_ao2/apps/app_dial.c
URL: http://svn.digium.com/svn-view/asterisk/team/russell/ast_channel_ao2/apps/app_dial.c?view=diff&rev=183389&r1=183388&r2=183389
==============================================================================
--- team/russell/ast_channel_ao2/apps/app_dial.c (original)
+++ team/russell/ast_channel_ao2/apps/app_dial.c Thu Mar 19 15:02:23 2009
@@ -109,11 +109,13 @@
 				<option name="D" argsep=":">
 					<argument name="called" />
 					<argument name="calling" />
+					<argument name="progress" />
 					<para>Send the specified DTMF strings <emphasis>after</emphasis> the called
 					party has answered, but before the call gets bridged. The 
 					<replaceable>called</replaceable> DTMF string is sent to the called party, and the 
 					<replaceable>calling</replaceable> DTMF string is sent to the calling party. Both arguments 
-					can be used alone.</para>
+					can be used alone.  If <replaceable>progress</replaceable> is specified, its DTMF is sent
+					immediately after receiving a PROGRESS message.</para>
 				</option>
 				<option name="e">
 					<para>Execute the <literal>h</literal> extension for peer after the call ends</para>
@@ -524,8 +526,6 @@
 	AST_APP_OPTION('i', OPT_IGNORE_FORWARDING),
 	AST_APP_OPTION('k', OPT_CALLEE_PARK),
 	AST_APP_OPTION('K', OPT_CALLER_PARK),
-	AST_APP_OPTION('k', OPT_CALLEE_PARK),
-	AST_APP_OPTION('K', OPT_CALLER_PARK),
 	AST_APP_OPTION_ARG('L', OPT_DURATION_LIMIT, OPT_ARG_DURATION_LIMIT),
 	AST_APP_OPTION_ARG('m', OPT_MUSICBACK, OPT_ARG_MUSICBACK),
 	AST_APP_OPTION_ARG('M', OPT_CALLEE_MACRO, OPT_ARG_CALLEE_MACRO),
@@ -560,6 +560,7 @@
 	uint64_t flags;
 };
 
+static int detect_disconnect(struct ast_channel *chan, char code, struct ast_str *featurecode);
 
 static void hanguptree(struct chanlist *outgoing, struct ast_channel *exception, int answered_elsewhere)
 {
@@ -798,7 +799,7 @@
 static struct ast_channel *wait_for_answer(struct ast_channel *in,
 	struct chanlist *outgoing, int *to, struct ast_flags64 *peerflags,
 	struct privacy_args *pa,
-	const struct cause_args *num_in, int *result)
+	const struct cause_args *num_in, int *result, char *dtmf_progress)
 {
 	struct cause_args num = *num_in;
 	int prestart = num.busy + num.congestion + num.nochan;
@@ -809,7 +810,7 @@
 #ifdef HAVE_EPOLL
 	struct chanlist *epollo;
 #endif
-
+	struct ast_str *featurecode = ast_str_alloca(FEATURE_MAX_LEN + 1);
 	if (single) {
 		/* Turn off hold music, etc */
 		ast_deactivate_generator(in);
@@ -954,6 +955,10 @@
 						ast_channel_early_bridge(in, c);
 					if (!ast_test_flag64(outgoing, OPT_RINGBACK))
 						ast_indicate(in, AST_CONTROL_PROGRESS);
+						if(!ast_strlen_zero(dtmf_progress)) {
+							ast_verb(3, "Sending DTMF '%s' to the called party as result of receiving a PROGRESS message.\n", dtmf_progress);
+							ast_dtmf_stream(c, in, dtmf_progress, 250, 0);
+						}
 					break;
 				case AST_CONTROL_VIDUPDATE:
 					ast_verb(3, "%s requested a video update, passing it to %s\n", c->name, in->name);
@@ -1054,8 +1059,8 @@
 				}
 
 				if (ast_test_flag64(peerflags, OPT_CALLER_HANGUP) &&
-						(f->subclass == '*')) { /* hmm it it not guaranteed to be '*' anymore. */
-					ast_verb(3, "User hit %c to disconnect call.\n", f->subclass);
+					detect_disconnect(in, f->subclass, featurecode)) {
+					ast_verb(3, "User requested call disconnect.\n");
 					*to = 0;
 					strcpy(pa->status, "CANCEL");
 					ast_cdr_noanswer(in->cdr);
@@ -1097,6 +1102,26 @@
 #endif
 
 	return peer;
+}
+
+static int detect_disconnect(struct ast_channel *chan, char code, struct ast_str *featurecode)
+{
+	struct ast_flags features = { AST_FEATURE_DISCONNECT }; /* only concerned with disconnect feature */
+	struct ast_call_feature feature;
+	int res;
+
+	ast_str_append(&featurecode, 1, "%c", code);
+
+	res = ast_feature_detect(chan, &features, ast_str_buffer(featurecode), &feature);
+
+	if (res != AST_FEATURE_RETURN_STOREDIGITS) {
+		ast_str_reset(featurecode);
+	}
+	if (feature.feature_mask & AST_FEATURE_DISCONNECT) {
+		return 1;
+	}
+
+	return 0;
 }
 
 static void replace_macro_delimiter(char *s)
@@ -1504,7 +1529,7 @@
 
 	struct ast_bridge_config config = { { 0, } };
 	struct timeval calldurationlimit = { 0, };
-	char *dtmfcalled = NULL, *dtmfcalling = NULL;
+	char *dtmfcalled = NULL, *dtmfcalling = NULL, *dtmf_progress=NULL;
 	struct privacy_args pa = {
 		.sentringing = 0,
 		.privdb_val = 0,
@@ -1555,12 +1580,11 @@
 		goto done;
 	}
 
-
 	if (ast_test_flag64(&opts, OPT_OPERMODE)) {
 		opermode = ast_strlen_zero(opt_args[OPT_ARG_OPERMODE]) ? 1 : atoi(opt_args[OPT_ARG_OPERMODE]);
 		ast_verb(3, "Setting operator services mode to %d.\n", opermode);
 	}
-	
+
 	if (ast_test_flag64(&opts, OPT_DURATION_STOP) && !ast_strlen_zero(opt_args[OPT_ARG_DURATION_STOP])) {
 		calldurationlimit.tv_sec = atoi(opt_args[OPT_ARG_DURATION_STOP]);
 		if (!calldurationlimit.tv_sec) {
@@ -1572,8 +1596,9 @@
 	}
 
 	if (ast_test_flag64(&opts, OPT_SENDDTMF) && !ast_strlen_zero(opt_args[OPT_ARG_SENDDTMF])) {
-		dtmfcalling = opt_args[OPT_ARG_SENDDTMF];
-		dtmfcalled = strsep(&dtmfcalling, ":");
+		dtmf_progress = opt_args[OPT_ARG_SENDDTMF];
+		dtmfcalled = strsep(&dtmf_progress, ":");
+		dtmfcalling = strsep(&dtmf_progress, ":");
 	}
 
 	if (ast_test_flag64(&opts, OPT_DURATION_LIMIT) && !ast_strlen_zero(opt_args[OPT_ARG_DURATION_LIMIT])) {
@@ -1593,7 +1618,7 @@
 		res = -1; /* reset default */
 	}
 
-	if (ast_test_flag64(&opts, OPT_DTMF_EXIT)) {
+	if (ast_test_flag64(&opts, OPT_DTMF_EXIT) || ast_test_flag64(&opts, OPT_CALLER_HANGUP)) {
 		__ast_answer(chan, 0, 0);
 	}
 
@@ -1840,7 +1865,7 @@
 		}
 	}
 
-	peer = wait_for_answer(chan, outgoing, &to, peerflags, &pa, &num, &result);
+	peer = wait_for_answer(chan, outgoing, &to, peerflags, &pa, &num, &result, dtmf_progress);
 
 	/* The ast_channel_datastore_remove() function could fail here if the
 	 * datastore was moved to another channel during a masquerade. If this is
@@ -2270,10 +2295,12 @@
 	parse = ast_strdupa(data);
 	AST_STANDARD_APP_ARGS(args, parse);
 
-	if ((sleepms = atoi(args.sleep)))
+	if (!ast_strlen_zero(args.sleep) && (sleepms = atoi(args.sleep)))
 		sleepms *= 1000;
 
-	loops = atoi(args.retries);
+	if (!ast_strlen_zero(args.retries)) {
+		loops = atoi(args.retries);
+	}
 
 	if (!args.dialdata) {
 		ast_log(LOG_ERROR, "%s requires a 4th argument (dialdata)\n", rapp);

Modified: team/russell/ast_channel_ao2/apps/app_directed_pickup.c
URL: http://svn.digium.com/svn-view/asterisk/team/russell/ast_channel_ao2/apps/app_directed_pickup.c?view=diff&rev=183389&r1=183388&r2=183389
==============================================================================
--- team/russell/ast_channel_ao2/apps/app_directed_pickup.c (original)
+++ team/russell/ast_channel_ao2/apps/app_directed_pickup.c Thu Mar 19 15:02:23 2009
@@ -171,9 +171,9 @@
 	/* Just check that we are not picking up the SAME as target */
 	if (chan->name != target->name && chan != target) {
 		res = pickup_do(chan, target);
-		ast_channel_unlock(target);
 		target = ast_channel_unref(target);
 	}
+	ast_channel_unlock(target);
 
 	return res;
 }

Modified: team/russell/ast_channel_ao2/apps/app_fax.c
URL: http://svn.digium.com/svn-view/asterisk/team/russell/ast_channel_ao2/apps/app_fax.c?view=diff&rev=183389&r1=183388&r2=183389
==============================================================================
--- team/russell/ast_channel_ao2/apps/app_fax.c (original)
+++ team/russell/ast_channel_ao2/apps/app_fax.c Thu Mar 19 15:02:23 2009
@@ -206,6 +206,7 @@
 	char buf[20];
 	fax_session *s = (fax_session *) user_data;
 	t30_stats_t stat;
+	int pages_transferred;
 
 	ast_debug(1, "Fax phase E handler. result=%d\n", result);
 
@@ -231,7 +232,12 @@
 	pbx_builtin_setvar_helper(s->chan, "FAXSTATUS", "SUCCESS"); 
 	pbx_builtin_setvar_helper(s->chan, "FAXERROR", NULL); 
 	pbx_builtin_setvar_helper(s->chan, "REMOTESTATIONID", far_ident);
-	snprintf(buf, sizeof(buf), "%d", stat.pages_transferred);
+#if SPANDSP_RELEASE_DATE >= 20090220
+	pages_transferred = (s->direction) ? stat.pages_tx : stat.pages_rx;
+#else
+	pages_transferred = stat.pages_transferred;
+#endif
+	snprintf(buf, sizeof(buf), "%d", pages_transferred);
 	pbx_builtin_setvar_helper(s->chan, "FAXPAGES", buf);
 	snprintf(buf, sizeof(buf), "%d", stat.y_resolution);
 	pbx_builtin_setvar_helper(s->chan, "FAXRESOLUTION", buf);
@@ -240,7 +246,7 @@
 	
 	ast_debug(1, "Fax transmitted successfully.\n");
 	ast_debug(1, "  Remote station ID: %s\n", far_ident);
-	ast_debug(1, "  Pages transferred: %d\n", stat.pages_transferred);
+	ast_debug(1, "  Pages transferred: %d\n", pages_transferred);
 	ast_debug(1, "  Image resolution:  %d x %d\n", stat.x_resolution, stat.y_resolution);
 	ast_debug(1, "  Transfer Rate:     %d\n", stat.bit_rate);
 	
@@ -260,7 +266,7 @@
 		      S_OR(s->chan->cid.cid_num, ""),
 		      far_ident,
 		      local_ident,
-		      stat.pages_transferred,
+		      pages_transferred,
 		      stat.y_resolution,
 		      stat.bit_rate,
 		      s->file_name);

Modified: team/russell/ast_channel_ao2/apps/app_meetme.c
URL: http://svn.digium.com/svn-view/asterisk/team/russell/ast_channel_ao2/apps/app_meetme.c?view=diff&rev=183389&r1=183388&r2=183389
==============================================================================
--- team/russell/ast_channel_ao2/apps/app_meetme.c (original)
+++ team/russell/ast_channel_ao2/apps/app_meetme.c Thu Mar 19 15:02:23 2009
@@ -2659,8 +2659,6 @@
 				}
 			}
 
-			c = ast_waitfor_nandfds(&chan, 1, &fd, nfds, NULL, &outfd, &ms);
-
 			/* Update the struct with the actual confflags */
 			user->userflags = confflags;
 
@@ -2822,6 +2820,8 @@
 			if (ast_check_hangup(chan)) {
 				break;
 			}
+
+			c = ast_waitfor_nandfds(&chan, 1, &fd, nfds, NULL, &outfd, &ms);
 
 			if (c) {
 				char dtmfstr[2] = "";
@@ -3347,6 +3347,8 @@
 		char *pin = NULL, *pinadmin = NULL; /* For temp use */
 		int maxusers = 0;
 		struct timeval now;
+		char recordingfilename[256] = "";
+		char recordingformat[10] = "";
 		char currenttime[19] = "";
 		char eatime[19] = "";
 		char bookid[19] = "";
@@ -3355,6 +3357,7 @@
 		char adminopts[OPTIONS_LEN];
 		struct ast_tm tm, etm;
 		struct timeval endtime = { .tv_sec = 0 };
+		const char *var2;
 
 		if (rt_schedule) {
 			now = ast_tvnow();
@@ -3420,6 +3423,10 @@
 				maxusers = atoi(var->value);
 			} else if (!strcasecmp(var->name, "adminopts")) {
 				ast_copy_string(adminopts, var->value, sizeof(char[OPTIONS_LEN]));
+			} else if (!strcasecmp(var->name, "recordingfilename")) {
+				ast_copy_string(recordingfilename, var->value, sizeof(recordingfilename));
+			} else if (!strcasecmp(var->name, "recordingformat")) {
+				ast_copy_string(recordingformat, var->value, sizeof(recordingformat));
 			} else if (!strcasecmp(var->name, "endtime")) {
 				struct ast_tm endtime_tm;
 				ast_strptime(var->value, "%Y-%m-%d %H:%M:%S", &endtime_tm);
@@ -3438,9 +3445,37 @@
 			cnf->useropts = ast_strdup(useropts);
 			cnf->adminopts = ast_strdup(adminopts);
 			cnf->bookid = ast_strdup(bookid);
-			snprintf(recordingtmp, sizeof(recordingtmp), "%s/meetme/meetme-conf-rec-%s-%s", ast_config_AST_SPOOL_DIR, confno, bookid);
-			cnf->recordingfilename = ast_strdup(recordingtmp);
-			cnf->recordingformat = ast_strdup("wav");
+			cnf->recordingfilename = ast_strdup(recordingfilename);
+			cnf->recordingformat = ast_strdup(recordingformat);
+
+			if (strchr(cnf->useropts, 'r')) {
+				if (ast_strlen_zero(recordingfilename)) { /* If the recordingfilename in the database is empty, use the channel definition or use the default. */
+					ast_channel_lock(chan);
+					if ((var2 = pbx_builtin_getvar_helper(chan, "MEETME_RECORDINGFILE"))) {
+						ast_free(cnf->recordingfilename);
+						cnf->recordingfilename = ast_strdup(var2);
+					}
+					ast_channel_unlock(chan);
+					if (ast_strlen_zero(cnf->recordingfilename)) {
+						snprintf(recordingtmp, sizeof(recordingtmp), "meetme-conf-rec-%s-%s", cnf->confno, chan->uniqueid);
+						ast_free(cnf->recordingfilename);
+						cnf->recordingfilename = ast_strdup(recordingtmp);
+					}
+				}
+				if (ast_strlen_zero(cnf->recordingformat)) {/* If the recording format is empty, use the wav as default */
+					ast_channel_lock(chan);
+					if ((var2 = pbx_builtin_getvar_helper(chan, "MEETME_RECORDINGFORMAT"))) {
+						ast_free(cnf->recordingformat);
+						cnf->recordingformat = ast_strdup(var2);
+					}
+					ast_channel_unlock(chan);
+					if (ast_strlen_zero(cnf->recordingformat)) {
+						ast_free(cnf->recordingformat);
+						cnf->recordingformat = ast_strdup("wav");
+					}
+				}
+				ast_verb(4, "Starting recording of MeetMe Conference %s into file %s.%s.\n", cnf->confno, cnf->recordingfilename, cnf->recordingformat);
+			}
 		}
 	}
 
@@ -3816,6 +3851,7 @@
 									}
 								}
 								/* Run the conference */

[... 26200 lines stripped ...]



More information about the svn-commits mailing list