[asterisk-commits] kpfleming: branch kpfleming/dahdi-dsp-options r201100 - in /team/kpfleming/da...

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Tue Jun 16 14:54:09 CDT 2009


Author: kpfleming
Date: Tue Jun 16 14:54:00 2009
New Revision: 201100

URL: http://svn.asterisk.org/svn-view/asterisk?view=rev&rev=201100
Log:
and now up to date

Added:
    team/kpfleming/dahdi-dsp-options/main/astfd.c
      - copied unchanged from r201093, branches/1.6.0/main/astfd.c
Removed:
    team/kpfleming/dahdi-dsp-options/codecs/g722/Makefile
Modified:
    team/kpfleming/dahdi-dsp-options/   (props changed)
    team/kpfleming/dahdi-dsp-options/CHANGES
    team/kpfleming/dahdi-dsp-options/Makefile
    team/kpfleming/dahdi-dsp-options/Makefile.rules
    team/kpfleming/dahdi-dsp-options/agi/Makefile
    team/kpfleming/dahdi-dsp-options/apps/app_chanspy.c
    team/kpfleming/dahdi-dsp-options/apps/app_dial.c
    team/kpfleming/dahdi-dsp-options/apps/app_externalivr.c
    team/kpfleming/dahdi-dsp-options/apps/app_followme.c
    team/kpfleming/dahdi-dsp-options/apps/app_forkcdr.c
    team/kpfleming/dahdi-dsp-options/apps/app_macro.c
    team/kpfleming/dahdi-dsp-options/apps/app_meetme.c
    team/kpfleming/dahdi-dsp-options/apps/app_minivm.c
    team/kpfleming/dahdi-dsp-options/apps/app_mixmonitor.c
    team/kpfleming/dahdi-dsp-options/apps/app_queue.c
    team/kpfleming/dahdi-dsp-options/apps/app_senddtmf.c
    team/kpfleming/dahdi-dsp-options/apps/app_sendtext.c
    team/kpfleming/dahdi-dsp-options/apps/app_stack.c
    team/kpfleming/dahdi-dsp-options/apps/app_test.c
    team/kpfleming/dahdi-dsp-options/apps/app_voicemail.c
    team/kpfleming/dahdi-dsp-options/autoconf/ast_ext_tool_check.m4
    team/kpfleming/dahdi-dsp-options/autoconf/ast_gcc_attribute.m4
    team/kpfleming/dahdi-dsp-options/build_tools/cflags.xml
    team/kpfleming/dahdi-dsp-options/build_tools/embed_modules.xml
    team/kpfleming/dahdi-dsp-options/build_tools/make_version_c
    team/kpfleming/dahdi-dsp-options/build_tools/make_version_h
    team/kpfleming/dahdi-dsp-options/cdr/cdr_radius.c
    team/kpfleming/dahdi-dsp-options/channels/Makefile
    team/kpfleming/dahdi-dsp-options/channels/chan_agent.c
    team/kpfleming/dahdi-dsp-options/channels/chan_alsa.c
    team/kpfleming/dahdi-dsp-options/channels/chan_dahdi.c
    team/kpfleming/dahdi-dsp-options/channels/chan_gtalk.c
    team/kpfleming/dahdi-dsp-options/channels/chan_h323.c
    team/kpfleming/dahdi-dsp-options/channels/chan_iax2.c
    team/kpfleming/dahdi-dsp-options/channels/chan_local.c
    team/kpfleming/dahdi-dsp-options/channels/chan_misdn.c
    team/kpfleming/dahdi-dsp-options/channels/chan_sip.c
    team/kpfleming/dahdi-dsp-options/channels/chan_unistim.c
    team/kpfleming/dahdi-dsp-options/channels/h323/Makefile.in
    team/kpfleming/dahdi-dsp-options/channels/h323/ast_h323.cxx
    team/kpfleming/dahdi-dsp-options/channels/h323/chan_h323.h
    team/kpfleming/dahdi-dsp-options/channels/iax2-parser.c
    team/kpfleming/dahdi-dsp-options/channels/iax2-parser.h
    team/kpfleming/dahdi-dsp-options/channels/iax2.h
    team/kpfleming/dahdi-dsp-options/channels/misdn/isdn_lib.c
    team/kpfleming/dahdi-dsp-options/channels/misdn_config.c
    team/kpfleming/dahdi-dsp-options/codecs/Makefile
    team/kpfleming/dahdi-dsp-options/codecs/g722/g722_decode.c
    team/kpfleming/dahdi-dsp-options/codecs/g722/g722_encode.c
    team/kpfleming/dahdi-dsp-options/configs/chan_dahdi.conf.sample
    team/kpfleming/dahdi-dsp-options/configs/extensions.conf.sample
    team/kpfleming/dahdi-dsp-options/configs/features.conf.sample
    team/kpfleming/dahdi-dsp-options/configs/logger.conf.sample
    team/kpfleming/dahdi-dsp-options/configs/misdn.conf.sample
    team/kpfleming/dahdi-dsp-options/configs/modules.conf.sample
    team/kpfleming/dahdi-dsp-options/configs/res_ldap.conf.sample
    team/kpfleming/dahdi-dsp-options/configs/sip.conf.sample
    team/kpfleming/dahdi-dsp-options/configs/sla.conf.sample
    team/kpfleming/dahdi-dsp-options/configs/smdi.conf.sample
    team/kpfleming/dahdi-dsp-options/configs/voicemail.conf.sample
    team/kpfleming/dahdi-dsp-options/configs/vpb.conf.sample
    team/kpfleming/dahdi-dsp-options/configure   (contents, props changed)
    team/kpfleming/dahdi-dsp-options/configure.ac
    team/kpfleming/dahdi-dsp-options/contrib/scripts/asterisk.ldap-schema
    team/kpfleming/dahdi-dsp-options/contrib/scripts/asterisk.ldif
    team/kpfleming/dahdi-dsp-options/contrib/scripts/get_ilbc_source.sh
    team/kpfleming/dahdi-dsp-options/contrib/scripts/meetme.sql
    team/kpfleming/dahdi-dsp-options/contrib/scripts/realtime_pgsql.sql
    team/kpfleming/dahdi-dsp-options/contrib/scripts/safe_asterisk
    team/kpfleming/dahdi-dsp-options/contrib/scripts/sip-friends.sql
    team/kpfleming/dahdi-dsp-options/doc/ldap.txt
    team/kpfleming/dahdi-dsp-options/doc/tex/cdrdriver.tex
    team/kpfleming/dahdi-dsp-options/formats/format_wav.c
    team/kpfleming/dahdi-dsp-options/formats/format_wav_gsm.c
    team/kpfleming/dahdi-dsp-options/funcs/func_channel.c
    team/kpfleming/dahdi-dsp-options/funcs/func_cut.c
    team/kpfleming/dahdi-dsp-options/funcs/func_devstate.c
    team/kpfleming/dahdi-dsp-options/funcs/func_groupcount.c
    team/kpfleming/dahdi-dsp-options/include/asterisk.h
    team/kpfleming/dahdi-dsp-options/include/asterisk/_private.h
    team/kpfleming/dahdi-dsp-options/include/asterisk/audiohook.h
    team/kpfleming/dahdi-dsp-options/include/asterisk/autoconfig.h.in
    team/kpfleming/dahdi-dsp-options/include/asterisk/cdr.h
    team/kpfleming/dahdi-dsp-options/include/asterisk/channel.h
    team/kpfleming/dahdi-dsp-options/include/asterisk/compat.h
    team/kpfleming/dahdi-dsp-options/include/asterisk/crypto.h
    team/kpfleming/dahdi-dsp-options/include/asterisk/frame.h
    team/kpfleming/dahdi-dsp-options/include/asterisk/linkedlists.h
    team/kpfleming/dahdi-dsp-options/include/asterisk/lock.h
    team/kpfleming/dahdi-dsp-options/include/asterisk/monitor.h
    team/kpfleming/dahdi-dsp-options/include/asterisk/rtp.h
    team/kpfleming/dahdi-dsp-options/include/asterisk/smdi.h
    team/kpfleming/dahdi-dsp-options/include/asterisk/stringfields.h
    team/kpfleming/dahdi-dsp-options/include/asterisk/utils.h
    team/kpfleming/dahdi-dsp-options/main/Makefile
    team/kpfleming/dahdi-dsp-options/main/app.c
    team/kpfleming/dahdi-dsp-options/main/asterisk.c
    team/kpfleming/dahdi-dsp-options/main/audiohook.c
    team/kpfleming/dahdi-dsp-options/main/autoservice.c
    team/kpfleming/dahdi-dsp-options/main/cdr.c
    team/kpfleming/dahdi-dsp-options/main/channel.c
    team/kpfleming/dahdi-dsp-options/main/cli.c
    team/kpfleming/dahdi-dsp-options/main/config.c
    team/kpfleming/dahdi-dsp-options/main/db1-ast/recno/rec_open.c
    team/kpfleming/dahdi-dsp-options/main/features.c
    team/kpfleming/dahdi-dsp-options/main/file.c
    team/kpfleming/dahdi-dsp-options/main/frame.c
    team/kpfleming/dahdi-dsp-options/main/http.c
    team/kpfleming/dahdi-dsp-options/main/loader.c
    team/kpfleming/dahdi-dsp-options/main/logger.c
    team/kpfleming/dahdi-dsp-options/main/manager.c
    team/kpfleming/dahdi-dsp-options/main/pbx.c
    team/kpfleming/dahdi-dsp-options/main/rtp.c
    team/kpfleming/dahdi-dsp-options/main/slinfactory.c
    team/kpfleming/dahdi-dsp-options/main/utils.c
    team/kpfleming/dahdi-dsp-options/pbx/pbx_config.c
    team/kpfleming/dahdi-dsp-options/res/ael/ael.tab.c
    team/kpfleming/dahdi-dsp-options/res/ael/ael.y
    team/kpfleming/dahdi-dsp-options/res/res_agi.c
    team/kpfleming/dahdi-dsp-options/res/res_convert.c
    team/kpfleming/dahdi-dsp-options/res/res_jabber.c
    team/kpfleming/dahdi-dsp-options/res/res_monitor.c
    team/kpfleming/dahdi-dsp-options/res/res_musiconhold.c
    team/kpfleming/dahdi-dsp-options/res/res_smdi.c
    team/kpfleming/dahdi-dsp-options/sounds/Makefile
    team/kpfleming/dahdi-dsp-options/static-http/astman.js
    team/kpfleming/dahdi-dsp-options/utils/   (props changed)
    team/kpfleming/dahdi-dsp-options/utils/Makefile
    team/kpfleming/dahdi-dsp-options/utils/muted.c
    team/kpfleming/dahdi-dsp-options/utils/smsq.c

Propchange: team/kpfleming/dahdi-dsp-options/
------------------------------------------------------------------------------
    reviewboard:url = https://reviewboard.asterisk.org

Propchange: team/kpfleming/dahdi-dsp-options/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Tue Jun 16 14:54:00 2009
@@ -1,1 +1,1 @@
-/branches/1.6.0:1-183442
+/branches/1.6.0:1-201099

Propchange: team/kpfleming/dahdi-dsp-options/
------------------------------------------------------------------------------
Binary property 'trunk-blocked' - no diff available.

Propchange: team/kpfleming/dahdi-dsp-options/
            ('trunk-merge' removed)

Propchange: team/kpfleming/dahdi-dsp-options/
------------------------------------------------------------------------------
Binary property 'trunk-merged' - no diff available.

Modified: team/kpfleming/dahdi-dsp-options/CHANGES
URL: http://svn.asterisk.org/svn-view/asterisk/team/kpfleming/dahdi-dsp-options/CHANGES?view=diff&rev=201100&r1=201099&r2=201100
==============================================================================
--- team/kpfleming/dahdi-dsp-options/CHANGES (original)
+++ team/kpfleming/dahdi-dsp-options/CHANGES Tue Jun 16 14:54:00 2009
@@ -7,6 +7,26 @@
 === and the other UPGRADE files for older releases.
 ===
 ======================================================================
+
+-----------------------------------------------------------------------------------
+--- Functionality changes from Asterisk 1.6.0.10 to Asterisk 1.6.0.11 -------------
+-----------------------------------------------------------------------------------
+
+SIP Changes
+-----------
+ * Added a new 'ignoresdpversion' option to sip.conf.  When this is enabled
+   (either globally or for a specific peer), chan_sip will treat any SDP data
+   it receives as new data and update the media stream accordingly.  By
+   default, Asterisk will only modify the media stream if the SDP session
+   version received is different from the current SDP session version.  This
+   option is required to interoperate with devices that have non-standard SDP
+   session version implementations (observed with Microsoft OCS).  This option
+   is disabled by default. In addition, this behavior is automatic when the SDP received
+   is in response to a T.38 re-INVITE that Asterisk initiated. In this situation,
+   since the call will fail if Asterisk does not process the incoming SDP, Asterisk
+   will accept the SDP even if the SDP version number is not properly incremented,
+   but will generate a warning in the log indicating that the SIP peer that sent
+   the SDP should have the 'ignoresdpversion' option set.
 
 ------------------------------------------------------------------------------
 --- Functionality changes from Asterisk 1.4.X to Asterisk 1.6.0  -------------
@@ -184,7 +204,7 @@
   * Proper codec support in chan_skinny.
   * Added settings for IP and Ethernet QoS requests
 
-
+MGCP changes
 ------------
   * Added separate settings for media QoS in mgcp.conf
 

Modified: team/kpfleming/dahdi-dsp-options/Makefile
URL: http://svn.asterisk.org/svn-view/asterisk/team/kpfleming/dahdi-dsp-options/Makefile?view=diff&rev=201100&r1=201099&r2=201100
==============================================================================
--- team/kpfleming/dahdi-dsp-options/Makefile (original)
+++ team/kpfleming/dahdi-dsp-options/Makefile Tue Jun 16 14:54:00 2009
@@ -356,24 +356,24 @@
 	menuselect/menuselect --check-deps menuselect.makeopts $(GLOBAL_MAKEOPTS) $(USER_MAKEOPTS)
 
 $(MOD_SUBDIRS_EMBED_LDSCRIPT):
-	@echo "EMBED_LDSCRIPTS+="`$(SILENTMAKE) -C $(@:-embed-ldscript=) SUBDIR=$(@:-embed-ldscript=) __embed_ldscript` >> makeopts.embed_rules
+	+ at echo "EMBED_LDSCRIPTS+="`$(SILENTMAKE) -C $(@:-embed-ldscript=) SUBDIR=$(@:-embed-ldscript=) __embed_ldscript` >> makeopts.embed_rules
 
 $(MOD_SUBDIRS_EMBED_LDFLAGS):
-	@echo "EMBED_LDFLAGS+="`$(SILENTMAKE) -C $(@:-embed-ldflags=) SUBDIR=$(@:-embed-ldflags=) __embed_ldflags` >> makeopts.embed_rules
+	+ at echo "EMBED_LDFLAGS+="`$(SILENTMAKE) -C $(@:-embed-ldflags=) SUBDIR=$(@:-embed-ldflags=) __embed_ldflags` >> makeopts.embed_rules
 
 $(MOD_SUBDIRS_EMBED_LIBS):
-	@echo "EMBED_LIBS+="`$(SILENTMAKE) -C $(@:-embed-libs=) SUBDIR=$(@:-embed-libs=) __embed_libs` >> makeopts.embed_rules
+	+ at echo "EMBED_LIBS+="`$(SILENTMAKE) -C $(@:-embed-libs=) SUBDIR=$(@:-embed-libs=) __embed_libs` >> makeopts.embed_rules
 
 $(MOD_SUBDIRS_MENUSELECT_TREE):
-	@$(SUBMAKE) -C $(@:-menuselect-tree=) SUBDIR=$(@:-menuselect-tree=) moduleinfo
-	@$(SUBMAKE) -C $(@:-menuselect-tree=) SUBDIR=$(@:-menuselect-tree=) makeopts
+	+@$(SUBMAKE) -C $(@:-menuselect-tree=) SUBDIR=$(@:-menuselect-tree=) moduleinfo
+	+@$(SUBMAKE) -C $(@:-menuselect-tree=) SUBDIR=$(@:-menuselect-tree=) makeopts
 
 makeopts.embed_rules: menuselect.makeopts
 	@echo "Generating embedded module rules ..."
 	@rm -f $@
-	@$(SUBMAKE) $(MOD_SUBDIRS_EMBED_LDSCRIPT)
-	@$(SUBMAKE) $(MOD_SUBDIRS_EMBED_LDFLAGS)
-	@$(SUBMAKE) $(MOD_SUBDIRS_EMBED_LIBS)
+	+@$(SUBMAKE) $(MOD_SUBDIRS_EMBED_LDSCRIPT)
+	+@$(SUBMAKE) $(MOD_SUBDIRS_EMBED_LDFLAGS)
+	+@$(SUBMAKE) $(MOD_SUBDIRS_EMBED_LIBS)
 
 $(SUBDIRS): main/version.c include/asterisk/version.h include/asterisk/build.h include/asterisk/buildopts.h defaults.h makeopts.embed_rules
 
@@ -396,10 +396,10 @@
 endif
 
 $(MOD_SUBDIRS):
-	@ASTCFLAGS="$(MOD_SUBDIR_CFLAGS) $(ASTCFLAGS)" ASTLDFLAGS="$(ASTLDFLAGS)" $(SUBMAKE) --no-builtin-rules -C $@ SUBDIR=$@ all
+	+ at ASTCFLAGS="$(MOD_SUBDIR_CFLAGS) $(ASTCFLAGS)" ASTLDFLAGS="$(ASTLDFLAGS)" $(SUBMAKE) --no-builtin-rules -C $@ SUBDIR=$@ all
 
 $(OTHER_SUBDIRS):
-	@ASTCFLAGS="$(OTHER_SUBDIR_CFLAGS) $(ASTCFLAGS)" ASTLDFLAGS="$(ASTLDFLAGS)" $(SUBMAKE) --no-builtin-rules -C $@ SUBDIR=$@ all
+	+ at ASTCFLAGS="$(OTHER_SUBDIR_CFLAGS) $(ASTCFLAGS)" ASTLDFLAGS="$(ASTLDFLAGS)" $(SUBMAKE) --no-builtin-rules -C $@ SUBDIR=$@ all
 
 defaults.h: makeopts
 	@build_tools/make_defaults_h > $@.tmp
@@ -427,10 +427,10 @@
 	@rm -f $@.tmp
 
 $(SUBDIRS_CLEAN):
-	@$(SUBMAKE) -C $(@:-clean=) clean
+	+@$(SUBMAKE) -C $(@:-clean=) clean
 
 $(SUBDIRS_DIST_CLEAN):
-	@$(SUBMAKE) -C $(@:-dist-clean=) dist-clean
+	+@$(SUBMAKE) -C $(@:-dist-clean=) dist-clean
 
 clean: $(SUBDIRS_CLEAN) _clean
 
@@ -457,7 +457,7 @@
 	rm -f build_tools/menuselect-deps
 
 datafiles: _all
-	if [ x`$(ID) -un` = xroot ]; then CFLAGS="$(ASTCFLAGS)" sh build_tools/mkpkgconfig $(DESTDIR)/usr/lib/pkgconfig; fi
+	if [ x`$(ID) -un` = xroot ]; then CFLAGS="$(ASTCFLAGS)" bash build_tools/mkpkgconfig $(DESTDIR)/usr/lib/pkgconfig; fi
 # Should static HTTP be installed during make samples or even with its own target ala
 # webvoicemail?  There are portions here that *could* be customized but might also be
 # improved a lot.  I'll put it here for now.
@@ -773,7 +773,7 @@
 			$(INSTALL) -m 755 contrib/init.d/rc.suse.asterisk $(DESTDIR)/etc/init.d/asterisk; \
 			if [ -z "$(DESTDIR)" ]; then /sbin/chkconfig --add asterisk; fi; \
 		elif [ -f /etc/slackware-version ]; then \
-			echo "Slackware is not currently supported, although an init script does exist for it." \
+			echo "Slackware is not currently supported, although an init script does exist for it."; \
 		else \
 			echo "We could not install init scripts for your distribution."; \
 		fi \
@@ -863,27 +863,27 @@
 MAKE_MENUSELECT=CC="$(HOST_CC)" CXX="$(CXX)" LD="" AR="" RANLIB="" CFLAGS="" $(MAKE) -C menuselect CONFIGURE_SILENT="--silent"
 
 menuselect/menuselect: menuselect/makeopts
-	$(MAKE_MENUSELECT) menuselect
+	+$(MAKE_MENUSELECT) menuselect
 
 menuselect/cmenuselect: menuselect/makeopts
-	$(MAKE_MENUSELECT) cmenuselect
+	+$(MAKE_MENUSELECT) cmenuselect
 
 menuselect/gmenuselect: menuselect/makeopts
-	$(MAKE_MENUSELECT) gmenuselect
+	+$(MAKE_MENUSELECT) gmenuselect
 
 menuselect/nmenuselect: menuselect/makeopts
-	$(MAKE_MENUSELECT) nmenuselect
+	+$(MAKE_MENUSELECT) nmenuselect
 
 menuselect/makeopts: makeopts
-	$(MAKE_MENUSELECT) makeopts
+	+$(MAKE_MENUSELECT) makeopts
 
 menuselect-tree: $(foreach dir,$(filter-out main,$(MOD_SUBDIRS)),$(wildcard $(dir)/*.c) $(wildcard $(dir)/*.cc)) build_tools/cflags.xml build_tools/cflags-devmode.xml sounds/sounds.xml build_tools/embed_modules.xml configure
 	@echo "Generating input for menuselect ..."
 	@echo "<?xml version=\"1.0\"?>" > $@
 	@echo >> $@
 	@echo "<menu name=\"Asterisk Module and Build Option Selection\">" >> $@
-	@for dir in $(sort $(filter-out main,$(MOD_SUBDIRS))); do $(SILENTMAKE) -C $${dir} SUBDIR=$${dir} moduleinfo >> $@; done
-	@for dir in $(sort $(filter-out main,$(MOD_SUBDIRS))); do $(SILENTMAKE) -C $${dir} SUBDIR=$${dir} makeopts >> $@; done
+	+ at for dir in $(sort $(filter-out main,$(MOD_SUBDIRS))); do $(SILENTMAKE) -C $${dir} SUBDIR=$${dir} moduleinfo >> $@; done
+	+ at for dir in $(sort $(filter-out main,$(MOD_SUBDIRS))); do $(SILENTMAKE) -C $${dir} SUBDIR=$${dir} makeopts >> $@; done
 	@cat build_tools/cflags.xml >> $@
 	@if [ "${AST_DEVMODE}" = "yes" ]; then \
 		cat build_tools/cflags-devmode.xml >> $@; \

Modified: team/kpfleming/dahdi-dsp-options/Makefile.rules
URL: http://svn.asterisk.org/svn-view/asterisk/team/kpfleming/dahdi-dsp-options/Makefile.rules?view=diff&rev=201100&r1=201099&r2=201100
==============================================================================
--- team/kpfleming/dahdi-dsp-options/Makefile.rules (original)
+++ team/kpfleming/dahdi-dsp-options/Makefile.rules Tue Jun 16 14:54:00 2009
@@ -106,14 +106,6 @@
 	$(ECHO_PREFIX) echo "   [CPP] $< -> $@"
 	$(CMD_PREFIX) $(CXX) -o $@ -E $< $(CXX_CFLAGS) $(MAKE_DEPS)
 
-%.c: %.y
-	$(ECHO_PREFIX) echo "   [BISON] $< -> $@"
-	$(CMD_PREFIX) bison -o $@ -d --name-prefix=ast_yy $<
-
-%.c: %.fl
-	$(ECHO_PREFIX) echo "   [FLEX] $< -> $@"
-	$(CMD_PREFIX) flex -o $@ --full $<
-
 %.so: %.o
 	$(ECHO_PREFIX) echo "   [LD] $^ -> $@"
 	$(CMD_PREFIX) $(CC) $(STATIC_BUILD) -o $@ $(CC_LDFLAGS_SO) $^ $(CC_LIBS)

Modified: team/kpfleming/dahdi-dsp-options/agi/Makefile
URL: http://svn.asterisk.org/svn-view/asterisk/team/kpfleming/dahdi-dsp-options/agi/Makefile?view=diff&rev=201100&r1=201099&r2=201100
==============================================================================
--- team/kpfleming/dahdi-dsp-options/agi/Makefile (original)
+++ team/kpfleming/dahdi-dsp-options/agi/Makefile Tue Jun 16 14:54:00 2009
@@ -24,6 +24,8 @@
 endif
 
 include $(ASTTOPDIR)/Makefile.rules
+
+ASTCFLAGS+=-DSTANDALONE
 
 all: $(AGIS)
 

Modified: team/kpfleming/dahdi-dsp-options/apps/app_chanspy.c
URL: http://svn.asterisk.org/svn-view/asterisk/team/kpfleming/dahdi-dsp-options/apps/app_chanspy.c?view=diff&rev=201100&r1=201099&r2=201100
==============================================================================
--- team/kpfleming/dahdi-dsp-options/apps/app_chanspy.c (original)
+++ team/kpfleming/dahdi-dsp-options/apps/app_chanspy.c Tue Jun 16 14:54:00 2009
@@ -192,7 +192,7 @@
 static int spy_generate(struct ast_channel *chan, void *data, int len, int samples)
 {
 	struct chanspy_translation_helper *csth = data;
-	struct ast_frame *f = NULL;
+	struct ast_frame *f, *cur;
 
 	ast_audiohook_lock(&csth->spy_audiohook);
 	if (csth->spy_audiohook.status != AST_AUDIOHOOK_STATUS_RUNNING) {
@@ -208,14 +208,16 @@
 	if (!f)
 		return 0;
 
-	if (ast_write(chan, f)) {
-		ast_frfree(f);
-		return -1;
-	}
-
-	if (csth->fd) {
-		if (write(csth->fd, f->data, f->datalen) < 0) {
-			ast_log(LOG_WARNING, "write() failed: %s\n", strerror(errno));
+	for (cur = f; cur; cur = AST_LIST_NEXT(cur, frame_list)) {
+		if (ast_write(chan, cur)) {
+			ast_frfree(f);
+			return -1;
+		}
+
+		if (csth->fd) {
+			if (write(csth->fd, cur->data, cur->datalen) < 0) {
+				ast_log(LOG_WARNING, "write() failed: %s\n", strerror(errno));
+			}
 		}
 	}
 
@@ -237,6 +239,7 @@
 
 	ast_log(LOG_NOTICE, "Attaching %s to %s\n", spychan_name, chan->name);
 
+	ast_set_flag(audiohook, AST_AUDIOHOOK_TRIGGER_SYNC | AST_AUDIOHOOK_SMALL_QUEUE);
 	res = ast_audiohook_attach(chan, audiohook);
 
 	if (!res && ast_test_flag(chan, AST_FLAG_NBRIDGE) && (peer = ast_bridged_channel(chan))) { 

Modified: team/kpfleming/dahdi-dsp-options/apps/app_dial.c
URL: http://svn.asterisk.org/svn-view/asterisk/team/kpfleming/dahdi-dsp-options/apps/app_dial.c?view=diff&rev=201100&r1=201099&r2=201100
==============================================================================
--- team/kpfleming/dahdi-dsp-options/apps/app_dial.c (original)
+++ team/kpfleming/dahdi-dsp-options/apps/app_dial.c Tue Jun 16 14:54:00 2009
@@ -164,6 +164,8 @@
 "           You cannot use any additional action post answer options in conjunction\n"
 "           with this option. Also, pbx services are not run on the peer (called) channel,\n"
 "           so you will not be able to set timeouts via the TIMEOUT() function in this macro.\n"
+"           Be aware of the limitations that macros have, specifically with regards to use of\n"
+"           the WaitExten application. For more information, see the documentation for Macro()\n"
 "    n    - This option is a modifier for the screen/privacy mode. It specifies\n"
 "           that no introductions are to be saved in the priv-callerintros\n"
 "           directory.\n"
@@ -398,6 +400,11 @@
 		num->nochan++;
 		break;
 
+	case AST_CAUSE_NO_ANSWER:
+		if (cdr) {
+			ast_cdr_noanswer(cdr);
+		}
+		break;
 	case AST_CAUSE_NORMAL_CLEARING:
 		break;
 
@@ -491,6 +498,9 @@
 		tech = tmpchan;
 	} else {
 		const char *forward_context = pbx_builtin_getvar_helper(c, "FORWARD_CONTEXT");
+		if (ast_strlen_zero(forward_context)) {
+			forward_context = NULL;
+		}
 		snprintf(tmpchan, sizeof(tmpchan), "%s@%s", c->call_forward, forward_context ? forward_context : c->context);
 		stuff = tmpchan;
 		tech = "Local";

Modified: team/kpfleming/dahdi-dsp-options/apps/app_externalivr.c
URL: http://svn.asterisk.org/svn-view/asterisk/team/kpfleming/dahdi-dsp-options/apps/app_externalivr.c?view=diff&rev=201100&r1=201099&r2=201100
==============================================================================
--- team/kpfleming/dahdi-dsp-options/apps/app_externalivr.c (original)
+++ team/kpfleming/dahdi-dsp-options/apps/app_externalivr.c Tue Jun 16 14:54:00 2009
@@ -265,28 +265,20 @@
 
 static void ast_eivr_setvariable(struct ast_channel *chan, char *data)
 {
-	char buf[1024];
 	char *value;
 
-	char *inbuf, *variable;
-
-	int j;
-
-	for (j = 1, inbuf = data; ; j++, inbuf = NULL) {
-		variable = strsep(&inbuf, ",");
-		ast_chan_log(LOG_DEBUG, chan, "Setting up a variable: %s\n", variable);
-		if(variable) {
-			/* variable contains "varname=value" */
-			ast_copy_string(buf, variable, sizeof(buf));
-			value = strchr(buf, '=');
-			if(!value) 
-				value="";
-			else
-				*value++ = '\0';
-			pbx_builtin_setvar_helper(chan, buf, value);
+	char *inbuf = ast_strdupa(data), *variable;
+
+	for (variable = strsep(&inbuf, ","); variable; variable = strsep(&inbuf, ",")) {
+		ast_debug(1, "Setting up a variable: %s\n", variable);
+		/* variable contains "varname=value" */
+		value = strchr(variable, '=');
+		if (!value) {
+			value = "";
+		} else {
+			*value++ = '\0';
 		}
-		else
-			break;
+		pbx_builtin_setvar_helper(chan, variable, value);
 	}
 };
 

Modified: team/kpfleming/dahdi-dsp-options/apps/app_followme.c
URL: http://svn.asterisk.org/svn-view/asterisk/team/kpfleming/dahdi-dsp-options/apps/app_followme.c?view=diff&rev=201100&r1=201099&r2=201100
==============================================================================
--- team/kpfleming/dahdi-dsp-options/apps/app_followme.c (original)
+++ team/kpfleming/dahdi-dsp-options/apps/app_followme.c Tue Jun 16 14:54:00 2009
@@ -850,7 +850,7 @@
 		if (winner)
 			break;
 
-		if (!caller) {
+		if (!caller || ast_check_hangup(caller)) {
 			tpargs->status = 1;
 			ast_free(findme_user_list);
 			return;	
@@ -903,7 +903,7 @@
 
 static int app_exec(struct ast_channel *chan, void *data)
 {
-	struct fm_args targs;
+	struct fm_args targs = { 0, };
 	struct ast_bridge_config config;
 	struct call_followme *f;
 	struct number *nm, *newnm;

Modified: team/kpfleming/dahdi-dsp-options/apps/app_forkcdr.c
URL: http://svn.asterisk.org/svn-view/asterisk/team/kpfleming/dahdi-dsp-options/apps/app_forkcdr.c?view=diff&rev=201100&r1=201099&r2=201100
==============================================================================
--- team/kpfleming/dahdi-dsp-options/apps/app_forkcdr.c (original)
+++ team/kpfleming/dahdi-dsp-options/apps/app_forkcdr.c Tue Jun 16 14:54:00 2009
@@ -43,7 +43,7 @@
 static char *descrip = 
 "  ForkCDR([options]):  Causes the Call Data Record to fork an additional\n"
 "cdr record starting from the time of the fork call. This new cdr record will\n"
-"be linked to end of the list of cdr records attached to the channel. The original CDR is\n"
+"be linked to end of the list of cdr records attached to the channel. The original CDR\n"
 "has a LOCKED flag set, which forces most cdr operations to skip it, except\n"
 "for the functions that set the answer and end times, which ignore the LOCKED\n"
 "flag. This allows all the cdr records in the channel to be 'ended' together\n"
@@ -93,24 +93,24 @@
 "set. Almost all internal CDR functions (except for the funcs that set\n"
 "the end, and answer times, and set a variable) will honor this flag\n"
 "and leave a LOCKED cdr record alone.\n"
-"This means that the newly created forked cdr record will affected\n"
+"This means that the newly created forked cdr record will be affected\n"
 "by events transpiring within Asterisk, with the previously noted\n"
 "exceptions.\n"
 "  Options:\n"
-"    a - update the answer time on the NEW CDR just after it's been inited..\n"
-"         The new CDR may have been answered already, the reset that forkcdr.\n"
+"    a - update the answer time on the NEW CDR just after it's been inited.\n"
+"         The new CDR may have been answered already. The reset that forkcdr\n"
 "         does will erase the answer time. This will bring it back, but\n"
-"         the answer time will be a copy of the fork/start time. It will.\n"
-"         only do this if the initial cdr was indeed already answered..\n"
+"         the answer time will be a copy of the fork/start time. It will\n"
+"         only do this if the initial cdr was indeed already answered.\n"
 "    A - Lock the original CDR against the answer time being updated.\n"
 "         This will allow the disposition on the original CDR to remain the same.\n"
-"    d - Copy the disposition forward from the old cdr, after the .\n"
-"         init..\n"
-"    D - Clear the dstchannel on the new CDR after reset..\n"
-"    e - end the original CDR. Do this after all the necc. data.\n"
-"         is copied from the original CDR to the new forked CDR..\n"
-"    R -  do NOT reset the new cdr..\n"
-"    s(name=val) - Set the CDR var 'name' in the original CDR, with value.\n"
+"    d - Copy the disposition forward from the old cdr, after the \n"
+"         init.\n"
+"    D - Clear the dstchannel on the new CDR after reset.\n"
+"    e - end the original CDR. Do this after all the neccessary data\n"
+"         is copied from the original CDR to the new forked CDR.\n"
+"    R -  do NOT reset the new cdr.\n"
+"    s(name=val) - Set the CDR var 'name' in the original CDR, with value\n"
 "                  'val'.\n"
 "    T -  Mark the original CDR with a DONT_TOUCH flag. setvar, answer, and end\n"
 "          cdr funcs will obey this flag; normally they don't honor the LOCKED\n"

Modified: team/kpfleming/dahdi-dsp-options/apps/app_macro.c
URL: http://svn.asterisk.org/svn-view/asterisk/team/kpfleming/dahdi-dsp-options/apps/app_macro.c?view=diff&rev=201100&r1=201099&r2=201100
==============================================================================
--- team/kpfleming/dahdi-dsp-options/apps/app_macro.c (original)
+++ team/kpfleming/dahdi-dsp-options/apps/app_macro.c Tue Jun 16 14:54:00 2009
@@ -42,43 +42,46 @@
 /* special result value used to force macro exit */
 #define MACRO_EXIT_RESULT 1024
 
+#define WAITEXTENWARNING "Use of the application WaitExten within a macro will not function as expected.\n" \
+	"Please use the Read application in order to read DTMF from a channel currently\n" \
+	"executing a macro.\n"
+
 static char *descrip =
 "  Macro(macroname,arg1,arg2...): Executes a macro using the context\n"
 "'macro-<macroname>', jumping to the 's' extension of that context and\n"
 "executing each step, then returning when the steps end. \n"
-"The calling extension, context, and priority are stored in ${MACRO_EXTEN}, \n"
+"The calling extension, context, and priority are stored in ${MACRO_EXTEN},\n"
 "${MACRO_CONTEXT} and ${MACRO_PRIORITY} respectively.  Arguments become\n"
 "${ARG1}, ${ARG2}, etc in the macro context.\n"
 "If you Goto out of the Macro context, the Macro will terminate and control\n"
 "will be returned at the location of the Goto.\n"
 "If ${MACRO_OFFSET} is set at termination, Macro will attempt to continue\n"
 "at priority MACRO_OFFSET + N + 1 if such a step exists, and N + 1 otherwise.\n"
-"Extensions: While a macro is being executed, it becomes the current context.\n"
-"            This means that if a hangup occurs, for instance, that the macro\n"
-"            will be searched for an 'h' extension, NOT the context from which\n"
-"            the macro was called. So, make sure to define all appropriate\n"
-"            extensions in your macro! (Note: AEL does not use macros)\n"
 "WARNING: Because of the way Macro is implemented (it executes the priorities\n"
-"         contained within it via sub-engine), and a fixed per-thread\n"
-"         memory stack allowance, macros are limited to 7 levels\n"
-"         of nesting (macro calling macro calling macro, etc.); It\n"
-"         may be possible that stack-intensive applications in deeply nested macros\n"
-"         could cause asterisk to crash earlier than this limit. It is advised that\n"
-"         if you need to deeply nest macro calls, that you use the Gosub application\n"
-"         (now allows arguments like a Macro) with explict Return() calls instead.\n";
+"         contained within it via sub-engine), and a fixed per-thread memory\n"
+"         stack allowance, macros are limited to 7 levels of nesting (macro\n"
+"         calling macro calling macro, etc.). It may be possible that\n"
+"         stack-intensive applications in deeply nested macros could cause\n"
+"         Asterisk to crash earlier than this limit. It is advised that if you\n"
+"         need to deeply nest macro calls, that you use the Gosub application\n"
+"         (now allows arguments like a Macro) with explict Return() calls\n"
+"         instead.\n"
+WAITEXTENWARNING;
 
 static char *if_descrip =
 "  MacroIf(<expr>?macroname_a[,arg1][:macroname_b[,arg1]])\n"
 "Executes macro defined in <macroname_a> if <expr> is true\n"
 "(otherwise <macroname_b> if provided)\n"
-"Arguments and return values as in application Macro()\n";
+"Arguments and return values as in application Macro()\n"
+WAITEXTENWARNING;
 
 static char *exclusive_descrip =
 "  MacroExclusive(macroname,arg1,arg2...):\n"
 "Executes macro defined in the context 'macro-macroname'\n"
 "Only one call at a time may run the macro.\n"
 "(we'll wait if another call is busy executing in the Macro)\n"
-"Arguments and return values as in application Macro()\n";
+"Arguments and return values as in application Macro()\n"
+WAITEXTENWARNING;
 
 static char *exit_descrip =
 "  MacroExit():\n"

Modified: team/kpfleming/dahdi-dsp-options/apps/app_meetme.c
URL: http://svn.asterisk.org/svn-view/asterisk/team/kpfleming/dahdi-dsp-options/apps/app_meetme.c?view=diff&rev=201100&r1=201099&r2=201100
==============================================================================
--- team/kpfleming/dahdi-dsp-options/apps/app_meetme.c (original)
+++ team/kpfleming/dahdi-dsp-options/apps/app_meetme.c Tue Jun 16 14:54:00 2009
@@ -2096,7 +2096,7 @@
 			x = 1;
 			ast_channel_setoption(chan, AST_OPTION_TONE_VERIFY, &x, sizeof(char), 0);
 		}	
-		if ((confflags & CONFFLAG_OPTIMIZETALKER) && !(confflags & CONFFLAG_MONITOR) && !(dsp = ast_dsp_new())) {
+		if (confflags & (CONFFLAG_OPTIMIZETALKER | CONFFLAG_MONITORTALKER) && !(dsp = ast_dsp_new())) {
 			ast_log(LOG_WARNING, "Unable to allocate DSP!\n");
 			res = -1;
 		}
@@ -2413,7 +2413,7 @@
 					if (user->talk.actual)
 						ast_frame_adjust_volume(f, user->talk.actual);
 
-					if ((confflags & CONFFLAG_OPTIMIZETALKER) && !(confflags & CONFFLAG_MONITOR)) {
+					if (confflags & (CONFFLAG_OPTIMIZETALKER | CONFFLAG_MONITORTALKER)) {
 						int totalsilence;
 
 						if (user->talking == -1)
@@ -2700,9 +2700,19 @@
 							}
 						}
 						if (conf->transframe[index]) {
- 							if (conf->transframe[index]->frametype != AST_FRAME_NULL) {
-	 							if (can_write(chan, confflags) && ast_write(chan, conf->transframe[index]))
-									ast_log(LOG_WARNING, "Unable to write frame to channel %s\n", chan->name);
+ 							if ((conf->transframe[index]->frametype != AST_FRAME_NULL) &&
+							    can_write(chan, confflags)) {
+								struct ast_frame *cur;
+								
+								/* the translator may have returned a list of frames, so
+								   write each one onto the channel
+								*/
+								for (cur = conf->transframe[index]; cur; cur = AST_LIST_NEXT(cur, frame_list)) {
+									if (ast_write(chan, cur)) {
+										ast_log(LOG_WARNING, "Unable to write frame to channel %s\n", chan->name);
+										break;
+									}
+								}
 							}
 						} else {
 							ast_mutex_unlock(&conf->listenlock);
@@ -3149,7 +3159,7 @@
 
 		empty = ast_test_flag(&confflags, CONFFLAG_EMPTY | CONFFLAG_EMPTYNOPIN);
 		empty_no_pin = ast_test_flag(&confflags, CONFFLAG_EMPTYNOPIN);
-		always_prompt = ast_test_flag(&confflags, CONFFLAG_ALWAYSPROMPT);
+		always_prompt = ast_test_flag(&confflags, CONFFLAG_ALWAYSPROMPT | CONFFLAG_DYNAMICPIN);
 	}
 
 	do {

Modified: team/kpfleming/dahdi-dsp-options/apps/app_minivm.c
URL: http://svn.asterisk.org/svn-view/asterisk/team/kpfleming/dahdi-dsp-options/apps/app_minivm.c?view=diff&rev=201100&r1=201099&r2=201100
==============================================================================
--- team/kpfleming/dahdi-dsp-options/apps/app_minivm.c (original)
+++ team/kpfleming/dahdi-dsp-options/apps/app_minivm.c Tue Jun 16 14:54:00 2009
@@ -1031,7 +1031,7 @@
 	} 
 	ast_debug(4, "-_-_- Fromstring now: %s\n", ast_strlen_zero(passdata) ? "-default-" : passdata);
 
-	fprintf(p, "Message-ID: <Asterisk-%d-%s-%d-%s>\n", (unsigned int)rand(), vmu->username, (int)getpid(), who);
+	fprintf(p, "Message-ID: <Asterisk-%d-%s-%d-%s>\n", (unsigned int)ast_random(), vmu->username, (int)getpid(), who);
 	len_passdata = strlen(vmu->fullname) * 2 + 3;
 	passdata2 = alloca(len_passdata);
 	if (!ast_strlen_zero(vmu->email))
@@ -1064,7 +1064,7 @@
 	fprintf(p, "MIME-Version: 1.0\n");
 
 	/* Something unique. */
-	snprintf(bound, sizeof(bound), "voicemail_%s%d%d", vmu->username, (int)getpid(), (unsigned int)rand());
+	snprintf(bound, sizeof(bound), "voicemail_%s%d%d", vmu->username, (int)getpid(), (unsigned int)ast_random());
 
 	fprintf(p, "Content-Type: multipart/mixed; boundary=\"%s\"\n\n\n", bound);
 

Modified: team/kpfleming/dahdi-dsp-options/apps/app_mixmonitor.c
URL: http://svn.asterisk.org/svn-view/asterisk/team/kpfleming/dahdi-dsp-options/apps/app_mixmonitor.c?view=diff&rev=201100&r1=201099&r2=201100
==============================================================================
--- team/kpfleming/dahdi-dsp-options/apps/app_mixmonitor.c (original)
+++ team/kpfleming/dahdi-dsp-options/apps/app_mixmonitor.c Tue Jun 16 14:54:00 2009
@@ -61,6 +61,10 @@
 " b      - Only save audio to the file while the channel is bridged.\n"
 "          Note: Does not include conferences or sounds played to each bridged\n"
 "                party.\n"
+"          Note: If you utilize this option inside a Local channel, you must\n"
+"                 make sure the Local channel is not optimized away. To do this,\n"
+"                 be sure to call your Local channel with the '/n' option.\n"
+"                 For example: Dial(Local/start at mycontext/n)\n"
 " v(<x>) - Adjust the heard volume by a factor of <x> (range -4 to 4)\n"	
 " V(<x>) - Adjust the spoken volume by a factor of <x> (range -4 to 4)\n"	
 " W(<x>) - Adjust the both heard and spoken volumes by a factor of <x>\n"
@@ -218,10 +222,15 @@
 					errflag = 1;
 				}
 			}
-			
-			/* Write out frame */
-			if (fs)
-				ast_writestream(fs, fr);
+
+			/* Write out the frame(s) */
+			if (fs) {
+				struct ast_frame *cur;
+
+				for (cur = fr; cur; cur = AST_LIST_NEXT(cur, frame_list)) {
+					ast_writestream(fs, cur);
+				}
+			}
 		} else {
 			ast_mutex_unlock(&mixmonitor->mixmonitor_ds->lock);
 		}

Modified: team/kpfleming/dahdi-dsp-options/apps/app_queue.c
URL: http://svn.asterisk.org/svn-view/asterisk/team/kpfleming/dahdi-dsp-options/apps/app_queue.c?view=diff&rev=201100&r1=201099&r2=201100
==============================================================================
--- team/kpfleming/dahdi-dsp-options/apps/app_queue.c (original)
+++ team/kpfleming/dahdi-dsp-options/apps/app_queue.c Tue Jun 16 14:54:00 2009
@@ -696,15 +696,15 @@
 	struct member *cur;
 	struct ao2_iterator mem_iter, queue_iter;
 	struct call_queue *q;
+	char tmp_interface[80];
 
 	queue_iter = ao2_iterator_init(queues, 0);
 	while ((q = ao2_iterator_next(&queue_iter))) {
 		ao2_lock(q);
 		mem_iter = ao2_iterator_init(q->members, 0);
 		while ((cur = ao2_iterator_next(&mem_iter))) {
-			char *tmp_interface;
 			char *slash_pos;
-			tmp_interface = ast_strdupa(cur->state_interface);
+			ast_copy_string(tmp_interface, cur->state_interface, sizeof(tmp_interface));
 			if ((slash_pos = strchr(tmp_interface, '/')))
 				if (!strncasecmp(tmp_interface, "Local", 5) && (slash_pos = strchr(slash_pos + 1, '/')))
 					*slash_pos = '\0';
@@ -747,12 +747,12 @@
 static void *handle_statechange(struct statechange *sc)
 {
 	struct member_interface *curint;
+	char interface[80];
 
 	AST_LIST_LOCK(&interfaces);
 	AST_LIST_TRAVERSE(&interfaces, curint, list) {
-		char *interface;
 		char *slash_pos;
-		interface = ast_strdupa(curint->interface);
+		ast_copy_string(interface, curint->interface, sizeof(interface));
 		if ((slash_pos = strchr(interface, '/')))
 			if ((slash_pos = strchr(slash_pos + 1, '/')))
 				*slash_pos = '\0';
@@ -1438,7 +1438,7 @@
 
 	if ((q = ao2_alloc(sizeof(*q), destroy_queue))) {
 		if (ast_string_field_init(q, 64)) {
-			free(q);
+			ao2_ref(q, -1);
 			return NULL;
 		}
 		ast_string_field_set(q, name, queuename);
@@ -2050,11 +2050,56 @@
 	}
 }
 
-/*! 
- * \brief traverse all defined queues which have calls waiting and contain this member
- * \retval 0 if no other queue has precedence (higher weight) 
- * \retval 1 if found  
-*/
+/*!
+ * \brief Get the number of members available to accept a call.
+ *
+ * \note The queue passed in should be locked prior to this function call
+ *
+ * \param[in] q The queue for which we are couting the number of available members
+ * \return Return the number of available members in queue q
+ */
+static int num_available_members(struct call_queue *q)
+{
+	struct member *mem;
+	int avl = 0;
+	struct ao2_iterator mem_iter;
+
+	mem_iter = ao2_iterator_init(q->members, 0);
+	while ((mem = ao2_iterator_next(&mem_iter))) {
+		switch (mem->status) {
+		case AST_DEVICE_INUSE:
+			if (!q->ringinuse)
+				break;
+			/* else fall through */
+		case AST_DEVICE_NOT_INUSE:
+		case AST_DEVICE_UNKNOWN:
+			if (!mem->paused) {
+				avl++;
+			}
+			break;
+		}
+		ao2_ref(mem, -1);
+
+		/* If autofill is not enabled or if the queue's strategy is ringall, then
+		 * we really don't care about the number of available members so much as we
+		 * do that there is at least one available.
+		 *
+		 * In fact, we purposely will return from this function stating that only
+		 * one member is available if either of those conditions hold. That way,
+		 * functions which determine what action to take based on the number of available
+		 * members will operate properly. The reasoning is that even if multiple

[... 12773 lines stripped ...]



More information about the asterisk-commits mailing list