[asterisk-commits] oej: branch oej/fagi-adventures r128194 - in /team/oej/fagi-adventures: ./ ap...

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Sat Jul 5 12:27:49 CDT 2008


Author: oej
Date: Sat Jul  5 12:27:48 2008
New Revision: 128194

URL: http://svn.digium.com/view/asterisk?view=rev&rev=128194
Log:
Trying to reset this branch

Added:
    team/oej/fagi-adventures/build_tools/make_version_h
      - copied unchanged from r109316, trunk/build_tools/make_version_h
    team/oej/fagi-adventures/configs/dbsep.conf.sample
      - copied unchanged from r109316, trunk/configs/dbsep.conf.sample
    team/oej/fagi-adventures/configs/dsp.conf.sample
      - copied unchanged from r109316, trunk/configs/dsp.conf.sample
    team/oej/fagi-adventures/contrib/scripts/dbsep.cgi
      - copied unchanged from r109316, trunk/contrib/scripts/dbsep.cgi
    team/oej/fagi-adventures/doc/janitor-projects.txt
      - copied unchanged from r109316, trunk/doc/janitor-projects.txt
    team/oej/fagi-adventures/funcs/func_config.c
      - copied unchanged from r109316, trunk/funcs/func_config.c
    team/oej/fagi-adventures/include/asterisk/ast_version.h
      - copied unchanged from r109316, trunk/include/asterisk/ast_version.h
Removed:
    team/oej/fagi-adventures/include/asterisk/version.h
    team/oej/fagi-adventures/main/minimime/
Modified:
    team/oej/fagi-adventures/   (props changed)
    team/oej/fagi-adventures/CHANGES
    team/oej/fagi-adventures/Makefile
    team/oej/fagi-adventures/Makefile.rules
    team/oej/fagi-adventures/UPGRADE.txt
    team/oej/fagi-adventures/acinclude.m4
    team/oej/fagi-adventures/apps/app_amd.c
    team/oej/fagi-adventures/apps/app_authenticate.c
    team/oej/fagi-adventures/apps/app_channelredirect.c
    team/oej/fagi-adventures/apps/app_chanspy.c
    team/oej/fagi-adventures/apps/app_dial.c
    team/oej/fagi-adventures/apps/app_dumpchan.c
    team/oej/fagi-adventures/apps/app_externalivr.c
    team/oej/fagi-adventures/apps/app_followme.c
    team/oej/fagi-adventures/apps/app_meetme.c
    team/oej/fagi-adventures/apps/app_minivm.c
    team/oej/fagi-adventures/apps/app_mixmonitor.c
    team/oej/fagi-adventures/apps/app_page.c
    team/oej/fagi-adventures/apps/app_queue.c
    team/oej/fagi-adventures/apps/app_record.c
    team/oej/fagi-adventures/apps/app_rpt.c
    team/oej/fagi-adventures/apps/app_sms.c
    team/oej/fagi-adventures/apps/app_speech_utils.c
    team/oej/fagi-adventures/apps/app_talkdetect.c
    team/oej/fagi-adventures/apps/app_voicemail.c
    team/oej/fagi-adventures/apps/app_waitforsilence.c
    team/oej/fagi-adventures/apps/app_zapras.c
    team/oej/fagi-adventures/build_tools/cflags.xml
    team/oej/fagi-adventures/build_tools/make_buildopts_h
    team/oej/fagi-adventures/build_tools/make_version_c
    team/oej/fagi-adventures/build_tools/menuselect-deps.in
    team/oej/fagi-adventures/build_tools/strip_nonapi
    team/oej/fagi-adventures/cdr/cdr_adaptive_odbc.c
    team/oej/fagi-adventures/cdr/cdr_odbc.c
    team/oej/fagi-adventures/cdr/cdr_pgsql.c
    team/oej/fagi-adventures/channels/Makefile
    team/oej/fagi-adventures/channels/chan_agent.c
    team/oej/fagi-adventures/channels/chan_alsa.c
    team/oej/fagi-adventures/channels/chan_console.c
    team/oej/fagi-adventures/channels/chan_gtalk.c
    team/oej/fagi-adventures/channels/chan_h323.c
    team/oej/fagi-adventures/channels/chan_iax2.c
    team/oej/fagi-adventures/channels/chan_jingle.c
    team/oej/fagi-adventures/channels/chan_local.c
    team/oej/fagi-adventures/channels/chan_mgcp.c
    team/oej/fagi-adventures/channels/chan_misdn.c
    team/oej/fagi-adventures/channels/chan_oss.c
    team/oej/fagi-adventures/channels/chan_phone.c
    team/oej/fagi-adventures/channels/chan_sip.c
    team/oej/fagi-adventures/channels/chan_skinny.c
    team/oej/fagi-adventures/channels/chan_unistim.c
    team/oej/fagi-adventures/channels/chan_vpb.cc
    team/oej/fagi-adventures/channels/chan_zap.c
    team/oej/fagi-adventures/channels/console_gui.c
    team/oej/fagi-adventures/channels/h323/ast_h323.cxx
    team/oej/fagi-adventures/channels/misdn/chan_misdn_config.h
    team/oej/fagi-adventures/channels/misdn/ie.c
    team/oej/fagi-adventures/channels/misdn/isdn_lib.c
    team/oej/fagi-adventures/channels/misdn/isdn_lib.h
    team/oej/fagi-adventures/channels/misdn/isdn_msg_parser.c
    team/oej/fagi-adventures/channels/misdn/portinfo.c
    team/oej/fagi-adventures/codecs/Makefile
    team/oej/fagi-adventures/codecs/codec_g722.c
    team/oej/fagi-adventures/configs/queues.conf.sample
    team/oej/fagi-adventures/configs/sip.conf.sample
    team/oej/fagi-adventures/configs/sip_notify.conf.sample
    team/oej/fagi-adventures/configs/smdi.conf.sample
    team/oej/fagi-adventures/configs/vpb.conf.sample
    team/oej/fagi-adventures/configs/zapata.conf.sample
    team/oej/fagi-adventures/configure
    team/oej/fagi-adventures/configure.ac
    team/oej/fagi-adventures/contrib/init.d/rc.debian.asterisk
    team/oej/fagi-adventures/contrib/init.d/rc.suse.asterisk
    team/oej/fagi-adventures/contrib/scripts/iax-friends.sql
    team/oej/fagi-adventures/contrib/scripts/sip-friends.sql
    team/oej/fagi-adventures/doc/CODING-GUIDELINES
    team/oej/fagi-adventures/doc/externalivr.txt
    team/oej/fagi-adventures/doc/manager_1_1.txt
    team/oej/fagi-adventures/doc/siptls.txt
    team/oej/fagi-adventures/doc/smdi.txt
    team/oej/fagi-adventures/doc/tex/imapstorage.tex
    team/oej/fagi-adventures/doc/tex/realtime.tex
    team/oej/fagi-adventures/doc/voicemail_odbc_postgresql.txt
    team/oej/fagi-adventures/formats/format_pcm.c
    team/oej/fagi-adventures/funcs/func_cdr.c
    team/oej/fagi-adventures/funcs/func_channel.c
    team/oej/fagi-adventures/funcs/func_devstate.c
    team/oej/fagi-adventures/funcs/func_enum.c
    team/oej/fagi-adventures/funcs/func_global.c
    team/oej/fagi-adventures/funcs/func_odbc.c
    team/oej/fagi-adventures/funcs/func_strings.c
    team/oej/fagi-adventures/funcs/func_version.c
    team/oej/fagi-adventures/include/asterisk/   (props changed)
    team/oej/fagi-adventures/include/asterisk/_private.h
    team/oej/fagi-adventures/include/asterisk/aes.h
    team/oej/fagi-adventures/include/asterisk/app.h
    team/oej/fagi-adventures/include/asterisk/audiohook.h
    team/oej/fagi-adventures/include/asterisk/autoconfig.h.in
    team/oej/fagi-adventures/include/asterisk/cdr.h
    team/oej/fagi-adventures/include/asterisk/channel.h
    team/oej/fagi-adventures/include/asterisk/config.h
    team/oej/fagi-adventures/include/asterisk/dnsmgr.h
    team/oej/fagi-adventures/include/asterisk/dsp.h
    team/oej/fagi-adventures/include/asterisk/extconf.h
    team/oej/fagi-adventures/include/asterisk/frame.h
    team/oej/fagi-adventures/include/asterisk/global_datastores.h
    team/oej/fagi-adventures/include/asterisk/http.h
    team/oej/fagi-adventures/include/asterisk/lock.h
    team/oej/fagi-adventures/include/asterisk/manager.h
    team/oej/fagi-adventures/include/asterisk/module.h
    team/oej/fagi-adventures/include/asterisk/pbx.h
    team/oej/fagi-adventures/include/asterisk/pval.h
    team/oej/fagi-adventures/include/asterisk/rtp.h
    team/oej/fagi-adventures/include/asterisk/sched.h
    team/oej/fagi-adventures/include/asterisk/slinfactory.h
    team/oej/fagi-adventures/include/asterisk/smdi.h
    team/oej/fagi-adventures/include/asterisk/strings.h
    team/oej/fagi-adventures/include/asterisk/tcptls.h
    team/oej/fagi-adventures/include/asterisk/time.h
    team/oej/fagi-adventures/main/Makefile
    team/oej/fagi-adventures/main/alaw.c
    team/oej/fagi-adventures/main/app.c
    team/oej/fagi-adventures/main/ast_expr2f.c
    team/oej/fagi-adventures/main/asterisk.c
    team/oej/fagi-adventures/main/astobj2.c
    team/oej/fagi-adventures/main/audiohook.c
    team/oej/fagi-adventures/main/autoservice.c
    team/oej/fagi-adventures/main/callerid.c
    team/oej/fagi-adventures/main/cdr.c
    team/oej/fagi-adventures/main/channel.c
    team/oej/fagi-adventures/main/cli.c
    team/oej/fagi-adventures/main/config.c
    team/oej/fagi-adventures/main/cryptostub.c
    team/oej/fagi-adventures/main/dial.c
    team/oej/fagi-adventures/main/dlfcn.c
    team/oej/fagi-adventures/main/dns.c
    team/oej/fagi-adventures/main/dsp.c
    team/oej/fagi-adventures/main/editline/Makefile.in
    team/oej/fagi-adventures/main/editline/readline.c
    team/oej/fagi-adventures/main/enum.c
    team/oej/fagi-adventures/main/event.c
    team/oej/fagi-adventures/main/features.c
    team/oej/fagi-adventures/main/file.c
    team/oej/fagi-adventures/main/frame.c
    team/oej/fagi-adventures/main/fskmodem.c
    team/oej/fagi-adventures/main/global_datastores.c
    team/oej/fagi-adventures/main/hashtab.c
    team/oej/fagi-adventures/main/http.c
    team/oej/fagi-adventures/main/image.c
    team/oej/fagi-adventures/main/jitterbuf.c
    team/oej/fagi-adventures/main/loader.c
    team/oej/fagi-adventures/main/logger.c
    team/oej/fagi-adventures/main/manager.c
    team/oej/fagi-adventures/main/netsock.c
    team/oej/fagi-adventures/main/pbx.c
    team/oej/fagi-adventures/main/poll.c
    team/oej/fagi-adventures/main/rtp.c
    team/oej/fagi-adventures/main/say.c
    team/oej/fagi-adventures/main/slinfactory.c
    team/oej/fagi-adventures/main/stdtime/localtime.c
    team/oej/fagi-adventures/main/strcompat.c
    team/oej/fagi-adventures/main/tcptls.c
    team/oej/fagi-adventures/main/tdd.c
    team/oej/fagi-adventures/main/term.c
    team/oej/fagi-adventures/main/translate.c
    team/oej/fagi-adventures/main/udptl.c
    team/oej/fagi-adventures/main/utils.c
    team/oej/fagi-adventures/makeopts.in
    team/oej/fagi-adventures/pbx/pbx_ael.c
    team/oej/fagi-adventures/pbx/pbx_config.c
    team/oej/fagi-adventures/res/Makefile
    team/oej/fagi-adventures/res/ael/ael.flex
    team/oej/fagi-adventures/res/ael/ael.tab.c
    team/oej/fagi-adventures/res/ael/ael.tab.h
    team/oej/fagi-adventures/res/ael/ael.y
    team/oej/fagi-adventures/res/ael/ael_lex.c
    team/oej/fagi-adventures/res/ael/pval.c
    team/oej/fagi-adventures/res/res_agi.c
    team/oej/fagi-adventures/res/res_config_curl.c
    team/oej/fagi-adventures/res/res_config_ldap.c
    team/oej/fagi-adventures/res/res_config_odbc.c
    team/oej/fagi-adventures/res/res_config_pgsql.c
    team/oej/fagi-adventures/res/res_config_sqlite.c
    team/oej/fagi-adventures/res/res_jabber.c
    team/oej/fagi-adventures/res/res_monitor.c
    team/oej/fagi-adventures/res/res_musiconhold.c
    team/oej/fagi-adventures/res/res_phoneprov.c
    team/oej/fagi-adventures/res/res_smdi.c
    team/oej/fagi-adventures/res/snmp/agent.c
    team/oej/fagi-adventures/sounds/Makefile
    team/oej/fagi-adventures/sounds/sounds.xml
    team/oej/fagi-adventures/utils/Makefile
    team/oej/fagi-adventures/utils/ael_main.c
    team/oej/fagi-adventures/utils/astcanary.c
    team/oej/fagi-adventures/utils/astman.c
    team/oej/fagi-adventures/utils/check_expr.c
    team/oej/fagi-adventures/utils/conf2ael.c
    team/oej/fagi-adventures/utils/extconf.c

Propchange: team/oej/fagi-adventures/
------------------------------------------------------------------------------
    automerge = http://www.codename-pineapple.org/

Propchange: team/oej/fagi-adventures/
------------------------------------------------------------------------------
Binary property 'branch-1.4-blocked' - no diff available.

Propchange: team/oej/fagi-adventures/
------------------------------------------------------------------------------
Binary property 'branch-1.4-merged' - no diff available.

Propchange: team/oej/fagi-adventures/
------------------------------------------------------------------------------
--- svn:externals (original)
+++ svn:externals Sat Jul  5 12:27:48 2008
@@ -1,1 +1,1 @@
-menuselect https://origsvn.digium.com/svn/menuselect/branches/1.0
+menuselect https://origsvn.digium.com/svn/menuselect/trunk

Propchange: team/oej/fagi-adventures/
------------------------------------------------------------------------------
    svnmerge-blocked = /branches/1.4:106178

Propchange: team/oej/fagi-adventures/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Sat Jul  5 12:27:48 2008
@@ -1,1 +1,1 @@
-/trunk:1-103452
+/trunk:1-109354

Modified: team/oej/fagi-adventures/CHANGES
URL: http://svn.digium.com/view/asterisk/team/oej/fagi-adventures/CHANGES?view=diff&rev=128194&r1=128193&r2=128194
==============================================================================
--- team/oej/fagi-adventures/CHANGES (original)
+++ team/oej/fagi-adventures/CHANGES Sat Jul  5 12:27:48 2008
@@ -1,6 +1,20 @@
 ------------------------------------------------------------------------------
---- Functionality changes since Asterisk 1.4-beta was branched ----------------
--------------------------------------------------------------------------------
+--- Functionality changes from Asterisk 1.6.0 to Asterisk 1.6.1  -------------
+------------------------------------------------------------------------------
+
+Dialplan Functions
+------------------
+ * Added a new dialplan function, AST_CONFIG(), which allows you to access
+   variables from an Asterisk configuration file.
+
+Zaptel channel driver (chan_zap) Changes
+----------------------------------------
+ * Channels can now be configured using named sections in zapata.conf, just
+   like other channel drivers, including the use of templates.
+
+------------------------------------------------------------------------------
+--- Functionality changes from Asterisk 1.4.X to Asterisk 1.6.0  -------------
+------------------------------------------------------------------------------
 
 AMI - The manager (TCP/TLS/HTTP)
 --------------------------------
@@ -47,6 +61,12 @@
   * Added new action insert to add new variable to category at specified line.
   * Updated action newcat to allow new category to be inserted in file above another
     existing category.
+  * Added new event "JitterBufStats" in the IAX2 channel
+  * Originate now requires the Originate privilege and, if you want to call out
+    to a subshell, it requires the System privilege, as well.  This was done to
+    enhance manager security.
+  * New command: Atxfer. See doc/manager_1_1.txt for more details or 
+    manager show command Atxfer from the CLI
 
 Dialplan functions
 ------------------
@@ -93,6 +113,9 @@
   * New CLI command: "core set chanvar" to set a channel variable from the CLI.
   * Added an easy way to execute Asterisk CLI commands at startup.  Any commands
     listed in the startup_commands section of cli.conf will get executed.
+  * Added a CLI command, "devstate change", which allows you to set custom device
+     states from the func_devstate module that provides the DEVICE_STATE() function
+     and handling of the "Custom:" devices.
 
 SIP changes
 -----------
@@ -144,6 +167,8 @@
      SIP session.
   * Added TCP and TLS support for SIP.  See doc/siptls.txt and configs/sip.conf.sample for
      more information on how it is used.
+  * Added a new configuration option "authfailureevents" that enables manager events when
+    a peer can't authenticate properly. 
 
 IAX2 changes
 ------------
@@ -277,6 +302,12 @@
      lockfile will not work, such as on SMB/CIFS mounts.
   * Added the ability to backup deleted messages, to ease recovery in the case
      that a user accidentally deletes a message, and discovers that they need it.
+  * Reworked the SMDI interface in Asterisk.  The new way to access SMDI information
+     is through the new functions, SMDI_MSG_RETRIEVE() and SMDI_MSG().  The file
+     smdi.conf can now be configured with options to map SMDI station IDs to Asterisk
+     voicemail boxes.  The SMDI interface can also poll for MWI changes when some
+     outside entity is modifying the state of the mailbox (such as IMAP storage or
+     a web interface of some kind).
 
 Queue changes
 -------------
@@ -364,6 +395,14 @@
      direct options to the app.
   * AMD() has a new "maximum word length" option. "show application AMD" from the CLI
      for more details
+  * GotoIfTime() now may branch based on a "false" condition, like other Goto-related applications
+  * The ChannelRedirect application no longer exits the dialplan if the given channel
+     does not exist. It will now set the CHANNELREDIRECT_STATUS variable to SUCCESS upon success
+     or NOCHANNEL if the given channel was not found.
+  * The silencethreshold setting that was previously configurable in multiple
+     applications is now settable globally via dsp.conf.
+  * Added ability to communicate over a TCP socket instead of forking a child process for the 
+    ExternalIVR application.
 
 Music On Hold Changes
 ---------------------
@@ -441,6 +480,31 @@
      rotatestrategry=rotate, to allow a limit on the number of logfiles kept
      and to ensure that the oldest log file gets deleted.
   * Added realtime support for the queue log
+
+Call Detail Records 
+-------------------
+  * The cdr_manager module has a [mappings] feature, like cdr_custom,
+    to add fields to the manager event from the CDR variables.
+  * Added cdr_adaptive_odbc, a new module that adapts to the structure of your
+     backend database CDR table.  Specifically, additional, non-standard
+     columns are supported, merely by setting the corresponding CDR variable in
+     your dialplan.  In addition, you may alias any column to another name (for
+     example, if you want the 'src' CDR variable to be column 'ANI' in the DB,
+     simply "alias src => ANI" in the configuration file).  Records may be
+     posted to more than one backend, simply by specifying multiple categories
+     in the configuration file.  And finally, you may filter which CDRs get
+     posted to each backend, by specifying a filter (which the record must
+     match) for the particular category.  Filters are additive (meaning all
+     rules must match to post that CDR).
+  * The Postgres CDR module now supports some features of the cdr_adaptive_odbc
+     module.  Specifically, you may add additional columns into the table and
+     they will be set, if you set the corresponding CDR variable name.  Also,
+     if you omit columns in your database table, they will be silently skipped
+     (but a record will still be inserted, based on what columns remain).  Note
+     that the other two features from cdr_adaptive_odbc (alias and filter) are
+     not currently supported.
+  * The ResetCDR application now has an 'e' option that re-enables a CDR if it
+     has been disabled using the NoCDR application.
 
 Miscellaneous New Modules
 -------------------------
@@ -486,8 +550,6 @@
   * Added maxfiles option to options section of asterisk.conf which allows you to specify
      what Asterisk should set as the maximum number of open files when it loads.
   * Added the jittertargetextra configuration option.
-  * The cdr_manager module has a [mappings] feature, like cdr_custom,
-    to add fields to the manager event from the CDR variables.
   * Added support for setting the CoS for VLAN traffic (802.1p).  See the sample
      configuration files for the IP channel drivers.  The new option is "cos".
      This information is also documented in doc/qos.tex, or the IP Quality of Service
@@ -512,3 +574,7 @@
      do not come from the remote party.
   * Added the 'n' option to the SpeechBackground application to tell it to not
      answer the channel if it has not already been answered.
+  * Added a compiler flag, CHANNEL_TRACE, which permits channel tracing to be
+     turned on, via the CHANNEL(trace) dialplan function.  Could be useful for
+     dialplan debugging.
+

Modified: team/oej/fagi-adventures/Makefile
URL: http://svn.digium.com/view/asterisk/team/oej/fagi-adventures/Makefile?view=diff&rev=128194&r1=128193&r2=128194
==============================================================================
--- team/oej/fagi-adventures/Makefile (original)
+++ team/oej/fagi-adventures/Makefile Sat Jul  5 12:27:48 2008
@@ -350,7 +350,7 @@
 	@echo "****"
 	@exit 1
 
-menuselect.makeopts: menuselect/menuselect menuselect-tree
+menuselect.makeopts: menuselect/menuselect menuselect-tree makeopts
 	menuselect/menuselect --check-deps $(GLOBAL_MAKEOPTS) $(USER_MAKEOPTS) menuselect.makeopts
 
 $(MOD_SUBDIRS_EMBED_LDSCRIPT):
@@ -373,7 +373,7 @@
 	@$(MAKE) $(PRINT_DIR) $(MOD_SUBDIRS_EMBED_LDFLAGS)
 	@$(MAKE) $(PRINT_DIR) $(MOD_SUBDIRS_EMBED_LIBS)
 
-$(SUBDIRS): main/version.c include/asterisk/build.h include/asterisk/buildopts.h defaults.h makeopts.embed_rules
+$(SUBDIRS): main/version.c include/asterisk/version.h include/asterisk/build.h include/asterisk/buildopts.h defaults.h makeopts.embed_rules
 
 ifeq ($(findstring $(OSARCH), mingw32 cygwin ),)
     # Non-windows:
@@ -409,6 +409,11 @@
 	@cmp -s $@.tmp $@ || mv $@.tmp $@
 	@rm -f $@.tmp
 
+include/asterisk/version.h:
+	@build_tools/make_version_h > $@.tmp
+	@cmp -s $@.tmp $@ || mv $@.tmp $@
+	@rm -f $@.tmp
+
 include/asterisk/buildopts.h: menuselect.makeopts
 	@build_tools/make_buildopts_h > $@.tmp
 	@cmp -s $@.tmp $@ || mv $@.tmp $@
@@ -429,6 +434,7 @@
 	rm -f defaults.h
 	rm -f include/asterisk/build.h
 	rm -f main/version.c
+	rm -f include/asterisk/version.h
 	@$(MAKE) -C menuselect clean
 	cp -f .cleancount .lastclean
 
@@ -439,7 +445,7 @@
 	@$(MAKE) -C sounds dist-clean
 	rm -f menuselect.makeopts makeopts menuselect-tree menuselect.makedeps
 	rm -f makeopts.embed_rules
-	rm -f config.log config.status
+	rm -f config.log config.status config.cache
 	rm -rf autom4te.cache
 	rm -f include/asterisk/autoconfig.h
 	rm -f include/asterisk/buildopts.h
@@ -558,7 +564,14 @@
 		echo " WARNING WARNING WARNING" ;\
 	fi
 
-install: datafiles bininstall $(SUBDIRS_INSTALL)
+badshell:
+ifneq ($(findstring ~,$(DESTDIR)),)
+	@echo "Your shell doesn't do ~ expansion when expected (specifically, when doing \"make install DESTDIR=~/path\")."
+	@echo "Try replacing ~ with \$$HOME, as in \"make install DESTDIR=\$$HOME/path\"."
+	@exit 1
+endif
+
+install: badshell datafiles bininstall $(SUBDIRS_INSTALL)
 	@if [ -x /usr/sbin/asterisk-post-install ]; then \
 		/usr/sbin/asterisk-post-install $(DESTDIR) . ; \
 	fi
@@ -709,7 +722,7 @@
 
 rpm: __rpm
 
-__rpm: main/version.c include/asterisk/buildopts.h spec
+__rpm: main/version.c include/asterisk/version.h include/asterisk/buildopts.h spec
 	rm -rf /tmp/asterisk ; \
 	mkdir -p /tmp/asterisk/redhat/RPMS/i386 ; \
 	$(MAKE) DESTDIR=/tmp/asterisk install ; \
@@ -798,22 +811,38 @@
 
 menuconfig: menuselect
 
+cmenuconfig: cmenuselect
+
 gmenuconfig: gmenuselect
+
+nmenuconfig: nmenuselect
 
 menuselect: menuselect/menuselect menuselect-tree
 	- at menuselect/menuselect $(GLOBAL_MAKEOPTS) $(USER_MAKEOPTS) menuselect.makeopts && (echo "menuselect changes saved!"; rm -f channels/h323/Makefile.ast main/asterisk) || echo "menuselect changes NOT saved!"
 
+cmenuselect: menuselect/cmenuselect menuselect-tree
+	- at menuselect/cmenuselect $(GLOBAL_MAKEOPTS) $(USER_MAKEOPTS) menuselect.makeopts && (echo "menuselect changes saved!"; rm -f channels/h323/Makefile.ast main/asterisk) || echo "menuselect changes NOT saved!"
+
 gmenuselect: menuselect/gmenuselect menuselect-tree
 	- at menuselect/gmenuselect $(GLOBAL_MAKEOPTS) $(USER_MAKEOPTS) menuselect.makeopts && (echo "menuselect changes saved!"; rm -f channels/h323/Makefile.ast main/asterisk) || echo "menuselect changes NOT saved!"
 
+nmenuselect: menuselect/nmenuselect menuselect-tree
+	- at menuselect/nmenuselect $(GLOBAL_MAKEOPTS) $(USER_MAKEOPTS) menuselect.makeopts && (echo "menuselect changes saved!"; rm -f channels/h323/Makefile.ast main/asterisk) || echo "menuselect changes NOT saved!"
+
 # options for make in menuselect/
 MAKE_MENUSELECT=CC="$(HOST_CC)" CXX="$(CXX)" LD="" AR="" RANLIB="" CFLAGS="" $(MAKE) -C menuselect CONFIGURE_SILENT="--silent"
 
 menuselect/menuselect: menuselect/makeopts
 	$(MAKE_MENUSELECT)
 
+menuselect/cmenuselect: menuselect/makeopts
+	$(MAKE_MENUSELECT) cmenuselect
+
 menuselect/gmenuselect: menuselect/makeopts
 	$(MAKE_MENUSELECT) gmenuselect
+
+menuselect/nmenuselect: menuselect/makeopts
+	$(MAKE_MENUSELECT) nmenuselect
 
 menuselect/makeopts:
 	$(MAKE_MENUSELECT) makeopts
@@ -834,4 +863,4 @@
 asterisk.pdf:
 	$(MAKE) -C doc/tex asterisk.pdf
 
-.PHONY: menuselect main sounds clean dist-clean distclean all prereqs cleantest uninstall _uninstall uninstall-all pdf dont-optimize $(SUBDIRS_INSTALL) $(SUBDIRS_DIST_CLEAN) $(SUBDIRS_CLEAN) $(SUBDIRS_UNINSTALL) $(SUBDIRS) $(MOD_SUBDIRS_EMBED_LDSCRIPT) $(MOD_SUBDIRS_EMBED_LDFLAGS) $(MOD_SUBDIRS_EMBED_LIBS) main/version.c
+.PHONY: menuselect main sounds clean dist-clean distclean all prereqs cleantest uninstall _uninstall uninstall-all pdf dont-optimize $(SUBDIRS_INSTALL) $(SUBDIRS_DIST_CLEAN) $(SUBDIRS_CLEAN) $(SUBDIRS_UNINSTALL) $(SUBDIRS) $(MOD_SUBDIRS_EMBED_LDSCRIPT) $(MOD_SUBDIRS_EMBED_LDFLAGS) $(MOD_SUBDIRS_EMBED_LIBS) badshell main/version.c include/asterisk/version.h

Modified: team/oej/fagi-adventures/Makefile.rules
URL: http://svn.digium.com/view/asterisk/team/oej/fagi-adventures/Makefile.rules?view=diff&rev=128194&r1=128193&r2=128194
==============================================================================
--- team/oej/fagi-adventures/Makefile.rules (original)
+++ team/oej/fagi-adventures/Makefile.rules Sat Jul  5 12:27:48 2008
@@ -61,7 +61,7 @@
 
 %.oo: %.cc
 	$(ECHO_PREFIX) echo "   [CXX] $< -> $@"
-	$(CMD_PREFIX) $(CXX) -o $@ -c $< $(PTHREAD_CFLAGS) $(filter-out -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations,$(ASTCFLAGS)) $(MAKE_DEPS)
+	$(CMD_PREFIX) $(CXX) -o $@ -c $< $(PTHREAD_CFLAGS) $(filter-out -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations $(AST_DECLARATION_AFTER_STATEMENT),$(ASTCFLAGS)) $(MAKE_DEPS)
 
 %.c: %.y
 	$(ECHO_PREFIX) echo "   [BISON] $< -> $@"

Modified: team/oej/fagi-adventures/UPGRADE.txt
URL: http://svn.digium.com/view/asterisk/team/oej/fagi-adventures/UPGRADE.txt?view=diff&rev=128194&r1=128193&r2=128194
==============================================================================
--- team/oej/fagi-adventures/UPGRADE.txt (original)
+++ team/oej/fagi-adventures/UPGRADE.txt Sat Jul  5 12:27:48 2008
@@ -56,6 +56,9 @@
 * The concise versions of various CLI commands are now deprecated. We recommend
   using the manager interface (AMI) for application integration with Asterisk.
 
+* The silencethreshold used for various applications is now settable via a
+  centralized config option in dsp.conf.
+
 Voicemail:
 
 * The voicemail configuration values 'maxmessage' and 'minmessage' have
@@ -77,6 +80,9 @@
 * ChanIsAvail() now has a 't' option, which allows the specified device
   to be queried for state without consulting the channel drivers. This
   performs mostly a 'ChanExists' sort of function.
+* ChannelRedirect() will not terminate the channel that fails to do a
+  channelredirect as it has done previously. Instead CHANNELREDIRECT_STATUS
+  will reflect if the attempt was successful of not.
 * SetCallerPres() has been replaced with the CALLERPRES() dialplan function
   and is now deprecated.
 * DISA()'s fifth argument is now an options argument.  If you have previously
@@ -92,6 +98,11 @@
   you need to do so explicitly in your dialplan.
 * Privacy() no longer uses privacy.conf, so any options must be specified
   directly in the application arguments.
+* MusicOnHold application now has duration parameter which allows specifying
+  timeout in seconds.
+* WaitMusicOnHold application is now deprecated in favor of extended MusicOnHold.
+* SetMusicOnHold is now deprecated. You should use Set(CHANNEL(musicclass)=...)
+  instead.
 
 Dialplan Functions:
 
@@ -149,11 +160,17 @@
   to modify modules.conf to add another "noload" line to ensure that only one of
   these three modules gets loaded.
 
+* Zap: The "msdstrip" option has been deprecated, as it provides no value over
+  the method of stripping digits in the dialplan using variable substring syntax.
+
 Configuration:
 
 * pbx_dundi.c: tos parameter changed to use new values. Old values like lowdelay,
   lowcost and other is not acceptable now. Look into qos.tex for description of 
   this parameter.
+
+* queues.conf: the queue-lessthan sound file option is no longer available, and the
+  queue-round-seconds option no longer takes '1' as a valid parameter.
 
 Manager:
 
@@ -167,3 +184,6 @@
    change your manager.conf to add the level to existing AMI users, if they
    want to see the CDR events generated.
 
+* The Originate command now requires the Originate write permission.  For
+   Originate with the Application parameter, you need the additional System
+   privilege if you want to do anything that calls out to a subshell.

Modified: team/oej/fagi-adventures/acinclude.m4
URL: http://svn.digium.com/view/asterisk/team/oej/fagi-adventures/acinclude.m4?view=diff&rev=128194&r1=128193&r2=128194
==============================================================================
--- team/oej/fagi-adventures/acinclude.m4 (original)
+++ team/oej/fagi-adventures/acinclude.m4 Sat Jul  5 12:27:48 2008
@@ -114,7 +114,7 @@
 		AC_DEFINE([HAVE_$1], 1, [Define if your system has the $1 headers.])
 		AC_DEFINE([HAVE_$1_VERSION], $4, [Define $1 headers version])
 	    ],
-	    [       AC_MSG_RESULT(no) ] 
+	    [   AC_MSG_RESULT(no) ] 
 	)
 	CPPFLAGS="${saved_cppflags}"
     fi
@@ -230,7 +230,10 @@
 		fi
 		CPPFLAGS="${CPPFLAGS} ${$1_INCLUDE}"
 
-		AC_COMPILE_IFELSE(
+		saved_ldflags="${LDFLAGS}"
+		LDFLAGS="${$1_LIB}"
+
+		AC_LINK_IFELSE(
 		    [ AC_LANG_PROGRAM( [ $5 ],
 				       [ $6; ]
 				       )],
@@ -240,6 +243,7 @@
 		    []
 		)
 		CPPFLAGS="${saved_cppflags}"
+		LDFLAGS="${saved_ldflags}"
 	    else
 		PBX_$1=1
 		AC_DEFINE([HAVE_$1], 1, [Define if your system has the $1 libraries.])

Modified: team/oej/fagi-adventures/apps/app_amd.c
URL: http://svn.digium.com/view/asterisk/team/oej/fagi-adventures/apps/app_amd.c?view=diff&rev=128194&r1=128193&r2=128194
==============================================================================
--- team/oej/fagi-adventures/apps/app_amd.c (original)
+++ team/oej/fagi-adventures/apps/app_amd.c Sat Jul  5 12:27:48 2008
@@ -371,6 +371,8 @@
 	struct ast_variable *var = NULL;
 	struct ast_flags config_flags = { reload ? CONFIG_FLAG_FILEUNCHANGED : 0 };
 
+	dfltSilenceThreshold = ast_dsp_get_threshold_from_settings(THRESHOLD_SILENCE);
+
 	if (!(cfg = ast_config_load("amd.conf", config_flags))) {
 		ast_log(LOG_ERROR, "Configuration file amd.conf missing.\n");
 		return -1;

Modified: team/oej/fagi-adventures/apps/app_authenticate.c
URL: http://svn.digium.com/view/asterisk/team/oej/fagi-adventures/apps/app_authenticate.c?view=diff&rev=128194&r1=128193&r2=128194
==============================================================================
--- team/oej/fagi-adventures/apps/app_authenticate.c (original)
+++ team/oej/fagi-adventures/apps/app_authenticate.c Sat Jul  5 12:27:48 2008
@@ -159,8 +159,8 @@
 					continue;
 
 				len = strlen(buf) - 1;
-				if (buf[len - 1] == '\n')
-					buf[len - 1] = '\0';
+				if (buf[len] == '\n')
+					buf[len] = '\0';
 
 				if (ast_test_flag(&flags, OPT_MULTIPLE)) {
 					md5secret = buf;

Modified: team/oej/fagi-adventures/apps/app_channelredirect.c
URL: http://svn.digium.com/view/asterisk/team/oej/fagi-adventures/apps/app_channelredirect.c?view=diff&rev=128194&r1=128193&r2=128194
==============================================================================
--- team/oej/fagi-adventures/apps/app_channelredirect.c (original)
+++ team/oej/fagi-adventures/apps/app_channelredirect.c Sat Jul  5 12:27:48 2008
@@ -39,8 +39,10 @@
 static char *synopsis = "Redirects given channel to a dialplan target.";
 static char *descrip =
 "ChannelRedirect(channel,[[context,]extension,]priority)\n"
-"  Sends the specified channel to the specified extension priority\n";
-
+"  Sends the specified channel to the specified extension priority\n"
+"This application sets the following channel variables upon completion:\n"
+"  CHANNELREDIRECT_STATUS - Are set to the result of the redirection\n"
+"                           either NOCHANNEL or SUCCESS\n";
 
 static int asyncgoto_exec(struct ast_channel *chan, void *data)
 {
@@ -69,11 +71,12 @@
 	chan2 = ast_get_channel_by_name_locked(args.channel);
 	if (!chan2) {
 		ast_log(LOG_WARNING, "No such channel: %s\n", args.channel);
-		return -1;
+		pbx_builtin_setvar_helper(chan, "CHANNELREDIRECT_STATUS", "NOCHANNEL");
+		return 0;
 	}
 
-	res = ast_parseable_goto(chan2, args.label);
-
+	res = ast_async_parseable_goto(chan2, args.label);
+	pbx_builtin_setvar_helper(chan, "CHANNELREDIRECT_STATUS", "SUCCESS");
 	ast_channel_unlock(chan2);
 
 	return res;

Modified: team/oej/fagi-adventures/apps/app_chanspy.c
URL: http://svn.digium.com/view/asterisk/team/oej/fagi-adventures/apps/app_chanspy.c?view=diff&rev=128194&r1=128193&r2=128194
==============================================================================
--- team/oej/fagi-adventures/apps/app_chanspy.c (original)
+++ team/oej/fagi-adventures/apps/app_chanspy.c Sat Jul  5 12:27:48 2008
@@ -2,7 +2,7 @@
  * Asterisk -- An open source telephony toolkit.
  *
  * Copyright (C) 2005 Anthony Minessale II (anthmct at yahoo.com)
- * Copyright (C) 2005 - 2006, Digium, Inc.
+ * Copyright (C) 2005 - 2008, Digium, Inc.
  *
  * A license has been granted to Digium (via disclaimer) for the use of
  * this code.
@@ -23,6 +23,8 @@
  * \brief ChanSpy: Listen in on any channel.
  *
  * \author Anthony Minessale II <anthmct at yahoo.com>
+ * \author Joshua Colp <jcolp at digium.com>
+ * \author Russell Bryant <russell at digium.com>
  *
  * \ingroup applications
  */
@@ -222,23 +224,31 @@
 	.generate = spy_generate,
 };
 
-static int start_spying(struct ast_channel *chan, struct ast_channel *spychan, struct ast_audiohook *audiohook)
+static int start_spying(struct ast_channel *chan, const char *spychan_name, struct ast_audiohook *audiohook) 
 {
 	int res = 0;
 	struct ast_channel *peer = NULL;
 
-	ast_log(LOG_NOTICE, "Attaching %s to %s\n", spychan->name, chan->name);
+	ast_log(LOG_NOTICE, "Attaching %s to %s\n", spychan_name, chan->name);
 
 	res = ast_audiohook_attach(chan, audiohook);
 
-	if (!res && ast_test_flag(chan, AST_FLAG_NBRIDGE) && (peer = ast_bridged_channel(chan)))
+	if (!res && ast_test_flag(chan, AST_FLAG_NBRIDGE) && (peer = ast_bridged_channel(chan))) {
+		ast_channel_unlock(chan);
 		ast_softhangup(peer, AST_SOFTHANGUP_UNBRIDGE);
+	} else
+		ast_channel_unlock(chan);
 
 	return res;
 }
 
-static int channel_spy(struct ast_channel *chan, struct ast_channel *spyee, int *volfactor, int fd,
-	const struct ast_flags *flags, char *exitcontext)
+struct chanspy_ds {
+	struct ast_channel *chan;
+	ast_mutex_t lock;
+};
+
+static int channel_spy(struct ast_channel *chan, struct chanspy_ds *spyee_chanspy_ds, 
+	int *volfactor, int fd, const struct ast_flags *flags, char *exitcontext) 
 {
 	struct chanspy_translation_helper csth;
 	int running = 0, res, x = 0;
@@ -246,9 +256,29 @@
 	char *name;
 	struct ast_frame *f;
 	struct ast_silence_generator *silgen = NULL;
-
-	if (ast_check_hangup(chan) || ast_check_hangup(spyee))
+	struct ast_channel *spyee = NULL;
+	const char *spyer_name;
+
+	ast_channel_lock(chan);
+	spyer_name = ast_strdupa(chan->name);
+	ast_channel_unlock(chan);
+
+	ast_mutex_lock(&spyee_chanspy_ds->lock);
+	if (spyee_chanspy_ds->chan) {
+		spyee = spyee_chanspy_ds->chan;
+		ast_channel_lock(spyee);
+	}
+	ast_mutex_unlock(&spyee_chanspy_ds->lock);
+
+	if (!spyee)
 		return 0;
+
+	/* We now hold the channel lock on spyee */
+
+	if (ast_check_hangup(chan) || ast_check_hangup(spyee)) {
+		ast_channel_unlock(spyee);
+		return 0;
+	}
 
 	name = ast_strdupa(spyee->name);
 	ast_verb(2, "Spying on channel %s\n", name);
@@ -257,15 +287,17 @@
 
 	ast_audiohook_init(&csth.spy_audiohook, AST_AUDIOHOOK_TYPE_SPY, "ChanSpy");
 
-	if (start_spying(spyee, chan, &csth.spy_audiohook)) {
+	if (start_spying(spyee, spyer_name, &csth.spy_audiohook)) { /* Unlocks spyee */
 		ast_audiohook_destroy(&csth.spy_audiohook);
 		return 0;
 	}
 
 	if (ast_test_flag(flags, OPTION_WHISPER)) {
 		ast_audiohook_init(&csth.whisper_audiohook, AST_AUDIOHOOK_TYPE_WHISPER, "ChanSpy");
-		start_spying(spyee, chan, &csth.whisper_audiohook);
-	}
+		start_spying(spyee, spyer_name, &csth.whisper_audiohook); /* Unlocks spyee */
+	}
+
+	spyee = NULL;
 
 	csth.volfactor = *volfactor;
 
@@ -380,12 +412,94 @@
 	return running;
 }
 
-static struct ast_channel *next_channel(const struct ast_channel *last, const char *spec,
-	const char *exten, const char *context)
+/*!
+ * \note This relies on the embedded lock to be recursive, as it may be called
+ * due to a call to chanspy_ds_free with the lock held there.
+ */
+static void chanspy_ds_destroy(void *data)
+{
+	struct chanspy_ds *chanspy_ds = data;
+
+	/* Setting chan to be NULL is an atomic operation, but we don't want this
+	 * value to change while this lock is held.  The lock is held elsewhere
+	 * while it performs non-atomic operations with this channel pointer */
+
+	ast_mutex_lock(&chanspy_ds->lock);
+	chanspy_ds->chan = NULL;
+	ast_mutex_unlock(&chanspy_ds->lock);
+}
+
+static void chanspy_ds_chan_fixup(void *data, struct ast_channel *old_chan, struct ast_channel *new_chan)
+{
+	struct chanspy_ds *chanspy_ds = data;
+	
+	ast_mutex_lock(&chanspy_ds->lock);
+	chanspy_ds->chan = new_chan;
+	ast_mutex_unlock(&chanspy_ds->lock);
+}
+
+static const struct ast_datastore_info chanspy_ds_info = {
+	.type = "chanspy",
+	.destroy = chanspy_ds_destroy,
+	.chan_fixup = chanspy_ds_chan_fixup,
+};
+
+static struct chanspy_ds *chanspy_ds_free(struct chanspy_ds *chanspy_ds)
+{
+	if (!chanspy_ds)
+		return NULL;
+
+	ast_mutex_lock(&chanspy_ds->lock);
+	if (chanspy_ds->chan) {
+		struct ast_datastore *datastore;
+		struct ast_channel *chan;
+
+		chan = chanspy_ds->chan;
+
+		ast_channel_lock(chan);
+		if ((datastore = ast_channel_datastore_find(chan, &chanspy_ds_info, NULL))) {
+			ast_channel_datastore_remove(chan, datastore);
+			/* chanspy_ds->chan is NULL after this call */
+			chanspy_ds_destroy(datastore->data);
+			datastore->data = NULL;
+			ast_channel_datastore_free(datastore);
+		}
+		ast_channel_unlock(chan);
+	}
+	ast_mutex_unlock(&chanspy_ds->lock);
+
+	return NULL;
+}
+
+/*! \note Returns the channel in the chanspy_ds locked as well as the chanspy_ds locked */
+static struct chanspy_ds *setup_chanspy_ds(struct ast_channel *chan, struct chanspy_ds *chanspy_ds)
+{
+	struct ast_datastore *datastore = NULL;
+
+	ast_mutex_lock(&chanspy_ds->lock);
+
+	chanspy_ds->chan = chan;
+
+	if (!(datastore = ast_channel_datastore_alloc(&chanspy_ds_info, NULL))) {
+		chanspy_ds = chanspy_ds_free(chanspy_ds);
+		ast_channel_unlock(chan);
+		return NULL;
+	}
+
+	datastore->data = chanspy_ds;
+
+	ast_channel_datastore_add(chan, datastore);
+
+	return chanspy_ds;
+}
+
+static struct chanspy_ds *next_channel(struct ast_channel *chan,
+	const struct ast_channel *last, const char *spec,
+	const char *exten, const char *context, struct chanspy_ds *chanspy_ds)
 {
 	struct ast_channel *this;
 
-	redo:
+redo:
 	if (!ast_strlen_zero(spec))
 		this = ast_walk_channel_by_name_prefix_locked(last, spec, strlen(spec));
 
@@ -394,20 +508,25 @@
 	else
 		this = ast_channel_walk_locked(last);
 
-	if (this) {
+	if (!this)
+		return NULL;
+
+	if (!strncmp(this->name, "Zap/pseudo", 10)) {
 		ast_channel_unlock(this);
-		if (!strncmp(this->name, "Zap/pseudo", 10))
-			goto redo;
-	}
-
-	return this;
+		goto redo;
+	} else if (this == chan) {
+		last = this;
+		ast_channel_unlock(this);
+		goto redo;
+	}
+
+	return setup_chanspy_ds(this, chanspy_ds);
 }
 
 static int common_exec(struct ast_channel *chan, const struct ast_flags *flags,
 	int volfactor, const int fd, const char *mygroup, const char *myenforced,
 	const char *spec, const char *exten, const char *context)
 {
-	struct ast_channel *peer, *prev, *next;
 	char nameprefix[AST_NAME_STRLEN];
 	char peer_name[AST_NAME_STRLEN + 5];
 	char exitcontext[AST_MAX_CONTEXT] = "";
@@ -417,6 +536,7 @@
 	char *ptr;
 	int num;
 	int num_spyed_upon = 1;
+	struct chanspy_ds chanspy_ds;
 
 	if (ast_test_flag(flags, OPTION_EXIT)) {
 		const char *c;

[... 35063 lines stripped ...]



More information about the asterisk-commits mailing list