[asterisk-commits] murf: branch murf/fast-ast2 r89127 - in /team/murf/fast-ast2: ./ apps/ cdr/ c...

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Fri Nov 9 08:40:40 CST 2007


Author: murf
Date: Fri Nov  9 08:40:38 2007
New Revision: 89127

URL: http://svn.digium.com/view/asterisk?view=rev&rev=89127
Log:
Merged revisions 89067-89078,89080-89084,89086,89089,89091-89092,89094,89096,89098,89100,89102,89104,89106-89110,89112-89114,89116-89118,89120-89124,89126 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/trunk

................
r89067 | mattf | 2007-11-06 15:01:10 -0700 (Tue, 06 Nov 2007) | 1 line

Add some more locking as well as API update for libss7 for new transport types
................
r89068 | mmichelson | 2007-11-06 15:05:56 -0700 (Tue, 06 Nov 2007) | 5 lines

Added CLI and manager commands for changing a queue member's penalty

(closes issue #9374, reported and initially patched by wuwu, intermediate patch by eliel, and final patch by me)


................
r89069 | russell | 2007-11-06 15:15:32 -0700 (Tue, 06 Nov 2007) | 10 lines

Added the S() and L() options to the MeetMe application.  These are pretty
much identical to the S() and L() options to Dial().  They let you set
timeouts for the conference, as well as have warning sounds played to
let the caller know how much time is left, and when it is running out.

(closes issue #8030)
Reported by: areski
Patches: 
      meetme_timeout_timelimit_v2.patch uploaded by areski (license 29)

................
r89070 | mmichelson | 2007-11-06 15:36:55 -0700 (Tue, 06 Nov 2007) | 5 lines

Adding the queue strategy wrandom

(closes issue #10942, reported and patched by julianjm, documentation changes by me)


................
r89071 | tilghman | 2007-11-06 15:51:48 -0700 (Tue, 06 Nov 2007) | 5 lines

Commit some cleanups to the format type code.
 - Remove the AST_FORMAT_MAX_* types, as these are consuming 3 out of our available 32 bits.
 - Add a native slin16 type, so that 16kHz codecs can translate without losing resolution.
   (This doesn't affect anything immediately, until another codec has wb support.)

................
r89072 | file | 2007-11-06 16:08:36 -0700 (Tue, 06 Nov 2007) | 4 lines

Fix up some PBX logic that became broken. The code would exit prematurely when it should have been collecting more digits.
(closes issue #11175)
Reported by: pj

................
r89073 | russell | 2007-11-06 16:44:39 -0700 (Tue, 06 Nov 2007) | 10 lines

Added the ability to do "meetme concise" with the "meetme" CLI command.
This extends the concise capabilities of this CLI command to include
listing all conferences, instead of an addition to the other sub commands
for the "meetme" command.

(closes issue #11078)
Reported by: jthomas
Patches: 
      meetme-concise.patch uploaded by jthomas (license 293)

................
r89074 | russell | 2007-11-06 17:00:38 -0700 (Tue, 06 Nov 2007) | 9 lines

Print out the channel name as a prefix to the "agi debug" output.  This makes
AGI debugging on busy systems much easier.

(closes issue #10730)
Reported by: junky
Patches: 
      agi_debug_chan.diff uploaded by junky (license 177)
	  20070923_10730.diff uploaded by mvanbaak (license 7)

................
r89075 | mmichelson | 2007-11-06 17:04:30 -0700 (Tue, 06 Nov 2007) | 6 lines

Adding documentation regarding imapfolder, imapgreetings, and greetingsfolder options
in voicemail.conf

(closes issue #11133, reported by selsky, patched by blitzrage)


................
r89076 | russell | 2007-11-06 17:16:03 -0700 (Tue, 06 Nov 2007) | 2 lines

Fix another CLI command so it doesn't run the real code when called for initialization.

................
r89077 | tilghman | 2007-11-06 18:08:31 -0700 (Tue, 06 Nov 2007) | 6 lines

Add contributed EAGI proxy, which provides FastAGI functionality for EAGI, while also
buffering the audio stream.
Reported by: devil_slayer
Patch by: devil_slayer
Closes issue #8921

................
r89078 | tilghman | 2007-11-06 19:14:40 -0700 (Tue, 06 Nov 2007) | 5 lines

Provide the ability to directly manipulate the TON/NPI bits in the dialstring.
Reported by: thetatag
Patch by: thetatag/stevens/tilghman
Closes issue #5331

................
r89080 | tilghman | 2007-11-06 21:11:32 -0700 (Tue, 06 Nov 2007) | 13 lines

Merged revisions 89079 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r89079 | tilghman | 2007-11-06 22:07:49 -0600 (Tue, 06 Nov 2007) | 5 lines

Suppress AEL warnings on load.
Reported by: eliel
Patch by: eliel
Closes issue #11178

........

................
r89081 | tilghman | 2007-11-06 21:21:27 -0700 (Tue, 06 Nov 2007) | 5 lines

Suppress erroneous warnings on load.
Reported by: eliel
Patch by: eliel
Closes issue #11177

................
r89082 | rizzo | 2007-11-07 04:15:42 -0700 (Wed, 07 Nov 2007) | 3 lines

match changes in menuselect's Makefile


................
r89083 | rizzo | 2007-11-07 04:33:55 -0700 (Wed, 07 Nov 2007) | 3 lines

remove a debugging message which i forgot in.


................
r89084 | rizzo | 2007-11-07 06:12:28 -0700 (Wed, 07 Nov 2007) | 4 lines

remove enter/exit comments when handling subdirectory.
If we really want them we can remove the --no-print-directory


................
r89086 | file | 2007-11-07 10:45:31 -0700 (Wed, 07 Nov 2007) | 2 lines

Minor change so chan_h323 builds again.

................
r89089 | murf | 2007-11-07 15:09:10 -0700 (Wed, 07 Nov 2007) | 9 lines

Merged revisions 89088 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r89088 | murf | 2007-11-07 14:40:28 -0700 (Wed, 07 Nov 2007) | 1 line

In response to 10578, I just ran 1.4 thru valgrind; some of the config leakage I've already fixed, but it doesn't hurt to double check. I found and fixed leaks in res_jabber, cdr_tds, pbx_ael. Nothing major, tho.
........

................
r89091 | mmichelson | 2007-11-07 15:42:24 -0700 (Wed, 07 Nov 2007) | 14 lines

Merged revisions 89090 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r89090 | mmichelson | 2007-11-07 16:40:35 -0600 (Wed, 07 Nov 2007) | 6 lines

This patch makes it possible for SIP phones to dial extensions defined with '#' characters
in extensions.conf AND maintain their escaped characters when forming URI's

(closes issue #10681, reported by cahen, patched by me, code review by file)


........

................
r89092 | mmichelson | 2007-11-07 16:18:22 -0700 (Wed, 07 Nov 2007) | 6 lines

If imapfolder has been specified in voicemail.conf, we should not connect to INBOX...
ever. It may not exist.

(closes issue #11151, reported by selsky, patched by me)


................
r89094 | tilghman | 2007-11-07 16:47:45 -0700 (Wed, 07 Nov 2007) | 15 lines

Merged revisions 89093 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r89093 | tilghman | 2007-11-07 17:39:37 -0600 (Wed, 07 Nov 2007) | 7 lines

The member refcount must be incremented, to avoid using it after deallocation.
A huge thanks go to lvl- for patiently providing the necessary valgrind output
that was necessary to finding this problem of memory corruption.
Reported by: lvl-
Patch by: tilghman
Closes issue #11174

........

................
r89096 | file | 2007-11-07 16:55:08 -0700 (Wed, 07 Nov 2007) | 12 lines

Merged revisions 89095 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r89095 | file | 2007-11-07 19:53:25 -0400 (Wed, 07 Nov 2007) | 4 lines

If callerid is configured in sip.conf use that for checking the presence of an extension in the dialplan.
(closes issue #11185)
Reported by: spditner

........

................
r89098 | file | 2007-11-07 18:14:31 -0700 (Wed, 07 Nov 2007) | 16 lines

Merged revisions 89097 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r89097 | file | 2007-11-07 21:11:25 -0400 (Wed, 07 Nov 2007) | 8 lines

Add support for allowing one outgoing transaction. This means if a response comes back out of order chan_sip will still handle it. I dream of a chan_sip with real transaction support.
(closes issue #10946)
Reported by: flefoll
(closes issue #10915)
Reported by: ramonpeek
(closes issue #9567)
Reported by: atca_pres

........

................
r89100 | file | 2007-11-07 18:30:29 -0700 (Wed, 07 Nov 2007) | 14 lines

Merged revisions 89099 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r89099 | file | 2007-11-07 21:28:56 -0400 (Wed, 07 Nov 2007) | 6 lines

Improve the devicestate logic for multiple devices. If any are available then the extension is considered available.
(closes issue #10164)
Reported by: nic_bellamy
Patches:
      sip-hinting-svn-branch-1.4.patch uploaded by nic (license 299)

........

................
r89102 | file | 2007-11-07 19:28:15 -0700 (Wed, 07 Nov 2007) | 12 lines

Merged revisions 89101 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r89101 | file | 2007-11-07 22:26:48 -0400 (Wed, 07 Nov 2007) | 4 lines

Do not add a sip: to the beginning of the To URI unless needed.
(closes issue #10756)
Reported by: goestelecom

........

................
r89104 | tilghman | 2007-11-07 22:00:39 -0700 (Wed, 07 Nov 2007) | 10 lines

Merged revisions 89103 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r89103 | tilghman | 2007-11-07 22:55:19 -0600 (Wed, 07 Nov 2007) | 2 lines

Typo

........

................
r89106 | kpfleming | 2007-11-07 22:28:47 -0700 (Wed, 07 Nov 2007) | 4 lines

improve linked-list macros in two ways:
  - the *_CURRENT macros no longer need the list head pointer argument
  - add AST_LIST_MOVE_CURRENT to encapsulate the remove/add operation when moving entries between lists

................
r89107 | kpfleming | 2007-11-07 22:36:28 -0700 (Wed, 07 Nov 2007) | 10 lines

Merged revisions 89105 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r89105 | kpfleming | 2007-11-08 00:26:47 -0500 (Thu, 08 Nov 2007) | 2 lines

fix a glaring bug in the new SRV record handling that would cause incorrect weight sorting

........

................
r89108 | rizzo | 2007-11-08 02:15:05 -0700 (Thu, 08 Nov 2007) | 6 lines

initialize a variable to silence compiler.
The type of warnings emitted depends on the optimization level,
at the lower levels the compiler doesn't always understand what the
programmer has in mind. In this case I could not understand it either.


................
r89109 | rizzo | 2007-11-08 02:20:05 -0700 (Thu, 08 Nov 2007) | 4 lines

use %d and cast to int instead of %zd for size_t object,
this helps portability.


................
r89110 | rizzo | 2007-11-08 02:21:02 -0700 (Thu, 08 Nov 2007) | 3 lines

use %f instead of %lf (the 'l' is ignored anyways).


................
r89112 | mmichelson | 2007-11-08 09:51:08 -0700 (Thu, 08 Nov 2007) | 3 lines

Blocking changes from previous 1.4 commit


................
r89113 | tilghman | 2007-11-08 10:28:45 -0700 (Thu, 08 Nov 2007) | 2 lines

Fix missed conversion to linkedlists macro change

................
r89114 | tilghman | 2007-11-08 10:32:15 -0700 (Thu, 08 Nov 2007) | 2 lines

Add the FILE() dialplan function and deprecate ReadFile.

................
r89116 | qwell | 2007-11-08 11:48:15 -0700 (Thu, 08 Nov 2007) | 13 lines

Merged revisions 89115 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

(closes issue #11195)
........
r89115 | qwell | 2007-11-08 12:45:15 -0600 (Thu, 08 Nov 2007) | 4 lines

Avoid warnings on load when using sample configuration files.

Issue 11195, patch by eliel.

........

................
r89117 | qwell | 2007-11-08 11:49:08 -0700 (Thu, 08 Nov 2007) | 1 line

Change a warning to a notice.  Issue #11195, patch by eliel
................
r89118 | kpfleming | 2007-11-08 13:39:41 -0700 (Thu, 08 Nov 2007) | 2 lines

convert this code to a more efficient idiom

................
r89120 | mmichelson | 2007-11-08 14:01:02 -0700 (Thu, 08 Nov 2007) | 15 lines

Merged revisions 89119 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r89119 | mmichelson | 2007-11-08 15:00:08 -0600 (Thu, 08 Nov 2007) | 7 lines

Rework of the commit I made yesterday to use the already built-in
ast_uri_decode function as opposed to my home-rolled one. Also added
comments.

Thanks to oej for pointing me in the right direction


........

................
r89121 | file | 2007-11-08 14:27:37 -0700 (Thu, 08 Nov 2007) | 2 lines

Make func_env build again.

................
r89122 | mmichelson | 2007-11-08 14:31:06 -0700 (Thu, 08 Nov 2007) | 4 lines

AST_LIST_REMOVE_CURRENT takes only one argument.
Thanks to snuffy for pointing this out on IRC


................
r89123 | mmichelson | 2007-11-08 15:33:59 -0700 (Thu, 08 Nov 2007) | 5 lines

app_voicemail failed to build when compiling with IMAP_STORAGE

Now it does not.


................
r89124 | qwell | 2007-11-08 16:38:30 -0700 (Thu, 08 Nov 2007) | 4 lines

Add check_hangup() method to pbx_lua, which can be used to check whether it is time to hangup a channel.

Closes issue #11202, patch by mnicholson

................
r89126 | qwell | 2007-11-08 16:53:00 -0700 (Thu, 08 Nov 2007) | 13 lines

Merged revisions 89125 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

(closes issue #11203)
........
r89125 | qwell | 2007-11-08 17:52:35 -0600 (Thu, 08 Nov 2007) | 4 lines

Properly say the seconds here..

Issue 11203, fix described by vma.

........

................

Added:
    team/murf/fast-ast2/contrib/utils/eagi_proxy.c
      - copied unchanged from r89126, trunk/contrib/utils/eagi_proxy.c
Modified:
    team/murf/fast-ast2/   (props changed)
    team/murf/fast-ast2/CHANGES
    team/murf/fast-ast2/Makefile
    team/murf/fast-ast2/apps/app_followme.c
    team/murf/fast-ast2/apps/app_meetme.c
    team/murf/fast-ast2/apps/app_playback.c
    team/murf/fast-ast2/apps/app_queue.c
    team/murf/fast-ast2/apps/app_readfile.c
    team/murf/fast-ast2/apps/app_voicemail.c
    team/murf/fast-ast2/cdr/cdr_tds.c
    team/murf/fast-ast2/channels/chan_agent.c
    team/murf/fast-ast2/channels/chan_features.c
    team/murf/fast-ast2/channels/chan_gtalk.c
    team/murf/fast-ast2/channels/chan_h323.c
    team/murf/fast-ast2/channels/chan_iax2.c
    team/murf/fast-ast2/channels/chan_jingle.c
    team/murf/fast-ast2/channels/chan_mgcp.c
    team/murf/fast-ast2/channels/chan_phone.c
    team/murf/fast-ast2/channels/chan_sip.c
    team/murf/fast-ast2/channels/chan_skinny.c
    team/murf/fast-ast2/channels/chan_unistim.c
    team/murf/fast-ast2/channels/chan_zap.c
    team/murf/fast-ast2/channels/h323/ast_h323.cxx
    team/murf/fast-ast2/channels/iax2-parser.c
    team/murf/fast-ast2/codecs/codec_g722.c
    team/murf/fast-ast2/codecs/codec_zap.c
    team/murf/fast-ast2/configs/cdr_adaptive_odbc.conf.sample
    team/murf/fast-ast2/configs/extensions.ael.sample
    team/murf/fast-ast2/configs/queues.conf.sample
    team/murf/fast-ast2/configs/res_odbc.conf.sample
    team/murf/fast-ast2/configs/zapata.conf.sample
    team/murf/fast-ast2/doc/tex/channelvariables.tex
    team/murf/fast-ast2/doc/tex/imapstorage.tex
    team/murf/fast-ast2/doc/valgrind.txt
    team/murf/fast-ast2/funcs/func_env.c
    team/murf/fast-ast2/funcs/func_strings.c
    team/murf/fast-ast2/include/asterisk/agi.h
    team/murf/fast-ast2/include/asterisk/frame.h
    team/murf/fast-ast2/include/asterisk/linkedlists.h
    team/murf/fast-ast2/include/asterisk/translate.h
    team/murf/fast-ast2/main/app.c
    team/murf/fast-ast2/main/asterisk.c
    team/murf/fast-ast2/main/astmm.c
    team/murf/fast-ast2/main/astobj2.c
    team/murf/fast-ast2/main/audiohook.c
    team/murf/fast-ast2/main/autoservice.c
    team/murf/fast-ast2/main/cdr.c
    team/murf/fast-ast2/main/channel.c
    team/murf/fast-ast2/main/cli.c
    team/murf/fast-ast2/main/config.c
    team/murf/fast-ast2/main/devicestate.c
    team/murf/fast-ast2/main/event.c
    team/murf/fast-ast2/main/file.c
    team/murf/fast-ast2/main/frame.c
    team/murf/fast-ast2/main/image.c
    team/murf/fast-ast2/main/indications.c
    team/murf/fast-ast2/main/loader.c
    team/murf/fast-ast2/main/logger.c
    team/murf/fast-ast2/main/manager.c
    team/murf/fast-ast2/main/pbx.c
    team/murf/fast-ast2/main/rtp.c
    team/murf/fast-ast2/main/say.c
    team/murf/fast-ast2/main/sched.c
    team/murf/fast-ast2/main/srv.c
    team/murf/fast-ast2/main/threadstorage.c
    team/murf/fast-ast2/main/translate.c
    team/murf/fast-ast2/pbx/pbx_dundi.c
    team/murf/fast-ast2/pbx/pbx_lua.c
    team/murf/fast-ast2/res/res_agi.c
    team/murf/fast-ast2/res/res_crypto.c
    team/murf/fast-ast2/res/res_features.c
    team/murf/fast-ast2/res/res_jabber.c
    team/murf/fast-ast2/res/res_musiconhold.c
    team/murf/fast-ast2/res/res_odbc.c
    team/murf/fast-ast2/res/res_smdi.c
    team/murf/fast-ast2/res/res_speech.c
    team/murf/fast-ast2/utils/astman.c

Propchange: team/murf/fast-ast2/
------------------------------------------------------------------------------
Binary property 'branch-1.4-blocked' - no diff available.

Propchange: team/murf/fast-ast2/
------------------------------------------------------------------------------
Binary property 'branch-1.4-merged' - no diff available.

Propchange: team/murf/fast-ast2/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Fri Nov  9 08:40:38 2007
@@ -1,1 +1,1 @@
-/trunk:1-89064
+/trunk:1-89126

Modified: team/murf/fast-ast2/CHANGES
URL: http://svn.digium.com/view/asterisk/team/murf/fast-ast2/CHANGES?view=diff&rev=89127&r1=89126&r2=89127
==============================================================================
--- team/murf/fast-ast2/CHANGES (original)
+++ team/murf/fast-ast2/CHANGES Fri Nov  9 08:40:38 2007
@@ -166,6 +166,7 @@
      queue log.
   * Added ability for non-realtime queues to have realtime members
   * Added the "linear" strategy to queues.
+  * Added the "wrandom" strategy to queues.
 
 MeetMe Changes
 --------------
@@ -185,6 +186,14 @@
      the schedule start time, or to allow the caller to join the conference early.
      Also included is optional support for limiting the number of callers per
      RealTime conference.
+  * Added the S() and L() options to the MeetMe application.  These are pretty
+     much identical to the S() and L() options to Dial().  They let you set
+     timeouts for the conference, as well as have warning sounds played to
+     let the caller know how much time is left, and when it is running out.
+  * Added the ability to do "meetme concise" with the "meetme" CLI command.
+     This extends the concise capabilities of this CLI command to include
+     listing all conferences, instead of an addition to the other sub commands
+     for the "meetme" command.
 
 Music On Hold Changes
 ---------------------
@@ -307,4 +316,6 @@
      configs/extensions.lua.sample for examples of how to do this.
  * Added a new channel driver, chan_unistim.  See doc/unistim.txt and
     configs/unistim.conf.sample for details.  This new channel driver allows
-	you to use Nortel i2002, i2004, and i2050 phones with Asterisk.
+    you to use Nortel i2002, i2004, and i2050 phones with Asterisk.
+ * Enhanced "agi debug" to print the channel name as a prefix to the debug
+    output to make debugging on busy systems much easier.

Modified: team/murf/fast-ast2/Makefile
URL: http://svn.digium.com/view/asterisk/team/murf/fast-ast2/Makefile?view=diff&rev=89127&r1=89126&r2=89127
==============================================================================
--- team/murf/fast-ast2/Makefile (original)
+++ team/murf/fast-ast2/Makefile Fri Nov  9 08:40:38 2007
@@ -337,14 +337,10 @@
 main: $(filter-out main,$(MOD_SUBDIRS))
 
 $(MOD_SUBDIRS):
-	@echo "   [enter MOD_SUBDIR $@/]"
 	@ASTCFLAGS="$(MOD_SUBDIR_CFLAGS) $(ASTCFLAGS)" ASTLDFLAGS="$(ASTLDFLAGS)" $(MAKE) --no-print-directory --no-builtin-rules -C $@ SUBDIR=$@ all
-	@echo "   [exit MOD_SUBDIR $@/]"
 
 $(OTHER_SUBDIRS):
-	@echo "   [enter SUBDIR $@/]"
 	@ASTCFLAGS="$(OTHER_SUBDIR_CFLAGS) $(ASTCFLAGS)" ASTLDFLAGS="$(ASTLDFLAGS)" $(MAKE) --no-print-directory --no-builtin-rules -C $@ SUBDIR=$@ all
-	@echo "   [exit SUBDIR $@/]"
 
 defaults.h: makeopts
 	@build_tools/make_defaults_h > $@.tmp
@@ -748,11 +744,15 @@
 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!"
 
-menuselect/menuselect: makeopts menuselect/menuselect.c menuselect/menuselect_curses.c menuselect/menuselect_stub.c menuselect/menuselect.h menuselect/linkedlists.h makeopts
+menuselect/menuselect: menuselect/makeopts
+	echo "doing menuselect with $(HOST_CC)"
 	@CC="$(HOST_CC)" LD="" AR="" RANLIB="" CFLAGS="" $(MAKE) -C menuselect CONFIGURE_SILENT="--silent"
 
-menuselect/gmenuselect: makeopts menuselect/menuselect.c menuselect/menuselect_gtk.c menuselect/menuselect_stub.c menuselect/menuselect.h menuselect/linkedlists.h makeopts
-	@CC="$(HOST_CC)" CXX="$(CXX)" LD="" AR="" RANLIB="" CFLAGS="" $(MAKE) -C menuselect _gmenuselect CONFIGURE_SILENT="--silent"
+menuselect/gmenuselect: menuselect/makeopts
+	@CC="$(HOST_CC)" CXX="$(CXX)" LD="" AR="" RANLIB="" CFLAGS="" $(MAKE) -C menuselect gmenuselect CONFIGURE_SILENT="--silent"
+
+menuselect/makeopts:
+	@CC="$(HOST_CC)" CXX="$(CXX)" LD="" AR="" RANLIB="" CFLAGS="" $(MAKE) -C makeopts CONFIGURE_SILENT="--silent"
 
 menuselect-tree: $(foreach dir,$(filter-out main,$(MOD_SUBDIRS)),$(wildcard $(dir)/*.c) $(wildcard $(dir)/*.cc)) build_tools/cflags.xml sounds/sounds.xml build_tools/embed_modules.xml configure
 	@echo "Generating input for menuselect ..."

Modified: team/murf/fast-ast2/apps/app_followme.c
URL: http://svn.digium.com/view/asterisk/team/murf/fast-ast2/apps/app_followme.c?view=diff&rev=89127&r1=89126&r2=89127
==============================================================================
--- team/murf/fast-ast2/apps/app_followme.c (original)
+++ team/murf/fast-ast2/apps/app_followme.c Fri Nov  9 08:40:38 2007
@@ -840,13 +840,12 @@
 			winner = wait_for_winner(findme_user_list, nm, caller, tpargs->namerecloc, &status, tpargs);
 		
 					
-		AST_LIST_TRAVERSE_SAFE_BEGIN(findme_user_list, fmuser, entry) {
+		while ((fmuser = AST_LIST_REMOVE_HEAD(findme_user_list, entry))) {
 			if (!fmuser->cleared && fmuser->ochan != winner)
 				clear_caller(fmuser);
-			AST_LIST_REMOVE_CURRENT(findme_user_list, entry);
 			ast_free(fmuser);
 		}
-		AST_LIST_TRAVERSE_SAFE_END
+
 		fmuser = NULL;
 		tmpuser = NULL;
 		headuser = NULL;	
@@ -978,11 +977,8 @@
 	
 	findmeexec(&targs);		
 	
-	AST_LIST_TRAVERSE_SAFE_BEGIN(&targs.cnumbers, nm, entry) {
-		AST_LIST_REMOVE_CURRENT(&targs.cnumbers, entry);
+	while ((nm = AST_LIST_REMOVE_HEAD(&targs.cnumbers, entry)))
 		ast_free(nm);
-	}
-	AST_LIST_TRAVERSE_SAFE_END
 		
 	if (!ast_strlen_zero(namerecloc))
 		unlink(namerecloc);	

Modified: team/murf/fast-ast2/apps/app_meetme.c
URL: http://svn.digium.com/view/asterisk/team/murf/fast-ast2/apps/app_meetme.c?view=diff&rev=89127&r1=89126&r2=89127
==============================================================================
--- team/murf/fast-ast2/apps/app_meetme.c (original)
+++ team/murf/fast-ast2/apps/app_meetme.c Fri Nov  9 08:40:38 2007
@@ -163,13 +163,17 @@
 	CONFFLAG_SLA_STATION = (1 << 26),
 	CONFFLAG_SLA_TRUNK = (1 << 27),
 	/*! If set, the user should continue in the dialplan if kicked out */
-	CONFFLAG_KICK_CONTINUE = (1 << 28)
+	CONFFLAG_KICK_CONTINUE = (1 << 28),
+	CONFFLAG_DURATION_STOP = (1 << 29),
+	CONFFLAG_DURATION_LIMIT = (1 << 30),
 };
 
 enum {
 	OPT_ARG_WAITMARKED = 0,
 	OPT_ARG_EXITKEYS   = 1,
-	OPT_ARG_ARRAY_SIZE = 2,
+	OPT_ARG_DURATION_STOP = 2,
+	OPT_ARG_DURATION_LIMIT = 3,
+	OPT_ARG_ARRAY_SIZE = 4,
 };
 
 AST_APP_OPTIONS(meetme_opts, BEGIN_OPTIONS
@@ -199,6 +203,8 @@
 	AST_APP_OPTION('X', CONFFLAG_EXIT_CONTEXT ),
 	AST_APP_OPTION('x', CONFFLAG_MARKEDEXIT ),
 	AST_APP_OPTION('1', CONFFLAG_NOONLYPERSON ),
+ 	AST_APP_OPTION_ARG('S', CONFFLAG_DURATION_STOP, OPT_ARG_DURATION_STOP),
+	AST_APP_OPTION_ARG('L', CONFFLAG_DURATION_LIMIT, OPT_ARG_DURATION_LIMIT),
 END_OPTIONS );
 
 static const char *app = "MeetMe";
@@ -273,7 +279,15 @@
 "      'X' -- allow user to exit the conference by entering a valid single\n"
 "             digit extension ${MEETME_EXIT_CONTEXT} or the current context\n"
 "             if that variable is not defined.\n"
-"      '1' -- do not play message when first person enters\n";
+"      '1' -- do not play message when first person enters\n"
+"      'S(x)' -- Kick the user 'x' seconds *after* he entered into the conference.\n"
+"      'L(x[:y][:z])' - Limit the conference to 'x' ms. Play a warning when 'y' ms are\n"
+"             left. Repeat the warning every 'z' ms. The following special\n"
+"             variables can be used with this option:\n"
+"              * CONF_LIMIT_TIMEOUT_FILE       File to play when time is up.\n"
+"              * CONF_LIMIT_WARNING_FILE       File to play as warning if 'y' is defined.\n"
+"                                              The default is to say the time remaining.\n"
+"";
 
 static const char *descrip2 =
 "  MeetMeCount(confno[,var]): Plays back the number of users in the specified\n"
@@ -394,6 +408,13 @@
 	char usrvalue[50];                      /*!< Custom User Value */
 	char namerecloc[PATH_MAX];				/*!< Name Recorded file Location */
 	time_t jointime;                        /*!< Time the user joined the conference */
+ 	time_t kicktime;                        /*!< Time the user will be kicked from the conference */
+ 	struct timeval start_time;              /*!< Time the user entered into the conference */
+ 	long timelimit;                         /*!< Time limit for the user to be in the conference L(x:y:z) */
+ 	long play_warning;                      /*!< Play a warning when 'y' ms are left */
+ 	long warning_freq;                      /*!< Repeat the warning every 'z' ms */
+ 	const char *warning_sound;              /*!< File to play as warning if 'y' is defined */
+ 	const char *end_sound;                  /*!< File to play when time is up. */
 	struct volume talk;
 	struct volume listen;
 	AST_LIST_ENTRY(ast_conf_user) list;
@@ -866,7 +887,7 @@
 
 static char *complete_meetmecmd(const char *line, const char *word, int pos, int state)
 {
-	static char *cmds[] = {"lock", "unlock", "mute", "unmute", "kick", "list", NULL};
+	static char *cmds[] = {"concise", "lock", "unlock", "mute", "unmute", "kick", "list", NULL};
 
 	int len = strlen(word);
 	int which = 0;
@@ -942,7 +963,7 @@
 	case CLI_INIT:
 		e->command = "meetme";
 		e->usage =
-			"Usage: meetme (un)lock|(un)mute|kick|list [concise] <confno> <usernumber>\n"
+			"Usage: meetme concise|(un)lock|(un)mute|kick|list [concise] <confno> <usernumber>\n"
 			"       Executes a command for the conference or on a conferee\n";
 		return NULL;
 	case CLI_GENERATE:
@@ -956,16 +977,19 @@
 		if (strlen(a->argv[i]) > 100)
 			ast_cli(a->fd, "Invalid Arguments.\n");
 	}
-	if (a->argc == 1) {
+	if (a->argc == 1  || ( a->argc == 2 && !strcasecmp(a->argv[1], "concise") )) {
 		/* 'MeetMe': List all the conferences */	
+		int concise = ( a->argc == 2 && !strcasecmp(a->argv[1], "concise") );
 		now = time(NULL);
 		AST_LIST_LOCK(&confs);
 		if (AST_LIST_EMPTY(&confs)) {
-			ast_cli(a->fd, "No active MeetMe conferences.\n");
+			if (!concise)
+				ast_cli(a->fd, "No active MeetMe conferences.\n");
 			AST_LIST_UNLOCK(&confs);
 			return CLI_SUCCESS;
 		}
-		ast_cli(a->fd, header_format, "Conf Num", "Parties", "Marked", "Activity", "Creation", "Locked");
+		if (!concise)
+			ast_cli(a->fd, header_format, "Conf Num", "Parties", "Marked", "Activity", "Creation", "Locked");
 		AST_LIST_TRAVERSE(&confs, cnf, list) {
 			if (cnf->markedusers == 0)
 				strcpy(cmdline, "N/A ");
@@ -974,13 +998,23 @@
 			hr = (now - cnf->start) / 3600;
 			min = ((now - cnf->start) % 3600) / 60;
 			sec = (now - cnf->start) % 60;
-
-			ast_cli(a->fd, data_format, cnf->confno, cnf->users, cmdline, hr, min, sec, cnf->isdynamic ? "Dynamic" : "Static", cnf->locked ? "Yes" : "No");
+			if (!concise)
+				ast_cli(a->fd, data_format, cnf->confno, cnf->users, cmdline, hr, min, sec, cnf->isdynamic ? "Dynamic" : "Static", cnf->locked ? "Yes" : "No");
+			else {
+				ast_cli(a->fd, "%s!%d!%d!%02d:%02d:%02d!%d!%d\n", 
+					cnf->confno, 
+					cnf->users, 
+					cnf->markedusers, 
+					hr, min, sec,
+					cnf->isdynamic, 
+					cnf->locked);
+			}
 
 			total += cnf->users; 	
 		}
 		AST_LIST_UNLOCK(&confs);
-		ast_cli(a->fd, "* Total number of MeetMe users: %d\n", total);
+		if (!concise)
+			ast_cli(a->fd, "* Total number of MeetMe users: %d\n", total);
 		return CLI_SUCCESS;
 	}
 	if (a->argc < 3)
@@ -1471,7 +1505,18 @@
 	char __buf[CONF_SIZE + AST_FRIENDLY_OFFSET];
 	char *buf = __buf + AST_FRIENDLY_OFFSET;
 	char *exitkeys = NULL;
-
+ 	time_t myt;
+ 	unsigned int calldurationlimit = 0;
+ 	long timelimit = 0;
+ 	long play_warning = 0;
+ 	long warning_freq = 0;
+ 	const char *warning_sound = NULL;
+ 	const char *end_sound = NULL;
+ 	char *parse;	
+ 	long time_left_ms = 0;
+ 	struct timeval nexteventts = { 0, };
+ 	int to;
+ 
 	if (!(user = ast_calloc(1, sizeof(*user))))
 		return ret;
 
@@ -1482,7 +1527,64 @@
 		(opt_waitmarked_timeout > 0)) {
 		timeout = time(NULL) + opt_waitmarked_timeout;
 	}
-	
+	 	
+ 	if ((confflags & CONFFLAG_DURATION_STOP) && !ast_strlen_zero(optargs[OPT_ARG_DURATION_STOP])) {
+ 		calldurationlimit = atoi(optargs[OPT_ARG_DURATION_STOP]);
+ 		if (option_verbose > 2)
+ 			ast_verbose(VERBOSE_PREFIX_3 "Setting call duration limit to %d seconds.\n",calldurationlimit);
+ 	}
+ 	
+ 	if ((confflags & CONFFLAG_DURATION_LIMIT) && !ast_strlen_zero(optargs[OPT_ARG_DURATION_LIMIT])) {
+ 		char *limit_str, *warning_str, *warnfreq_str;
+		const char *var;
+ 
+ 		parse = optargs[OPT_ARG_DURATION_LIMIT];
+ 		limit_str = strsep(&parse, ":");
+ 		warning_str = strsep(&parse, ":");
+ 		warnfreq_str = parse;
+ 
+ 		timelimit = atol(limit_str);
+ 		if (warning_str)
+ 			play_warning = atol(warning_str);
+ 		if (warnfreq_str)
+ 			warning_freq = atol(warnfreq_str);
+ 
+ 		if (!timelimit) {
+ 			timelimit = play_warning = warning_freq = 0;
+ 			warning_sound = NULL;
+ 		} else if (play_warning > timelimit) {			
+ 			if (!warning_freq) {
+ 				play_warning = 0;
+ 			} else {
+ 				while (play_warning > timelimit)
+ 					play_warning -= warning_freq;
+ 				if (play_warning < 1)
+ 					play_warning = warning_freq = 0;
+ 			}
+ 		}
+ 			
+ 		var = pbx_builtin_getvar_helper(chan,"CONF_LIMIT_WARNING_FILE");
+ 		warning_sound = var ? var : "timeleft";
+ 		
+ 		var = pbx_builtin_getvar_helper(chan,"CONF_LIMIT_TIMEOUT_FILE");
+ 		end_sound = var ? var : NULL;
+ 			
+ 		/* undo effect of S(x) in case they are both used */
+ 		calldurationlimit = 0;
+ 		/* more efficient do it like S(x) does since no advanced opts */
+ 		if (!play_warning && !end_sound && timelimit) { 
+ 			calldurationlimit = timelimit / 1000;
+ 			timelimit = play_warning = warning_freq = 0;
+ 		} else {
+ 			ast_debug(2, "Limit Data for this call:\n");
+			ast_debug(2, "- timelimit     = %ld\n", timelimit);
+ 			ast_debug(2, "- play_warning  = %ld\n", play_warning);
+ 			ast_debug(2, "- warning_freq  = %ld\n", warning_freq);
+ 			ast_debug(2, "- warning_sound = %s\n", warning_sound ? warning_sound : "UNDEF");
+ 			ast_debug(2, "- end_sound     = %s\n", end_sound ? end_sound : "UNDEF");
+ 		}
+ 	}
+
 	/* Get exit keys */
 	if ((confflags & CONFFLAG_KEYEXIT)) {
 		if (!ast_strlen_zero(optargs[OPT_ARG_EXITKEYS]))
@@ -1526,6 +1628,26 @@
 	ast_mutex_unlock(&conf->recordthreadlock);
 
 	time(&user->jointime);
+	
+	user->timelimit = timelimit;
+	user->play_warning = play_warning;
+	user->warning_freq = warning_freq;
+	user->warning_sound = warning_sound;
+	user->end_sound = end_sound;	
+	
+	if (calldurationlimit > 0) {
+		time(&user->kicktime);
+		user->kicktime = user->kicktime + calldurationlimit;
+	}
+	
+	if (ast_tvzero(user->start_time))
+		user->start_time = ast_tvnow();
+	time_left_ms = user->timelimit;
+	
+	if (user->timelimit) {
+		nexteventts = ast_tvadd(user->start_time, ast_samp2tv(user->timelimit, 1000));
+		nexteventts = ast_tvsub(nexteventts, ast_samp2tv(user->play_warning, 1000));
+	}
 
 	if (conf->locked && (!(confflags & CONFFLAG_ADMIN))) {
 		/* Sorry, but this conference is locked! */	
@@ -1810,6 +1932,9 @@
 		for (;;) {
 			int menu_was_active = 0;
 
+			outfd = -1;
+			ms = -1;
+
 			if (rt_schedule) {
 				char currenttime[32];
 				struct ast_tm tm;
@@ -1846,8 +1971,70 @@
 				}
 			}
 
-			outfd = -1;
-			ms = -1;
+ 			time(&myt); /* get current time */
+ 			if (user->kicktime && (user->kicktime < myt)) 
+				break;
+  
+ 			to = -1;
+ 			if (user->timelimit) {
+ 				struct timeval now;
+				int minutes = 0, seconds = 0, remain = 0;
+ 				
+ 				now = ast_tvnow();
+ 				to = ast_tvdiff_ms(nexteventts, now);
+ 				if (to < 0)
+ 					to = 0;
+ 				time_left_ms = user->timelimit - ast_tvdiff_ms(now, user->start_time);
+ 				if (time_left_ms < to)
+ 					to = time_left_ms;
+ 	
+ 				if (time_left_ms <= 0) {
+ 					if (user->end_sound){						
+ 						res = ast_streamfile(chan, user->end_sound, chan->language);
+ 						res = ast_waitstream(chan, "");
+ 					}
+ 					break;
+ 				}
+ 				
+ 				if (!to) {
+ 					if (time_left_ms >= 5000) {						
+ 						
+ 						remain = (time_left_ms + 500) / 1000;
+ 						if (remain / 60 >= 1) {
+ 							minutes = remain / 60;
+ 							seconds = remain % 60;
+ 						} else {
+ 							seconds = remain;
+ 						}
+ 						
+ 						/* force the time left to round up if appropriate */
+ 						if (user->warning_sound && user->play_warning){
+ 							if (!strcmp(user->warning_sound,"timeleft")) {
+ 								
+ 								res = ast_streamfile(chan, "vm-youhave", chan->language);
+ 								res = ast_waitstream(chan, "");
+ 								if (minutes) {
+ 									res = ast_say_number(chan, minutes, AST_DIGIT_ANY, chan->language, (char *) NULL);
+ 									res = ast_streamfile(chan, "queue-minutes", chan->language);
+ 									res = ast_waitstream(chan, "");
+ 								}
+ 								if (seconds) {
+ 									res = ast_say_number(chan, seconds, AST_DIGIT_ANY, chan->language, (char *) NULL);
+ 									res = ast_streamfile(chan, "queue-seconds", chan->language);
+ 									res = ast_waitstream(chan, "");
+ 								}
+ 							} else {
+ 								res = ast_streamfile(chan, user->warning_sound, chan->language);
+ 								res = ast_waitstream(chan, "");
+ 							}
+ 						}
+ 					}
+ 					if (user->warning_freq)
+ 						nexteventts = ast_tvadd(nexteventts, ast_samp2tv(user->warning_freq, 1000));
+ 					else
+ 						nexteventts = ast_tvadd(user->start_time, ast_samp2tv(user->timelimit, 1000));
+ 				}
+ 			}
 
 			if (timeout && time(NULL) >= timeout)
 				break;
@@ -3784,14 +3971,14 @@
 				continue;
 
 			if (remove)
-				AST_LIST_REMOVE_CURRENT(&sla.ringing_trunks, entry);
+				AST_LIST_REMOVE_CURRENT(entry);
 
 			if (trunk_ref)
 				*trunk_ref = s_trunk_ref;
 
 			break;
 		}
-		AST_LIST_TRAVERSE_SAFE_END
+		AST_LIST_TRAVERSE_SAFE_END;
 	
 		if (ringing_trunk)
 			break;
@@ -3819,11 +4006,11 @@
 		case AST_DIAL_RESULT_FAILED:
 		case AST_DIAL_RESULT_TIMEOUT:
 		case AST_DIAL_RESULT_UNANSWERED:
-			AST_LIST_REMOVE_CURRENT(&sla.ringing_stations, entry);
+			AST_LIST_REMOVE_CURRENT(entry);
 			sla_stop_ringing_station(ringing_station, SLA_STATION_HANGUP_NORMAL);
 			break;
 		case AST_DIAL_RESULT_ANSWERED:
-			AST_LIST_REMOVE_CURRENT(&sla.ringing_stations, entry);
+			AST_LIST_REMOVE_CURRENT(entry);
 			/* Find the appropriate trunk to answer. */
 			ast_mutex_lock(&sla.lock);
 			ringing_trunk = sla_choose_ringing_trunk(ringing_station->station, &s_trunk_ref, 1);
@@ -3868,7 +4055,7 @@
 			break;
 		}
 	}
-	AST_LIST_TRAVERSE_SAFE_END
+	AST_LIST_TRAVERSE_SAFE_END;
 }
 
 /*! \brief Check to see if this station is already ringing 
@@ -3898,7 +4085,7 @@
 		if (station != failed_station->station)
 			continue;
 		if (ast_tvdiff_ms(ast_tvnow(), failed_station->last_try) > 1000) {
-			AST_LIST_REMOVE_CURRENT(&sla.failed_stations, entry);
+			AST_LIST_REMOVE_CURRENT(entry);
 			ast_free(failed_station);
 			break;
 		}
@@ -4097,7 +4284,7 @@
 				break;
 		}
 		if (!trunk_ref) {
-			AST_LIST_REMOVE_CURRENT(&sla.ringing_stations, entry);
+			AST_LIST_REMOVE_CURRENT(entry);
 			ast_dial_join(ringing_station->station->dial);
 			ast_dial_destroy(ringing_station->station->dial);
 			ringing_station->station->dial = NULL;
@@ -4154,7 +4341,7 @@
 		time_left = (ringing_trunk->trunk->ring_timeout * 1000) - time_elapsed;
 		if (time_left <= 0) {
 			pbx_builtin_setvar_helper(ringing_trunk->trunk->chan, "SLATRUNK_STATUS", "RINGTIMEOUT");
-			AST_LIST_REMOVE_CURRENT(&sla.ringing_trunks, entry);
+			AST_LIST_REMOVE_CURRENT(entry);
 			sla_stop_ringing_trunk(ringing_trunk);
 			res = 1;
 			continue;
@@ -4162,7 +4349,7 @@
 		if (time_left < *timeout)
 			*timeout = time_left;
 	}
-	AST_LIST_TRAVERSE_SAFE_END
+	AST_LIST_TRAVERSE_SAFE_END;
 
 	return res;
 }
@@ -4235,7 +4422,7 @@
 
 		/* If there is no time left, the station needs to stop ringing */
 		if (time_left <= 0) {
-			AST_LIST_REMOVE_CURRENT(&sla.ringing_stations, entry);
+			AST_LIST_REMOVE_CURRENT(entry);
 			sla_stop_ringing_station(ringing_station, SLA_STATION_HANGUP_TIMEOUT);
 			res = 1;
 			continue;
@@ -4246,7 +4433,7 @@
 		if (time_left < *timeout)
 			*timeout = time_left;
 	}
-	AST_LIST_TRAVERSE_SAFE_END
+	AST_LIST_TRAVERSE_SAFE_END;
 
 	return res;
 }
@@ -4805,11 +4992,11 @@
 	ast_mutex_lock(&sla.lock);
 	AST_LIST_TRAVERSE_SAFE_BEGIN(&sla.ringing_trunks, ringing_trunk, entry) {
 		if (ringing_trunk->trunk == trunk) {
-			AST_LIST_REMOVE_CURRENT(&sla.ringing_trunks, entry);
+			AST_LIST_REMOVE_CURRENT(entry);
 			break;
 		}
 	}
-	AST_LIST_TRAVERSE_SAFE_END
+	AST_LIST_TRAVERSE_SAFE_END;
 	ast_mutex_unlock(&sla.lock);
 	if (ringing_trunk) {
 		sla_change_trunk_state(ringing_trunk->trunk, SLA_TRUNK_STATE_IDLE, ALL_TRUNK_REFS, NULL);

Modified: team/murf/fast-ast2/apps/app_playback.c
URL: http://svn.digium.com/view/asterisk/team/murf/fast-ast2/apps/app_playback.c?view=diff&rev=89127&r1=89126&r2=89127
==============================================================================
--- team/murf/fast-ast2/apps/app_playback.c (original)
+++ team/murf/fast-ast2/apps/app_playback.c Fri Nov  9 08:40:38 2007
@@ -328,7 +328,7 @@
 static int say_init_mode(char *mode) {
 	if (!strcmp(mode, say_new)) {
 		if (say_cfg == NULL) {
-			ast_log(LOG_ERROR,"There is no say.conf file to use new mode\n");
+			ast_log(LOG_ERROR, "There is no say.conf file to use new mode\n");
 			return -1;
 		}
 		save_say_mode(say_new);
@@ -348,7 +348,7 @@
 		ast_say_date_with_format = say_date_with_format;
 	} else if (!strcmp(mode, say_old) && say_api_buf[0] == say_new) {
 		restore_say_mode(NULL);
-	} else {
+	} else if (strcmp(mode, say_old)) {
 		ast_log(LOG_WARNING, "unrecognized mode %s\n", mode);
 		return -1;
 	}
@@ -382,10 +382,10 @@
 		return CLI_SHOWUSAGE;
 	mode = a->argv[2];
 	if (!strcmp(mode, old_mode))
-		ast_log(LOG_NOTICE, "say mode is %s already\n", mode);
+		ast_cli(a->fd, "say mode is %s already\n", mode);
 	else
 		if (say_init_mode(mode) == 0)
-			ast_log(LOG_NOTICE, "init say.c from %s to %s\n", old_mode, mode);
+			ast_cli(a->fd, "setting say mode from %s to %s\n", old_mode, mode);
 
 	return CLI_SUCCESS;
 }

Modified: team/murf/fast-ast2/apps/app_queue.c
URL: http://svn.digium.com/view/asterisk/team/murf/fast-ast2/apps/app_queue.c?view=diff&rev=89127&r1=89126&r2=89127
==============================================================================
--- team/murf/fast-ast2/apps/app_queue.c (original)
+++ team/murf/fast-ast2/apps/app_queue.c Fri Nov  9 08:40:38 2007
@@ -101,7 +101,8 @@
 	QUEUE_STRATEGY_FEWESTCALLS,
 	QUEUE_STRATEGY_RANDOM,
 	QUEUE_STRATEGY_RRMEMORY,
-	QUEUE_STRATEGY_LINEAR
+	QUEUE_STRATEGY_LINEAR,
+	QUEUE_STRATEGY_WRANDOM
 };
 
 static struct strategy {
@@ -114,6 +115,7 @@
 	{ QUEUE_STRATEGY_RANDOM, "random" },
 	{ QUEUE_STRATEGY_RRMEMORY, "rrmemory" },

[... 3994 lines stripped ...]



More information about the asterisk-commits mailing list