[asterisk-commits] moy: branch moy/mfcr2-1.4 r216642 - in /team/moy/mfcr2-1.4: ./ agi/ apps/ aut...

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Fri Sep 4 23:56:49 CDT 2009


Author: moy
Date: Fri Sep  4 23:56:28 2009
New Revision: 216642

URL: http://svn.asterisk.org/svn-view/asterisk?view=rev&rev=216642
Log:
merged tag 1.4.26.2

Added:
    team/moy/mfcr2-1.4/.lastclean
      - copied unchanged from r216641, tags/1.4.26.2/.lastclean
    team/moy/mfcr2-1.4/.version
      - copied unchanged from r216641, tags/1.4.26.2/.version
    team/moy/mfcr2-1.4/ChangeLog
      - copied unchanged from r216641, tags/1.4.26.2/ChangeLog
    team/moy/mfcr2-1.4/asterisk-1.4.26.2-summary.html
      - copied unchanged from r216641, tags/1.4.26.2/asterisk-1.4.26.2-summary.html
    team/moy/mfcr2-1.4/asterisk-1.4.26.2-summary.txt
      - copied unchanged from r216641, tags/1.4.26.2/asterisk-1.4.26.2-summary.txt
    team/moy/mfcr2-1.4/channels/h323/ast_ptlib.h
      - copied unchanged from r216641, tags/1.4.26.2/channels/h323/ast_ptlib.h
    team/moy/mfcr2-1.4/default.exports
      - copied unchanged from r216641, tags/1.4.26.2/default.exports
    team/moy/mfcr2-1.4/doc/IAX2-security.pdf
      - copied unchanged from r216641, tags/1.4.26.2/doc/IAX2-security.pdf
    team/moy/mfcr2-1.4/main/asterisk.exports
      - copied unchanged from r216641, tags/1.4.26.2/main/asterisk.exports
    team/moy/mfcr2-1.4/main/astfd.c
      - copied unchanged from r216641, tags/1.4.26.2/main/astfd.c
    team/moy/mfcr2-1.4/res/res_adsi.exports
      - copied unchanged from r216641, tags/1.4.26.2/res/res_adsi.exports
    team/moy/mfcr2-1.4/res/res_agi.exports
      - copied unchanged from r216641, tags/1.4.26.2/res/res_agi.exports
    team/moy/mfcr2-1.4/res/res_features.exports
      - copied unchanged from r216641, tags/1.4.26.2/res/res_features.exports
    team/moy/mfcr2-1.4/res/res_jabber.exports
      - copied unchanged from r216641, tags/1.4.26.2/res/res_jabber.exports
    team/moy/mfcr2-1.4/res/res_monitor.exports
      - copied unchanged from r216641, tags/1.4.26.2/res/res_monitor.exports
    team/moy/mfcr2-1.4/res/res_odbc.exports
      - copied unchanged from r216641, tags/1.4.26.2/res/res_odbc.exports
    team/moy/mfcr2-1.4/res/res_smdi.exports
      - copied unchanged from r216641, tags/1.4.26.2/res/res_smdi.exports
    team/moy/mfcr2-1.4/res/res_speech.exports
      - copied unchanged from r216641, tags/1.4.26.2/res/res_speech.exports
Removed:
    team/moy/mfcr2-1.4/build_tools/strip_nonapi
Modified:
    team/moy/mfcr2-1.4/   (props changed)
    team/moy/mfcr2-1.4/CHANGES
    team/moy/mfcr2-1.4/Makefile
    team/moy/mfcr2-1.4/Makefile.rules
    team/moy/mfcr2-1.4/UPGRADE.txt
    team/moy/mfcr2-1.4/agi/Makefile
    team/moy/mfcr2-1.4/agi/eagi-sphinx-test.c
    team/moy/mfcr2-1.4/agi/eagi-test.c
    team/moy/mfcr2-1.4/apps/app_adsiprog.c
    team/moy/mfcr2-1.4/apps/app_alarmreceiver.c
    team/moy/mfcr2-1.4/apps/app_channelredirect.c
    team/moy/mfcr2-1.4/apps/app_chanspy.c
    team/moy/mfcr2-1.4/apps/app_dahdibarge.c
    team/moy/mfcr2-1.4/apps/app_dahdiras.c
    team/moy/mfcr2-1.4/apps/app_dial.c
    team/moy/mfcr2-1.4/apps/app_disa.c
    team/moy/mfcr2-1.4/apps/app_externalivr.c
    team/moy/mfcr2-1.4/apps/app_festival.c
    team/moy/mfcr2-1.4/apps/app_flash.c
    team/moy/mfcr2-1.4/apps/app_followme.c
    team/moy/mfcr2-1.4/apps/app_ices.c
    team/moy/mfcr2-1.4/apps/app_macro.c
    team/moy/mfcr2-1.4/apps/app_meetme.c
    team/moy/mfcr2-1.4/apps/app_mixmonitor.c
    team/moy/mfcr2-1.4/apps/app_morsecode.c
    team/moy/mfcr2-1.4/apps/app_mp3.c
    team/moy/mfcr2-1.4/apps/app_nbscat.c
    team/moy/mfcr2-1.4/apps/app_osplookup.c
    team/moy/mfcr2-1.4/apps/app_page.c
    team/moy/mfcr2-1.4/apps/app_privacy.c
    team/moy/mfcr2-1.4/apps/app_queue.c
    team/moy/mfcr2-1.4/apps/app_random.c
    team/moy/mfcr2-1.4/apps/app_readfile.c
    team/moy/mfcr2-1.4/apps/app_record.c
    team/moy/mfcr2-1.4/apps/app_rpt.c
    team/moy/mfcr2-1.4/apps/app_senddtmf.c
    team/moy/mfcr2-1.4/apps/app_sendtext.c
    team/moy/mfcr2-1.4/apps/app_setcallerid.c
    team/moy/mfcr2-1.4/apps/app_sms.c
    team/moy/mfcr2-1.4/apps/app_speech_utils.c
    team/moy/mfcr2-1.4/apps/app_talkdetect.c
    team/moy/mfcr2-1.4/apps/app_test.c
    team/moy/mfcr2-1.4/apps/app_userevent.c
    team/moy/mfcr2-1.4/apps/app_verbose.c
    team/moy/mfcr2-1.4/apps/app_voicemail.c
    team/moy/mfcr2-1.4/apps/app_waitforring.c
    team/moy/mfcr2-1.4/apps/app_waitforsilence.c
    team/moy/mfcr2-1.4/autoconf/ast_check_gnu_make.m4
    team/moy/mfcr2-1.4/autoconf/ast_check_openh323.m4
    team/moy/mfcr2-1.4/autoconf/ast_check_pwlib.m4
    team/moy/mfcr2-1.4/autoconf/ast_func_fork.m4
    team/moy/mfcr2-1.4/autoconf/ast_prog_sed.m4
    team/moy/mfcr2-1.4/build_tools/cflags-devmode.xml
    team/moy/mfcr2-1.4/build_tools/cflags.xml
    team/moy/mfcr2-1.4/build_tools/make_version
    team/moy/mfcr2-1.4/build_tools/make_version_h
    team/moy/mfcr2-1.4/build_tools/menuselect-deps.in
    team/moy/mfcr2-1.4/cdr/cdr_radius.c
    team/moy/mfcr2-1.4/channels/Makefile
    team/moy/mfcr2-1.4/channels/chan_agent.c
    team/moy/mfcr2-1.4/channels/chan_alsa.c
    team/moy/mfcr2-1.4/channels/chan_dahdi.c
    team/moy/mfcr2-1.4/channels/chan_gtalk.c
    team/moy/mfcr2-1.4/channels/chan_h323.c
    team/moy/mfcr2-1.4/channels/chan_iax2.c
    team/moy/mfcr2-1.4/channels/chan_local.c
    team/moy/mfcr2-1.4/channels/chan_mgcp.c
    team/moy/mfcr2-1.4/channels/chan_misdn.c
    team/moy/mfcr2-1.4/channels/chan_oss.c
    team/moy/mfcr2-1.4/channels/chan_phone.c
    team/moy/mfcr2-1.4/channels/chan_sip.c
    team/moy/mfcr2-1.4/channels/chan_skinny.c
    team/moy/mfcr2-1.4/channels/h323/ast_h323.cxx
    team/moy/mfcr2-1.4/channels/h323/ast_h323.h
    team/moy/mfcr2-1.4/channels/h323/caps_h323.cxx
    team/moy/mfcr2-1.4/channels/h323/caps_h323.h
    team/moy/mfcr2-1.4/channels/h323/chan_h323.h
    team/moy/mfcr2-1.4/channels/h323/cisco-h225.cxx
    team/moy/mfcr2-1.4/channels/h323/cisco-h225.h
    team/moy/mfcr2-1.4/channels/h323/compat_h323.cxx
    team/moy/mfcr2-1.4/channels/h323/compat_h323.h
    team/moy/mfcr2-1.4/channels/iax2-parser.c
    team/moy/mfcr2-1.4/channels/iax2-parser.h
    team/moy/mfcr2-1.4/channels/iax2-provision.c
    team/moy/mfcr2-1.4/channels/iax2.h
    team/moy/mfcr2-1.4/channels/misdn/isdn_lib.c
    team/moy/mfcr2-1.4/channels/misdn_config.c
    team/moy/mfcr2-1.4/codecs/codec_dahdi.c
    team/moy/mfcr2-1.4/codecs/codec_speex.c
    team/moy/mfcr2-1.4/config.guess
    team/moy/mfcr2-1.4/config.sub
    team/moy/mfcr2-1.4/configs/chan_dahdi.conf.sample
    team/moy/mfcr2-1.4/configs/extensions.conf.sample
    team/moy/mfcr2-1.4/configs/features.conf.sample
    team/moy/mfcr2-1.4/configs/iax.conf.sample
    team/moy/mfcr2-1.4/configs/logger.conf.sample
    team/moy/mfcr2-1.4/configs/misdn.conf.sample
    team/moy/mfcr2-1.4/configs/queues.conf.sample
    team/moy/mfcr2-1.4/configs/sip.conf.sample
    team/moy/mfcr2-1.4/configs/voicemail.conf.sample
    team/moy/mfcr2-1.4/configure
    team/moy/mfcr2-1.4/configure.ac
    team/moy/mfcr2-1.4/contrib/i18n.testsuite.conf
    team/moy/mfcr2-1.4/contrib/scripts/get_ilbc_source.sh
    team/moy/mfcr2-1.4/contrib/scripts/realtime_pgsql.sql
    team/moy/mfcr2-1.4/contrib/scripts/safe_asterisk
    team/moy/mfcr2-1.4/contrib/scripts/sip-friends.sql
    team/moy/mfcr2-1.4/doc/CODING-GUIDELINES
    team/moy/mfcr2-1.4/doc/asterisk-conf.txt
    team/moy/mfcr2-1.4/doc/channelvariables.txt
    team/moy/mfcr2-1.4/formats/format_ilbc.c
    team/moy/mfcr2-1.4/formats/format_wav.c
    team/moy/mfcr2-1.4/formats/format_wav_gsm.c
    team/moy/mfcr2-1.4/funcs/func_channel.c
    team/moy/mfcr2-1.4/funcs/func_cut.c
    team/moy/mfcr2-1.4/funcs/func_math.c
    team/moy/mfcr2-1.4/funcs/func_rand.c
    team/moy/mfcr2-1.4/funcs/func_strings.c
    team/moy/mfcr2-1.4/include/asterisk.h
    team/moy/mfcr2-1.4/include/asterisk/acl.h
    team/moy/mfcr2-1.4/include/asterisk/astmm.h
    team/moy/mfcr2-1.4/include/asterisk/astobj2.h
    team/moy/mfcr2-1.4/include/asterisk/audiohook.h
    team/moy/mfcr2-1.4/include/asterisk/autoconfig.h.in
    team/moy/mfcr2-1.4/include/asterisk/callerid.h
    team/moy/mfcr2-1.4/include/asterisk/cdr.h
    team/moy/mfcr2-1.4/include/asterisk/channel.h
    team/moy/mfcr2-1.4/include/asterisk/compat.h
    team/moy/mfcr2-1.4/include/asterisk/config.h
    team/moy/mfcr2-1.4/include/asterisk/crypto.h
    team/moy/mfcr2-1.4/include/asterisk/dahdi_compat.h
    team/moy/mfcr2-1.4/include/asterisk/devicestate.h
    team/moy/mfcr2-1.4/include/asterisk/features.h
    team/moy/mfcr2-1.4/include/asterisk/frame.h
    team/moy/mfcr2-1.4/include/asterisk/global_datastores.h
    team/moy/mfcr2-1.4/include/asterisk/io.h
    team/moy/mfcr2-1.4/include/asterisk/linkedlists.h
    team/moy/mfcr2-1.4/include/asterisk/lock.h
    team/moy/mfcr2-1.4/include/asterisk/manager.h
    team/moy/mfcr2-1.4/include/asterisk/pbx.h
    team/moy/mfcr2-1.4/include/asterisk/poll-compat.h
    team/moy/mfcr2-1.4/include/asterisk/rtp.h
    team/moy/mfcr2-1.4/include/asterisk/say.h
    team/moy/mfcr2-1.4/include/asterisk/threadstorage.h
    team/moy/mfcr2-1.4/include/asterisk/time.h
    team/moy/mfcr2-1.4/include/asterisk/utils.h
    team/moy/mfcr2-1.4/main/Makefile
    team/moy/mfcr2-1.4/main/acl.c
    team/moy/mfcr2-1.4/main/app.c
    team/moy/mfcr2-1.4/main/ast_expr2.c
    team/moy/mfcr2-1.4/main/ast_expr2.fl
    team/moy/mfcr2-1.4/main/ast_expr2.h
    team/moy/mfcr2-1.4/main/ast_expr2.y
    team/moy/mfcr2-1.4/main/ast_expr2f.c
    team/moy/mfcr2-1.4/main/asterisk.c
    team/moy/mfcr2-1.4/main/astmm.c
    team/moy/mfcr2-1.4/main/astobj2.c
    team/moy/mfcr2-1.4/main/audiohook.c
    team/moy/mfcr2-1.4/main/autoservice.c
    team/moy/mfcr2-1.4/main/callerid.c
    team/moy/mfcr2-1.4/main/cdr.c
    team/moy/mfcr2-1.4/main/channel.c
    team/moy/mfcr2-1.4/main/cli.c
    team/moy/mfcr2-1.4/main/config.c
    team/moy/mfcr2-1.4/main/db.c
    team/moy/mfcr2-1.4/main/db1-ast/recno/rec_open.c
    team/moy/mfcr2-1.4/main/devicestate.c
    team/moy/mfcr2-1.4/main/dnsmgr.c
    team/moy/mfcr2-1.4/main/editline/configure
    team/moy/mfcr2-1.4/main/editline/configure.in
    team/moy/mfcr2-1.4/main/editline/np/unvis.c
    team/moy/mfcr2-1.4/main/editline/sys.h
    team/moy/mfcr2-1.4/main/enum.c
    team/moy/mfcr2-1.4/main/file.c
    team/moy/mfcr2-1.4/main/frame.c
    team/moy/mfcr2-1.4/main/global_datastores.c
    team/moy/mfcr2-1.4/main/indications.c
    team/moy/mfcr2-1.4/main/io.c
    team/moy/mfcr2-1.4/main/jitterbuf.c
    team/moy/mfcr2-1.4/main/loader.c
    team/moy/mfcr2-1.4/main/logger.c
    team/moy/mfcr2-1.4/main/manager.c
    team/moy/mfcr2-1.4/main/pbx.c
    team/moy/mfcr2-1.4/main/poll.c
    team/moy/mfcr2-1.4/main/rtp.c
    team/moy/mfcr2-1.4/main/say.c
    team/moy/mfcr2-1.4/main/slinfactory.c
    team/moy/mfcr2-1.4/main/udptl.c
    team/moy/mfcr2-1.4/main/utils.c
    team/moy/mfcr2-1.4/makeopts.in
    team/moy/mfcr2-1.4/pbx/ael/ael.tab.c
    team/moy/mfcr2-1.4/pbx/ael/ael.y
    team/moy/mfcr2-1.4/pbx/dundi-parser.c
    team/moy/mfcr2-1.4/pbx/pbx_ael.c
    team/moy/mfcr2-1.4/pbx/pbx_config.c
    team/moy/mfcr2-1.4/pbx/pbx_dundi.c
    team/moy/mfcr2-1.4/pbx/pbx_loopback.c
    team/moy/mfcr2-1.4/pbx/pbx_spool.c
    team/moy/mfcr2-1.4/res/res_agi.c
    team/moy/mfcr2-1.4/res/res_config_odbc.c
    team/moy/mfcr2-1.4/res/res_config_pgsql.c
    team/moy/mfcr2-1.4/res/res_convert.c
    team/moy/mfcr2-1.4/res/res_crypto.c
    team/moy/mfcr2-1.4/res/res_features.c
    team/moy/mfcr2-1.4/res/res_indications.c
    team/moy/mfcr2-1.4/res/res_jabber.c
    team/moy/mfcr2-1.4/res/res_monitor.c
    team/moy/mfcr2-1.4/res/res_musiconhold.c
    team/moy/mfcr2-1.4/res/res_odbc.c
    team/moy/mfcr2-1.4/res/res_smdi.c
    team/moy/mfcr2-1.4/res/res_snmp.c
    team/moy/mfcr2-1.4/res/snmp/agent.c
    team/moy/mfcr2-1.4/sounds/Makefile
    team/moy/mfcr2-1.4/static-http/astman.js
    team/moy/mfcr2-1.4/utils/Makefile
    team/moy/mfcr2-1.4/utils/expr2.testinput
    team/moy/mfcr2-1.4/utils/frame.c
    team/moy/mfcr2-1.4/utils/muted.c

Propchange: team/moy/mfcr2-1.4/
------------------------------------------------------------------------------
Binary property 'branch-1.2-blocked' - no diff available.

Propchange: team/moy/mfcr2-1.4/
------------------------------------------------------------------------------
Binary property 'branch-1.2-merged' - no diff available.

Propchange: team/moy/mfcr2-1.4/
------------------------------------------------------------------------------
--- reviewboard:url (original)
+++ reviewboard:url Fri Sep  4 23:56:28 2009
@@ -1,1 +1,2 @@
-http://reviewboard.digium.com
+https://reviewboard.asterisk.org
+

Propchange: team/moy/mfcr2-1.4/
------------------------------------------------------------------------------
--- svn:externals (original)
+++ svn:externals Fri Sep  4 23:56:28 2009
@@ -1,1 +1,1 @@
-menuselect https://origsvn.digium.com/svn/menuselect/tags/autotag_for_asterisk/1.4.23-rc4
+menuselect https://origsvn.digium.com/svn/menuselect/tags/autotag_for_asterisk/1.4.26-rc6

Modified: team/moy/mfcr2-1.4/CHANGES
URL: http://svn.asterisk.org/svn-view/asterisk/team/moy/mfcr2-1.4/CHANGES?view=diff&rev=216642&r1=216641&r2=216642
==============================================================================
--- team/moy/mfcr2-1.4/CHANGES (original)
+++ team/moy/mfcr2-1.4/CHANGES Fri Sep  4 23:56:28 2009
@@ -232,6 +232,10 @@
                       o parkcall variable added (one step parking)
                       o improved documentation for dynamic feature declarations!
                       o added parkedcallltransfers option to control builtin transfers with parking
+                      o added parkedcallparking option to control one touch parking w/ parking pickup
+                      o added parkedcallhangup option to control disconnect feature w/ parking pickup
+                      o added parkedcallrecording option to control one-touch record w/ parking pickup
+                      o added BRIDGE_FEATURES variable to set available features for a channel
                9. iax.conf
                       o adsi variable added
                       o mohinterpret variable added

Modified: team/moy/mfcr2-1.4/Makefile
URL: http://svn.asterisk.org/svn-view/asterisk/team/moy/mfcr2-1.4/Makefile?view=diff&rev=216642&r1=216641&r2=216642
==============================================================================
--- team/moy/mfcr2-1.4/Makefile (original)
+++ team/moy/mfcr2-1.4/Makefile Fri Sep  4 23:56:28 2009
@@ -320,13 +320,13 @@
 	menuselect/menuselect --check-deps menuselect.makeopts $(GLOBAL_MAKEOPTS) $(USER_MAKEOPTS)
 
 $(MOD_SUBDIRS_EMBED_LDSCRIPT):
-	@echo "EMBED_LDSCRIPTS+="`$(SUBMAKE) -C $(@:-embed-ldscript=) SUBDIR=$(@:-embed-ldscript=) __embed_ldscript` >> makeopts.embed_rules
+	+ at echo "EMBED_LDSCRIPTS+="`$(SUBMAKE) -C $(@:-embed-ldscript=) SUBDIR=$(@:-embed-ldscript=) __embed_ldscript` >> makeopts.embed_rules
 
 $(MOD_SUBDIRS_EMBED_LDFLAGS):
-	@echo "EMBED_LDFLAGS+="`$(SUBMAKE) -C $(@:-embed-ldflags=) SUBDIR=$(@:-embed-ldflags=) __embed_ldflags` >> makeopts.embed_rules
+	+ at echo "EMBED_LDFLAGS+="`$(SUBMAKE) -C $(@:-embed-ldflags=) SUBDIR=$(@:-embed-ldflags=) __embed_ldflags` >> makeopts.embed_rules
 
 $(MOD_SUBDIRS_EMBED_LIBS):
-	@echo "EMBED_LIBS+="`$(SUBMAKE) -C $(@:-embed-libs=) SUBDIR=$(@:-embed-libs=) __embed_libs` >> makeopts.embed_rules
+	+ at echo "EMBED_LIBS+="`$(SUBMAKE) -C $(@:-embed-libs=) SUBDIR=$(@:-embed-libs=) __embed_libs` >> makeopts.embed_rules
 
 $(MOD_SUBDIRS_MENUSELECT_TREE):
 	@$(SUBMAKE) -C $(@:-menuselect-tree=) SUBDIR=$(@:-menuselect-tree=) moduleinfo
@@ -404,7 +404,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.
@@ -676,7 +676,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 \
@@ -757,8 +757,8 @@
 	@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 $(SUBMAKE) -C $${dir} SUBDIR=$${dir} moduleinfo >> $@; done
-	@for dir in $(sort $(filter-out main,$(MOD_SUBDIRS))); do $(SUBMAKE) -C $${dir} SUBDIR=$${dir} makeopts >> $@; done
+	+ at for dir in $(sort $(filter-out main,$(MOD_SUBDIRS))); do $(SUBMAKE) -C $${dir} SUBDIR=$${dir} moduleinfo >> $@; done
+	+ at for dir in $(sort $(filter-out main,$(MOD_SUBDIRS))); do $(SUBMAKE) -C $${dir} SUBDIR=$${dir} makeopts >> $@; done
 	@cat build_tools/cflags.xml >> $@
 	@if [ "${AST_DEVMODE}" = "yes" ]; then \
 		cat build_tools/cflags-devmode.xml >> $@; \

Modified: team/moy/mfcr2-1.4/Makefile.rules
URL: http://svn.asterisk.org/svn-view/asterisk/team/moy/mfcr2-1.4/Makefile.rules?view=diff&rev=216642&r1=216641&r2=216642
==============================================================================
--- team/moy/mfcr2-1.4/Makefile.rules (original)
+++ team/moy/mfcr2-1.4/Makefile.rules Fri Sep  4 23:56:28 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/moy/mfcr2-1.4/UPGRADE.txt
URL: http://svn.asterisk.org/svn-view/asterisk/team/moy/mfcr2-1.4/UPGRADE.txt?view=diff&rev=216642&r1=216641&r2=216642
==============================================================================
--- team/moy/mfcr2-1.4/UPGRADE.txt (original)
+++ team/moy/mfcr2-1.4/UPGRADE.txt Fri Sep  4 23:56:28 2009
@@ -5,6 +5,14 @@
 === UPGRADE-1.2.txt -- Upgrade info for 1.0 to 1.2
 === UPGRADE.txt     -- Upgrade info for 1.2 to 1.4
 =========================================================
+
+IAX2:
+
+* There have been some changes to the IAX2 protocol to address the security
+  concerns documented in the security advisory AST-2009-006.  Please see the
+  IAX2 security document, doc/IAX2-security.pdf, for information regarding
+  backwards compatibility with versions of Asterisk that do not contain these
+  changes to IAX2.
 
 Build Process (configure script):
 
@@ -106,6 +114,16 @@
   if your dialplan relies on the ability to 'run off the end' of an extension
   and wait for a new extension without using WaitExten() to accomplish that,
   you will need set autofallthrough to 'no' in your extensions.conf file.
+
+Language Support:
+
+* Support for Taiwanese was incorrectly supported with the "tw" language code.
+  In reality, the "tw" language code is reserved for the Twi language, native
+  to Ghana.  If you were previously using the "tw" language code, you should
+  switch to using either "zh" (for Mandarin Chinese) or "zh_TW" for Taiwan
+  specific localizations.  Additionally, "mx" should be changed to "es_MX",
+  Georgian was incorrectly specified as "ge" but should be "ka", and Czech is
+  "cs", not "cz".
  
 Command Line Interface:
 

Modified: team/moy/mfcr2-1.4/agi/Makefile
URL: http://svn.asterisk.org/svn-view/asterisk/team/moy/mfcr2-1.4/agi/Makefile?view=diff&rev=216642&r1=216641&r2=216642
==============================================================================
--- team/moy/mfcr2-1.4/agi/Makefile (original)
+++ team/moy/mfcr2-1.4/agi/Makefile Fri Sep  4 23:56:28 2009
@@ -20,6 +20,8 @@
 endif
 
 include $(ASTTOPDIR)/Makefile.rules
+
+ASTCFLAGS+=-DSTANDALONE
 
 all: $(AGIS)
 

Modified: team/moy/mfcr2-1.4/agi/eagi-sphinx-test.c
URL: http://svn.asterisk.org/svn-view/asterisk/team/moy/mfcr2-1.4/agi/eagi-sphinx-test.c?view=diff&rev=216642&r1=216641&r2=216642
==============================================================================
--- team/moy/mfcr2-1.4/agi/eagi-sphinx-test.c (original)
+++ team/moy/mfcr2-1.4/agi/eagi-sphinx-test.c Fri Sep  4 23:56:28 2009
@@ -214,7 +214,7 @@
 	connect_sphinx();
 	tmp = getenv("agi_enhanced");
 	if (tmp) {
-		if (sscanf(tmp, "%d.%d", &ver, &subver) != 2)
+		if (sscanf(tmp, "%30d.%30d", &ver, &subver) != 2)
 			ver = 0;
 	}
 	if (ver < 1) {

Modified: team/moy/mfcr2-1.4/agi/eagi-test.c
URL: http://svn.asterisk.org/svn-view/asterisk/team/moy/mfcr2-1.4/agi/eagi-test.c?view=diff&rev=216642&r1=216641&r2=216642
==============================================================================
--- team/moy/mfcr2-1.4/agi/eagi-test.c (original)
+++ team/moy/mfcr2-1.4/agi/eagi-test.c Fri Sep  4 23:56:28 2009
@@ -156,7 +156,7 @@
 	}
 	tmp = getenv("agi_enhanced");
 	if (tmp) {
-		if (sscanf(tmp, "%d.%d", &ver, &subver) != 2)
+		if (sscanf(tmp, "%30d.%30d", &ver, &subver) != 2)
 			ver = 0;
 	}
 	if (ver < 1) {

Modified: team/moy/mfcr2-1.4/apps/app_adsiprog.c
URL: http://svn.asterisk.org/svn-view/asterisk/team/moy/mfcr2-1.4/apps/app_adsiprog.c?view=diff&rev=216642&r1=216641&r2=216642
==============================================================================
--- team/moy/mfcr2-1.4/apps/app_adsiprog.c (original)
+++ team/moy/mfcr2-1.4/apps/app_adsiprog.c Fri Sep  4 23:56:28 2009
@@ -195,7 +195,7 @@
 		if (!(argtype & ARG_NUMBER))
 			return -1;
 		/* Octal value */
-		if (sscanf(src, "%o", (int *)out) != 1)
+		if (sscanf(src, "%30o", (int *)out) != 1)
 			return -1;
 		if (argtype & ARG_STRING) {
 			/* Convert */
@@ -205,7 +205,7 @@
 		if (!(argtype & ARG_NUMBER))
 			return -1;
 		/* Hex value */
-		if (sscanf(src + 2, "%x", (unsigned int *)out) != 1)
+		if (sscanf(src + 2, "%30x", (unsigned int *)out) != 1)
 			return -1;
 		if (argtype & ARG_STRING) {
 			/* Convert */
@@ -215,7 +215,7 @@
 		if (!(argtype & ARG_NUMBER))
 			return -1;
 		/* Hex value */
-		if (sscanf(src, "%d", (int *)out) != 1)
+		if (sscanf(src, "%30d", (int *)out) != 1)
 			return -1;
 		if (argtype & ARG_STRING) {
 			/* Convert */

Modified: team/moy/mfcr2-1.4/apps/app_alarmreceiver.c
URL: http://svn.asterisk.org/svn-view/asterisk/team/moy/mfcr2-1.4/apps/app_alarmreceiver.c?view=diff&rev=216642&r1=216641&r2=216642
==============================================================================
--- team/moy/mfcr2-1.4/apps/app_alarmreceiver.c (original)
+++ team/moy/mfcr2-1.4/apps/app_alarmreceiver.c Fri Sep  4 23:56:28 2009
@@ -125,7 +125,7 @@
 		return;
 	}
 	
-	sscanf(value, "%u", &v);
+	sscanf(value, "%30u", &v);
 	v++;
 	
 	if(option_verbose >= 4)

Modified: team/moy/mfcr2-1.4/apps/app_channelredirect.c
URL: http://svn.asterisk.org/svn-view/asterisk/team/moy/mfcr2-1.4/apps/app_channelredirect.c?view=diff&rev=216642&r1=216641&r2=216642
==============================================================================
--- team/moy/mfcr2-1.4/apps/app_channelredirect.c (original)
+++ team/moy/mfcr2-1.4/apps/app_channelredirect.c Fri Sep  4 23:56:28 2009
@@ -108,6 +108,11 @@
 	if (option_debug > 1)
 		ast_log(LOG_DEBUG, "Attempting async goto (%s) to %s|%s|%d\n", args.channel, S_OR(context, chan2->context), S_OR(exten, chan2->exten), prio);
 
+	if (chan2->pbx) {
+		ast_channel_lock(chan2);
+		ast_set_flag(chan2, AST_FLAG_BRIDGE_HANGUP_DONT); /* don't let the after-bridge code run the h-exten */
+		ast_channel_unlock(chan2);
+	}
 	if (ast_async_goto_if_exists(chan2, S_OR(context, chan2->context), S_OR(exten, chan2->exten), prio))
 		ast_log(LOG_WARNING, "%s failed for %s\n", app, args.channel);
 	else

Modified: team/moy/mfcr2-1.4/apps/app_chanspy.c
URL: http://svn.asterisk.org/svn-view/asterisk/team/moy/mfcr2-1.4/apps/app_chanspy.c?view=diff&rev=216642&r1=216641&r2=216642
==============================================================================
--- team/moy/mfcr2-1.4/apps/app_chanspy.c (original)
+++ team/moy/mfcr2-1.4/apps/app_chanspy.c Fri Sep  4 23:56:28 2009
@@ -171,7 +171,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;
+	struct ast_frame *f, *cur;
 
 	ast_audiohook_lock(&csth->spy_audiohook);
 	if (csth->spy_audiohook.status != AST_AUDIOHOOK_STATUS_RUNNING) {
@@ -186,14 +186,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));
+			}
 		}
 	}
 
@@ -214,6 +216,8 @@
 	struct ast_channel *peer;
 
 	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);
 
@@ -727,7 +731,7 @@
 		if (ast_test_flag(&flags, OPTION_VOLUME) && opts[OPT_ARG_VOLUME]) {
 			int vol;
 
-			if ((sscanf(opts[OPT_ARG_VOLUME], "%d", &vol) != 1) || (vol > 4) || (vol < -4))
+			if ((sscanf(opts[OPT_ARG_VOLUME], "%30d", &vol) != 1) || (vol > 4) || (vol < -4))
 				ast_log(LOG_NOTICE, "Volume factor must be a number between -4 and 4\n");
 			else
 				volfactor = vol;
@@ -812,7 +816,7 @@
 		if (ast_test_flag(&flags, OPTION_VOLUME) && opts[OPT_ARG_VOLUME]) {
 			int vol;
 
-			if ((sscanf(opts[OPT_ARG_VOLUME], "%d", &vol) != 1) || (vol > 4) || (vol < -4))
+			if ((sscanf(opts[OPT_ARG_VOLUME], "%30d", &vol) != 1) || (vol > 4) || (vol < -4))
 				ast_log(LOG_NOTICE, "Volume factor must be a number between -4 and 4\n");
 			else
 				volfactor = vol;

Modified: team/moy/mfcr2-1.4/apps/app_dahdibarge.c
URL: http://svn.asterisk.org/svn-view/asterisk/team/moy/mfcr2-1.4/apps/app_dahdibarge.c?view=diff&rev=216642&r1=216641&r2=216642
==============================================================================
--- team/moy/mfcr2-1.4/apps/app_dahdibarge.c (original)
+++ team/moy/mfcr2-1.4/apps/app_dahdibarge.c Fri Sep  4 23:56:28 2009
@@ -277,15 +277,15 @@
 	
 	if (!ast_strlen_zero(data)) {
 		if (dahdimode) {
-			if ((sscanf(data, "DAHDI/%d", &confno) != 1) &&
-			    (sscanf(data, "%d", &confno) != 1)) {
+			if ((sscanf(data, "DAHDI/%30d", &confno) != 1) &&
+			    (sscanf(data, "%30d", &confno) != 1)) {
 				ast_log(LOG_WARNING, "Argument (if specified) must be a channel number, not '%s'\n", (char *) data);
 				ast_module_user_remove(u);
 				return 0;
 			}
 		} else {
-			if ((sscanf(data, "Zap/%d", &confno) != 1) &&
-			    (sscanf(data, "%d", &confno) != 1)) {
+			if ((sscanf(data, "Zap/%30d", &confno) != 1) &&
+			    (sscanf(data, "%30d", &confno) != 1)) {
 				ast_log(LOG_WARNING, "Argument (if specified) must be a channel number, not '%s'\n", (char *) data);
 				ast_module_user_remove(u);
 				return 0;
@@ -301,7 +301,7 @@
 		confstr[0] = '\0';
 		res = ast_app_getdata(chan, "conf-getchannel",confstr, sizeof(confstr) - 1, 0);
 		if (res <0) goto out;
-		if (sscanf(confstr, "%d", &confno) != 1)
+		if (sscanf(confstr, "%30d", &confno) != 1)
 			confno = 0;
 	}
 	if (confno) {

Modified: team/moy/mfcr2-1.4/apps/app_dahdiras.c
URL: http://svn.asterisk.org/svn-view/asterisk/team/moy/mfcr2-1.4/apps/app_dahdiras.c?view=diff&rev=216642&r1=216641&r2=216642
==============================================================================
--- team/moy/mfcr2-1.4/apps/app_dahdiras.c (original)
+++ team/moy/mfcr2-1.4/apps/app_dahdiras.c Fri Sep  4 23:56:28 2009
@@ -27,6 +27,7 @@
 
 /*** MODULEINFO
 	<depend>dahdi</depend>
+	<depend>working_fork</depend>
  ***/
 
 #include "asterisk.h"
@@ -49,6 +50,12 @@
 #include <stdio.h>
 #include <fcntl.h>
 
+#include "asterisk/dahdi_compat.h"
+
+#ifdef HAVE_CAP
+#include <sys/capability.h>
+#endif /* HAVE_CAP */
+
 #include "asterisk/lock.h"
 #include "asterisk/file.h"
 #include "asterisk/logger.h"
@@ -57,8 +64,6 @@
 #include "asterisk/module.h"
 #include "asterisk/options.h"
 
-#include "asterisk/dahdi_compat.h"
-
 static char *dahdi_app = "DAHDIRAS";
 static char *zap_app = "ZapRAS";
 
@@ -92,6 +97,9 @@
 	int argc = 0;
 	char *stringp=NULL;
 	sigset_t fullset, oldset;
+#ifdef HAVE_CAP
+	cap_t cap;
+#endif
 
 	sigfillset(&fullset);
 	pthread_sigmask(SIG_BLOCK, &fullset, &oldset);
@@ -102,6 +110,16 @@
 		pthread_sigmask(SIG_SETMASK, &oldset, NULL);
 		return pid;
 	}
+
+#ifdef HAVE_CAP
+	cap = cap_from_text("cap_net_admin-eip");
+
+	if (cap_set_proc(cap)) {
+		/* Careful with order! Logging cannot happen after we close FDs */
+		ast_log(LOG_WARNING, "Unable to remove capabilities.\n");
+	}
+	cap_free(cap);
+#endif
 
 	/* Restore original signal handlers */
 	for (x=0;x<NSIG;x++)

Modified: team/moy/mfcr2-1.4/apps/app_dial.c
URL: http://svn.asterisk.org/svn-view/asterisk/team/moy/mfcr2-1.4/apps/app_dial.c?view=diff&rev=216642&r1=216641&r2=216642
==============================================================================
--- team/moy/mfcr2-1.4/apps/app_dial.c (original)
+++ team/moy/mfcr2-1.4/apps/app_dial.c Fri Sep  4 23:56:28 2009
@@ -356,6 +356,10 @@
 			ast_cdr_failed(chan->cdr); \
 		numnochan++; \
 		break; \
+	case AST_CAUSE_NO_ANSWER: \
+		if (chan->cdr) \
+			ast_cdr_noanswer(chan->cdr); \
+		break; \
 	case AST_CAUSE_NORMAL_CLEARING: \
 		break; \
 	default: \
@@ -383,6 +387,7 @@
 	return 0;
 }
 
+static int detect_disconnect(struct ast_channel *chan, char code, char *featurecode, int len);
 
 static const char *get_cid_name(char *name, int namelen, struct ast_channel *chan)
 {
@@ -417,7 +422,9 @@
 	struct ast_channel *peer = NULL;
 	/* single is set if only one destination is enabled */
 	int single = outgoing && !outgoing->next && !ast_test_flag(outgoing, OPT_MUSICBACK | OPT_RINGBACK);
-	
+
+	char featurecode[FEATURE_MAX_LEN + 1] = { 0, };
+
 	if (single) {
 		/* Turn off hold music, etc */
 		ast_deactivate_generator(in);
@@ -496,6 +503,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";
@@ -563,6 +573,9 @@
 							char cidname[AST_MAX_EXTENSION] = "";
 							ast_set_callerid(c, S_OR(in->macroexten, in->exten), get_cid_name(cidname, sizeof(cidname), in), NULL);
 						}
+					}
+					if (single) {
+						ast_indicate(in, -1);
 					}
 				}
 				/* Hangup the original channel now, in case we needed it */
@@ -739,10 +752,10 @@
 					}
 				}
 
-				if (ast_test_flag(peerflags, OPT_CALLER_HANGUP) && 
-						  (f->subclass == '*')) { /* hmm it it not guaranteed to be '*' anymore. */
+				if (ast_test_flag(peerflags, OPT_CALLER_HANGUP) &&
+					detect_disconnect(in, f->subclass, featurecode, sizeof(featurecode))) {
 					if (option_verbose > 2)
-						ast_verbose(VERBOSE_PREFIX_3 "User hit %c to disconnect call.\n", f->subclass);
+						ast_verbose(VERBOSE_PREFIX_3 "User requested call disconnect.\n");
 					*to=0;
 					ast_cdr_noanswer(in->cdr);
 					strcpy(status, "CANCEL");
@@ -781,6 +794,34 @@
 	}
 	
 	return peer;
+}
+
+static int detect_disconnect(struct ast_channel *chan, char code, char *featurecode, int len)
+{
+	struct ast_flags features = { AST_FEATURE_DISCONNECT }; /* only concerned with disconnect feature */
+	struct ast_call_feature feature = { 0, };
+	char *tmp;
+	int res;
+
+	if ((strlen(featurecode)) < (len - 2)) { 
+		tmp = &featurecode[strlen(featurecode)];
+		tmp[0] = code;
+		tmp[1] = '\0';
+	} else {
+		featurecode[0] = 0;
+		return -1; /* no room in featurecode buffer */
+	}
+
+	res = ast_feature_detect(chan, &features, featurecode, &feature);
+
+	if (res != FEATURE_RETURN_STOREDIGITS) {
+		featurecode[0] = '\0';
+	}
+	if (feature.feature_mask & AST_FEATURE_DISCONNECT) {
+		return 1;
+	}
+
+	return 0;
 }
 
 static void replace_macro_delimiter(char *s)
@@ -801,35 +842,6 @@
 	if (ast_test_flag(opts, OPT_SCREENING) && res <= '4')
 		return 1;
 	return 0;
-}
-
-static void set_dial_features(struct ast_flags *opts, struct ast_dial_features *features)
-{
-	struct ast_flags perm_opts = {.flags = 0};
-
-	ast_copy_flags(&perm_opts, opts,
-		OPT_CALLER_TRANSFER | OPT_CALLER_PARK | OPT_CALLER_MONITOR | OPT_CALLER_HANGUP |
-		OPT_CALLEE_TRANSFER | OPT_CALLEE_PARK | OPT_CALLEE_MONITOR | OPT_CALLEE_HANGUP);
-
-	memset(features->options, 0, sizeof(features->options));
-
-	ast_app_options2str(dial_exec_options, &perm_opts, features->options, sizeof(features->options));
-	if (ast_test_flag(&perm_opts, OPT_CALLEE_TRANSFER))
-		ast_set_flag(&(features->features_callee), AST_FEATURE_REDIRECT);
-	if (ast_test_flag(&perm_opts, OPT_CALLER_TRANSFER))
-		ast_set_flag(&(features->features_caller), AST_FEATURE_REDIRECT);
-	if (ast_test_flag(&perm_opts, OPT_CALLEE_HANGUP))
-		ast_set_flag(&(features->features_callee), AST_FEATURE_DISCONNECT);
-	if (ast_test_flag(&perm_opts, OPT_CALLER_HANGUP))
-		ast_set_flag(&(features->features_caller), AST_FEATURE_DISCONNECT);
-	if (ast_test_flag(&perm_opts, OPT_CALLEE_MONITOR))
-		ast_set_flag(&(features->features_callee), AST_FEATURE_AUTOMON);
-	if (ast_test_flag(&perm_opts, OPT_CALLER_MONITOR))
-		ast_set_flag(&(features->features_caller), AST_FEATURE_AUTOMON);
-	if (ast_test_flag(&perm_opts, OPT_CALLEE_PARK))
-		ast_set_flag(&(features->features_callee), AST_FEATURE_PARKCALL);
-	if (ast_test_flag(&perm_opts, OPT_CALLER_PARK))
-		ast_set_flag(&(features->features_caller), AST_FEATURE_PARKCALL);
 }
 
 static void end_bridge_callback (void *data)
@@ -903,9 +915,6 @@
 	struct ast_flags opts = { 0, };
 	char *opt_args[OPT_ARG_ARRAY_SIZE];
 	struct ast_datastore *datastore = NULL;
-	struct ast_datastore *ds_caller_features = NULL;
-	struct ast_datastore *ds_callee_features = NULL;
-	struct ast_dial_features *caller_features;
 	int fulldial = 0, num_dialed = 0;
 
 	if (ast_strlen_zero(data)) {
@@ -1169,25 +1178,6 @@
 	    
 	ast_copy_flags(peerflags, &opts, OPT_DTMF_EXIT | OPT_GO_ON | OPT_ORIGINAL_CLID | OPT_CALLER_HANGUP | OPT_IGNORE_FORWARDING);
 
-	/* Create datastore for channel dial features for caller */
-	if (!(ds_caller_features = ast_channel_datastore_alloc(&dial_features_info, NULL))) {
-		ast_log(LOG_WARNING, "Unable to create channel datastore for dial features. Aborting!\n");
-		goto out;
-	}
-
-	if (!(caller_features = ast_calloc(1, sizeof(*caller_features)))) {
-		ast_log(LOG_WARNING, "Unable to allocate memory for feature flags. Aborting!\n");
-		goto out;
-	}
-
-	ast_channel_lock(chan);
-	caller_features->is_caller = 1;
-	set_dial_features(&opts, caller_features);
-	ds_caller_features->inheritance = -1;
-	ds_caller_features->data = caller_features;
-	ast_channel_datastore_add(chan, ds_caller_features);
-	ast_channel_unlock(chan);
-
 	/* loop through the list of dial destinations */
 	rest = args.peers;
 	while ((cur = strsep(&rest, "&")) ) {
@@ -1198,7 +1188,6 @@
 		char *tech = strsep(&number, "/");
 		/* find if we already dialed this interface */
 		struct ast_dialed_interface *di;
-		struct ast_dial_features *callee_features;
 		AST_LIST_HEAD(, ast_dialed_interface) *dialed_interfaces;
 		num_dialed++;
 		if (!number) {
@@ -1298,6 +1287,7 @@
 		
 		/* Inherit specially named variables from parent channel */
 		ast_channel_inherit_variables(chan, tmp->chan);
+		ast_channel_datastore_inherit(chan, tmp->chan);
 
 		tmp->chan->appl = "AppDial";
 		tmp->chan->data = "(Outgoing Line)";
@@ -1347,27 +1337,6 @@
 			ast_copy_string(tmp->chan->exten, chan->macroexten, sizeof(tmp->chan->exten));
 		else
 			ast_copy_string(tmp->chan->exten, chan->exten, sizeof(tmp->chan->exten));
-
-		/* Save callee features */
-		if (!(ds_callee_features = ast_channel_datastore_alloc(&dial_features_info, NULL))) {
-			ast_log(LOG_WARNING, "Unable to create channel datastore for dial features. Aborting!\n");
-			ast_free(tmp);
-			goto out;
-		}
-
-		if (!(callee_features = ast_calloc(1, sizeof(*callee_features)))) {
-			ast_log(LOG_WARNING, "Unable to allocate memory for feature flags. Aborting!\n");
-			ast_free(tmp);
-			goto out;
-		}
-
-		ast_channel_lock(tmp->chan);
-		callee_features->is_caller = 0;
-		set_dial_features(&opts, callee_features);
-		ds_callee_features->inheritance = -1;
-		ds_callee_features->data = callee_features;
-		ast_channel_datastore_add(tmp->chan, ds_callee_features);
-		ast_channel_unlock(tmp->chan);
 
 		/* Place the call, but don't wait on the answer */
 		res = ast_call(tmp->chan, numsubst, 0);
@@ -1895,7 +1864,7 @@
 
 	if ((dialdata = strchr(announce, '|'))) {
 		*dialdata++ = '\0';
-		if (sscanf(dialdata, "%d", &sleep) == 1) {
+		if (sscanf(dialdata, "%30d", &sleep) == 1) {
 			sleep *= 1000;
 		} else {
 			ast_log(LOG_ERROR, "%s requires the numerical argument <sleep>\n",rapp);
@@ -1903,14 +1872,14 @@
 		}
 		if ((dialdata = strchr(dialdata, '|'))) {
 			*dialdata++ = '\0';
-			if (sscanf(dialdata, "%d", &loops) != 1) {
+			if (sscanf(dialdata, "%30d", &loops) != 1) {
 				ast_log(LOG_ERROR, "%s requires the numerical argument <loops>\n",rapp);
 				goto done;
 			}
 		}
 	}
 	
-	if ((dialdata = strchr(dialdata, '|'))) {
+	if (dialdata && (dialdata = strchr(dialdata, '|'))) {
 		*dialdata++ = '\0';
 	} else {
 		ast_log(LOG_ERROR, "%s requires more arguments\n",rapp);

Modified: team/moy/mfcr2-1.4/apps/app_disa.c
URL: http://svn.asterisk.org/svn-view/asterisk/team/moy/mfcr2-1.4/apps/app_disa.c?view=diff&rev=216642&r1=216641&r2=216642
==============================================================================
--- team/moy/mfcr2-1.4/apps/app_disa.c (original)
+++ team/moy/mfcr2-1.4/apps/app_disa.c Fri Sep  4 23:56:28 2009
@@ -240,7 +240,7 @@
 			if (!(k&1)) { /* if in password state */
 				if (j == '#') { /* end of password */
 					  /* see if this is an integer */
-					if (sscanf(args.passcode,"%d",&j) < 1) { /* nope, it must be a filename */
+					if (sscanf(args.passcode,"%30d",&j) < 1) { /* nope, it must be a filename */
 						fp = fopen(args.passcode,"r");
 						if (!fp) {
 							ast_log(LOG_WARNING,"DISA password file %s not found on chan %s\n",args.passcode,chan->name);
@@ -266,7 +266,7 @@
 							ast_log(LOG_DEBUG, "Mailbox: %s\n",args.mailbox);
 
 							/* password must be in valid format (numeric) */
-							if (sscanf(args.passcode,"%d", &j) < 1)
+							if (sscanf(args.passcode,"%30d", &j) < 1)
 								continue;
 							 /* if we got it */
 							if (!strcmp(exten,args.passcode)) {

Modified: team/moy/mfcr2-1.4/apps/app_externalivr.c
URL: http://svn.asterisk.org/svn-view/asterisk/team/moy/mfcr2-1.4/apps/app_externalivr.c?view=diff&rev=216642&r1=216641&r2=216642
==============================================================================
--- team/moy/mfcr2-1.4/apps/app_externalivr.c (original)
+++ team/moy/mfcr2-1.4/apps/app_externalivr.c Fri Sep  4 23:56:28 2009
@@ -30,6 +30,10 @@
  *
  * \ingroup applications
  */
+
+/*** MODULEINFO
+	<depend>working_fork</depend>
+ ***/
 
 #include "asterisk.h"
 
@@ -41,6 +45,9 @@
 #include <unistd.h>
 #include <errno.h>
 #include <signal.h>

[... 30661 lines stripped ...]



More information about the asterisk-commits mailing list