[asterisk-commits] moy: branch moy/mfcr2 r118254 - in /team/moy/mfcr2: ./ apps/ build_tools/ cdr...
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Sun May 25 16:11:56 CDT 2008
Author: moy
Date: Sun May 25 16:11:54 2008
New Revision: 118254
URL: http://svn.digium.com/view/asterisk?view=rev&rev=118254
Log:
merged trunk revision 118253
Added:
team/moy/mfcr2/configs/pbx_realtime.conf
- copied unchanged from r118253, trunk/configs/pbx_realtime.conf
team/moy/mfcr2/contrib/scripts/install_prereq
- copied unchanged from r118253, trunk/contrib/scripts/install_prereq
team/moy/mfcr2/doc/api-1.6.0-changes.odt
- copied unchanged from r118253, trunk/doc/api-1.6.0-changes.odt
team/moy/mfcr2/doc/cli.txt
- copied unchanged from r118253, trunk/doc/cli.txt
team/moy/mfcr2/funcs/func_speex.c
- copied unchanged from r118253, trunk/funcs/func_speex.c
team/moy/mfcr2/include/asterisk/dlinkedlists.h
- copied unchanged from r118253, trunk/include/asterisk/dlinkedlists.h
team/moy/mfcr2/include/asterisk/taskprocessor.h
- copied unchanged from r118253, trunk/include/asterisk/taskprocessor.h
team/moy/mfcr2/main/taskprocessor.c
- copied unchanged from r118253, trunk/main/taskprocessor.c
Removed:
team/moy/mfcr2/contrib/scripts/postgres_cdr.sql
Modified:
team/moy/mfcr2/ (props changed)
team/moy/mfcr2/CHANGES
team/moy/mfcr2/CREDITS
team/moy/mfcr2/Makefile
team/moy/mfcr2/Makefile.rules
team/moy/mfcr2/UPGRADE.txt
team/moy/mfcr2/acinclude.m4
team/moy/mfcr2/apps/app_alarmreceiver.c
team/moy/mfcr2/apps/app_chanisavail.c
team/moy/mfcr2/apps/app_chanspy.c
team/moy/mfcr2/apps/app_dial.c
team/moy/mfcr2/apps/app_disa.c
team/moy/mfcr2/apps/app_dumpchan.c
team/moy/mfcr2/apps/app_externalivr.c
team/moy/mfcr2/apps/app_festival.c
team/moy/mfcr2/apps/app_followme.c
team/moy/mfcr2/apps/app_ices.c
team/moy/mfcr2/apps/app_jack.c
team/moy/mfcr2/apps/app_macro.c
team/moy/mfcr2/apps/app_meetme.c
team/moy/mfcr2/apps/app_milliwatt.c
team/moy/mfcr2/apps/app_minivm.c
team/moy/mfcr2/apps/app_morsecode.c
team/moy/mfcr2/apps/app_mp3.c
team/moy/mfcr2/apps/app_nbscat.c
team/moy/mfcr2/apps/app_queue.c
team/moy/mfcr2/apps/app_read.c
team/moy/mfcr2/apps/app_readexten.c
team/moy/mfcr2/apps/app_rpt.c
team/moy/mfcr2/apps/app_skel.c
team/moy/mfcr2/apps/app_sms.c
team/moy/mfcr2/apps/app_speech_utils.c
team/moy/mfcr2/apps/app_stack.c
team/moy/mfcr2/apps/app_test.c
team/moy/mfcr2/apps/app_voicemail.c
team/moy/mfcr2/apps/app_waituntil.c
team/moy/mfcr2/apps/app_while.c
team/moy/mfcr2/apps/app_zapbarge.c
team/moy/mfcr2/apps/app_zapscan.c
team/moy/mfcr2/build_tools/make_buildopts_h
team/moy/mfcr2/build_tools/menuselect-deps.in
team/moy/mfcr2/cdr/cdr_csv.c
team/moy/mfcr2/cdr/cdr_pgsql.c
team/moy/mfcr2/channels/Makefile
team/moy/mfcr2/channels/chan_agent.c
team/moy/mfcr2/channels/chan_alsa.c
team/moy/mfcr2/channels/chan_console.c
team/moy/mfcr2/channels/chan_gtalk.c
team/moy/mfcr2/channels/chan_h323.c
team/moy/mfcr2/channels/chan_iax2.c
team/moy/mfcr2/channels/chan_jingle.c
team/moy/mfcr2/channels/chan_local.c
team/moy/mfcr2/channels/chan_mgcp.c
team/moy/mfcr2/channels/chan_misdn.c
team/moy/mfcr2/channels/chan_nbs.c
team/moy/mfcr2/channels/chan_oss.c
team/moy/mfcr2/channels/chan_phone.c
team/moy/mfcr2/channels/chan_sip.c
team/moy/mfcr2/channels/chan_skinny.c
team/moy/mfcr2/channels/chan_unistim.c
team/moy/mfcr2/channels/chan_usbradio.c
team/moy/mfcr2/channels/chan_vpb.cc
team/moy/mfcr2/channels/chan_zap.c
team/moy/mfcr2/channels/console_gui.c
team/moy/mfcr2/channels/console_video.c
team/moy/mfcr2/channels/h323/ast_h323.cxx
team/moy/mfcr2/channels/iax2-parser.c
team/moy/mfcr2/channels/iax2-parser.h
team/moy/mfcr2/channels/iax2.h
team/moy/mfcr2/channels/xpmr/sinetabx.h
team/moy/mfcr2/channels/xpmr/xpmr.c
team/moy/mfcr2/channels/xpmr/xpmr.h
team/moy/mfcr2/channels/xpmr/xpmr_coef.h
team/moy/mfcr2/codecs/codec_a_mu.c
team/moy/mfcr2/codecs/codec_adpcm.c
team/moy/mfcr2/codecs/codec_alaw.c
team/moy/mfcr2/codecs/codec_g722.c
team/moy/mfcr2/codecs/codec_g726.c
team/moy/mfcr2/codecs/codec_gsm.c
team/moy/mfcr2/codecs/codec_lpc10.c
team/moy/mfcr2/codecs/codec_resample.c
team/moy/mfcr2/codecs/codec_speex.c
team/moy/mfcr2/codecs/codec_ulaw.c
team/moy/mfcr2/codecs/codec_zap.c
team/moy/mfcr2/configs/jabber.conf.sample
team/moy/mfcr2/configs/oss.conf.sample
team/moy/mfcr2/configs/queues.conf.sample
team/moy/mfcr2/configs/sip.conf.sample
team/moy/mfcr2/configs/voicemail.conf.sample
team/moy/mfcr2/configs/zapata.conf.sample
team/moy/mfcr2/configure
team/moy/mfcr2/configure.ac
team/moy/mfcr2/contrib/init.d/rc.debian.asterisk
team/moy/mfcr2/contrib/init.d/rc.gentoo.asterisk
team/moy/mfcr2/contrib/init.d/rc.mandrake.asterisk
team/moy/mfcr2/contrib/init.d/rc.redhat.asterisk
team/moy/mfcr2/contrib/init.d/rc.slackware.asterisk
team/moy/mfcr2/contrib/init.d/rc.suse.asterisk
team/moy/mfcr2/contrib/scripts/asterisk.ldap-schema
team/moy/mfcr2/contrib/scripts/asterisk.ldif
team/moy/mfcr2/contrib/scripts/get_ilbc_source.sh
team/moy/mfcr2/contrib/scripts/safe_asterisk
team/moy/mfcr2/doc/externalivr.txt
team/moy/mfcr2/doc/manager_1_1.txt
team/moy/mfcr2/doc/smdi.txt
team/moy/mfcr2/doc/tex/channelvariables.tex
team/moy/mfcr2/formats/format_g723.c
team/moy/mfcr2/formats/format_g726.c
team/moy/mfcr2/formats/format_g729.c
team/moy/mfcr2/formats/format_gsm.c
team/moy/mfcr2/formats/format_h263.c
team/moy/mfcr2/formats/format_h264.c
team/moy/mfcr2/formats/format_ilbc.c
team/moy/mfcr2/formats/format_jpeg.c
team/moy/mfcr2/formats/format_ogg_vorbis.c
team/moy/mfcr2/formats/format_pcm.c
team/moy/mfcr2/formats/format_sln.c
team/moy/mfcr2/formats/format_sln16.c
team/moy/mfcr2/formats/format_vox.c
team/moy/mfcr2/formats/format_wav.c
team/moy/mfcr2/formats/format_wav_gsm.c
team/moy/mfcr2/funcs/func_enum.c
team/moy/mfcr2/funcs/func_timeout.c
team/moy/mfcr2/include/asterisk/_private.h
team/moy/mfcr2/include/asterisk/app.h
team/moy/mfcr2/include/asterisk/audiohook.h
team/moy/mfcr2/include/asterisk/autoconfig.h.in
team/moy/mfcr2/include/asterisk/channel.h
team/moy/mfcr2/include/asterisk/compiler.h
team/moy/mfcr2/include/asterisk/config.h
team/moy/mfcr2/include/asterisk/enum.h
team/moy/mfcr2/include/asterisk/frame.h
team/moy/mfcr2/include/asterisk/lock.h
team/moy/mfcr2/include/asterisk/logger.h
team/moy/mfcr2/include/asterisk/manager.h
team/moy/mfcr2/include/asterisk/pbx.h
team/moy/mfcr2/include/asterisk/res_odbc.h
team/moy/mfcr2/include/asterisk/rtp.h
team/moy/mfcr2/include/asterisk/sched.h
team/moy/mfcr2/include/asterisk/strings.h
team/moy/mfcr2/include/asterisk/utils.h
team/moy/mfcr2/main/Makefile
team/moy/mfcr2/main/abstract_jb.c
team/moy/mfcr2/main/app.c
team/moy/mfcr2/main/asterisk.c
team/moy/mfcr2/main/audiohook.c
team/moy/mfcr2/main/autoservice.c
team/moy/mfcr2/main/channel.c
team/moy/mfcr2/main/cli.c
team/moy/mfcr2/main/config.c
team/moy/mfcr2/main/dial.c
team/moy/mfcr2/main/dsp.c
team/moy/mfcr2/main/enum.c
team/moy/mfcr2/main/event.c
team/moy/mfcr2/main/features.c
team/moy/mfcr2/main/file.c
team/moy/mfcr2/main/frame.c
team/moy/mfcr2/main/http.c
team/moy/mfcr2/main/indications.c
team/moy/mfcr2/main/logger.c
team/moy/mfcr2/main/manager.c
team/moy/mfcr2/main/pbx.c
team/moy/mfcr2/main/rtp.c
team/moy/mfcr2/main/sched.c
team/moy/mfcr2/main/slinfactory.c
team/moy/mfcr2/main/translate.c
team/moy/mfcr2/main/udptl.c
team/moy/mfcr2/main/utils.c
team/moy/mfcr2/pbx/pbx_gtkconsole.c
team/moy/mfcr2/pbx/pbx_realtime.c
team/moy/mfcr2/pbx/pbx_spool.c
team/moy/mfcr2/res/res_adsi.c
team/moy/mfcr2/res/res_agi.c
team/moy/mfcr2/res/res_config_ldap.c
team/moy/mfcr2/res/res_jabber.c
team/moy/mfcr2/res/res_musiconhold.c
team/moy/mfcr2/res/res_odbc.c
team/moy/mfcr2/res/res_smdi.c
team/moy/mfcr2/res/snmp/agent.c
team/moy/mfcr2/sample.call
team/moy/mfcr2/sounds/Makefile
team/moy/mfcr2/utils/ael_main.c
team/moy/mfcr2/utils/astcanary.c
team/moy/mfcr2/utils/check_expr.c
team/moy/mfcr2/utils/conf2ael.c
team/moy/mfcr2/utils/hashtest.c
team/moy/mfcr2/utils/hashtest2.c
team/moy/mfcr2/utils/refcounter.c
Propchange: team/moy/mfcr2/
------------------------------------------------------------------------------
Binary property 'branch-1.4-blocked' - no diff available.
Propchange: team/moy/mfcr2/
------------------------------------------------------------------------------
Binary property 'branch-1.4-merged' - no diff available.
Modified: team/moy/mfcr2/CHANGES
URL: http://svn.digium.com/view/asterisk/team/moy/mfcr2/CHANGES?view=diff&rev=118254&r1=118253&r2=118254
==============================================================================
--- team/moy/mfcr2/CHANGES (original)
+++ team/moy/mfcr2/CHANGES Sun May 25 16:11:54 2008
@@ -7,17 +7,39 @@
* Added a new dialplan function, AST_CONFIG(), which allows you to access
variables from an Asterisk configuration file.
* The JACK_HOOK function now has a c() option to supply a custom client name.
+ * Added two new dialplan functions from libspeex for audio gain control and
+ denoise, AGC() and DENOISE(). Both functions can be applied to the tx and
+ rx directions of a channel from the dialplan.
+ * The SMDI_MSG_RETRIEVE function now has the ability to search for SMDI messages
+ based on other parameters. The default is still to search based on the
+ forwarding station ID. However, there are new options that allow you to search
+ based on the message desk terminal ID, or the message desk number.
+ * TIMEOUT() has been modified to be accurate down to the millisecond.
+ * ENUM*() functions now include the following new options:
+ - 'u' returns the full URI and does not strip off the URI-scheme.
+ - 's' triggers ISN specific rewriting
+ - 'i' looks for branches into an Infrastructure ENUM tree
+ - 'd' for a direct DNS lookup without any flipping of digits.
+ * TXCIDNAME() has a new zone-suffix parameter (which defaults to 'e164.arpa')
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.
+ * The default for pridialplan has changed from 'national' to 'unknown'.
PBX Changes
-----------
* It is now possible to specify a pattern match as a hint. Once a phone subscribes
to something that matches the pattern a hint will be created using the contents
and variables evaluated.
+ * Dialplan matching has been extended to allow an extension to return to the
+ PBX core to wait for more digits. This is done by using the new dialplan
+ application called "Incomplete". This will permit a whole new level of
+ extension control, by giving the administrator more control over early
+ matches employing one of the short-circuit pattern match operators. Note
+ that custom applications can trigger this same behavior by returning the
+ special value AST_PBX_INCOMPLETE.
Application Changes
-------------------
@@ -28,6 +50,11 @@
quite helpful.
* Voicemail now permits a mailbox setting to wrap around from first to last
messages, if the "messagewrap" option is set to a true value.
+ * Voicemail now permits an external script to be run, for password validation.
+ The script should output "VALID" or "INVALID" on stdout, depending upon the
+ wish to validate or invalidate the password given. Arguments are:
+ "mailbox" "context" "oldpass" "newpass". See the sample voicemail.conf for
+ more details
* Dial has a new option: F(context^extension^pri), which permits a callee to
continue in the dialplan, at the specified label, if the caller hangs up.
* ChanSpy and ExtenSpy have a new option, 's' which suppresses speaking the
@@ -40,6 +67,16 @@
to be spoken instead of the channel name or number. For more information on the
use of this option, issue the command "core show application ChanSpy" from the
Asterisk CLI.
+ * Chanspy has a new option, 'd', which allows the spy to use DTMF to swap between
+ spy modes. Use of this feature overrides the typical use of numeric DTMF. In other
+ words, if using the 'd' option, it is not possible to enter a number to append to
+ the first argument to Chanspy(). Pressing 4 will change to spy mode, pressing 5 will
+ change to whisper mode, and pressing 6 will change to barge mode.
+ * ExternalIVR now takes several options that affect the way it performs, as
+ well as having several new commands. Please see doc/externalivr.txt for the
+ complete documentation.
+ * ChanIsAvail has a new option, 'a', which will return all available channels instead
+ of just the first one if you give the function more then one channel to check.
SIP Changes
-----------
@@ -56,6 +93,10 @@
and restore this performance improvement. Astobj2 refcounting is now used
for users, peers, and dialogs. Users are encouraged to assist in regression
testing and problem reporting!
+ * Added ability to specify registration expiry time on a per registration basis in
+ the register line.
+ * Added support for T140 RED - redundancy in T.140 to prevent text loss due to
+ lost packets.
IAX Changes
-----------
@@ -66,11 +107,27 @@
* New CLI command, "config reload <file.conf>" which reloads any module that
references that particular configuration file. Also added "config list"
which shows which configuration files are in use.
+ * New CLI commands, "pri show version" and "ss7 show version" that will
+ display which version of libpri and libss7 are being used, respectively.
+ A new API call was added so trunk will now have to be compiled against
+ a versions of libpri and libss7 that have them or it will not know that
+ these libraries exist.
DNS manager changes
-------------------
* Addresses managed by DNS manager now can check to see if there is a DNS
SRV record for a given domain and will use that hostname/port if present.
+
+AMI - The manager (TCP/TLS/HTTP)
+--------------------------------
+ * The Status command now takes an optional list of variables to display
+ along with channel status.
+
+ODBC Changes
+------------
+ * res_odbc no longer has a limit of 1023 total possible unshared connections,
+ as some people were running into this limit. This limit has been increased
+ to 4.2 billion.
------------------------------------------------------------------------------
--- Functionality changes from Asterisk 1.4.X to Asterisk 1.6.0 -------------
@@ -125,6 +182,7 @@
* 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.
+ * Originate now accepts codec settings with "Codecs: alaw, ulaw, h264"
* New command: Atxfer. See doc/manager_1_1.txt for more details or
manager show command Atxfer from the CLI
@@ -376,6 +434,12 @@
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).
+ * Added the support for marking messages as "urgent." There are two methods to accomplish
+ this. One is to pass the 'U' option to VoiceMail(). Another way to mark a message as urgent
+ is to specify "review=yes" in voicemail.conf. Doing this will cause allow the user to mark
+ the message as urgent after he has recorded a voicemail by following the voice instructions.
+ When listening to voicemails using VoiceMailMain urgent messages will be presented before other
+ messages
Queue changes
-------------
@@ -410,6 +474,12 @@
* New configuration option: randomperiodicannounce. If a list of periodic announcements is
specified by the periodic-announce option, then one will be chosen randomly when it is time
to play a periodic announcment
+ * New configuration options: announce-position now takes two more values in addition to "yes" and
+ "no." Two new options, "limit" and "more," are allowed. These are tied to another option,
+ announce-position-limit. By setting announce-position to "limit" callers will only have their
+ position announced if their position is less than what is specified by announce-position-limit.
+ If announce-position is set to "more" then callers beyond the position specified by announce-position-limit
+ will be told that their are more than announce-position-limit callers waiting.
MeetMe Changes
--------------
@@ -674,3 +744,9 @@
turned on, via the CHANNEL(trace) dialplan function. Could be useful for
dialplan debugging.
* iLBC source code no longer included (see UPGRADE.txt for details)
+ * If compiled with DETECT_DEADLOCKS enabled and if you have glibc, then if
+ deadlock is detected, a backtrace of the stack which led to the lock calls
+ will be output to the CLI.
+ * If compiled with DEBUG_THREADS enabled and if you have glibc, then issuing
+ the "core show locks" CLI command will give lock information output as well
+ as a backtrace of the stack which led to the lock calls.
Modified: team/moy/mfcr2/CREDITS
URL: http://svn.digium.com/view/asterisk/team/moy/mfcr2/CREDITS?view=diff&rev=118254&r1=118253&r2=118254
==============================================================================
--- team/moy/mfcr2/CREDITS (original)
+++ team/moy/mfcr2/CREDITS Sun May 25 16:11:54 2008
@@ -19,6 +19,9 @@
John Todd, TalkPlus, Inc. and JR Richardson, Ntegrated Solutions. - for funding
the development of SIP Session Timers support.
+
+Omnitor AB, Gunnar Hellström, for funding work with videocaps, T.140 RED,
+originate with video/text and many more contributions.
=== WISHLIST CONTRIBUTERS ===
Jeremy McNamara - SpeeX support
Modified: team/moy/mfcr2/Makefile
URL: http://svn.digium.com/view/asterisk/team/moy/mfcr2/Makefile?view=diff&rev=118254&r1=118253&r2=118254
==============================================================================
--- team/moy/mfcr2/Makefile (original)
+++ team/moy/mfcr2/Makefile Sun May 25 16:11:54 2008
@@ -351,7 +351,7 @@
@exit 1
menuselect.makeopts: menuselect/menuselect menuselect-tree makeopts
- menuselect/menuselect --check-deps $(GLOBAL_MAKEOPTS) $(USER_MAKEOPTS) menuselect.makeopts
+ 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
@@ -821,16 +821,16 @@
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!"
+ - at menuselect/menuselect menuselect.makeopts $(GLOBAL_MAKEOPTS) $(USER_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!"
+ - at menuselect/cmenuselect menuselect.makeopts $(GLOBAL_MAKEOPTS) $(USER_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!"
+ - at menuselect/gmenuselect menuselect.makeopts $(GLOBAL_MAKEOPTS) $(USER_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!"
+ - at menuselect/nmenuselect menuselect.makeopts $(GLOBAL_MAKEOPTS) $(USER_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"
@@ -869,4 +869,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) badshell main/version.c include/asterisk/version.h installdirs
+.PHONY: menuselect menuselect.makeopts 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 installdirs
Modified: team/moy/mfcr2/Makefile.rules
URL: http://svn.digium.com/view/asterisk/team/moy/mfcr2/Makefile.rules?view=diff&rev=118254&r1=118253&r2=118254
==============================================================================
--- team/moy/mfcr2/Makefile.rules (original)
+++ team/moy/mfcr2/Makefile.rules Sun May 25 16:11:54 2008
@@ -21,7 +21,7 @@
.PHONY: dist-clean
# extra cflags to build dependencies. Recursively expanded.
-MAKE_DEPS= -MMD -MT $@ -MF .$(subst /,_,$@).d -MP
+MAKE_DEPS= -MD -MT $@ -MF .$(subst /,_,$@).d -MP
ifeq ($(NOISY_BUILD),)
ECHO_PREFIX=@
Modified: team/moy/mfcr2/UPGRADE.txt
URL: http://svn.digium.com/view/asterisk/team/moy/mfcr2/UPGRADE.txt?view=diff&rev=118254&r1=118253&r2=118254
==============================================================================
--- team/moy/mfcr2/UPGRADE.txt (original)
+++ team/moy/mfcr2/UPGRADE.txt Sun May 25 16:11:54 2008
@@ -59,6 +59,12 @@
* The silencethreshold used for various applications is now settable via a
centralized config option in dsp.conf.
+* The logical value of spaces immediately preceding a standalone 0 previously
+ evaluated to true. It now evaluates to false. This has confused a good
+ many people in the past (typically because they failed to realize the space
+ had any significance). Since this violates the Principle of Least Surprise,
+ it has been changed.
+
Voicemail:
* The voicemail configuration values 'maxmessage' and 'minmessage' have
@@ -74,6 +80,8 @@
checking mailboxes for changes so that they can send MWI information to users.
Examples of situations that would require this option are web interfaces to
voicemail or an email client in the case of using IMAP storage.
+* The externnotify script should accept an additional (last) parameter
+ containing the number of urgent messages in the INBOX.
Applications:
@@ -92,7 +100,12 @@
Gosub()/Return() applications. To replace MacroExclusive(), we have
introduced dialplan functions LOCK(), TRYLOCK(), and UNLOCK(). You may use
these functions in any location where you desire to ensure that only one
- channel is executing that path at any one time.
+ channel is executing that path at any one time. The Macro() applications
+ are deprecated for performance reasons. However, since Macro() has been
+ around for a long time and so many dialplans depend heavily on it, for the
+ sake of backwards compatibility it will not be removed . It is also worth
+ noting that using both Macro() and GoSub() at the same time is _heavily_
+ discouraged.
* Read() now sets a READSTATUS variable on exit. It does NOT automatically
return -1 (and hangup) anymore on error. If you want to hangup on error,
you need to do so explicitly in your dialplan.
@@ -105,6 +118,8 @@
instead.
* While app_directory has always relied on having a voicemail.conf or users.conf file
correctly set up, it now is dependent on app_voicemail being compiled as well.
+* The arguments in ExecIf changed a bit, to be more like other applications.
+ The syntax is now ExecIf(<cond>?appiftrue(args):appiffalse(args)).
Dialplan Functions:
Modified: team/moy/mfcr2/acinclude.m4
URL: http://svn.digium.com/view/asterisk/team/moy/mfcr2/acinclude.m4?view=diff&rev=118254&r1=118253&r2=118254
==============================================================================
--- team/moy/mfcr2/acinclude.m4 (original)
+++ team/moy/mfcr2/acinclude.m4 Sun May 25 16:11:54 2008
@@ -7,13 +7,17 @@
AC_DEFUN([AST_GCC_ATTRIBUTE],
[
AC_MSG_CHECKING(for compiler 'attribute $1' support)
+saved_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS -Werror"
AC_COMPILE_IFELSE(
- AC_LANG_PROGRAM([static int __attribute__(($1)) test(void) {}],
+ AC_LANG_PROGRAM([static void __attribute__(($1)) *test(void *muffin, ...) {}],
[]),
AC_MSG_RESULT(yes)
AC_DEFINE_UNQUOTED([HAVE_ATTRIBUTE_$1], 1, [Define to 1 if your GCC C compiler supports the '$1' attribute.]),
AC_MSG_RESULT(no))
-])
+]
+CFLAGS="$saved_CFLAGS"
+)
# Helper function to setup variables for a package.
# $1 -> the package name. Used in configure.ac and also as a prefix
Modified: team/moy/mfcr2/apps/app_alarmreceiver.c
URL: http://svn.digium.com/view/asterisk/team/moy/mfcr2/apps/app_alarmreceiver.c?view=diff&rev=118254&r1=118253&r2=118254
==============================================================================
--- team/moy/mfcr2/apps/app_alarmreceiver.c (original)
+++ team/moy/mfcr2/apps/app_alarmreceiver.c Sun May 25 16:11:54 2008
@@ -185,7 +185,7 @@
wf.subclass = AST_FORMAT_ULAW;
wf.offset = AST_FRIENDLY_OFFSET;
wf.mallocd = 0;
- wf.data = tone_block.buf;
+ wf.data.ptr = tone_block.buf;
wf.datalen = f->datalen;
wf.samples = wf.datalen;
@@ -252,8 +252,8 @@
/* If they hung up, leave */
if ((f->frametype == AST_FRAME_CONTROL) && (f->subclass == AST_CONTROL_HANGUP)) {
- if (f->seqno) {
- chan->hangupcause = f->seqno;
+ if (f->data.uint32) {
+ chan->hangupcause = f->data.uint32;
}
ast_frfree(f);
res = -1;
Modified: team/moy/mfcr2/apps/app_chanisavail.c
URL: http://svn.digium.com/view/asterisk/team/moy/mfcr2/apps/app_chanisavail.c?view=diff&rev=118254&r1=118253&r2=118254
==============================================================================
--- team/moy/mfcr2/apps/app_chanisavail.c (original)
+++ team/moy/mfcr2/apps/app_chanisavail.c Sun May 25 16:11:54 2008
@@ -50,6 +50,7 @@
"This application will check to see if any of the specified channels are\n"
"available.\n"
" Options:\n"
+" a - Check for all available channels, not only the first one.\n"
" s - Consider the channel unavailable if the channel is in use at all.\n"
" t - Simply checks if specified channels exist in the channel list\n"
" (implies option s).\n"
@@ -61,9 +62,12 @@
static int chanavail_exec(struct ast_channel *chan, void *data)
{
- int res=-1, inuse=-1, option_state=0, string_compare=0;
+ int inuse=-1, option_state=0, string_compare=0, option_all_avail=0;
int status;
char *info, tmp[512], trychan[512], *peers, *tech, *number, *rest, *cur;
+ struct ast_str *tmp_availchan = ast_str_alloca(2048);
+ struct ast_str *tmp_availorig = ast_str_alloca(2048);
+ struct ast_str *tmp_availstat = ast_str_alloca(2048);
struct ast_channel *tempchan;
AST_DECLARE_APP_ARGS(args,
AST_APP_ARG(reqchans);
@@ -80,10 +84,15 @@
AST_STANDARD_APP_ARGS(args, info);
if (args.options) {
- if (strchr(args.options, 's'))
+ if (strchr(args.options, 'a')) {
+ option_all_avail = 1;
+ }
+ if (strchr(args.options, 's')) {
option_state = 1;
- if (strchr(args.options, 't'))
+ }
+ if (strchr(args.options, 't')) {
string_compare = 1;
+ }
}
peers = args.reqchans;
if (peers) {
@@ -119,27 +128,32 @@
status = inuse = ast_device_state(trychan);
}
if ((inuse <= 1) && (tempchan = ast_request(tech, chan->nativeformats, number, &status))) {
- pbx_builtin_setvar_helper(chan, "AVAILCHAN", tempchan->name);
- /* Store the originally used channel too */
+ ast_str_append(&tmp_availchan, 0, "%s%s", tmp_availchan->used ? "&" : "", tempchan->name);
+
snprintf(tmp, sizeof(tmp), "%s/%s", tech, number);
- pbx_builtin_setvar_helper(chan, "AVAILORIGCHAN", tmp);
+ ast_str_append(&tmp_availorig, 0, "%s%s", tmp_availorig->used ? "&" : "", tmp);
+
snprintf(tmp, sizeof(tmp), "%d", status);
- pbx_builtin_setvar_helper(chan, "AVAILSTATUS", tmp);
+ ast_str_append(&tmp_availstat, 0, "%s%s", tmp_availstat->used ? "&" : "", tmp);
+
ast_hangup(tempchan);
tempchan = NULL;
- res = 1;
- break;
+
+ if (!option_all_avail) {
+ break;
+ }
} else {
snprintf(tmp, sizeof(tmp), "%d", status);
- pbx_builtin_setvar_helper(chan, "AVAILSTATUS", tmp);
+ ast_str_append(&tmp_availstat, 0, "%s%s", tmp_availstat->used ? "&" : "", tmp);
}
cur = rest;
} while (cur);
}
- if (res < 1) {
- pbx_builtin_setvar_helper(chan, "AVAILCHAN", "");
- pbx_builtin_setvar_helper(chan, "AVAILORIGCHAN", "");
- }
+
+ pbx_builtin_setvar_helper(chan, "AVAILCHAN", tmp_availchan->str);
+ /* Store the originally used channel too */
+ pbx_builtin_setvar_helper(chan, "AVAILORIGCHAN", tmp_availorig->str);
+ pbx_builtin_setvar_helper(chan, "AVAILSTATUS", tmp_availstat->str);
return 0;
}
Modified: team/moy/mfcr2/apps/app_chanspy.c
URL: http://svn.digium.com/view/asterisk/team/moy/mfcr2/apps/app_chanspy.c?view=diff&rev=118254&r1=118253&r2=118254
==============================================================================
--- team/moy/mfcr2/apps/app_chanspy.c (original)
+++ team/moy/mfcr2/apps/app_chanspy.c Sun May 25 16:11:54 2008
@@ -64,13 +64,21 @@
" - Dialing a series of digits followed by # builds a channel name to append\n"
" to 'chanprefix'. For example, executing ChanSpy(Agent) and then dialing\n"
" the digits '1234#' while spying will begin spying on the channel\n"
-" 'Agent/1234'.\n"
+" 'Agent/1234'. Note that this feature will be overriden if the 'd' option\n"
+" is used\n"
" Note: The X option supersedes the three features above in that if a valid\n"
" single digit extension exists in the correct context ChanSpy will\n"
" exit to it. This also disables choosing a channel based on 'chanprefix'\n"
" and a digit sequence.\n"
" Options:\n"
" b - Only spy on channels involved in a bridged call.\n"
+" B - Instead of whispering on a single channel barge in on both\n"
+" channels involved in the call.\n"
+" d - Override the typical numeric DTMF functionality and instead\n"
+" use DTMF to switch between spy modes.\n"
+" 4 = spy mode\n"
+" 5 = whisper mode\n"
+" 6 = barge mode\n"
" g(grp) - Only spy on channels in which one or more of the groups \n"
" listed in 'grp' matches one or more groups from the\n"
" SPYGROUP variable set on the channel to be spied upon.\n"
@@ -124,6 +132,13 @@
" exit to it.\n"
" Options:\n"
" b - Only spy on channels involved in a bridged call.\n"
+" B - Instead of whispering on a single channel barge in on both\n"
+" channels involved in the call.\n"
+" d - Override the typical numeric DTMF functionality and instead\n"
+" use DTMF to switch between spy modes.\n"
+" 4 = spy mode\n"
+" 5 = whisper mode\n"
+" 6 = barge mode\n"
" g(grp) - Only spy on channels in which one or more of the groups \n"
" listed in 'grp' matches one or more groups from the\n"
" SPYGROUP variable set on the channel to be spied upon.\n"
@@ -160,19 +175,20 @@
;
enum {
- OPTION_QUIET = (1 << 0), /* Quiet, no announcement */
- OPTION_BRIDGED = (1 << 1), /* Only look at bridged calls */
- OPTION_VOLUME = (1 << 2), /* Specify initial volume */
- OPTION_GROUP = (1 << 3), /* Only look at channels in group */
- OPTION_RECORD = (1 << 4),
- OPTION_WHISPER = (1 << 5),
- OPTION_PRIVATE = (1 << 6), /* Private Whisper mode */
- OPTION_READONLY = (1 << 7), /* Don't mix the two channels */
- OPTION_EXIT = (1 << 8), /* Exit to a valid single digit extension */
- OPTION_ENFORCED = (1 << 9), /* Enforced mode */
- OPTION_NOTECH = (1 << 10), /* Skip technology name playback */
- OPTION_BARGE = (1 << 11), /* Barge mode (whisper to both channels) */
- OPTION_NAME = (1 << 12), /* Say the name of the person on whom we will spy */
+ OPTION_QUIET = (1 << 0), /* Quiet, no announcement */
+ OPTION_BRIDGED = (1 << 1), /* Only look at bridged calls */
+ OPTION_VOLUME = (1 << 2), /* Specify initial volume */
+ OPTION_GROUP = (1 << 3), /* Only look at channels in group */
+ OPTION_RECORD = (1 << 4),
+ OPTION_WHISPER = (1 << 5),
+ OPTION_PRIVATE = (1 << 6), /* Private Whisper mode */
+ OPTION_READONLY = (1 << 7), /* Don't mix the two channels */
+ OPTION_EXIT = (1 << 8), /* Exit to a valid single digit extension */
+ OPTION_ENFORCED = (1 << 9), /* Enforced mode */
+ OPTION_NOTECH = (1 << 10), /* Skip technology name playback */
+ OPTION_BARGE = (1 << 11), /* Barge mode (whisper to both channels) */
+ OPTION_NAME = (1 << 12), /* Say the name of the person on whom we will spy */
+ OPTION_DTMF_SWITCH_MODES = (1 << 13), /*Allow numeric DTMF to switch between chanspy modes */
} chanspy_opt_flags;
enum {
@@ -198,6 +214,7 @@
AST_APP_OPTION('X', OPTION_EXIT),
AST_APP_OPTION('s', OPTION_NOTECH),
AST_APP_OPTION_ARG('n', OPTION_NAME, OPT_ARG_NAME),
+ AST_APP_OPTION('d', OPTION_DTMF_SWITCH_MODES),
});
@@ -246,7 +263,7 @@
}
if (csth->fd)
- write(csth->fd, f->data, f->datalen);
+ write(csth->fd, f->data.ptr, f->datalen);
ast_frfree(f);
@@ -279,8 +296,22 @@
ast_mutex_t lock;
};
+static void change_spy_mode(const char digit, struct ast_flags *flags)
+{
+ if (digit == '4') {
+ ast_clear_flag(flags, OPTION_WHISPER);
+ ast_clear_flag(flags, OPTION_BARGE);
+ } else if (digit == '5') {
+ ast_clear_flag(flags, OPTION_BARGE);
+ ast_set_flag(flags, OPTION_WHISPER);
+ } else if (digit == '6') {
+ ast_clear_flag(flags, OPTION_WHISPER);
+ ast_set_flag(flags, OPTION_BARGE);
+ }
+}
+
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)
+ int *volfactor, int fd, struct ast_flags *flags, char *exitcontext)
{
struct chanspy_translation_helper csth;
int running = 0, res, x = 0;
@@ -325,15 +356,14 @@
return 0;
}
- if (ast_test_flag(flags, OPTION_BARGE)) {
- ast_audiohook_init(&csth.whisper_audiohook, AST_AUDIOHOOK_TYPE_WHISPER, "ChanSpy");
- ast_audiohook_init(&csth.bridge_whisper_audiohook, AST_AUDIOHOOK_TYPE_WHISPER, "Chanspy");
- start_spying(spyee, spyer_name, &csth.whisper_audiohook); /* Unlocks spyee */
- start_spying(ast_bridged_channel(spyee), spyer_name, &csth.bridge_whisper_audiohook);
- } else if (ast_test_flag(flags, OPTION_WHISPER)) {
- ast_audiohook_init(&csth.whisper_audiohook, AST_AUDIOHOOK_TYPE_WHISPER, "ChanSpy");
- start_spying(spyee, spyer_name, &csth.whisper_audiohook); /* Unlocks spyee */
- }
+ ast_channel_lock(chan);
+ ast_set_flag(chan, AST_FLAG_END_DTMF_ONLY);
+ ast_channel_unlock(chan);
+
+ ast_audiohook_init(&csth.whisper_audiohook, AST_AUDIOHOOK_TYPE_WHISPER, "ChanSpy");
+ ast_audiohook_init(&csth.bridge_whisper_audiohook, AST_AUDIOHOOK_TYPE_WHISPER, "Chanspy");
+ start_spying(spyee, spyer_name, &csth.whisper_audiohook); /* Unlocks spyee */
+ start_spying(ast_bridged_channel(spyee), spyer_name, &csth.bridge_whisper_audiohook);
ast_channel_unlock(spyee);
spyee = NULL;
@@ -415,7 +445,11 @@
ast_debug(2, "Exit by single digit did not work in chanspy. Extension %s does not exist in context %s\n", tmp, exitcontext);
}
} else if (res >= '0' && res <= '9') {
- inp[x++] = res;
+ if (ast_test_flag(flags, OPTION_DTMF_SWITCH_MODES)) {
+ change_spy_mode(res, flags);
+ } else {
+ inp[x++] = res;
+ }
}
if (res == '*') {
@@ -443,21 +477,18 @@
else
ast_deactivate_generator(chan);
- if (ast_test_flag(flags, OPTION_BARGE)) {
- ast_audiohook_lock(&csth.whisper_audiohook);
- ast_audiohook_detach(&csth.whisper_audiohook);
- ast_audiohook_unlock(&csth.whisper_audiohook);
- ast_audiohook_destroy(&csth.whisper_audiohook);
- ast_audiohook_lock(&csth.bridge_whisper_audiohook);
- ast_audiohook_detach(&csth.bridge_whisper_audiohook);
- ast_audiohook_unlock(&csth.bridge_whisper_audiohook);
- ast_audiohook_destroy(&csth.bridge_whisper_audiohook);
- } else if (ast_test_flag(flags, OPTION_WHISPER)) {
- ast_audiohook_lock(&csth.whisper_audiohook);
- ast_audiohook_detach(&csth.whisper_audiohook);
- ast_audiohook_unlock(&csth.whisper_audiohook);
- ast_audiohook_destroy(&csth.whisper_audiohook);
- }
+ ast_channel_lock(chan);
+ ast_clear_flag(chan, AST_FLAG_END_DTMF_ONLY);
+ ast_channel_unlock(chan);
+
+ ast_audiohook_lock(&csth.whisper_audiohook);
+ ast_audiohook_detach(&csth.whisper_audiohook);
+ ast_audiohook_unlock(&csth.whisper_audiohook);
+ ast_audiohook_destroy(&csth.whisper_audiohook);
+ ast_audiohook_lock(&csth.bridge_whisper_audiohook);
+ ast_audiohook_detach(&csth.bridge_whisper_audiohook);
+ ast_audiohook_unlock(&csth.bridge_whisper_audiohook);
+ ast_audiohook_destroy(&csth.bridge_whisper_audiohook);
ast_audiohook_lock(&csth.spy_audiohook);
ast_audiohook_detach(&csth.spy_audiohook);
@@ -578,7 +609,7 @@
return setup_chanspy_ds(next, chanspy_ds);
}
-static int common_exec(struct ast_channel *chan, const struct ast_flags *flags,
+static int common_exec(struct ast_channel *chan, struct ast_flags *flags,
int volfactor, const int fd, const char *mygroup, const char *myenforced,
const char *spec, const char *exten, const char *context, const char *mailbox,
const char *name_context)
@@ -596,12 +627,15 @@
if (ast_test_flag(flags, OPTION_EXIT)) {
const char *c;
- if ((c = pbx_builtin_getvar_helper(chan, "SPY_EXIT_CONTEXT")))
+ ast_channel_lock(chan);
+ if ((c = pbx_builtin_getvar_helper(chan, "SPY_EXIT_CONTEXT"))) {
ast_copy_string(exitcontext, c, sizeof(exitcontext));
- else if (!ast_strlen_zero(chan->macrocontext))
+ } else if (!ast_strlen_zero(chan->macrocontext)) {
ast_copy_string(exitcontext, chan->macrocontext, sizeof(exitcontext));
- else
+ } else {
[... 49410 lines stripped ...]
More information about the asterisk-commits
mailing list