Commit Graph

1075 Commits

Author SHA1 Message Date
Tilghman Lesher 27cbcba255 Merged revisions 284632 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8

................
  r284632 | tilghman | 2010-09-02 00:31:02 -0500 (Thu, 02 Sep 2010) | 14 lines
  
  Merged revisions 284631 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.6.2
  
  ........
    r284631 | tilghman | 2010-09-02 00:30:16 -0500 (Thu, 02 Sep 2010) | 7 lines
    
    Don't reset queue stats on a module reload.
    
    (closes issue #17535)
     Reported by: raarts
     Patches: 
           20100819__issue17535.diff.txt uploaded by tilghman (license 14)
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@284633 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-09-02 05:31:47 +00:00
Tilghman Lesher 8190e96fad Merged revisions 284610 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8

........
  r284610 | tilghman | 2010-09-02 00:20:59 -0500 (Thu, 02 Sep 2010) | 10 lines
  
  When optional_api is non-optional, force dependent modules to be loaded.
  
  (closes issue #17707)
   Reported by: ira
   Patches: 
         20100819__issue17707__asterisk1.8.diff.txt uploaded by tilghman (license 14)
   Tested by: tilghman
   
  Review: https://reviewboard.asterisk.org/r/876/
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@284628 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-09-02 05:27:53 +00:00
Sean Bright 395ecf1153 Merged revisions 280161 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8

................
  r280161 | seanbright | 2010-07-28 12:52:12 -0400 (Wed, 28 Jul 2010) | 15 lines
  
  Merged revisions 280160 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.6.2
  
  ........
    r280160 | seanbright | 2010-07-28 12:51:11 -0400 (Wed, 28 Jul 2010) | 8 lines
    
    Plug a reference leak in app_queue when adding members dynamically.
    
    (closes issue #17738)
    Reported by: bobwienholt
    Patches:
          issue17738.patch uploaded by bobwienholt (license 950)
    Tested by: bobwienholt, seanbright
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@280162 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-07-28 16:53:14 +00:00
Richard Mudgett ff2dc29d88 Merged revisions 279227 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8

................
  r279227 | rmudgett | 2010-07-23 17:20:47 -0500 (Fri, 23 Jul 2010) | 21 lines
  
  Merged revisions 279207 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.6.2
  
  ................
    r279207 | rmudgett | 2010-07-23 17:11:23 -0500 (Fri, 23 Jul 2010) | 14 lines
    
    Merged revisions 279206 via svnmerge from 
    https://origsvn.digium.com/svn/asterisk/branches/1.4
    
    ........
      r279206 | rmudgett | 2010-07-23 16:56:44 -0500 (Fri, 23 Jul 2010) | 7 lines
      
      SIP promiscuous redirect could fail to dial the redirect.
      
      The ast_channel was created with one variable to ast_request() but the
      call to ast_call() that initiates the outgoing call was using a different
      variable.  The two variables are not equivalent if the call_forward string
      included a channel technology specifier.  e.g., SIP/200
    ........
  ................
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@279245 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-07-23 22:24:52 +00:00
Tilghman Lesher b4e18d5660 Add load priority order, such that preload becomes unnecessary in most cases
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@278132 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-07-20 19:35:02 +00:00
Jeff Peeler 5b8a8fc6c8 Fix reporting estimated queue hold time.
Just say the number of seconds (after minutes) rather than doing some incorrect
calculation with respect to minutes.

(closes issue #17498)
Reported by: corruptor
Patches: 
      holdesecs_bug.diff uploaded by corruptor (license 253)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@277488 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-07-16 21:16:08 +00:00
Jeff Peeler b73c1377e5 Add missing handling for ringing state for use with queue empty options.
(closes issue #17471)
Reported by: jazzy
Patches: 
      app_queue.c.diff uploaded by jazzy (license 1056)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@277366 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-07-16 19:22:49 +00:00
Olle Johansson 65203b12dd Add a dialplan function to check if a queue exists: QUEUE_EXISTS
Review: https://reviewboard.asterisk.org/r/777/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@276950 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-07-16 09:25:48 +00:00
Richard Mudgett ec37ffbdaf ast_callerid restructuring
The purpose of this patch is to eliminate struct ast_callerid since it has
turned into a miscellaneous collection of various party information.

Eliminate struct ast_callerid and replace it with the following struct
organization:

struct ast_party_name {
	char *str;
	int char_set;
	int presentation;
	unsigned char valid;
};
struct ast_party_number {
	char *str;
	int plan;
	int presentation;
	unsigned char valid;
};
struct ast_party_subaddress {
	char *str;
	int type;
	unsigned char odd_even_indicator;
	unsigned char valid;
};
struct ast_party_id {
	struct ast_party_name name;
	struct ast_party_number number;
	struct ast_party_subaddress subaddress;
	char *tag;
};
struct ast_party_dialed {
	struct {
		char *str;
		int plan;
	} number;
	struct ast_party_subaddress subaddress;
	int transit_network_select;
};
struct ast_party_caller {
	struct ast_party_id id;
	char *ani;
	int ani2;
};

The new organization adds some new information as well.

* The party name and number now have their own presentation value that can
be manipulated independently.  ISDN supplies the presentation value for
the name and number at different times with the possibility that they
could be different.

* The party name and number now have a valid flag.  Before this change the
name or number string could be empty if the presentation were restricted.
Most channel drivers assume that the name or number is then simply not
available instead of indicating that the name or number was restricted.

* The party name now has a character set value.  SIP and Q.SIG have the
ability to indicate what character set a name string is using so it could
be presented properly.

* The dialed party now has a numbering plan value that could be useful to
have available.

The various channel drivers will need to be updated to support the new
core features as needed.  They have simply been converted to supply
current functionality at this time.


The following items of note were either corrected or enhanced:

* The CONNECTEDLINE() and REDIRECTING() dialplan functions were
consolidated into func_callerid.c to share party id handling code.

* CALLERPRES() is now deprecated because the name and number have their
own presentation values.

* Fixed app_alarmreceiver.c write_metadata().  The workstring[] could
contain garbage.  It also can only contain the caller id number so using
ast_callerid_parse() on it is silly.  There was also a typo in the
CALLERNAME if test.

* Fixed app_rpt.c using ast_callerid_parse() on the channel's caller id
number string.  ast_callerid_parse() alters the given buffer which in this
case is the channel's caller id number string.  Then using
ast_shrink_phone_number() could alter it even more.

* Fixed caller ID name and number memory leak in chan_usbradio.c.

* Fixed uninitialized char arrays cid_num[] and cid_name[] in
sig_analog.c.

* Protected access to a caller channel with lock in chan_sip.c.

* Clarified intent of code in app_meetme.c sla_ring_station() and
dial_trunk().  Also made save all caller ID data instead of just the name
and number strings.

* Simplified cdr.c set_one_cid().  It hand coded the ast_callerid_merge()
function.

* Corrected some weirdness with app_privacy.c's use of caller
presentation.

Review:	https://reviewboard.asterisk.org/r/702/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@276347 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-07-14 15:48:36 +00:00
Eliel C. Sardanons a1b89a6a50 Implement AstData API data providers as part of the GSOC 2010 project,
midterm evaluation.

Review: https://reviewboard.asterisk.org/r/757/



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@274727 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-07-08 14:48:42 +00:00
Tilghman Lesher 45a4bf35c2 The switch fallthrough could create some errorneous situations, so best to force directly to the default case.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@273714 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-07-02 16:57:28 +00:00
Matthew Nicholson cb22af3ec5 Merged revisions 272367 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

This version of the patch only adds AgentComplete for attended transfers.  It was already present for blind transfers.

........
  r272367 | mnicholson | 2010-06-23 17:33:51 -0500 (Wed, 23 Jun 2010) | 8 lines
  
  Send AgentComplete manager events in the event of blind and attended transfers.
  
  (closes issue #16819)
  Reported by: elbriga
  Patches:
        app_queue.diff uploaded by elbriga (license 482)
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@272368 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-06-23 22:36:49 +00:00
Richard Mudgett afd4454c44 Generic Advice of Charge.
Asterisk Generic AOC Representation
- Generic AOC encode/decode routines.
  (Generic AOC must be encoded to be passed on the wire in the AST_CONTROL_AOC frame)
- AST_CONTROL_AOC frame type to represent generic encoded AOC data
- Manager events for AOC-S, AOC-D, and AOC-E messages

Asterisk App Support
- app_dial AOC-S pass-through support on call setup
- app_queue AOC-S pass-through support on call setup

AOC Unit Tests
- AOC Unit Tests for encode/decode routines
- AOC Unit Test for manager event representation.

SIP AOC Support
- Pass-through of generic AOC-D and AOC-E messages to snom phones via the
  snom AOC specification.
- Creation of chan_sip page3 flags for the addition of the new
  'snom_aoc_enabled' sip.conf option.

IAX AOC Support
- Natively supports AOC pass-through through the use of the new
  AST_CONTROL_AOC frame type

DAHDI AOC Support
- ETSI PRI full AOC Pass-through support
- 'aoc_enable' chan_dahdi.conf option for independently enabling
  pass-through of AOC-S, AOC-D, AOC-E.
- 'aoce_delayhangup' option for retrieving AOC-E on disconnect.
- DAHDI A() dial string option for requesting AOC services.
  example usage:
  ;requests AOC-S, AOC-D, and AOC-E on call setup
  exten=>1111,1,Dial(DAHDI/g1/1112/A(s,d,e))

Review:	https://reviewboard.asterisk.org/r/552/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@267096 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-06-02 18:10:15 +00:00
Matthew Nicholson 9ed82007f1 Merged revisions 265610 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r265610 | mnicholson | 2010-05-25 11:48:19 -0500 (Tue, 25 May 2010) | 8 lines
  
  Don't mark the cdr records of unanswered queue calls with "NOANSWER".  This restores the behavior prior to r258670.
  
  (closes issue #17334)
  Reported by: jvandal
  Patches:
        queue-cdr-fixes1.diff uploaded by mnicholson (license 96)
  Tested by: aragon, jvandal
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@265611 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-05-25 17:00:11 +00:00
Mark Michelson 1225ee831c Merged revisions 265089 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r265089 | mmichelson | 2010-05-21 15:59:14 -0500 (Fri, 21 May 2010) | 8 lines
  
  Don't hang up on a queue caller if the file we attempt to play does not exist.
  
  This also fixes a documentation mistake in file.h that made my original attempt
  to correct this problem not work correctly.
  
  (closes issue #17061)
  Reported by: RoadKill
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@265090 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-05-21 21:08:51 +00:00
Richard Mudgett 3d1f005fed Dial and queue connected line update macro not always run when expected.
The connected line update macro would not get run if the connected line
number string was empty.  The number could be empty if the connected line
update did not update a number but the name.  It should be run if there
was an AST_CONTROL_CONNECTED_LINE frame received for pending dials and
queues.

Renamed and added some more comments for some confusing identifiers
directly connected to the related code.

Also fixed a memory leak in app_queue.

Review:	https://reviewboard.asterisk.org/r/669/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@264669 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-05-20 19:40:03 +00:00
Mark Michelson b5d5cc565f Enhancements to connected line and redirecting work.
From reviewboard:

Digium has a commercial customer who has made extensive use of the connected party and
redirecting information present in later versions of Asterisk Business Edition and which
is to be in the upcoming 1.8 release. Through their use of the feature, new problems and solutions
have come about. This patch adds several enhancements to maximize usage of the connected party
and redirecting information functionality.

First, Asterisk trunk already had connected line interception macros. These macros allow you to
manipulate connected line information before it was sent out to its target. This patch adds the
same feature except for redirecting information instead.

Second, the ast_callerid and ast_party_id structures have been enhanced to provide a "tag." This
tag can be set with func_callerid, func_connectedline, func_redirecting, and in the case of DAHDI,
mISDN, and SIP channels, can be set in a configuration file. The idea behind the callerid tag is
that it can be set to whatever value the administrator likes. Later, when running connected line
and redirecting macros, the admin can read the tag off the appropriate structure to determine what
action to take. You can think of this sort of like a channel variable, except that instead of having
the variable associated with a channel, the variable is associated with a specific identity within
Asterisk.

Third, app_dial has two new options, s and u. The s option lets a dialplan writer force a specific
caller ID tag to be placed on the outgoing channel. The u option allows the dialplan writer to force
a specific calling presentation value on the outgoing channel.

Fourth, there is a new control frame subclass called AST_CONTROL_READ_ACTION added. This was added
to correct a very specific situation. In the case of SIP semi-attended (blond) transfers, the party
being transferred would not have the opportunity to run a connected line interception macro to
possibly alter the transfer target's connected line information. The issue here was that during a
blond transfer, the SIP transfer code has no bridged channel on which to queue the connected line
update. The way this was corrected was to add this new control frame subclass. Now, we queue an
AST_CONTROL_READ_ACTION frame on the channel on which the connected line interception macro should
be run. When ast_read is called to read the frame, ast_read responds by calling a callback function
associated with the specific read action the control frame describes. In this case, the action taken
is to run the connected line interception macro on the transferee's channel.

Review: https://reviewboard.asterisk.org/r/652/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@263541 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-05-17 15:36:31 +00:00
Paul Belanger d7ff67179d 'queue reset stats' erroneously clears wrapuptime configuration.
Resets each member's lastcall to 0 now.

(closes issue #17262)
Reported by: rain
Patches:
      wrapuptime_reset_fix.diff uploaded by rain (license 327)
Tested by: rain


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@261232 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-05-05 15:42:07 +00:00
Mark Michelson fc652b869a Add new possible value to autopause option to allow members to be autopaused in all queues.
See the CHANGES file and queues.conf.sample for more details.

(closes issue #17008)
Reported by: jlpedrosa
Patches:
      queues.autopause_en_review.diff uploaded by jlpedrosa (license 1002)

Review: https://reviewboard.asterisk.org/r/581/



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@261051 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-05-04 22:46:42 +00:00
Mark Michelson 2dcb4df6d8 Fix logic reversal error when queue callers join the queue.
When a specific position is specified for the queue, the idea
was that the caller cannot be placed ahead of higher-priority
callers. Unfortunately, the logic was reversed so that the caller
could ONLY be placed ahead of higher priority callers.

Discovered while writing a unit test.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@260344 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-04-30 19:53:36 +00:00
Eliel C. Sardanons a753e8878b Asterisk data retrieval API.
This module implements an abstraction for retrieving and exporting
asterisk data.
Developed by:
	Brett Bryant <brettbryant@gmail.com>
	Eliel C. Sardanons (LU1ALY) <eliels@gmail.com>
For the Google Summer of code 2009 Project.
Documentation can be found in doxygen format and inside the
header include/asterisk/data.h

Review: https://reviewboard.asterisk.org/r/275/



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@258517 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-04-22 18:07:02 +00:00
Richard Mudgett a5a0a5f867 Consolidate ast_channel.cid.cid_rdnis into ast_channel.redirecting.from.number.
SWP-1229
ABE-2161

* Ensure chan_local.c:local_call() will not leak cid.cid_dnid when
copying.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@256104 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-04-03 02:12:33 +00:00
Sean Bright 9461bac812 Remove unused structure member in app_queue.
(closes issue #15494)
Reported by: makoto


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@254045 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-03-23 20:52:35 +00:00
Richard Mudgett 73ef4b8daf Removed cdrflags from ast_channel structure.
Only chan_dahdi set a value in cdrflags.  Everyone else just copied it
around the system.  Noone cared about any value it may have contained.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@250565 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-03-03 19:38:06 +00:00
David Vossel 48134df655 fixes Queue with C option crash
(closes issue #16475)
Reported by: okrief
Patches:
      queue_crash.diff uploaded by dvossel (license 671)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@247736 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-02-18 20:58:41 +00:00
Mark Michelson c54f8ced1b Merged revisions 247168 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r247168 | mmichelson | 2010-02-17 10:24:17 -0600 (Wed, 17 Feb 2010) | 3 lines
  
  Make sure that when autofill is disabled that callers not in the front of the queue cannot place calls.
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@247169 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-02-17 16:24:54 +00:00
David Vossel fa156c067d Merged revisions 246115 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r246115 | dvossel | 2010-02-10 11:44:20 -0600 (Wed, 10 Feb 2010) | 8 lines
  
  fixes random deadlock in app_queue with use_weight during reload
  
  (closes issue #16677)
  Reported by: tim_ringenbach
  Patches:
        app_queue_use_weight_deadlock.diff uploaded by tim ringenbach (license 540)
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@246116 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-02-10 17:49:34 +00:00
Jeff Peeler 0f7c1a8cc9 Merged revisions 243691 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r243691 | jpeeler | 2010-01-27 14:35:56 -0600 (Wed, 27 Jan 2010) | 5 lines
  
  Revert 243570, I should have looked at this closer. Will reopen the issue, but
  am leaving the review closed as the change was pointless.
  
  (issue #16488)
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@243693 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-01-27 20:37:33 +00:00
Jeff Peeler 7e20456f3a Merged revisions 243570 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r243570 | jpeeler | 2010-01-27 12:47:34 -0600 (Wed, 27 Jan 2010) | 9 lines
  
  Extend announcement URL used with Queue from 80 chars to PATH_MAX.
  
  (closes issue #16488)
  Reported by: syspert
  Patches: 
        soundfilelen.pacth-2 uploaded by syspert (license 938)
  
  Review: https://reviewboard.asterisk.org/r/475/
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@243571 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-01-27 18:49:52 +00:00
David Vossel 8d8800072e fixes spelling error. s/memeber/member
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@240842 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-01-18 15:52:55 +00:00
David Vossel 0a6c0ee1f7 cli 'queue show' formatting fix. queue name was truncated over 12 characters
(closes issue #16078)
Reported by: RoadKill
Patches:
      quequename_limit.patch uploaded by ppyy (license 906)
Tested by: dvossel


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@238361 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-01-07 18:58:23 +00:00
David Vossel bfae8dca78 fixes holdtime playback issue in app_queue
When reporting hold time, the number of seconds should be mod 60.
Otherwise audio playback could be something like "2 minutes 123 seconds"
rather than "2 minutes 3 seconds".

Also, the "minute" sound file is missing, so for the moment until
that file can be created the "minutes" file is used instead.

(closes issue #16168)
Reported by: nickilo
Patches:
      patch-unified-trunk-rev-222176 uploaded by nickilo (license )
Tested by: nickilo, wonderg



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@237920 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-01-05 23:08:50 +00:00
David Vossel 688e1bbac6 app_queue segfaults if realtime field uniqueid is NULL
(closes issue #16385)
Reported by: haakon
Patches:
      app_queue.c.patch uploaded by haakon (license 880)
      app_queue.c.patch_v2 uploaded by dvossel (license 671)
Tested by: haakon



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@237327 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-01-04 16:39:11 +00:00
David Vossel 0a5d21e6c7 QUEUE_MEMBER(..., ready) counts only ready agents, not free agents wrapping up
The QUEUE_MEMBER dialplan function can return total members,
logged-in members and "free" members count. A member is counted
as "free" immediately after his call ends, even though its wrap-up
time, if specified in queues.conf, has not yet expired, and the
queue will not actually route a call to it.

This Patch introduces a new "ready" option that only counts
free agents no longer in the wrap up time period.

(closes issue #16240)
Reported by: kkm
Patches:
      appqueue-memberfun-readyoption-trunk.diff uploaded by kkm (license 888)
Tested by: kkm, dvossel


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@236308 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-12-23 19:14:05 +00:00
David Vossel 065fce7310 update CHANGES to reflect new 'R' app_queue option plus a minor optimization to the feature patch
(issue #16384)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@236306 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-12-23 18:45:54 +00:00
David Vossel 6892b103ab new parameter 'R' to the Queue application
The 'R' argument stops moh and indicates ringing once the agent is
ringing.  This allows the person in the queue to know their call
is potentially about to be answered.

(closes issue #16384)
Reported by: haakon
Patches:
      new_app_queue.c.patch uploaded by haakon (license 880)
Tested by: haakon, loloski, dvossel


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@236304 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-12-23 18:39:37 +00:00
David Vossel 63dafe98f6 changes penaltymemberslimit to use scanf for config value parsing
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@233197 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-12-04 18:55:21 +00:00
David Vossel e21deabf02 new queue option, penaltymemberslimit, disregards penalty on too few queue members when enabled
(closes issue #14559)
Reported by: fiddur
Patches:
      trunk-199584-1.diff uploaded by fiddur (license 678)
Tested by: fiddur, dvossel


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@233196 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-12-04 18:48:31 +00:00
David Vossel 4f5dd10749 app_queue crashes randomly, often during call-transfers
This patch adds a ref to the queue_ent object's parent call_queue
in queue_exec() so the call_queue won't be destroyed
while the the queue_ent still holds a pointer to it.

(closes issue 0015686)
Tested by: dvossel, aragon




git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@231556 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-11-30 18:55:07 +00:00
Tilghman Lesher baca4c6437 Found a few places where queue refcounts were counted incorrectly. Also add debug statements.
(closes issue #15982, closes issue #15984)
 Reported by: atis
 Patches: 
       20091111__issue15982.diff.txt uploaded by tilghman (license 14)
 Tested by: atis


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@231134 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-11-24 20:31:28 +00:00
Tilghman Lesher 5e2aa190fe Display a list of channel variables in each channel-oriented event.
(Closes AST-33)
Reviewboard:	https://reviewboard.asterisk.org/r/368/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@230111 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-11-13 20:42:03 +00:00
Matthew Nicholson aabff54c4b Add the 'relative-periodic-announce' option to app_queue to allow for calculating the time of announcments from the end of the previous announcment rather than from the beginning.
(closes issue #15260)
Reported by: tonils


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@228947 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-11-09 16:28:31 +00:00
Tilghman Lesher d8e0c58437 Expand codec bitfield from 32 bits to 64 bits.
Reviewboard: https://reviewboard.asterisk.org/r/416/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@227580 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-11-04 14:05:12 +00:00
Tilghman Lesher 206d2cbc16 Don't crash when state_interface is NULL.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@227509 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-11-04 03:15:10 +00:00
Joshua Colp 2263ced9dd Add support for using a hint when configuring a state interface using the format hint:<extension>@<context>.
(closes issue #15168)
Reported by: p_lindheimer
Patches:
      queue_extenstate5_1.4.svn.patch uploaded by GameGamer43 (license 894)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@227424 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-11-03 21:16:14 +00:00
Kevin P. Fleming 1c9fe00920 Recorded merge of revisions 222152 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r222152 | kpfleming | 2009-10-05 20:16:36 -0500 (Mon, 05 Oct 2009) | 20 lines
  
  Fix ao2_iterator API to hold references to containers being iterated.
  
  See Mantis issue for details of what prompted this change.
  
  Additional notes:
  
  This patch changes the ao2_iterator API in two ways: F_AO2I_DONTLOCK
  has become an enum instead of a macro, with a name that fits our
  naming policy; also, it is now necessary to call
  ao2_iterator_destroy() on any iterator that has been
  created. Currently this only releases the reference to the container
  being iterated, but in the future this could also release other
  resources used by the iterator, if the iterator implementation changes
  to use additional resources.
  
  (closes issue #15987)
  Reported by: kpfleming
  
  Review: https://reviewboard.asterisk.org/r/383/
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@222176 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-10-06 01:24:24 +00:00
Matthias Nick 00bb578898 Prevents from division by zero
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@221436 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-09-30 21:15:01 +00:00
Tilghman Lesher 85f18fcb8f Merged revisions 217989 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r217989 | tilghman | 2009-09-10 18:52:22 -0500 (Thu, 10 Sep 2009) | 3 lines
  
  Don't ring another channel, if there's not enough time for a queue member to answer.
  (Fixes AST-228)
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@217990 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-09-10 23:54:51 +00:00
Tilghman Lesher 1b08c27c1a Add original position, when logging a caller entering a queue.
(closes issue #15146)
 Reported by: arabe
 Patches: 
       asterisk-trunk.patch uploaded by arabe (license 786)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@213414 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-08-20 22:13:26 +00:00
Matthew Nicholson 160eb55c47 Merged revisions 211953 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r211953 | mnicholson | 2009-08-12 18:04:02 -0500 (Wed, 12 Aug 2009) | 10 lines
  
  This patch adds additional checking when generating queue log TRANSFER events.
  
  The additional checks prevent generation of false TRANSFER events in certain situations.
  
  (closes issue #14536)
  Reported by: aragon
  Patches:
        queue-log-xfer-fix1.diff uploaded by mnicholson (license 96)
  Tested by: aragon, mnicholson
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@211957 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-08-12 23:14:36 +00:00
Tilghman Lesher 642bec4d6f AST-2009-005
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@211539 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-08-10 19:20:57 +00:00
Tilghman Lesher 20102765bf Merged revisions 211038 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r211038 | tilghman | 2009-08-07 13:16:28 -0500 (Fri, 07 Aug 2009) | 14 lines
  
  QUEUE_MEMBER_LIST _really_ wants the interface name, not the membername.
  
  This is a partial revert of revision 82590, which was an attempted cleanup,
  but in reality, it broke QUEUE_MEMBER_LIST, which has always been intended
  as a method by which component interfaces could be queried from the queue.
  Membername isn't useful here, because that field cannot be used to obtain
  further information about the member.  See the documentation on
  QUEUE_MEMBER_LIST, RemoveQueueMember, QUEUE_MEMBER_PENALTY, and the various
  AMI commands which take a member argument for further justification.
  (closes issue #15664)
   Reported by: rain
   Patches: 
         app_queue-queue_member_list.diff uploaded by rain (license 327)
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@211040 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-08-07 18:17:41 +00:00
Mark Michelson fd52c5834e Merged revisions 205349 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r205349 | mmichelson | 2009-07-08 14:26:13 -0500 (Wed, 08 Jul 2009) | 14 lines
  
  Prevent phantom calls to queue members.
  
  If a caller were to hang up while a periodic announcement or position
  were being said, the return value for those functions would incorrectly
  indicate that the caller was still in the queue. With these changes,
  the problem does not occur.
  
  (closes issue #14631)
  Reported by: latinsud
  Patches:
        queue_announce_ghost_call2.diff uploaded by latinsud (license 745)
  	  (with small modification from me)
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@205350 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-07-08 19:26:55 +00:00
Russell Bryant 0264eef115 Merge the new Channel Event Logging (CEL) subsystem.
CEL is the new system for logging channel events.  This was inspired after
facing many problems trying to represent what is possible to happen to a call
in Asterisk using CDR records.  For more information on CEL, see the built in
HTML or PDF documentation generated from the files in doc/tex/.

Many thanks to Steve Murphy (murf) and Brian Degenhardt (bmd) for their hard
work developing this code.  Also, thanks to Matt Nicholson (mnicholson) and
Sean Bright (seanbright) for their assistance in the final push to get this
code ready for Asterisk trunk.

Review: https://reviewboard.asterisk.org/r/239/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@203638 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-06-26 15:28:53 +00:00
Kevin P. Fleming aaeec3b40f Last batch of 'static' qualifiers for module-level global variables.
Fix up modules in the 'apps' directory, and also correct the bad example of
enum definitions in include/asterisk/app.h, which many developers followed
(thanks for reading the documentation!). In addition, add some basic usage
examples of the 'pahole' and 'pglobal' tools to the coding guidelines.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@200656 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-06-15 19:10:10 +00:00
Kevin P. Fleming 6c5987811c Redesigned 'optional API' support.
This patch provides a new implementation of the optional API support defined
in asterisk/optional_api.h; this new version provides solves compatibility
issues with the use of linker version scripts for suppressing global symbols.
In addition, there is now a functional (and tested!) implementation for Mac OS/X,
so module writers no longer need to use special tests before calling optional
API functions. All future implementations must provide these same semantics,
so that module writers can rely on them.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@200519 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-06-15 16:07:23 +00:00
Mark Michelson e1c03cbf1a Fix some bad locking stemming from trying to forward a call to a non-existent
extension from a queue.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@200326 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-06-12 15:37:30 +00:00
Mark Michelson d222361a29 Fix a potential crash from trying to access a NULL channel pointer.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@200290 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-06-12 14:55:07 +00:00
David Vossel c42344b319 ast_call_forward() todo notes and originate flag copy.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@198954 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-06-03 20:30:10 +00:00
Mark Michelson 298d745fb4 Add the ability to execute connected line interception macros.
When connected line updates are received or generated in the middle
of an application call, it is now possible to execute a macro to
manipulate the connected line data. This way, phone numbers may be
manipulated to be more presentable to users, names may be changed 
for...whatever reason, or whatever else needs to be done may be.

Review: https://reviewboard.asterisk.org/r/256

AST-165



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@198727 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-06-01 20:57:31 +00:00
Mark Michelson 4c7c13d574 Remove extra lock from app_queue.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@198530 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-06-01 14:45:43 +00:00
Sean Bright 7ee6e9f4ce Add a missing unref for queues in handle_statechange.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@196792 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-05-26 16:38:54 +00:00
Eliel C. Sardanons 2c882626a0 Implement a new element in AstXML for AMI actions documentation.
A new xml element was created to manage the AMI actions documentation,
using AstXML.
To register a manager action using XML documentation it is now possible
using ast_manager_register_xml().
The CLI command 'manager show command' can be used to show the parsed
documentation.

Example manager xml documentation:
<manager name="ami action name" language="en_US">
    <synopsis>
        AMI action synopsis.
    </synopsis>
    <syntax>
        <xi:include xpointer="xpointer(...)" /> <-- for ActionID
        <parameter name="header1" required="true">
	    <para>Description</para>
	</parameter>
	...
    </syntax>
    <description>
        <para>AMI action description</para>
    </description>
    <see-also>
    	...
    </see-also>
</manager>



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@196308 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-05-22 17:52:35 +00:00
Kevin P. Fleming e6b2e9a750 Const-ify the world (or at least a good part of it)
This patch adds 'const' tags to a number of Asterisk APIs where they are appropriate (where the API already demanded that the function argument not be modified, but the compiler was not informed of that fact). The list includes:

- CLI command handlers
- CLI command handler arguments
- AGI command handlers
- AGI command handler arguments
- Dialplan application handler arguments
- Speech engine API function arguments

In addition, various file-scope and function-scope constant arrays got 'const' and/or 'static' qualifiers where they were missing.

Review: https://reviewboard.asterisk.org/r/251/



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@196072 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-05-21 21:13:09 +00:00
Tilghman Lesher bdcafc1ab4 Recorded merge of revisions 195366 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r195366 | tilghman | 2009-05-18 15:24:13 -0500 (Mon, 18 May 2009) | 8 lines
  
  Add a similar dependency on SMDI for voicemail as already exists for ADSI.
  (closes issue #14846)
   Reported by: pj
   Patches: 
         20090413__bug14846__1.4.diff.txt uploaded by tilghman (license 14)
         20090507__issue14846__1.6.0.diff.txt uploaded by tilghman (license 14)
         20090507__issue14846__1.6.1.diff.txt uploaded by tilghman (license 14)
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@195370 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-05-18 20:52:33 +00:00
Matthew Nicholson 69976640f5 Merged revisions 194028 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r194028 | mnicholson | 2009-05-12 17:15:45 -0500 (Tue, 12 May 2009) | 16 lines
  
  This change modifies app_queue to properly generate CDR records in failure
  situations.
  
  This involves setting a proper cdr disposition coresponding to the given
  failure condition and ensuring the proper information is stored in the cdr
  record.
  
  (closes issue #13691)
  Reported by: dferrer
  Tested by: mnicholson
  
  (closes issue #13637)
  Reported by: atis
  Tested by: atis
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@194057 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-05-12 22:32:13 +00:00
Kevin P. Fleming 1c988d8996 add 'const' qualifiers in various places where they should have been
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@193832 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-05-12 13:59:35 +00:00
Mark Michelson 7a2a6a073f Reset the members' call counts when resetting queue statistics.
This helps to prevent odd scenarios where a queue will claim to have
taken 0 calls, but the members appear to have taken a non-zero amount.

(closes issue #15068)
Reported by: sum
Patches:
      patchreset.patch uploaded by sum (license 766)
Tested by: sum



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@193349 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-05-08 19:50:44 +00:00
Richard Mudgett 7019ff68db Fixed crashes from issue8824 review board channel locking changes.
The local struct ast_party_connected_line connected_caller variable
was uninitialized when the copy function was called.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@192590 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-05-05 20:54:07 +00:00
Russell Bryant 1e016da893 Fix app_queue XML documentation.
I think it would behoove us to force "make validate-docs" to be run after the
XML documentation has been generated if dev-mode is enabled.

(closes issue #14989)
Reported by: tzafrir
Patches:
      app_queue_xml.diff uploaded by tzafrir (license 46)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@190991 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-04-29 08:56:13 +00:00
Mark Michelson 1d941ad821 Allow for a position to be specified when entering a queue.
This would allow for one to add a caller to a specific place in the
queue instead of just placing the caller in the back every time. To help
facilitate some interesting manipulations, a new channel variable called
QUEUEPOSITION has been added. When a caller is removed from a queue, his
position in that queue is stored in the QUEUEPOSITION variable. One such
strategy an administrator can employ is to allow for the removal of a caller
from one queue followed by the insertion of the same caller into a separate
queue in the same position.

Review: http://reviewboard.digium.com/r/189



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@190626 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-04-27 16:37:51 +00:00
Mark Michelson 09cde5a40c Update warning message to not have pipes and contain all options.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@190622 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-04-27 16:26:14 +00:00
Mark Michelson 8f81deab25 Fix reversed behavior of leavewhenempty option in queues.conf.
(closes issue #14650)
Reported by: alecdavis
Patches:
      14650.patch uploaded by mmichelson (license 60)
Tested by: mmichelson, lmadsen



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@190250 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-04-23 17:45:35 +00:00
Mark Michelson f26878feb2 Fix a couple of queue member reference leaks.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@188470 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-04-14 23:28:13 +00:00
Mark Michelson b6a2f40793 Set all queue variables on both the caller and member channels.
This allows for the variables to be accessed if a member macro is run.
Thanks to Grigoriy Puzankin for bringing this up on the -dev list.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@188032 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-04-13 14:17:56 +00:00
Mark Michelson 6f53ed4c67 This commit introduces COLP/CONP and Redirecting party information into Asterisk.
The channel drivers which have been most heavily tested with these enhancements are
chan_sip and chan_misdn. Further work is being done to add Q.SIG support and will be
introduced in a later commit. chan_skinny has code added to it here, but according
to user pj, the support on chan_skinny is not working as of now. This will be fixed in
a later commit.

A special thanks goes out to bugtracker user gareth for getting the ball rolling and
providing the initial support for this work. Without his initial work on this, this would
not have been nearly as painless as it was.

This functionality has been tested by Digium's product quality department, as well as a
customer site running thousands of calls every day. In addition, many many many many bugtracker
users have tested this, too.

(closes issue #8824)
Reported by: gareth

Review: http://reviewboard.digium.com/r/201



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@186525 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-04-03 22:41:46 +00:00
Mark Michelson f43159ba31 Fix trunk's compilation.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@185604 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-31 22:12:52 +00:00
Mark Michelson 5c0d934e6b Merged revisions 185599 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r185599 | mmichelson | 2009-03-31 17:00:01 -0500 (Tue, 31 Mar 2009) | 6 lines
  
  Fix crash that would occur if an empty member was specified in queues.conf.
  
  (closes issue #14796)
  Reported by: pida
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@185600 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-31 22:02:48 +00:00
Russell Bryant c9c8758d6d Don't free() an astobj2 object.
(closes issue #14672)
Reported by: makoto


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@185261 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-31 14:53:45 +00:00
Mark Michelson c4e3bfb74c Merged revisions 185031 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r185031 | mmichelson | 2009-03-30 11:17:35 -0500 (Mon, 30 Mar 2009) | 39 lines
  
  Fix queue weight behavior so that calls in low-weight queues are not inappropriately blocked.
  
  (This is copied and pasted from the review request I made for this patch)
  
  Asterisk has some odd behavior when queue weights are used. The current logic used when
  potentially calling a queue member is:
  
  If the member we are going to call is part of another queue and _that other queue has any 
  callers in it_ and has a higher weight than the queue we are calling from, then don't try 
  to contact that member. The issue here is what I have marked with underscores. If the 
  higher-weighted queue has any callers in it at all, then the queue member will be unreachable 
  from the lower-weighted queue. This has the potential to be really really bad if using a 
  queue strategy, such as leastrecent or fewestcalls, with the potential to call the same 
  member repeatedly.
  
  The fix proposed by garychen on issue 13220 is very simple and, as far as I can see, works 
  well for this situation. With this set of changes, the logic used becomes:
  
  If the member we are going to call is part of another queue, the other queue has a higher 
  weight than the queue we are calling from, and the higher weight queue has at least as many 
  callers as available members, then do not try to contact the queue member. If the higher 
  weighted queue has fewer callers than available members, then there is no reason to deny 
  the call to this member since the other queue can afford to spare a member.
  
  Since the fix involved writing a generic function for determining the number of available 
  members in the queue, I also modified the is_our_turn function to make use of the new 
  num_available_members function to determine if it is our turn to try calling a member. There 
  is one small behavior change. Before writing this patch, if you had autofill disabled, then 
  if you were the head caller in a queue, you would automatically be told that it was your 
  turn to try calling a member. This did not take into account whether there were actually any 
  queue members available to take the call. Now we actually make sure there is at least one 
  member available to take the call if autofill is disabled.
  
  (closes issue #13220)
  Reported by: garychen
  
  Review: http://reviewboard.digium.com/r/202/
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@185072 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-30 16:26:48 +00:00
Russell Bryant 2a4f9f7181 Change global_app_buf to ast_str_thread_global_buf.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@184693 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-27 16:21:10 +00:00
Mark Michelson b52d2dae2e Fix a memory leak associated with queues.
For every attempt that app_queue made to place an outbound call to a queue member,
we would allocate a queue_end_bridge structure. When the bridge for the call had
completed, we would free the structure. Unfortunately not all call attempts actually
end up bridged to a member, so we need to be more selective of when to allocate
the structure. With this change, the allocation occurs in an area where we can
guarantee that the call will be bridged.

(closes issue #14680)
Reported by: caspy
Patches:
      14680.patch uploaded by mmichelson (license 60)
Tested by: caspy



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@183244 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-19 18:10:34 +00:00
Mark Michelson b4fcc4a098 Change faulty comparison used when announcing average hold minutes and seconds
(closes issue #14227)
Reported by: caspy



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@182121 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-13 21:26:20 +00:00
Mark Michelson a1a9006163 Run the macro on the queue member's channel when he answers, not the caller's channel.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@181846 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-12 21:43:51 +00:00
Mark Michelson d7d817d687 Fix segfault when dialing a typo'd queue
If trying to dial a non-existent queue, there would
be a segfault when attempting to access q->weight, even
though q was NULL. This problem was introduced during
the queue-reset merge and thus only affects trunk.

(closes issue #14643)
Reported by: alecdavis



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@181244 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-11 14:28:40 +00:00
Mark Michelson 8970f8caaa Merged revisions 180006 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r180006 | mmichelson | 2009-03-03 16:48:18 -0600 (Tue, 03 Mar 2009) | 17 lines
  
  Clarify some documentation of queues.conf.sample
  
  It had always been possible to explicitly specify a "blank"
  value for a sound file in queues.conf and have no sound played
  back. The problem with this is that it would result in some ugly
  CLI warnings from file.c.
  
  This commit introduces a check when playing a file in app_queue
  to see if the name of the file is zero-length and return early if
  that is the case. Also, the ability to specify the blank sound
  files in queues.conf is now mentioned more clearly in queues.conf.sample
  
  (closes issue #14227)
  Reported by: caspy
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@180007 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-03 22:49:07 +00:00
Russell Bryant 184872fdfd Fix a race condition that caused device states to become incorrect for hints.
The problem here is that the hint processing code was subscribed to the wrong
event type.  So, it started processing state for a hint too soon, before the
device state cache had been updated.

Also, fix a similar bug in app_queue, as it was also subscribed to the wrong
event type.

(closes issue #14461)
Reported by: alecdavis


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@176557 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-17 17:33:38 +00:00
Mark Michelson 3c9667ae12 Merge queue-reset branch to Asterisk
From a user point-of-view, this adds new CLI commands and Manager Actions to
better facilitate the reloading of queues and the resetting of their statistics.

The new CLI commands are the "queue reload" and "queue reset stats" commands.

The new manager actions are the QueueReload and QueueReset commands.

Review: http://reviewboard.digium.com/r/115



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@175663 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-13 20:57:37 +00:00
Mark Michelson 0d5da5f436 Fix a bit of odd logic for announcing position. Sync with 1.6.0's logic
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@174951 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-11 23:12:57 +00:00
Mark Michelson 34161542e9 Fix odd "thank you" sound playing behavior in app_queue.c
If someone has configured the queue to play an position or holdtime
announcement, then it is odd and potentially unexpected to hear a 
"Thank you for your patience" sound when no position or holdtime
was actually announced.

This fixes the announcement so that the "thanks" sound is only played
in the case that a position or holdtime was actually announced.

There is a way that the "thank you" sound can be played without a
position or holdtime, and that is to set announce-frequency to a value
but keep announce-position and announce-holdtime both turned off.

(closes issue #14227)
Reported by: caspy
Patches:
      14227_v3.patch uploaded by putnopvut (license 60)
Tested by: caspy


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@174948 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-11 23:03:08 +00:00
Mark Michelson 2e1d9f9a21 Merged revisions 173692 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r173692 | mmichelson | 2009-02-05 14:29:09 -0600 (Thu, 05 Feb 2009) | 12 lines

Fix situations where queue members could be autopaused unexpectedly

Specifically, this patch prevents us from autopausing members when
we receive a busy or congestion frame from them.

(closes issue #14376)
Reported by: fiddur
Patches:
      14376.patch uploaded by putnopvut (license 60)
Tested by: fiddur


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@173693 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-05 20:30:45 +00:00
Mark Michelson 172777bd02 Fix some areas where the incorrect interface was passed to ast_device_state
I swear it feels like I already did this once...

(closes issue #14359)
Reported by: francesco_r


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@173507 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-04 22:16:19 +00:00
Olle Johansson 7ecda45482 Fix "cancel answered elsewhere" through app_queue with members in chan_local.
Also, implement a private cause code (as suggested by Tilghman). This works with
chan_sip, but doesn't propagate through chan_local.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@172318 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-01-29 17:08:22 +00:00
Olle Johansson 097822966b Add final part of previously committed work for answered elsewhere in queue - the missing piece that started with app_dial() earlier on.
This is to avoid having the list and counter of missed calls being touched by queue calls. Add the C option to queue() and nothing 
will be logged on phones that support the Reason: header on SIP cancel, like the SNOM phones.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@171924 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-01-28 14:37:16 +00:00
Mark Michelson 04e56bde03 Fix queue crashes that would occur after the calling channel was masqueraded.
The data passed to the end_bridge_callback was assumed to be data which was
still stack'd. The problem was that with some call features, attended transfers
in particular, a new bridge thread is started once the feature completes, meaning
that when the end_bridge_callback is called, the end_bridge_callback_data was
invalid.

To fix this problem, there are two measures taken

1. Instead of pointing to stacked data, we now used heap-allocated data for
passing to the end_bridge_callback in app_queue
2. Since bridges can end multiple times on a single logical call, we wait until
the final bridge is broken to actually set any queue variables. This is accomplished
through reference-counting and the use of an end_bridge_callback_data_fixup function
in app_queue.c

(closes issue #14260)
Reported by: ccesario
Patches:
      14260.patch uploaded by putnopvut (license 60)
Tested by: ccesario



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@171618 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-01-27 19:30:54 +00:00
Mark Michelson 4263503bd5 Fix device state parsing issues for channel names with multiple slashes
The fix being applied is a bit different for trunk and the 1.6.X branches.
For trunk, we only wish to strip off the characters beyond the second slash
if the channel is a Local channel (i.e. we are removing the /n from the device
name). Other channel technologies with multiple slashes (e.g. DAHDI) need the
information after the second slash in order to get the proper device state
information.

In addition to this fix, the 1.6.X branches are receiving a much more important
fix as well. The problem in 1.6.X is that the member's device name was being directly
changed instead of having a copy changed. This meant that we would strip off the
second slash and trailing characters and then leave the member's device name like
that permanently thereafter.

(closes issue #14014)
Reported by: kebl0155
Patches:
      14014_number2.patch uploaded by putnopvut (license 60)
Tested by: kebl0155



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@169611 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-01-21 00:33:32 +00:00
Mark Michelson b52253d590 Use the default timeout for a queue instead of -1
(closes issue #14272)
Reported by: timking



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@169574 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-01-20 21:57:24 +00:00
Olle Johansson 526cc089a9 Add support for setting the Reason header when cancelling a call in the queue
because someone else answered. Previously, only dial() was supported.

EDV-102


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@168636 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-01-15 13:01:52 +00:00
Mark Michelson b9060d4435 Merged revisions 168628 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r168628 | mmichelson | 2009-01-14 18:11:01 -0600 (Wed, 14 Jan 2009) | 16 lines

Fix some crashes from bad datastore handling in app_queue.c

* The queue_transfer_fixup function was searching for and removing
  the datastore from the incorrect channel, so this was fixed.

* Most datastore operations regarding the queue_transfer datastore
  were being done without the channel locked, so proper channel locking
  was added, too.

(closes issue #14086)
Reported by: ZX81
Patches:
      14086v2.patch uploaded by putnopvut (license 60)
Tested by: ZX81, festr


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@168629 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-01-15 00:14:17 +00:00
Mark Michelson ec0f18405e Clarify a message that app_queue prints and change to a debug-level message
The "No one is answering..." verbose message contained 3 numbers that were not
explained in any way to whoever was viewing the message. It is more helpful now
since the message explains what the numbers mean. Also, the message has been
downgraded to "DEBUG" level.

(closes issue #14172)
Reported by: caio1982
Patches:
      queue_answering_debug.diff uploaded by caio1982 (license 22)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@168579 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-01-13 22:30:59 +00:00
Mark Michelson 454241dd58 Add the average talk time for a queue
This patch adds the functionality to app_queue of calculating
the average amount of time that channels are bridged for a
queue. The algorithm used to calculate the average is the same
exponential average currently used to calculate the average holdtime.
See the CHANGES file to see the methods you may use to view this
information.

(closes issue #13960)
Reported by: coolmig
Patches:
      app_queue.c.diff.trunk-r158840 uploaded by coolmig (license 621)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@167792 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-01-08 19:48:42 +00:00
Mark Michelson ff20b9116a Update app_queue to deal with the removal of AST_PBX_KEEPALIVE
When placing a call to a queue which ran a gosub on the member's
channel, Asterisk would crash every time, stemming from the fact
that the member's channel was being hung up unexpectedly when the
Gosub completed. The necessary change was pretty much copied and
pasted from app_dial's similar changes made last week.

I also took the opportunity to change a LOG_DEBUG message in
app_dial to use ast_debug. I am guessing this was due to a direct
merge from 1.4 that was not corrected to use trunk's preferred
syntax.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@166861 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-29 18:04:52 +00:00
Steve Murphy aa905e347e Merged revisions 166093 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

In order to merge this 1.4 patch into trunk,
I had to resolve some conflicts and wait for
Russell to make some changes to res_agi.
I re-ran all the tests; 39 calls in all, and
made fairly careful notes and comparisons: I
don't want this to blow up some aspect of 
asterisk; I completely removed the KEEPALIVE
from the pbx.h decls. The first 3 scenarios
involving feature park; feature xfer to 700;
hookflash park to Park() app call all behave
the same, don't appear to leave hung channels,
and no crashes.

........
  r166093 | murf | 2008-12-19 15:30:32 -0700 (Fri, 19 Dec 2008) | 131 lines
  
  This merges the masqpark branch into 1.4
  
  These changes eliminate the need for (and use of)
  the KEEPALIVE return code in res_features.c;
  There are other places that use this result code
  for similar purposes at a higher level, these appear
  to be left alone in 1.4, but attacked in trunk.
  
  The reason these changes are being made in 1.4, is
  that parking ends a channel's life, in some situations,
  and the code in the bridge (and some other places),
  was not checking the result code properly, and dereferencing
  the channel pointer, which could lead to memory corruption
  and crashes.
  
  Calling the masq_park function eliminates this danger 
  in higher levels.
  
  A series of previous commits have replaced some parking calls
  with masq_park, but this patch puts them ALL to rest,
  (except one, purposely left alone because a masquerade
  is done anyway), and gets rid of the code that tests
  the KEEPALIVE result, and the NOHANGUP_PEER result codes.
  
  While bug 13820 inspired this work, this patch does
  not solve all the problems mentioned there.
  
  I have tested this patch (again) to make sure I have
  not introduced regressions. 
  
  Crashes that occurred when a parked party hung up
  while the parking party was listening to the numbers
  of the parking stall being assigned, is eliminated.
  
  These are the cases where parking code may be activated:
  
  1. Feature one touch (eg. *3)
  2. Feature blind xfer to parking lot (eg ##700)
  3. Run Park() app from dialplan (eg sip xfer to 700)
     (eg. dahdi hookflash xfer to 700)
  4. Run Park via manager.
  
  The interesting testing cases for parking are:
  I. A calls B, A parks B
      a. B hangs up while A is getting the numbers announced.
      b. B hangs up after A gets the announcement, but 
         before the parking time expires
      c. B waits, time expires, A is redialed,
         A answers, B and A are connected, after
         which, B hangs up.
      d. C picks up B while still in parking lot.
  
  II. A calls B, B parks A
      a. A hangs up while B is getting the numbers announced.
      b. A hangs up after B gets the announcement, but 
         before the parking time expires
      c. A waits, time expires, B is redialed,
         B answers, A and B are connected, after
         which, A hangs up.
      d. C picks up A while still in parking lot.
  
  Testing this throroughly involves acting all the permutations
  of I and II, in situations 1,2,3, and 4.
  
  Since I added a few more changes (ALL references to KEEPALIVE in the bridge
  code eliimated (I missed one earlier), I retested
  most of the above cases, and no crashes.
  
  H-extension weirdness.
  
  Current h-extension execution is not completely
  correct for several of the cases.
  
  For the case where A calls B, and A parks B, the
  'h' exten is run on A's channel as soon as the park
  is accomplished. This is expected behavior.
  
  But when A calls B, and B parks A, this will be
  current behavior:
  
  After B parks A, B is hung up by the system, and
  the 'h' (hangup) exten gets run, but the channel
  mentioned will be a derivative of A's...
  
  Thus, if A is DAHDI/1, and B is DAHDI/2,
  the h-extension will be run on channel
  Parked/DAHDI/1-1<ZOMBIE>, and the 
  start/answer/end info will be those 
  relating to Channel A.
  
  And, in the case where A is reconnected to
  B after the park time expires, when both parties
  hang up after the joyful reunion, no h-exten
  will be run at all.
  
  In the case where C picks up A from the 
  parking lot, when either A or C hang up,
  the h-exten will be run for the C channel.
  
  CDR's are a separate issue, and not addressed
  here.
  
  As to WHY this strange behavior occurs, 
  the answer lies in the procedure followed
  to accomplish handing over the channel
  to the parking manager thread. This procedure
  is called masquerading. In the process,
  a duplicate copy of the channel is created,
  and most of the active data is given to the
  new copy. The original channel gets its name
  changed to XXX<ZOMBIE> and keeps the PBX
  information for the sake of the original
  thread (preserving its role as a call 
  originator, if it had this role to begin
  with), while the new channel is without
  this info and becomes a call target (a
  "peer").
  
  In this case, the parking lot manager
  thread is handed the new (masqueraded)
  channel. It will not run an h-exten
  on the channel if it hangs up while
  in the parking lot. The h exten will
  be run on the original channel instead,
  in the original thread, after the bridge
  completes.
  
  See bug 13820 for our intentions as
  to how to clean up the h exten behavior.

Review: http://reviewboard.digium.com/r/29/

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@166665 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-23 18:13:49 +00:00
Joshua Colp 654ea55a65 Numerous documentation updates.
(closes issue #13970)
Reported by: pkempgen
Patches:
      __20081217_cli_usage_fixes.patch.txt uploaded by blitzrage (license 10)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@165792 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-18 21:21:44 +00:00
Mark Michelson a7829044ec Merged revisions 165255 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r165255 | mmichelson | 2008-12-17 14:51:38 -0600 (Wed, 17 Dec 2008) | 7 lines

Fix some memory leaks found while looking at how realtime
configs are handled.

Also cleaned up some coding guidelines violations in app_realtime.c,
mostly related to spacing


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@165318 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-17 21:17:20 +00:00
Mark Michelson 00c40264b7 Fix a compile warning and a logic error that could have been bad
for non-realtime queues



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@164270 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-15 16:16:47 +00:00
Mark Michelson 8a2cf30830 Fix up a few issues with regards to queues
* Fix reference counting used in the __queues_show function
* Add code to be sure that the "queue show" command does not
  print information for a realtime queue which has been deleted
  from the backend
* Add a missing unref to the realtime queue loading function for
  the case where a queue is in the module's container but has been
  deleted from the realtime backend

(closes issue #14033)
Reported by: cristiandimache
Patches:
      14033.patch uploaded by putnopvut (license 60)
Tested by: cristiandimache



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@164268 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-15 16:10:43 +00:00
Tilghman Lesher c8223fc957 Merge ast_str_opaque branch (discontinue usage of ast_str internals)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@163991 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-13 08:36:35 +00:00
Terry Wilson 74de8fdaa7 When using realtime queues, app_queue wasn't updating the strategy if it was changed in the realtime backend. This patch resolves the issue for almost all situations. It is currently not supported to switch to the linear strategy via realtime since the ao2_container for members will have been set to have multiple buckets and therefore the members would be unordered.
(closes issue #14034)
Reported by: cristiandimache
Tested by: otherwiseguy, cristiandimache


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@163873 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-12 23:48:26 +00:00
Mark Michelson 1772fc56f0 Merged revisions 163084 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r163084 | mmichelson | 2008-12-11 10:46:22 -0600 (Thu, 11 Dec 2008) | 4 lines

Revert this cast to long. Using time_t here causes build failures on a 
FreeBSD 32-bit build.


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@163085 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-11 16:47:34 +00:00
Mark Michelson cda010c3b7 Merged revisions 163080 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r163080 | mmichelson | 2008-12-11 10:24:43 -0600 (Thu, 11 Dec 2008) | 14 lines

Fix a potential crash due to unsafe datastore handling.

This patch also contains a conversion from using long to time_t
for representing times for a queue, as well as some whitespace
fixes.

(closes issue #14060)
Reported by: nivek
Patches:
      datastore_fixup.patch.corrected uploaded by nivek (license 636)
	  with slight modification from me
Tested by: nivek


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@163081 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-11 16:33:16 +00:00
Eliel C. Sardanons 1e8e12efcf Janitor, use ARRAY_LEN() when possible.
(closes issue #13990)
Reported by: eliel
Patches:
      array_len.diff uploaded by eliel (license 64)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@161218 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-05 10:31:25 +00:00
Mark Michelson a53877b469 Add some safety measures when using gosub, especially when using the options
for app_dial and app_queue to run a gosub when the call is answered.

* Check for the existence of the gosub target in gosub_exec. If it is nonexistent,
  then this will cause errors when we attempt to actually run the gosub, including
  a definite memory leak and potential crashes. Return an error in this situation
* Check the return value of pbx_exec in app_dial and app_queue before attempting
  to actually run the gosub routine. If there was an error, we should not attempt
  to run the gosub.
* Change a '|' to a ',' in app_queue.
* Add some extra curly braces where they had been missing previously.

(closes issue #13548)
Reported by: fiddur



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@160626 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-03 18:37:46 +00:00
Mark Michelson ac1b520de6 When investigating issue #13548, I found that gosub
handling in app_queue was just completely wrong, mostly
because the channel operations being performed were being
done on the incorrect channel.

With this set of changes, a gosub will correctly run on
the answering queue member's channel. There are still crash
issues which occur if there are dialplan syntax errors, so
I cannot yet close the referenced issue.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@160555 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-03 17:07:09 +00:00
Sean Bright fd8caa1778 This is basically a complete rollback of r155401, as it was determined that
it would be best to maintain API compatibility.  Instead, this commit introduces
ao2_callback_data() which is functionally identical to ao2_callback() except
that it allows you to pass arbitrary data to the callback.

Reviewed by Mark Michelson via ReviewBoard:
	http://reviewboard.digium.com/r/64


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@158959 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-25 01:01:49 +00:00
Matthew Nicholson 17ed84ff07 Make the Join event from app_queue use CallerIDNum insead of CallerID for
indicating the callerid number just like the rest of asterisk.

(closes issue #13883)
Reported by: davidw


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@158924 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-25 00:05:41 +00:00
Mark Michelson 9e1283e160 Add a space to the output
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@157940 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-19 23:30:42 +00:00
Mark Michelson de5ba432da Add a RES_NOT_DYNAMIC case for the CLI command
'queue remove member'



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@157939 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-19 23:29:14 +00:00
Mark Michelson cf6c66de65 Fix some refcounting in app_queue.c and change the
hashing used by app_queue.c to be case-insensitive.
This is accomplished by adding a new case-insensitive
hashing function.

This was necessary to prevent bad refcount errors
(and potential crashes) which would occur due to the
fact that queues were initially read from the config
file in a case-sensitive manner. Then, when a user
issued a CLI command or manager action, we allowed
for case-insensitive input and used that input to 
directly try to find the queue in the hash table. The result
was either that we could not find a queue that was input or
worse, we would end up hashing to a completely bogus value
based on the input.

This commit resolves the problem presented in
issue #13703. However, that issue was reported against
1.6.0. Since this fix introduces a behavior change, I am
electing to not place this same fix in to the 1.6.0 or 1.6.1
branches, and instead will opt for a change which does not
change behavior.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@156883 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-14 16:53:38 +00:00
Sean Bright 9ef09ad1d4 Merged revisions 155553 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r155553 | seanbright | 2008-11-08 20:08:07 -0500 (Sat, 08 Nov 2008) | 6 lines

Use static functions here instead of nested ones.  This requires a small
change to the ast_bridge_config struct as well.  To understand the reason
for this change, see the following post:

    http://gcc.gnu.org/ml/gcc-help/2008-11/msg00049.html

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@155554 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-09 01:27:00 +00:00
Sean Bright 30d1744ffc Add ability to pass arbitrary data to the ao2_callback_fn (called from
ao2_callback and ao2_find).  Currently, passing OBJ_POINTER to either
of these mandates that the passed 'arg' is a hashable object, making
searching for an ao2 object based on outside criteria difficult.

Reviewed by Russell and Mark M. via ReviewBoard:
    http://reviewboard.digium.com/r/36/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@155401 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-07 22:39:30 +00:00
Eliel C. Sardanons d23dff9ca8 - Add some see-also references based on TFOT.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@154542 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-05 12:13:57 +00:00
Tilghman Lesher 2cc8e25222 Slightly optimize ast_devstate_str and rename global functions devstate2str and config_text_file_save to have an ast_ prefix
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@154260 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-04 18:47:20 +00:00
Kevin P. Fleming bd4eb070f3 bring over all the fixes for the warnings found by gcc 4.3.x from the 1.4 branch, and add the ones needed for all the new code here too
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@153616 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-02 18:52:13 +00:00
Russell Bryant 5b168ee34b Merge changes from team/group/appdocsxml
This commit introduces the first phase of an effort to manage documentation of the
interfaces in Asterisk in an XML format.  Currently, a new format is available for
applications and dialplan functions.  A good number of conversions to the new format
are also included.

For more information, see the following message to asterisk-dev:

http://lists.digium.com/pipermail/asterisk-dev/2008-October/034968.html


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@153365 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-01 21:10:07 +00:00
Terry Wilson 5fe37e47c6 Recent CDR fixes moved execution of the 'h' exten into the bridging code, so variables that were set after ast_bridge_call was called would not show up in the 'h' exten. Added a callback function to handle setting variables, etc. from w/in the bridging code. Calls back into a nested function within the function calling ast_bridge_call
(closes issue #13793)
Reported by: greenfieldtech


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@153181 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-10-31 18:55:33 +00:00
Steve Murphy d736ac2b19 Merged revisions 152538 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r152538 | murf | 2008-10-28 23:19:04 -0600 (Tue, 28 Oct 2008) | 14 lines

A little documentation cross-ref between features and
dial and queue... I wasted some time (stupidly) trying
to get the one-touch parking stuff working, because it
didn't occur to me that I had to also have the corresponding
options in the dial command! Duh! (In all this time, I never
set this up before!)
So, to keep some poor fool from suffering the same fate,
I made the features.conf.sample file mention the corresponding
opts in dial/queue; and the docs for dial/app specifically
mention the corresponding decls in the feature.conf file.

I hope this doesn't spoil some vast, eternal plan...


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@152605 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-10-29 05:47:13 +00:00
Steve Murphy 6fad66dfb3 Merged revisions 152535 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r152535 | murf | 2008-10-28 22:36:32 -0600 (Tue, 28 Oct 2008) | 46 lines

The magic trick to avoid this crash is not to
try to find the channel by name in the list,
which is slow and resource consuming, but rather
to pay attention to the result codes from the
ast_bridge_call, to which I added the 
AST_PBX_NO_HANGUP_PEER_PARKED value, which
now are returned when a channel is parked.
Why? because CDR's aren't generated via parking,
so nothing is needed, but if a transfer occurred,
there are critical things I need.

If you get AST_PBX_KEEPALIVE,
then don't touch the channel pointer.

If you get AST_PBX_NO_HANGUP_PEER, or
AST_PBX_NO_HANGUP_PEER_PARKED, then don't
touch the peer pointer.

Updated the several places where the results
from a bridge were not being properly obeyed,
and fixed some code I had introduced so that
the results of the bridge were not overridden 
(in trunk).

All the places that previously tested for 
AST_PBX_NO_HANGUP_PEER now have to check for
both AST_PBX_NO_HANGUP_PEER and AST_PBX_NO_HANGUP_PEER_PARKED.

I tested this against the 4 common parking
scenarios:


1. A calls B; B answers; A parks B; B hangs up while A is getting the parking
slot announcement, immediately after being put on hold.

2. A calls B; B answers; A parks B; B hangs up after A has been hung up, but
before the park times out.

3. A calls B; B answers; B parks A; A hangs up while B is getting the parking slot announcement, immediately after being put on hold.

4. A calls B; B answers; B parks A; A hangs up after B has been hung up, but before the park times out.


No crash.

I also ran the scenarios above against valgrind, and accesses looked good.



........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@152536 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-10-29 05:01:00 +00:00
BJ Weschke 7a8344bac6 The QueueEntry event now has the uniqueid of the channel included.
(closes issue #13731)
 reported and patched by: caio1982



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@150773 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-10-18 00:25:18 +00:00
Mark Michelson 184fe6f87b Merged revisions 149200 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r149200 | mmichelson | 2008-10-14 17:40:42 -0500 (Tue, 14 Oct 2008) | 12 lines

Update the queue with the correct number of calls and
whether the call was completed within the service level
when a transfer takes place. This way, we do not "break"
the leastrecent and fewestcalls strategies by not logging
a call until after the transferred call has ended.

(closes issue #13395)
Reported by: Marquis
Patches:
      app_queue.c.transfer.patch uploaded by Marquis (license 32)


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@149201 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-10-14 22:41:13 +00:00
Mark Michelson b8aed684f5 This commit introduces a change to how the "joinempty"
and "leavewhenempty" options are configured in queues.conf.

Instead of using vague terms like "yes," "no," "loose," and
"strict," we now accept a comma-separated list of values
to determine when to consider a member available.

Extended details can be found in the queues.conf.sample
file. Note also that the above four referenced values are
still accepted for backwards-compatibility, but are mapped
internally to the new method of representing the option.

AST-105



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@146640 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-10-06 15:29:56 +00:00
Michiel van Baak 90751b16ca Merge the cli_cleanup branch.
This work is done by lmadsen, junky and mvanbaak
during AstriDevCon.

This is the second audit the CLI got, and
this time lmadsen made sure he had _ALL_ modules
loaded that have CLI commands in them.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@145121 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-09-28 23:32:14 +00:00
Michiel van Baak f1b673eef0 fix a couple of CLI commands that did not have a help description.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@144879 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-09-27 00:49:24 +00:00
Tilghman Lesher 08af5bb312 Create a new config file status, CONFIG_STATUS_FILEINVALID for differentiating
when a file is invalid from when a file is missing.  This is most important when
we have two configuration files.  Consider the following example:

Old system:
sip.conf     users.conf     Old result               New result
========     ==========     ==========               ==========
Missing      Missing        SIP doesn't load         SIP doesn't load
Missing      OK             SIP doesn't load         SIP doesn't load
Missing      Invalid        SIP doesn't load         SIP doesn't load
OK           Missing        SIP loads                SIP loads
OK           OK             SIP loads                SIP loads
OK           Invalid        SIP loads incompletely   SIP doesn't load
Invalid      Missing        SIP doesn't load         SIP doesn't load
Invalid      OK             SIP doesn't load         SIP doesn't load
Invalid      Invalid        SIP doesn't load         SIP doesn't load

So in the case when users.conf doesn't load because there's a typo that
disrupts the syntax, we may only partially load users, instead of failing with
an error, which may cause some calls not to get processed.  Worse yet, the old
system would do this with no indication that anything was even wrong.

(closes issue #10690)
 Reported by: dtyoo
 Patches: 
       20080716__bug10690.diff.txt uploaded by Corydon76 (license 14)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@142992 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-09-12 23:30:03 +00:00
Steve Murphy 67f7ac0499 Merged revisions 142675 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r142675 | murf | 2008-09-11 22:29:34 -0600 (Thu, 11 Sep 2008) | 29 lines

Tested by: sergee, murf, chris-mac, andrew, KNK

This is a "second attempt" to restore the previous "endbeforeh" behavior
in 1.4 and up. In order to capture information concerning all the
legs of transfers in all their infinite combinations, I was forced
to this particular solution by a chain of logical necessities, the
first being that I was not allowed to rewrite the CDR mechanism from 
the ground up!

This change basically leaves the original machinery alone, which allows
IVR and local channel type situations to generate CDR's as normal, but
a channel flag can be set to suppress the normal running of the h exten.
That flag would be set by the code that runs the h exten from the
ast_bridge_call routine, to prevent the h exten from being run twice.
Also, a flag in the ast_bridge_config struct passed into ast_bridge_call
can be used to suppress the running of the h exten in that routine. This
would happen, for instance, if you use the 'g' option in the Dial app.

Running this routine 'early' allows not only the CDR() func to be used
in the h extension for reading CDR variables, but also allows them to
be modified before the CDR is posted to the backends.

While I dearly hope that this patch overcomes all problems, and 
introduces no new problems, reality suggests that surely someone
will have problems. In this case, please re-open 13251 (or 13289),
and we'll see if we can't fix any remaining issues.

** trunk note: some code to suppress the h exten being run 
from app_queue was added; for the 'continue' option available
only in trunk/1.6.x.


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@142676 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-09-12 04:50:48 +00:00
Mark Michelson 4ad993ed8f This is the trunk version of the patch to close
issue 12979. The difference between this and the
1.6.0 and 1.6.1 versions is that this is a much more
invasive change. With this, we completely get rid
of the interfaces list, along with all its helper
functions.

Let me take a moment to say that this change personally
excites me since it may mean huge steps forward regarding
proper lock order in app_queue without having to strew
seemingly unnecessary locks all over the place. It also
results in a huge reduction in lines of code and complexity.
Way to go Brett!

(closes issue #12979)
Reported by: sigxcpu
Patches:
      20080710_issue12979_queue_custom_state_interface_trunk_2.diff uploaded by bbryant (license 36)
Tested by: sigxcpu, putnopvut



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@142146 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-09-09 17:15:29 +00:00
Mark Michelson 16d2c41701 Use ast_debug for debug messages. I was wondering why debug
messages weren't showing up when I had set the debug level
high for just app_queue.c. It's because we were only checking
the global option_debug variable instead of using the awesome
macro which checks both the global and file-specific value



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@141998 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-09-09 12:32:38 +00:00
Mark Michelson 4356d794e3 Optimization: The only reason we should check member
status is if the queue has a joinempty or a leavewhenempty
setting which could cause the caller to not join the queue
or exit the queue. Prior to this patch, we could potentially
traverse the entire queue's member list for no reason since
even if the members are currently not available in some way
we're going to let the caller join the queue anyway.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@141906 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-09-08 23:00:06 +00:00
Mark Michelson 43285b9273 Fix some locking order issues in app_queue. This was
brought up by atis on IRC a while ago.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@140975 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-09-03 20:16:12 +00:00
Mark Michelson 5dfefa5ee6 Merged revisions 140488 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r140488 | mmichelson | 2008-08-29 12:34:17 -0500 (Fri, 29 Aug 2008) | 22 lines

After working on the ao2_containers branch, I noticed
something a bit strange. In all cases where we provide
a callback function to ao2_container_alloc, the callback
function would only return 0 or CMP_MATCH. After inspecting
the ao2_callback() code carefully, I found that if you're
only looking for one specific item, then you should return
CMP_MATCH | CMP_STOP. Otherwise, astobj2 will continue
traversing the current bucket until the end searching for
more matches.

In cases like chan_iax2 where in 1.4, all the peers are
shoved into a single bucket, this makes for potentially
terrible performance since the entire bucket will be
traversed even if the peer is one of the first ones come
across in the bucket.

All the changes I have made were for cases where the 
callback function defined was passed to ao2_container_alloc
so that calls to ao2_find could find a unique instance
of whatever object was being stored in the container.


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@140489 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-08-29 17:47:17 +00:00
Mark Michelson e833fd2ab1 Add output of variables to AgentRingNoAnswer manager
event if eventwhencalled is set to "vars" in 
queues.conf. Yay for consistency.

(closes issue #13369)
Reported by: srt
Patches:
      13369_agentringnoanswer_variables.diff uploaded by srt (license 378)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@139832 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-08-25 17:24:02 +00:00
Mark Michelson 612f8c85b4 Change the queue timeout priority logic into less ugly
and confusing code pieces. Clarify the logic within
queues.conf.sample.

(closes issue #12690)
Reported by: atis
Patches:
      queue_timeoutpriority.patch uploaded by atis (license 242)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@138694 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-08-18 20:23:11 +00:00
Mark Michelson 16a0e23110 Merged revisions 138685 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r138685 | mmichelson | 2008-08-18 15:01:14 -0500 (Mon, 18 Aug 2008) | 10 lines

Change the inequalities used in app_queue with regards
to timeouts from being strict to non-strict for more
accuracy.

(closes issue #13239)
Reported by: atis
Patches:
      app_queue_timeouts_v2.patch uploaded by atis (license 242)


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@138687 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-08-18 20:04:10 +00:00
Sean Bright 790fde68d9 Another batch of files from RSW. The remaining apps and a few more
files from main/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@137089 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-08-10 20:23:50 +00:00
Tilghman Lesher 285609937a Merged revisions 136488 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r136488 | tilghman | 2008-08-07 11:50:47 -0500 (Thu, 07 Aug 2008) | 7 lines

Update persistent state on all exit conditions.
(closes issue #12916)
 Reported by: sgenyuk
 Patches: 
       app_queue.patch.txt uploaded by neutrino88 (license 297)
 Tested by: sgenyuk, aragon

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@136489 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-08-07 16:55:57 +00:00
Kevin P. Fleming 7df8b8b848 make datastore creation and destruction a generic API since it is not really channel related, and add the ability to add/find/remove datastores to manager sessions
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@135680 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-08-05 16:56:11 +00:00
Mark Michelson 95ab87a07d Merged revisions 134758 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r134758 | mmichelson | 2008-07-31 10:56:18 -0500 (Thu, 31 Jul 2008) | 16 lines

Add more timeout checks into app_queue, specifically
targeting areas where an unknown and potentially
long time has just elapsed. Also added a check
to try_calling() to return early if the timeout
has elapsed instead of potentially setting a negative
timeout for the call (thus making it have *no* timeout
at all).


(closes issue #13186)
Reported by: miquel_cabrespina
Patches:
      13186.diff uploaded by putnopvut (license 60)
Tested by: miquel_cabrespina


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@134759 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-07-31 16:05:12 +00:00
Mark Michelson 2f16a9583f Merged revisions 134556 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
r134556 | mmichelson | 2008-07-30 15:24:40 -0500 (Wed, 30 Jul 2008) | 7 lines

Fix the parsing of the "reason" parameter in the
Diversion: header.

(closes issue #13195)
Reported by: woodsfsg


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@134598 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-07-30 21:05:37 +00:00
Tilghman Lesher 87256ecdbc Let "roundrobin" also reference rrmemory, for the 1.6 release (as described in
UPGRADE-1.4.txt)
(Closes issue #13181)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@134483 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-07-30 19:17:38 +00:00
Mark Michelson 4caeba12a6 Add a missing unlock.
Pointed out by Atis Lezdins in #asterisk-dev



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@133570 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-07-25 13:52:52 +00:00
Mark Michelson b4dac0b385 Merged revisions 131369 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r131369 | mmichelson | 2008-07-16 15:23:02 -0500 (Wed, 16 Jul 2008) | 14 lines

Move the init_queue call back to where it used to be (changed
Sept 12 last year). It was moved then to prevent a memory leak.
Since then, the same memory leak recurred and was fixed in a 
better way.

Now it has been found that the placement of this init_queue
call can cause problems if a realtime queue has values changed
to an empty string. The problem is that the default value
for that queue parameter would not be set.

(closes issue #13084)
Reported by: elbriga


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@131375 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-07-16 20:24:12 +00:00
Mark Michelson b35c06d838 Merged revisions 131357 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r131357 | mmichelson | 2008-07-16 14:37:08 -0500 (Wed, 16 Jul 2008) | 6 lines

Apparently, "thread safety" is important, whatever
that means. :P

(Thanks Russell!)


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@131358 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-07-16 19:37:42 +00:00
Mark Michelson b95bc53c23 Merged revisions 131299 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r131299 | mmichelson | 2008-07-16 13:57:34 -0500 (Wed, 16 Jul 2008) | 13 lines

Make absolutely certain that the transfer datastore
is removed from the calling channel once the caller
is finished in the queue. This could have weird con-
sequences when dialing local queue members when multiple
transfers occur on a single call.

Also fixed a memory leak that would occur when an
attended transfer occurred from a queue member.

(closes issue #13047)
Reported by: festr


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@131300 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-07-16 18:59:27 +00:00
Brett Bryant fe874bfe6b Fix memory leak in app_queue when a device state is changed but it isn't
a member of any queue.

(closes issue #13073)
Reported by: eliel
Patches:
      app_queue.c.patch uploaded by eliel (license 64)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@131015 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-07-15 18:14:02 +00:00
Brett Bryant 7588bcf690 Fixes a bug where the interface for a queue member gets reloaded as the state_interface, if a state_interface was set, on reload because the
state_interface isn't stored in the ast_db.

(closes issue #13043)
Reported by: jvandal
Patches:
      app_queue.patch uploaded by jvandal (license 413)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@129684 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-07-10 19:13:12 +00:00
Mark Michelson e4c93fc8c3 Added a new option, "timeoutpriority" to queues.conf. A detailed
explanation of the change may be found in configs/queues.conf.sample

(closes issue #12690)
Reported by: atis



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@127720 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-07-03 14:34:25 +00:00
Kevin P. Fleming da14954bdc another minor ast_channel memory size decrease... for nearly all channels, 'dialcontext' is only going to be set once during the channel's lifetime, so make it a string field instead of a char array
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@126960 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-07-01 16:16:36 +00:00
Mark Michelson 6d1ebfbed5 Remove debug message
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@125856 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-27 16:18:07 +00:00
Mark Michelson ab7809ace9 Ensure the thread-safety of the monexec variable in app_queue.
Thanks to Russell for pointing out the problem



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@125855 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-27 16:16:13 +00:00
Mark Michelson 09c659d7d0 Make this compile with dev-mode on
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@125666 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-27 00:22:03 +00:00
Mark Michelson 9aef593e58 The monitor-join option for queues was deprecated in favor of using
MixMonitor to mix audio. However, it was pointed out to me that because
of this, the command set for the MONITOR_EXEC variable is ignored as well.
This means that people can't do their own custom mixing commands at the end
of recordings in order to make, for instance, stereo recordings of calls.

With this patch, app_queue will set the "joinfiles" variable for the channel's
monitor if MONITOR_EXEC is not zero-length. This means that for normal audio
mixing, MixMonitor is still the preferred choice, but we allow custom
mixing to be done with the two Monitor streams if desired.

(closes issue #12923)
Reported by: snyfer



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@125649 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-27 00:15:54 +00:00
Mark Michelson edbe6b7a25 Fix a really stupid mistake
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@125591 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-26 23:06:18 +00:00
Mark Michelson 3859074667 Merged revisions 125585 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r125585 | mmichelson | 2008-06-26 17:52:39 -0500 (Thu, 26 Jun 2008) | 11 lines

Add the interface of a queue member to the output of the "queue show" command
so that it can easily be associated with a queue member's name. This helps
so that the appropriate queue member can be removed or paused since the 
interface is required, not the member's name.

(closes issue #12783)
Reported by: davevg
Patches:
      app_queue.diff uploaded by davevg (license 209) with small mod from me


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@125586 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-26 23:01:02 +00:00
Mark Michelson 96f92f468f Merged revisions 125476 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r125476 | mmichelson | 2008-06-26 15:56:01 -0500 (Thu, 26 Jun 2008) | 11 lines

Prior to this patch, the "queue show" command used cached
information for realtime queues instead of giving up-to-date
info. Now realtime is queried for the latest and greatest in
queue info.

(closes issue #12858)
Reported by: bcnit
Patches:
      queue_show.patch uploaded by putnopvut (license 60)


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@125477 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-26 20:57:41 +00:00
Michiel van Baak 8e8359465b Older versions of GNU gcc do not allow 'NULL' as sentinel.
They want (char *)NULL as sentinel.
An example is OpenBSD (confirmed on 4.3) that ships with gcc 3.3.4

This commit introduces a contstant SENTINEL which is declared as:
#define SENTINEL ((char *)NULL)

All places I could test compile on my openbsd system are converted.
Update CODING-GUIDELINES to tell about this constant.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@124127 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-19 20:48:33 +00:00
Sean Bright 62cb684f59 Include original position in TRANSFER entries written to queue_log.
(closes issue #12888)
Reported by: slavon
Patches:
      app_queue_transfer_patch_trunk.diff uploaded by slavon (license 288)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@123828 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-19 14:24:43 +00:00
Mark Michelson eaa14309dd A portion of the code which handled the 'c' queue option had been
removed. No telling when it happened. Anyway, it's back in now
and works properly.

(Based on issue reported on mailing list)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@123652 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-18 15:08:56 +00:00
Mark Michelson 103a94c6c4 Silly pointers. This fixes a memory corruption I introduced
with the attended transfer logging.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@123650 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-18 14:54:47 +00:00
Mark Michelson 0283469cfc Merged revisions 123274 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r123274 | mmichelson | 2008-06-17 10:56:55 -0500 (Tue, 17 Jun 2008) | 12 lines

davidw pointed out that the holdtime calculation used by
app_queue does not use "boxcar" filtering as the comments
say. The term "boxcar" means that the number of samples used
to calculate stays constant, with new samples replacing the
oldest ones. The queue holdtime calculation uses all holdtime
samples collected since the queue was loaded, so the comment
has been changed to be accurate.

(closes issue #12781)
Reported by: davidw


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@123275 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-17 15:57:43 +00:00
Steve Murphy f4c85ebd22 (closes issue #12689)
Reported by: ys

Many thanks to ys for doing the research on this problem.
I didn't think it would be best to unlock the contexts
and then relock them after the remove_extension2() call,
so I added an extra arg to remove_extension2() and set it
appropriately in each call. There were not that many.

I considered forcing the code to lock the contexts before
the call to remove_extension2(), but that would require
a slightly greater degree of changes, especially since
the find_context_locked is local to pbx.c

I did a simple sanity test to make sure the code doesn't
mess things up in general.




git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@123165 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-16 20:43:46 +00:00
Mark Michelson eb1e6f0806 Fix a segfault by not trying to store a stack address for
long-term use. Instead use the heap. I can't believe this
never happened *once* in my developer branch when I was testing.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@122461 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-12 23:58:01 +00:00
Mark Michelson 54c92d9a63 Recommitting revision 122228, which was accidentally reverted
as a result of commit 122234.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@122399 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-12 21:23:02 +00:00
Mark Michelson 054f08a1c8 Merged revisions 122311 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r122311 | mmichelson | 2008-06-12 13:50:58 -0500 (Thu, 12 Jun 2008) | 9 lines

Properly play a holdtime message if the announce-holdtime option is
set to "once."

(closes issue #12842)
Reported by: ramonpeek
Patches:
      patch001.diff uploaded by ramonpeek (license 266)


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@122312 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-12 18:53:17 +00:00
Jeff Peeler ef3b214728 Goodbye Zaptel, hello DAHDI. Removes Zaptel driver support with DAHDI. Configuration file and dialplan backwards compatability has been put in place where appropiate. Release announcement to follow.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@122234 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-12 17:27:55 +00:00
Mark Michelson cf3a2a431f Merging the work done in the queue-log-atxfer branch. The
net result of this work is that attended transfers made
by queue members will now show up in the queue_log as a 
TRANSFER message instead of COMPLETECALLER as it had been.

As far as the details go, I created a datastore which is
attached to the calling channel just prior to when the caller
is bridged with the queue member. If the calling channel
is masqueraded, then during the "fixup" portion, the TRANSFER
will be logged and the datastore will be removed.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@122228 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-12 16:25:09 +00:00
Russell Bryant e9d72e0cb2 Merge another big set of changes from team/russell/events
This commit merges in the rest of the code needed to support distributed device
state.  There are two main parts to this commit.

Core changes:
 - The device state handling in the core has been updated to understand device
   state across a cluster of Asterisk servers.  Every time the state of a device
   changes, it looks at all of the device states on each node, and determines the
   aggregate device state.  That resulting device state is what is provided to
   modules in Asterisk that take actions based on the state of a device.

New module, res_ais:
 - A module has been written to facilitate the communication of events between
   nodes in a cluster of Asterisk servers.  This module uses the SAForum AIS
   (Service Availability Forum Application Interface Specification) CLM and EVT
   services (Cluster Management and Event) to handle this task.  This module
   currently supports sharing Voicemail MWI (Message Waiting Indication) and
   device state events between servers.  It has been tested with openais, though
   other implementations of the spec do exist.

For more information on testing distributed device state, see the following doc:
  - doc/distributed_devstate.txt


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@121559 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-10 15:12:17 +00:00
Tilghman Lesher 53459f86b2 Expand RQ_INTEGER type out to multiple types, one for each precision
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@121367 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-09 22:51:59 +00:00
Tilghman Lesher 9471b87d27 Merge the adaptive realtime branch, which will make adding new required fields
to realtime less painful in the future.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@120789 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-05 19:07:27 +00:00
Mark Michelson 4b1fae3efb Merged revisions 120513 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r120513 | mmichelson | 2008-06-04 17:05:33 -0500 (Wed, 04 Jun 2008) | 6 lines

Make sure that the string we set will survive the unref of
the queue member.

Thanks to Russell, who pointed this out.


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@120514 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-04 22:07:37 +00:00
Mark Michelson 564528663d Merged revisions 120285 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r120285 | mmichelson | 2008-06-04 09:11:12 -0500 (Wed, 04 Jun 2008) | 7 lines

Tab completion when removing a member should give the member's interface,
not the name, since the interface is what is expected for the command.

(closes issue #12783)
Reported by: davevg


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@120286 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-04 14:12:45 +00:00
Mark Michelson d81d206148 Adding two new queue log events. The ADDMEMBER event is logged when
a dynamic realtime queue member is added to the queue, and the 
REMOVEMEMBER event is logged when a dynamic realtime member is
removed. Since no calling channel is associated with these events
the string "REALTIME" is placed where the channel's unique id is
normally placed.

(closes issue #12774)
Reported by: atis
Patches:
      queue_log_rt_members.patch uploaded by atis (license 242)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@120166 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-03 21:22:52 +00:00
Tilghman Lesher ae317add1b Merged revisions 119404 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r119404 | tilghman | 2008-05-30 16:17:45 -0500 (Fri, 30 May 2008) | 6 lines

When joinempty=strict, it only failed on join if there were busy members.  If
all members were logged out OR paused, then it (incorrectly) let callers join
the queue.
(closes issue #12451)
 Reported by: davidw

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@119419 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-05-30 21:23:14 +00:00
Mark Michelson dd7e1255ac Update to the janitor project for making sure to be thread-safe when
retrieving the value of a channel variable. This covers app_queue.

This commit also incorporates a logical change. Previously, if MixMonitor
is to be used to record the call, all the arguments were parsed first. Then
the MixMonitor app would be located. Now the order of these operations has
been swapped. Now the app is located first so that we only go through the
work of parsing the arguments if the app was found.

(closes issue #12742)
Reported by: snuffy
Patches:
      bug_12742.diff uploaded by snuffy (license 35)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@118783 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-05-28 19:56:18 +00:00
Michiel van Baak f1e9371da8 - revert change to ast_queue_hangup and create ast_queue_hangup_with_cause
- make data member of the ast_frame struct a named union instead of a void

Recently the ast_queue_hangup function got a new parameter, the hangupcause
Feedback came in that this is no good and that instead a new function should be created.
This I did.

The hangupcause was stored in the seqno member of the ast_frame struct. This is not very
elegant, and since there's already a data member that one should be used.
Problem is, this member was a void *.
Now it's a named union so it can hold a pointer, an uint32 and there's a padding in case someone
wants to store another type in there in the future.

This commit is so massive, because all ast_frame.data uses have to be
altered to ast_frame.data.data

Thanks russellb and kpfleming for the feedback.

(closes issue #12674)
Reported by: mvanbaak


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@117802 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-05-22 16:29:54 +00:00
Mark Michelson 2c7760e626 Committing a fix pointed out by Atis Lezdins on the asterisk-dev list. Thanks!
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@117794 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-05-22 16:05:18 +00:00
Mark Michelson b0e637791c Add a new manager event, AgentRingNoAnswer to
app_queue.

(closes issue #12591)
Reported by: CCHAsteria
Patches:
      app_queue_RNA_event.diff uploaded by CCHAsteria (license 477)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@117625 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-05-21 20:27:45 +00:00
Mark Michelson 06a7b4ea43 Optimize the update_realtime_member_field function by not having
to query the database for the member and instead using a cached
uniqueid. 

Special thanks to atis for creating this and for keeping it up
to date with necessary changes

(closes issue #11896)
Reported by: atis
Patches:
      realtime_uniqueid_v6.patch uploaded by atis (license 242)
Tested by: atis



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@117517 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-05-21 18:31:05 +00:00
Jason Parker e785520eb9 Correctly document state interface for AddQueueMember. Discovered while looking at issue #12626.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@115705 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-05-12 16:35:50 +00:00
Mark Michelson c854ba85a5 Merged revisions 115320 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r115320 | mmichelson | 2008-05-05 16:41:34 -0500 (Mon, 05 May 2008) | 13 lines

Don't consider a caller "handled" until the caller is bridged with
a queue member. There was too much of an opportunity for the member
to hang up (either during a delay, announcement, or overly long
agi) between the time that he answered the phone and the time when
he actually was bridged with the caller. The consequence of this
was that if the member hung up in that interval, then proper
abandonment details would not be noted in the queue log if the caller
were to hang up at any point after the member hangup.

(closes issue #12561)
Reported by: ablackthorn


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@115321 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-05-05 21:43:21 +00:00
Dwayne M. Hubbard 8fdea12f33 app_queue uses a taskprocessor for device state changes
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@115270 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-05-03 03:57:42 +00:00
Tilghman Lesher b5a127daac Modify TIMEOUT() to be accurate down to the millisecond.
(closes issue #10540)
 Reported by: spendergrass
 Patches: 
       20080417__bug10540.diff.txt uploaded by Corydon76 (license 14)
 Tested by: blitzrage


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@115076 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-05-01 23:06:23 +00:00
Mark Michelson e37dafdd3a Adding new configuration options to app_queue. This adds two new values
to announce-position, "limit" and "more," as well as a new option, 
announce-position-limit. For more information on the use of these options,
see CHANGES or configs/queues.conf.sample.

(closes issue #10991)
Reported by: slavon
Patches:
      app_q.diff uploaded by slavon (license 288)
Tested by: slavon, putnopvut



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@114906 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-04-30 19:30:41 +00:00
Mark Michelson 6447280c2f Merged revisions 114848 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r114848 | mmichelson | 2008-04-29 14:40:06 -0500 (Tue, 29 Apr 2008) | 14 lines

Use the MACRO_CONTEXT and MACRO_EXTEN channel variables instead of the channel's macrocontext
and macroexten fields. This is needed because if macros are daisy-chained, the incorrect 
context and extension are placed on the new channel. I also added locking to the channel prior
to accessing these variables as noted in trunk's janitor project file.


(closes issue #12549)
Reported by: darren1713
Patches:
      app_queue.c.macroextenpatch uploaded by darren1713 (license 116)
	       (with modifications from me)
Tested by: putnopvut


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@114849 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-04-29 19:42:04 +00:00
Tilghman Lesher 463a5dbd0a Whitespace changes only
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@114667 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-04-25 20:20:10 +00:00
Michiel van Baak 08e674bce0 Pass the hangup cause all the way to the calling app/channel.
(closes issue #11328)
Reported by: rain
Patches:
      20071207__pass_cause_in_hangup_control_frame.diff.txt uploaded by Corydon76 (license 14)
brought up-to-date to trunk by me


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@114637 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-04-24 22:16:48 +00:00
Mark Michelson 14fc93e721 Merged revisions 114628 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r114628 | mmichelson | 2008-04-24 15:43:03 -0500 (Thu, 24 Apr 2008) | 8 lines

Output of channel variables when eventwhencalled=vars was set
was being truncated two characters. This patch corrects the
problem.

(closes issue #12493)
Reported by: davidw


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@114629 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-04-24 20:43:52 +00:00
Jason Parker 6f549bc324 Allow setqueuevar=yes (et al) to work, after changes to pbx_builtin_setvar()
(closes issue #12490)
Reported by: bcnit
Patches:
      12490-queuevars-3.diff uploaded by qwell (license 4)
Tested by: qwell


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@114540 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-04-22 18:14:09 +00:00
Jason Parker f6cfccbc07 Merged revisions 114133 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r114133 | qwell | 2008-04-15 11:18:08 -0500 (Tue, 15 Apr 2008) | 8 lines

Allow autofill to work in the general section of queues.conf.
Additionally, don't try to (re)set options when they have empty values in realtime (all unset columns would have an empty value).

(closes issue #12445)
Reported by: atis
Patches:
      12445-autofill.diff uploaded by qwell (license 4)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@114134 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-04-15 16:18:38 +00:00
Mark Michelson df7cb6b30b Merged revisions 114112 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r114112 | mmichelson | 2008-04-14 11:24:22 -0500 (Mon, 14 Apr 2008) | 9 lines

If the datastore has been moved to another channel due to a masquerade, then
freeing the datastore here causes an eventual double free when the new channel
hangs up. We should only free the datastore if we were able to successfully remove
it from the channel we are referencing (i.e. the datastore was not moved).

(closes issue #12359)
Reported by: pguido


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@114113 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-04-14 16:25:09 +00:00
Mark Michelson 9bd9421c83 Fix a crash that happened due to accessing free'd memory
(closes issue #12396)
Reported by: tcalosi
Patches:
      12396.patch uploaded by putnopvut (license 60)
	  Tested by: tcalosi


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@113980 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-04-09 22:32:32 +00:00
Mark Michelson b95d24ea47 Merged revisions 112393 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r112393 | mmichelson | 2008-04-02 09:32:00 -0500 (Wed, 02 Apr 2008) | 6 lines

Ensure that there is no timeout if none is specified.

(closes issue #12349)
Reported by: johnlange


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@112394 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-04-02 14:32:43 +00:00
Joshua Colp cafce80cd5 Forgetting to unregister a manager action is bad, mmmk?
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@111565 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-03-28 00:55:47 +00:00
Mark Michelson 0f8f6e239e Fix a crash that would happen when attempting to unload the app_queue module.
The problem was that when the refcount on the queue hit 0, the destructor was
called, and inside the destructor, another function was called which would increase
the refcount back to 1 again and then decrease it again back to 0 for every member
in the queue. This meant that the destructor was being recursively called, leading
to a double free of the queue. This is now fixed by making sure to unlink the
queue from the queues container prior to the final unref of the queue.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@111533 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-03-28 00:12:52 +00:00
Mark Michelson 994d025523 Merged revisions 109713 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r109713 | mmichelson | 2008-03-18 15:52:15 -0500 (Tue, 18 Mar 2008) | 12 lines

This patch makes it so that all queue member status changes are handled through device state
code. This removes several problems people were seeing where their queue members would get into
an "unknown" state. Huge props go to atis on this one since he was the one who found the code
section that was causing the problem and proposed the solution. I just wrote what he suggested :)

(closes issue #12127)
Reported by: atis
Patches:
      12127v3.patch uploaded by putnopvut (license 60)
Tested by: atis, jvandal


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@109714 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-03-18 20:59:02 +00:00
Mark Michelson cd7efcf4e7 Add option 'randomperiodicannounce' to queues.conf. Setting this will
allow the list of periodic announcments specified to be played in a random
order instead of being played sequentially.

(closes issue #6681)
Reported by: alt_phil
Tested by: putnopvut



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@109621 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-03-18 18:58:42 +00:00
Terry Wilson b02bc230af Go through and fix a bunch of places where character strings were being interpreted as format strings. Most of these changes are solely to make compiling with -Wsecurity and -Wformat=2 happy, and were not
actual problems, per se.  I also added format attributes to any printf wrapper functions I found that didn't have them.  -Wsecurity and -Wmissing-format-attribute added to --enable-dev-mode.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@109447 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-03-18 15:43:34 +00:00
Mark Michelson 9c876e801f app_queue has now been doxygenified thanks to snuffy! The ony thing I changed
was the way that locks are referenced, since the old 1.2 names were still used
in the comments.

(closes issue #11997)
Reported by: snuffy
Patches:
      bug_11997_queue_doxy.diff uploaded by snuffy (license 35)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@107068 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-03-10 15:45:13 +00:00
Steve Murphy 377e51c4d4 (closes issue #6002)
Reported by: rizzo
Tested by: murf

Proposal of the changes to be made, and then an announcement of how they were accomplished:

http://lists.digium.com/pipermail/asterisk-dev/2008-February/032065.html

and:

http://lists.digium.com/pipermail/asterisk-dev/2008-March/032124.html

Here is a recap, file by file, of what I have done:

pbx/pbx_config.c
pbx/pbx_ael.c

All funcs that were passed a ptr to the context list, now will ALSO be passed a hashtab ptr to the same set.
Why? because (for the time being), the dialplan is stored in both, to facilitate a quick, low-cost move to
hash-tables to speed up dialplan processing. If it was deemed necessary to pass the context LIST, well, it
is just as necessary to have the TABLE available. This is because the list/table in question might not be
the global one, but temporary ones we would use to stage the dialplan on, and then swap into the global
position when things are ready.

We now have one external function for apps to use, "ast_context_find_or_create()" instead of the pre-existing
"find" and "create", as all existing usages used both in tandem anyway.

pbx_config, and pbx_ael, will stage the reloaded dialplan into local lists and tables, and 
then call merge_contexts_and_delete, which will merge (now) existing contexts and 
priorities from other registrars into this local set by copying them. Then, merge_contexts_and_delete will
lock down the contexts, swap the lists and tables, and unlock (real quick), and then 
destroy the old dialplan.



chan_sip.c
chan_iax.c
chan_skinny.c

All the channel drivers that would add regcontexts now use the ast_context_find_or_create now.

chan_sip also includes a small fix to get rid of warnings about removing priorities that never got entered.


apps/app_meetme.c
apps/app_dial.c
apps/app_queue.c

All the apps that added a context/exten/priority were also modified to use ast_context_find_or_create instead.


include/asterisk/pbx.h

ast_context_create() is removed. Find_or_create_ is the new method.
ast_context_find_or_create()  interface gets the hashtab added.
ast_merge_contexts_and_delete() gets the local hashtab arg added.
ast_wrlock_contexts_version() is added so you can detect if someone else got a writelock between your readlocking and writelocking.
ast_hashtab_compare_contexts was made public for use in pbx_config/pbx_ael
ast_hashtab_hash_contexts was in like fashion make public.


include/asterisk/pval.h

ast_compile_ael2() interface changed to include the local hashtab table ptr.


main/features.c

For the sake of the parking context, we use ast_context_find_or_create().



main/pbx.c

I changed all the "tree" names to "table" instead. That's because the original
implementation was based on binary trees. (had a free library). Then I moved
to hashtabs. Now, the names move forward too.

refcount field added to contexts, so you can keep track of how many modules
wanted this context to exist.

Some log messages that are warnings were inflated from LOG_NOTICE to LOG_WARNING.

Added some calls to ast_verb(3,...) for debug messages

Lots of little mods to ast_context_remove_extension2, which is now excersized in ways
it was not previously; one definite bug fixed.

find_or_create was upgraded to handle both local lists/tables as well as the globals.

context_merge() was added to do the per-context merging of the old/present contexts/extens/prios into the new/proposed local list/tables

ast_merge_contexts_and_delete() was heavily modified.

ast_add_extension2() was also upgraded to handle changes. 

the context_destroy() code was re-engineered to handle the new way of doing things,
by exten/prio instead of by context.



res/ael/pval.c
res/ael/ael.tab.c
res/ael/ael.tab.h
res/ael/ael.y
res/ael/ael_lex.c
res/ael/ael.flex
utils/ael_main.c
utils/extconf.c
utils/conf2ael.c
utils/Makefile

Had to change the interface to ast_compile_ael2(), to include the hashtab ptr.
This ended up involving several external apps.  The main gotcha was I had to 
include lock.h and hashtab.h in several places.


As a side note, I tested this stuff pretty thoroughly, I replicated the problems
originally reported by Luigi, and made triply sure that reloads worked, and everything
worked thru "stop gracefully". I found a and fixed a few bugs as I was merging into
trunk, that did not appear in my tests of bug6002.

How's this for verbose commit messages?




git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@106757 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-03-07 18:57:57 +00:00
Russell Bryant 5403b28778 - simplify a few statements with ARRAY_LEN()
- constify the stregy int to string mappings array


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@105984 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-03-05 04:34:29 +00:00
Tilghman Lesher 7007c565fe Fix minor misuses of snprintf
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@105841 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-03-04 23:10:45 +00:00
Mark Michelson f0379886c5 Merged revisions 105059 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r105059 | mmichelson | 2008-02-28 14:11:57 -0600 (Thu, 28 Feb 2008) | 6 lines

When using autofill, members who are in use should be counted towards the 
number of available members to call if ringinuse is set to yes.

Thanks to jmls who brought this issue up on IRC


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@105061 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-02-28 20:14:38 +00:00
Mark Michelson caeb435271 Merged revisions 103956 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r103956 | mmichelson | 2008-02-20 16:32:22 -0600 (Wed, 20 Feb 2008) | 8 lines

Clear up confusion when viewing the QUEUE_WAITING_COUNT of a 
"dead" realtime queue. Since from the user's perspective, the queue
does exist, we shouldn't tell them we couldn't find the queue. Instead
since it is a dead queue, report a 0 waiting count

This issue was brought up on IRC by jmls


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@103957 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-02-20 22:34:12 +00:00
Jason Parker 72bc8a7c7d Fix up some doxygen issues.
(closes issue #11996)
Patches:
      bug_11996_doxygen.diff uploaded by snuffy (license 35)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@103723 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-02-15 17:29:08 +00:00
Mark Michelson 44810652d6 Change the queue holdtime announcement to happen at any interval (not just greater than two minutes). Remove
the saying of less-than for holdtime announcements since it can lead to awkward holdtime announcements. Using
'1' as a queue-round-seconds value is no longer valid.

(closes issue #9736)
Reported by: caio1982
Patches:
      queue_announce5.diff uploaded by caio1982 (license 22)
	  Tested by: caio1982, putnopvut


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@103687 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-02-14 20:46:00 +00:00
Mark Michelson 84ecef76b8 Fix improper indentation. Thanks again to snuffy for pointing it out.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@103284 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-02-11 03:03:58 +00:00
Mark Michelson cd02fd2763 Add a couple of comments to clarify the unreffing of queues.
Thanks to snuffy for the idea.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@103283 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-02-11 02:59:14 +00:00
Mark Michelson 52595c5d30 Forgot that AST_LIST_REMOVE_CURRENT takes different arguments in trunk than 1.4.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@103122 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-02-08 18:58:25 +00:00
Mark Michelson ba003e415b Merged revisions 103120 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r103120 | mmichelson | 2008-02-08 12:48:17 -0600 (Fri, 08 Feb 2008) | 10 lines

Prevent a potential three-thread deadlock. Also added a comment block
to explicitly state the locking order necessary inside app_queue.

(closes issue #11862)
Reported by: flujan
Patches:
      11862.patch uploaded by putnopvut (license 60)
	  Tested by: flujan


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@103121 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-02-08 18:54:53 +00:00
Mark Michelson f26fd8dac4 Add the channel's unique id to the AgentCalled manager event to make it more consistent
with other manager events.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@102777 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-02-06 20:12:43 +00:00
Mark Michelson 267220d043 Remove an extra debug message I left in
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@102550 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-02-06 00:08:58 +00:00
Mark Michelson b0999f3bfa Forgot an !
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@101580 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-31 22:12:50 +00:00
Mark Michelson 19d8ce4033 A change I made to accommodate the "linear" strategy in trunk caused queue strategies to
not be loaded from realtime queues. This commit fixes that.

Thanks to jmls for pointing this problem out to me on IRC.

This also contains some changes to S_OR where it should be used. Thanks to Qwell for pointing
these out.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@101578 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-31 22:04:52 +00:00
Mark Michelson 815658d35e Handle the case of a NULL state_interface when checking a realtime member.
Thanks to jmls for finding this issue.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@101576 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-31 21:31:15 +00:00
Mark Michelson 28b48d2214 Merged revisions 101216 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r101216 | mmichelson | 2008-01-30 09:23:00 -0600 (Wed, 30 Jan 2008) | 5 lines

Fix a logic error with regards to autofill. Prior to this change, it was possible
for a caller to go out of turn if autofill were enabled and callers ahead in the queue were attempting
to call a member. This change fixes this.


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@101217 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-30 15:27:14 +00:00
Mark Michelson b719c2e5d2 Merged revisions 101035 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r101035 | mmichelson | 2008-01-29 17:02:03 -0600 (Tue, 29 Jan 2008) | 3 lines

Remove a memory leak from updating realtime queues


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@101036 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-29 23:02:48 +00:00
Mark Michelson 105e0f6cf8 Merged revisions 100973 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r100973 | mmichelson | 2008-01-29 13:39:00 -0600 (Tue, 29 Jan 2008) | 6 lines

Fixing an erroneous return value returned when attempting to pause or unpause a queue member
fails.

Fixes BE-366, thanks to John Bigelow for writing the patch.


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@100974 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-29 19:41:42 +00:00
Mark Michelson 81fb790419 Insure that we are not going to pass a NULL pointer to add_to_interfaces.
(closes issue #11840)
Reported by: junky



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@100344 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-25 14:53:09 +00:00
Mark Michelson 6d57a8c873 Adding the QUEUENAME variable to the variables set using the setqueuevar option
in queues.conf.

Suggestion comes from Shaun2222 on IRC.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@99406 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-21 22:32:13 +00:00
Mark Michelson 3d022ccfec state_interface could be NULL, so use the never-NULL cur->state_interface for this check
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@98994 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-17 16:33:24 +00:00
Mark Michelson 9c39ec55d8 Get the device state of the state interface instead of the interface when creating a new queue member.
Thanks to Atis Lezdins for bringing this up on the Asterisk-Dev mailing list.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@98993 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-17 16:26:41 +00:00
Mark Michelson 7cd98338fd Merged revisions 98737 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r98737 | mmichelson | 2008-01-14 10:35:12 -0600 (Mon, 14 Jan 2008) | 3 lines

Fixing another compilation error. I'm a bit off today :(


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@98738 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-14 16:36:41 +00:00
Mark Michelson ef7c382507 Merged revisions 98733 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r98733 | mmichelson | 2008-01-14 10:21:28 -0600 (Mon, 14 Jan 2008) | 8 lines

Adding explicit defaults for missing options to init_queue. This is necessary because
if a user either removes or comments one of these options and reloads their queues, the
option will not reset to its default, instead maintaining the value from prior to the 
reload. 

Thanks to John Bigelow for pointing this error out to me.


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@98735 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-14 16:33:06 +00:00
Mark Michelson 87b92b1020 Merged revisions 97575 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r97575 | mmichelson | 2008-01-09 12:48:15 -0600 (Wed, 09 Jan 2008) | 3 lines

Part 2 of app_queue doxygen improvements. Some smaller functions this time


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@97577 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-09 18:53:29 +00:00
Mark Michelson c1eaacc3df Merged revisions 97308 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r97308 | mmichelson | 2008-01-08 18:17:40 -0600 (Tue, 08 Jan 2008) | 3 lines

use the \retval doxygen command properly


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@97309 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-09 00:18:15 +00:00
Mark Michelson 925d9ffa47 Merged revisions 97304 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r97304 | mmichelson | 2008-01-08 17:49:11 -0600 (Tue, 08 Jan 2008) | 5 lines

Part 1 of N of adding doxygen comments to app_queue. I picked some of the most common functions
used (which also happen to be some the biggest/ugliest functions too) to document first. I'm pretty
new to doxygen so criticism is welcome.


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@97307 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-08 23:56:24 +00:00
Terry Wilson 12964661f2 Initialize new variable to NULL
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@97248 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-08 21:56:57 +00:00
Mark Michelson 427f17fd9d Adding the option of specifying a second interface in a member definition for a queue. app_queue
will monitor this second device's state for the member, even though it actually calls the first
interface. This ability has been added for statically defined queue members, realtime queue members,
and dynamic queue members added through the CLI, dialplan, or manager.

(closes issue #11603, reported by acidv)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@97203 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-08 21:18:32 +00:00
Joshua Colp fb2aef67b9 Merged revisions 97093 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r97093 | file | 2008-01-08 14:36:40 -0400 (Tue, 08 Jan 2008) | 4 lines

Make app_queue calls work with directed pickup.
(closes issue #11700)
Reported by: jbauer

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@97103 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-08 18:42:39 +00:00
Mark Michelson b7f3b78031 Merged revisions 96102 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r96102 | mmichelson | 2008-01-02 17:46:02 -0600 (Wed, 02 Jan 2008) | 4 lines

We need to reset the membername to NULL on each iteration of this loop, otherwise the result is that
multiple members can have the same name, since the variable was not reset on each iteration of the loop.


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@96103 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-02 23:48:43 +00:00
Mark Michelson 80c479f94e Since ',' is the standard argument separator in trunk, change app_queue
to use AST_STANDARD_APP_ARGS instead of AST_NONSTANDARD_APP_ARGS for determining
member data.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@95945 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-02 20:23:23 +00:00
Mark Michelson e0e6e81477 Merged revisions 95890 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r95890 | mmichelson | 2008-01-02 11:51:22 -0600 (Wed, 02 Jan 2008) | 9 lines

A change to improve the accuracy of queue logging in the case where a member does not
answer during the specified timeout period. Prior to this change, there was a small chance
that the member name recorded in this case would be blank. Also prior to this change, if using
the ringall strategy, if no one answered the call during the specified timeout, the member name
listed in the queue log would randomly be one of the members that was rung.

(closes issue #11498, reported and tested by hloubser, patched by me)


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@95891 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-02 18:05:57 +00:00
Mark Michelson c540b02f6f The diff for this change looks really bad, but all I did here was decrease the indentation of most
of the queue_exec function by reversing the logic of an if statement. This change makes the function
comply better with the coding guidelines. Since this change is purely a cosmetic change to the code, I am
only committing the change to trunk.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@95233 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-12-28 18:39:29 +00:00
Mark Michelson af080add62 Merged revisions 95095 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r95095 | mmichelson | 2007-12-27 18:16:15 -0600 (Thu, 27 Dec 2007) | 8 lines

I found a bug while browsing the queue code and managed to reproduce it in a small setup.

If a queue uses the ringall strategy, it was possible through unfortunate coincidence for a single member at a given penalty level to
make app_queue think that all members at that penalty level were unavailable and cause the members at the
next penalty level to be rung. With this patch, we will only move to the next penalty level if ALL the members
at a given penalty level are unreachable.


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@95096 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-12-28 00:17:41 +00:00
Luigi Rizzo 5e041a46dc NULL does not need to be cast to (char *)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@95069 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-12-27 23:13:15 +00:00
Mark Michelson e0b9943818 Fix a memory leak when reloading queue rules.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@94547 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-12-21 20:30:05 +00:00
Mark Michelson c1fac2d834 Merged revisions 94464 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r94464 | mmichelson | 2007-12-21 10:11:44 -0600 (Fri, 21 Dec 2007) | 3 lines

Removing a debug message I accidentally just committed


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@94465 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-12-21 16:12:14 +00:00
Mark Michelson 2e6431c42a Merged revisions 94420 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r94420 | mmichelson | 2007-12-21 09:45:14 -0600 (Fri, 21 Dec 2007) | 5 lines

Fixing Portuguese syntax for saying dates and times. Also some coding guidelines cleanup.

(closes issue #11599, reported and patched by caio1982, coding guidelines cleanup by me)


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@94463 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-12-21 16:10:21 +00:00
Mark Michelson 88f27c8279 Moved the update of the queue_ent's rule list to just before we try to call
queue members. This allows for the change in penalty levels to be executed at
the most logical time frame.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@94396 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-12-21 01:14:32 +00:00
Mark Michelson b489558138 Merging the queue-penalty branch. In short, this allows one to dynamically adjust
the QUEUE_MAX_PENALTY and the newly introduced QUEUE_MIN_PENALTY during a call depending
on the amount of time passed. The purpose is to allow the call to open up to more (or maybe
just different) members without the caller's losing his place in the queue. See 
configs/queuerules.conf.sample for an example of how to set up queue rules and configs/queues.conf.sample
for how to associate a rule with a queue.

Along with the functional changes, new CLI and manager commands exist to show the rules defined and
there is an additional CLI command to reload the queue rules.

Future enhancements that may be made: support for realtime queue rules and support for dynamically adding
a rule through the manager or CLI. Also a manager command to reload the queue rules (I'll probably write
this myself very soon).



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@94370 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-12-21 00:44:17 +00:00
Mark Michelson c848e480c9 1. Unify the check for a penalty < 0 into the set_member_penalty code.
2. Fix an error when checking the CLI command for setting a member's penalty.
3. Fix a logging error if the incorrect parameter was the queue name or interface.

(closes issue #11544, reported and patched by Laureano)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@94124 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-12-19 23:17:42 +00:00
Olle Johansson f3471c1652 Merged revisions 93182 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r93182 | oej | 2007-12-17 08:15:13 +0100 (MÃ¥n, 17 Dec 2007) | 8 lines

Issue 11574: Add dependencies on res_monitor and res_features. 

I wonder if Asterisk can run at all without res_features. My guess is that 
there's propably a lot of more modules and the core that depends on it.

Reported by: caio1982
(closes issue #11574)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@93335 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-12-17 21:12:24 +00:00
Mark Michelson c3f89eab8f Removing some leftover debug messages from a while back.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@93297 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-12-17 20:42:08 +00:00
Mark Michelson a43dd8acb3 Merged revisions 92443 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r92443 | mmichelson | 2007-12-12 10:08:55 -0600 (Wed, 12 Dec 2007) | 3 lines

Removing an unused variable.


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@92444 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-12-12 16:11:13 +00:00
Mark Michelson dea49116ee Merged revisions 92323 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r92323 | mmichelson | 2007-12-11 11:42:25 -0600 (Tue, 11 Dec 2007) | 10 lines

Fixing autofill to be more accurate. Specifically, if calls ahead of the current
caller were ringing members (but not yet bridged) there could be available members
and waiting callers who would not get matched up. The member availability checker
was correctly determining the number of available members in this scenario, but
the queue itself did not parallelly reflect this status on the pending calls. This
commit corrects the issue.

(closes issue #11459, reported by equissoftware, patched by me)


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@92324 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-12-11 17:44:42 +00:00
Mark Michelson 8bf68432a0 Merged revisions 92202 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r92202 | mmichelson | 2007-12-10 10:29:44 -0600 (Mon, 10 Dec 2007) | 7 lines

If there are no members in a queue, then the loop where the datastore for detecting
duplicate dialed numbers will be skipped, meaning the datastore isn't created. This means
that when we try to free it, there's a crash. This stops that crash from occurring.

(closes issue #11499, reported by slavon, patched by eliel)


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@92203 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-12-10 16:30:46 +00:00
Russell Bryant bfd58d8c2a Merged revisions 91780 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r91780 | russell | 2007-12-07 10:25:25 -0600 (Fri, 07 Dec 2007) | 7 lines

* Add channel locking around datastore operations that expect the channel
  to be locked.
* Document why we don't record Local channels in the dialed interfaces list.
* Handle memory allocation failure.
* Remove the dialed variable, as it wasn't actually needed.
* Tweak some formatting to conform to coding guidelines.

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@91781 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-12-07 16:28:36 +00:00
Russell Bryant c72fa81580 Merged revisions 91677 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r91677 | russell | 2007-12-06 20:38:40 -0600 (Thu, 06 Dec 2007) | 4 lines

Allow dialing local channels from Queue() and Dial() again.  There was a slight
flaw in the code to prevent call forwards from looping that caused this problem.
(related to issue #11486)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@91678 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-12-07 02:43:21 +00:00
Russell Bryant 135f315382 Merged revisions 91675 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r91675 | russell | 2007-12-06 20:19:45 -0600 (Thu, 06 Dec 2007) | 7 lines

Fix in an issue in the call forwarding handling code that was causing crashes
on every call into a queue.  I'm not entirely sure about the logic in this part
of the code, so I want to look at it some more tomorrow.  However, this makes
it safe and keeps it from crashing.

(closes issue #11486, reported by adamg, patched by me)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@91676 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-12-07 02:21:07 +00:00
Mark Michelson 5d1fb935ba Wrong locking style got merged from 1.4 to trunk. My mistake.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@90899 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-12-04 17:51:59 +00:00
Mark Michelson c52d8a1cd5 Merged revisions 90735 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r90735 | mmichelson | 2007-12-03 17:12:17 -0600 (Mon, 03 Dec 2007) | 22 lines

A big one...

This is the merge of the forward-loop branch. The main change here is that call-forwards can no longer loop.
This is accomplished by creating a datastore on the calling channel which has a linked list of all devices
dialed. If a forward happens, then the local channel which is created inherits the datastore. If, through this
progression of forwards and datastore inheritance, a device is attempted to be dialed a second time, it will simply
be skipped and a warning message will be printed to the CLI. After the dialing has been completed, the datastore
is detached from the channel and destroyed.

This change also introduces some side effects to the code which I shall enumerate here:

1. Datastore inheritance has been backported from trunk into 1.4
2. A large chunk of code has been removed from app_dial. This chunk is the section of code
   which handles the call forward case after the channel has been requested but before it has
   been called. This was removed because call-forwarding still works fine without it, it makes the
   code less error-prone should it need changing, and it made this set of changes much less painful
   to just have the forwarding handled in one place in each module.
3. Two new files, global_datastores.h and .c have been added. These are necessary since the datastore
   which is attached to the channel may be created and attached in either app_dial or app_queue, so they
   need a common place to find the datastore info. This approach was taken in case similar datastores are
   needed in the future, there will be a common place to add them.

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@90873 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-12-04 17:08:36 +00:00
Olle Johansson 4d2368f202 (closes issue #11431)
Reported by: Laureano
Patches: 
      app_queue.c.patch uploaded by Laureano (license 265)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@90854 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-12-04 15:16:03 +00:00
Russell Bryant 0f5117be2e Merged revisions 90470 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r90470 | russell | 2007-12-02 12:18:52 -0600 (Sun, 02 Dec 2007) | 6 lines

The other day when I went through making changes as a result of the ao2_link()
change, I added some code to set pointers to NULL after they were unreferenced.
This pointed out that in this place, the object was unreferenced before the
code was done using it.  So, move the unref down a little bit.
(crash reported by jmls on IRC)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@90471 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-12-02 18:20:13 +00:00
Mark Michelson 6b08c442c7 Adding support for the "automixmonitor" dial and queue options.
This works in much the same way as the automonitor, except that instead of using the monitor
app, it uses the mixmonitor app. By providing an 'x' or 'X' as a dial or queue option, a DTMF
sequence may be entered (as defined in features.conf) to start the one-touch mixmonitor.

This patch also introduces some new API calls to the audiohooks code for searching for an audiohook
by type and for searching for a running audiohook by type.

Big thanks to joetester for writing the initial patch, testing it and patiently waiting for it to 
be committed.

(closes issue #10185, reported and patched by xmarksthespot)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@90388 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-30 21:19:57 +00:00
Russell Bryant fac7480820 Merged revisions 90348 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r90348 | russell | 2007-11-30 13:26:04 -0600 (Fri, 30 Nov 2007) | 8 lines

Change the behavior of ao2_link().  Previously, in inherited a reference.
Now, it automatically increases the reference count to reflect the reference
that is now held by the container.

This was done to be more consistent with ao2_unlink(), which automatically
releases the reference held by the container.  It also makes it so it is
no longer possible for a pointer to be invalid after ao2_link() returns.

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@90351 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-30 19:34:47 +00:00
Mark Michelson 4ed5336a45 Merged revisions 90163 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r90163 | mmichelson | 2007-11-29 13:38:39 -0600 (Thu, 29 Nov 2007) | 6 lines

This patch handles the case where a queue member with a negative penalty is added
via the manager. If a negative value is submitted for a member penalty, we set it to 0.

(closes issue #11411, reported and patched by Laureano)


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@90164 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-29 19:39:31 +00:00
Joshua Colp 48da910225 Merged revisions 90101 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r90101 | file | 2007-11-28 18:59:28 -0400 (Wed, 28 Nov 2007) | 6 lines

Fix a few memory leaks.
(closes issue #11405)
Reported by: eliel
Patches:
      load_realtime.patch uploaded by eliel (license 64)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@90102 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-28 23:03:09 +00:00
Russell Bryant 63bca744a2 Merged revisions 89844 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r89844 | russell | 2007-11-27 17:21:13 -0600 (Tue, 27 Nov 2007) | 3 lines

Instead of depending on the return value of ast_true(), explicitly set the
eventwhencalled variable to 1.

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89847 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-27 23:21:38 +00:00
Mark Michelson ba7f5fec38 Merged revisions 89837 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r89837 | mmichelson | 2007-11-27 17:10:05 -0600 (Tue, 27 Nov 2007) | 12 lines

Two changes with regards to the 'eventwhencalled' option of queues.conf

1) Due to some signed vs. unsigned silliness, setting 'eventwhencalled' to 
   'vars' or 'yes' did exactly the same thing. Thus the sign change of the
   ast_true call.

2) The vars2manager function overwrote a \n for every channel variable it parsed, resulting
   in bizarre output for the channel variables. This patch remedies this.

(related to issue #11385, however I'm not sure if this will actually be enough to close it)


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89838 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-27 23:11:12 +00:00
Joshua Colp 0619fb1248 Perform some module use counting audits. This is now done outside the scope of the application/dialplan function so they do not need to worry about it.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89602 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-26 18:11:31 +00:00
Steve Murphy 86476c607f closes issue #11285, where an unload of a module that creates a dialplan context, causes a crash when you do a 'dialplan show' of that context. This is because the registrar string is defined in the module, and the stale pointer is traversed. The reporter offered a patch that would always strdup the registrar string, which is practical, but I preferred to destroy the created contexts in each module where one is created. That seemed more symmetric. There were only 6 place in asterisk where this is done: chan_sip, chan_iax2, chan_skinny, res_features, app_dial, and app_queue. The two apps destroyed the context, but left the contexts. All is fixed now and unloads should be dialplan friendly.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89513 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-21 23:54:12 +00:00
Luigi Rizzo 7e8835e0d7 remove another set of redundant #include "asterisk/options.h"
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89512 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-21 23:24:55 +00:00
Mark Michelson ffa8035212 Merged revisions 89495 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r89495 | mmichelson | 2007-11-21 13:27:51 -0600 (Wed, 21 Nov 2007) | 3 lines

Fix a small error I made in my previous commit


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89496 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-21 19:28:43 +00:00
Mark Michelson 9c275b0e51 Merged revisions 89493 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r89493 | mmichelson | 2007-11-21 13:24:22 -0600 (Wed, 21 Nov 2007) | 5 lines

Changing an inaccurate debug message to be less inaccurate. Under the circumstances, this
message would always report that there were 0 members available, even though that may not be true.



........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89494 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-21 19:27:22 +00:00
Luigi Rizzo 0595b5e2aa include "logger.h" and errno.h from asterisk.h - usage shows that they
were included almost everywhere.
Remove some of the instances.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89424 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-19 18:52:04 +00:00
Luigi Rizzo fdb7f7ba3d Start untangling header inclusion in a way that does not affect
build times - tested, there is no measureable difference before and
after this commit.

In this change:

use asterisk/compat.h to include a small set of system headers:
inttypes.h, unistd.h, stddef.h, stddint.h, sys/types.h, stdarg.h,
stdlib.h, alloca.h, stdio.h

Where available, the inclusion is conditional on HAVE_FOO_H as determined
by autoconf.

Normally, source files should not include any of the above system headers,
and instead use either "asterisk.h" or "asterisk/compat.h" which does it
better. 

For the time being I have left alone second-level directories
(main/db1-ast, etc.).



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89333 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-16 20:04:58 +00:00
Mark Michelson 2f7440932c Merged revisions 89323 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r89323 | mmichelson | 2007-11-16 09:28:22 -0600 (Fri, 16 Nov 2007) | 5 lines

Make realtime queues accessible from the QUEUE_MEMBER_COUNT function.

(closes issue #11271, reported and patched by atis, with small modifications from me)


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89324 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-16 15:44:27 +00:00
Luigi Rizzo 7f8ecd2cd3 make the 'name' and 'value' fields in ast_variable const char *
This prevents modifying the strings in the stored variables, 
and catched a few instances where this was actually done.

Given the differences between trunk and 1.4 (and the fact that this
is effectively an API change) it is better to fix 1.4 independently.
These are

chan_sip.c::sip_register()
chan_skinny.c:: near line 2847
config.c:: near line 1774
logger.c::make_components()
res_adsi.c:: near line 1049

I may have missed some instances for modules that do not build here.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89268 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-14 13:18:40 +00:00
Russell Bryant 31512895ae Instead of reserving 800 bytes for periodic announcements, use an array of
ast_str pointers and only alloate space for the strings as needed.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89263 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-14 01:35:28 +00:00
Russell Bryant 76696ac65f Convert most of the strings in the call_queue struct to use stringfields.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89261 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-14 01:15:26 +00:00
Steve Murphy 98429d37b2 Based on a note in asterisk-dev by Brian Capouch, I determined I too agressive in not initializing arrays passed to pbx_substitute_variables_xxxx; I reviewed the code (again) and hopefully found every possible spot where substitute_variables is called conditionally, and made sure the char array involved was set to a null string.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89186 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-12 18:44:36 +00:00
Kevin P. Fleming edc78d6023 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


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89106 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-08 05:28:47 +00:00
Tilghman Lesher 97744f54e7 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

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89094 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-07 23:47:45 +00:00
Mark Michelson 0cd3118a62 Adding the queue strategy wrandom
(closes issue #10942, reported and patched by julianjm, documentation changes by me)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89070 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-06 22:36:55 +00:00
Mark Michelson 01e1f6cc94 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)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89068 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-06 22:05:56 +00:00
Steve Murphy 63f2f04cf4 This commits the performance mods that give the priority processing engine in the pbx, a 25-30% speed boost. The two updates used, are, first, to merge the ast_exists_extension() and the ast_spawn_extension() where they are called sequentially in a loop in the code, into a slightly upgraded version of ast_spawn_extension(), with a few extra args; and, second, I modified the substitute_variables_helper_full, so it zeroes out the byte after the evaluated string instead of demanding you pre-zero the buffer; I also went thru the code and removed the code that zeroed this buffer before every call to the substitute_variables_helper_full. The first fix provides about a 9% speedup, and the second the rest. These figures come from the 'PIPS' benchmark I describe in blogs, conf. reports, etc.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@88166 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-01 22:26:51 +00:00
Mark Michelson 3ffc123db9 Adding the more flexible QUEUE_MEMBER function to replace the QUEUE_MEMBER_COUNT function.
A deprecation notice will be issued the first time QUEUE_MEMBER_COUNT is used.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@87395 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-29 20:13:23 +00:00
Mark Michelson cf861b38c7 Added queue strategy "linear". This strategy is useful for those who always wish for their
phones to be rung in a specific order.

(closes issue #7279, reported and initially patched by diLLec, patch reworked by me)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@87154 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-26 15:19:46 +00:00
Mark Michelson a8cc80e36d Adding the general option "shared_lastcall" to queues so that a member's wrapuptime
may be used across multiple queues.

(closes issue #9777, reported and patched by eliel)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@86985 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-24 21:26:27 +00:00
Jason Parker ebe4050128 Switch from AST_CLI (formerly NEW_CLI) to AST_CLI_DEFINE, since the former didn't make much sense
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@86820 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-22 20:05:18 +00:00
Jason Parker b0f3e6097e Convert NEW_CLI to AST_CLI.
Closes issue #11039, as suggested by seanbright.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@86536 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-19 18:29:40 +00:00
Mark Michelson 934b814add Merged revisions 86328 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r86328 | mmichelson | 2007-10-18 12:38:26 -0500 (Thu, 18 Oct 2007) | 5 lines

If a non-existent file is specified to be played either as a periodic announcement
or as a hold/position announcement, the caller would be kicked out of the queue.
No longer does this happen.


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@86329 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-18 17:40:45 +00:00
Mark Michelson 37c1943b87 Changed some spaces to tabs
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@86298 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-18 16:16:51 +00:00
Mark Michelson d1a0d959a7 Merged revisions 86202 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r86202 | mmichelson | 2007-10-17 16:39:05 -0500 (Wed, 17 Oct 2007) | 6 lines

Changing the strategy field of the call_queue struct to be signed instead of unsigned,
since the code attempts to set the strategy to -1 if you specify a bogus strategy.
While this isn't a huge issue in 1.4, it could be a problem for someone who, say, tries
to use the roundrobin strategy in trunk (despite all the deprecation warnings in 1.4).


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@86208 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-17 21:41:06 +00:00
Mark Michelson c438d76551 Removed the monitor-join option. If one wishes to mix audio, they should instead use
monitor-type=mixmonitor.

(related to issue #10885)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@86030 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-16 22:54:37 +00:00
Mark Michelson a39404fed2 Fixing the build.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@85992 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-16 21:51:26 +00:00
Mark Michelson bece7e24f2 Merged revisions 85958 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r85958 | mmichelson | 2007-10-16 16:14:34 -0500 (Tue, 16 Oct 2007) | 5 lines

Trying to remove a non-dynamic queue member via dynamic means can lead to some
interesting (read nasty) situations. This patch clears up the issue by making
only dynamic queue members removable via dynamic methods.


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@85959 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-16 21:16:00 +00:00
Russell Bryant a586d03231 Merged revisions 85720 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r85720 | russell | 2007-10-15 16:10:02 -0500 (Mon, 15 Oct 2007) | 3 lines

Ensure that no pending state changes are leaked when the device state change
thread gets stopped on module unload.

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@85721 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-15 21:11:06 +00:00
Mark Michelson fbcd884e1b Allow for the position announcement to be turned off if desired.
(closes issue #8515, reported by bruno_rocha, initial patch by bruno_rocha, final patch by qwell)




git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@85527 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-12 20:06:37 +00:00
Mark Michelson 310cfd3280 Patch to add one-touch parking for queues.
(closes issue #10869, reported and patched by bluecrow76)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@85177 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-09 22:35:11 +00:00
Mark Michelson 23ebcbc370 A two-in-one patch from the bugtracker
1) Fix some bad logic in the counting of statistics for QueueSummary manager event. Variables were not being
   reset for each additional queue, so cumulative totals were reported on each successive queue.

2) Add a longest hold time stat to QueueSummary manager event.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@84726 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-04 22:58:26 +00:00
Mark Michelson 43e2818750 Merged revisions 84692 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r84692 | mmichelson | 2007-10-04 16:57:03 -0500 (Thu, 04 Oct 2007) | 5 lines

Don't allocate space for queue members unless it's needed. You end up deleting dynamic members on a reload. Not good.

closes issue (#10879, reported by dazza76, patched by me)


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@84693 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-04 22:00:10 +00:00
Joshua Colp e835dd12e4 Merged revisions 84637 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r84637 | file | 2007-10-04 11:51:57 -0300 (Thu, 04 Oct 2007) | 4 lines

Create a duplicate of the channel's member name as the tab completion stuff will free it.
(closes issue #10884)
Reported by: adamg

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@84638 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-04 14:54:30 +00:00
Mark Michelson 2d95565f53 interface_exists_global was never returning 1. Most likely an error from my merge on Friday.
(closes issue #10817, reported and patched by snar, patch simplified by me)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@83656 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-24 17:00:57 +00:00
Tilghman Lesher b88902639a Fix some areas where we were still using '|' for an argument delimiter (closes issue #10793)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@83484 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-21 18:41:36 +00:00
Russell Bryant e5c12bcf62 Update app_queue to use commas as application argument separators.
(closes issue #10793, snar)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@83483 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-21 18:27:56 +00:00
Mark Michelson 25763e2573 Merging changes from queue_refcount_trunk into trunk. Refcounted queues now in place.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@83350 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-20 21:21:28 +00:00
Jason Parker ac5332c674 More conversions to NEW_CLI
(issue #10724)
Patches:
      chan_zap.c.patch uploaded by moy (license 222)
      app_queue.c.patch uploaded by eliel (license 64)
      app_voicemail.c.patch uploaded by eliel (license 64)
      app_meetme.c.patch uploaded by eliel (license 64)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@83213 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-19 23:16:51 +00:00
Joshua Colp 39a6ecc228 Merged revisions 83074 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r83074 | file | 2007-09-19 10:47:59 -0300 (Wed, 19 Sep 2007) | 6 lines

Protect the CDR record from modification by pbx_exec so that the application data contains the Queue data.
(closes issue #10761)
Reported by: snar
Patches:
      app-queue-mixmonitor.patch uploaded by snar (license 245)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@83075 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-19 13:49:47 +00:00
Joshua Colp bd8414eff6 Merged revisions 82961 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r82961 | file | 2007-09-18 20:41:02 -0300 (Tue, 18 Sep 2007) | 2 lines

Initialize a variable to NULL to make the world happy.

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@82962 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-18 23:42:24 +00:00
Mark Michelson b33123cf87 Merged revisions 82865 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r82865 | mmichelson | 2007-09-18 15:09:02 -0500 (Tue, 18 Sep 2007) | 4 lines

Moving the logic for handling an empty membername to the create_member function so that there is a common place
where this occurs instead of being spread out to several different places.


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@82866 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-18 20:10:59 +00:00
Kevin P. Fleming ef87383055 Merged revisions 82834 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r82834 | kpfleming | 2007-09-18 13:59:52 -0500 (Tue, 18 Sep 2007) | 2 lines

there is no need for conditional logic to select ->interface or ->membername, snince ->membername will always be populated

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@82835 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-18 19:06:34 +00:00
Jason Parker 9a5f7c5764 (closes issue #10755)
Reported by: snar
Patches:
      app-queue-cdr-trunk.patch uploaded by snar (license 245)
      queues.conf.patch uploaded by snar (license 245)

Add an updatecdr option to queues.conf, so that if a "member name" is specified,
 the cdr record will be updated with that, rather than the channel.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@82800 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-18 16:16:36 +00:00
Russell Bryant 9388173f85 Make the MALLOC_DEBUG output for free() useful again. After changing calls to
free to be ast_free, astmm said all calls to free were coming from utils.h


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@82628 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-17 18:57:56 +00:00
Kevin P. Fleming 6cdc9ced97 Merged revisions 82590,82592 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r82590 | kpfleming | 2007-09-17 11:33:30 -0500 (Mon, 17 Sep 2007) | 2 lines

fix a couple of places where a logical member name (if specified) was not used, but instead the direct interface was listed

........
r82592 | kpfleming | 2007-09-17 11:40:12 -0500 (Mon, 17 Sep 2007) | 2 lines

revert a change that wasn't supposed to be committed... doh!

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@82593 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-17 16:44:13 +00:00
Mark Michelson 38460271f2 Merged revisions 82396 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r82396 | mmichelson | 2007-09-14 13:28:36 -0500 (Fri, 14 Sep 2007) | 5 lines

Adding member name field to manager events where they were missing before

(closes issue #10721, reported by snar)


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@82397 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-14 18:34:53 +00:00
Mark Michelson 899ddcee92 Changed "in" to "queue" in "queue {pause|unpause} member" command to be more clear.
Also added check to be sure that sixth argument is the word "reason" if full command is given



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@82352 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-13 21:53:01 +00:00
Mark Michelson eb39b71fba Added the ability to pause and unpause members via the CLI
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@82349 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-13 21:23:32 +00:00
Mark Michelson c04887e428 Merged revisions 82346 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r82346 | mmichelson | 2007-09-13 15:16:37 -0500 (Thu, 13 Sep 2007) | 4 lines

Preemptively fixing a possible segfault. It is possible that queuename is NULL 
(meaning pause ALL queues), so use q->name instead.


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@82347 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-13 20:17:41 +00:00
Mark Michelson 10d22b6e13 Merged revisions 82326 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r82326 | mmichelson | 2007-09-13 11:25:59 -0500 (Thu, 13 Sep 2007) | 7 lines

Added logic to handle the unlikely case that someone has two queues with the same name.
Asterisk will log a warning message letting the user know that one was already defined with that
name and is it skipping all further instances. This also will work for realtime queues but in order
for that to happen, the user would have to trigger a perfectly timed reload as a realtime queue is being
looked up, which is highly unlikely (but taken care of nonetheless).


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@82327 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-13 16:27:42 +00:00
Russell Bryant a0e8ee0a3d Fix a missing unref of a member struct. This was pointed out by Marta. Thanks!
This function in 1.4 didn't have the problem.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@82311 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-13 13:34:24 +00:00
Mark Michelson 25e4377167 Removed an unneeded ao2_ref. This was a problem because unless get_member_status returned QUEUE_NORMAL, a NULL member
would be unreferenced. While this didn't cause any crashes or anything terrible, it still is incorrect



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@82289 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-12 21:17:45 +00:00
Mark Michelson 8cd1f2effc Merged revisions 82274 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r82274 | mmichelson | 2007-09-12 09:24:53 -0500 (Wed, 12 Sep 2007) | 6 lines

We should only initialize a realtime queue when it is allocated, not every time we access it. This prevents the members ao2_container
from being reallocated every time the queue is accessed.

I also removed a debug message I had accidentally left in on a previous commit.


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@82275 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-12 14:29:15 +00:00
Russell Bryant 38c2cd05fa Merged revisions 82267 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r82267 | russell | 2007-09-11 17:37:17 -0500 (Tue, 11 Sep 2007) | 3 lines

Fix incorrect uses of ao2_find().  Every one of these calls was reading bogus
memory ...

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@82269 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-11 22:38:02 +00:00
Russell Bryant c0bcb9f218 Merged revisions 82263 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r82263 | russell | 2007-09-11 15:49:34 -0500 (Tue, 11 Sep 2007) | 5 lines

Fix another missing unref of member objects.  This one was pointed out by Marta.
When building the outgoing list in try_calling(), a member reference is stored
in each outgoing entry.  However, when this list got destroyed, the reference
was not released.

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@82264 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-11 20:50:42 +00:00
Mark Michelson 88a1ae75d5 Merged revisions 82252 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r82252 | mmichelson | 2007-09-11 11:05:56 -0500 (Tue, 11 Sep 2007) | 6 lines

All instances of ao2_iterators which were just named 'i' have been renamed
to 'mem_iter' so that when refcounted queues are merged into trunk, there will be
little confusion regarding iterator names, especially when a queue and member iterator
are used in the same function.


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@82253 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-11 16:12:09 +00:00
Russell Bryant 20288b58af Merged revisions 82240 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r82240 | russell | 2007-09-11 09:34:12 -0500 (Tue, 11 Sep 2007) | 2 lines

Add a couple more missing unrefs of queue member objects

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@82241 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-11 14:35:06 +00:00
Russell Bryant 74044bbb88 Merged revisions 82238 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r82238 | russell | 2007-09-11 09:21:17 -0500 (Tue, 11 Sep 2007) | 2 lines

Add a missing unref of a queue member in an error handling block

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@82239 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-11 14:25:20 +00:00
Russell Bryant 02c8ceb4e5 Merged revisions 82236 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r82236 | russell | 2007-09-11 09:09:43 -0500 (Tue, 11 Sep 2007) | 2 lines

Document why membercount can not simply be replaced by ao2_container_count()

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@82237 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-11 14:10:17 +00:00
Mark Michelson ef2856adf0 Fixing a problem where NULL channels would cause a crash when calling indisposed queue members (i.e. paused, wrapup time not completed, etc.)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@82185 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-10 19:10:46 +00:00
Tilghman Lesher e558260746 Merged revisions 82155 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r82155 | tilghman | 2007-09-10 13:02:02 -0500 (Mon, 10 Sep 2007) | 2 lines

Convert struct member to use refcounts (closes issue #10199)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@82178 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-10 18:32:59 +00:00
Jason Parker ce12177952 Merged revisions 81923 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

(closes issue #10671)
........
r81923 | qwell | 2007-09-07 14:48:00 -0500 (Fri, 07 Sep 2007) | 5 lines

Allow the MEMBERINTERFACE variable to be used as the mixmonitor filename.
This moves the setting of the MEMBERINTERFACE variable to before mixmonitor.

Issue 10671, patch by sim.

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@81924 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-07 19:53:30 +00:00
Jason Parker 00da8c6dc7 Add an optional reason parameter to PauseQueueMember/UnpauseQueueMember applications and manager events.
Issue 8738, patch by rgollent


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@81910 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-07 16:13:57 +00:00
Mark Michelson ba8c1b5243 Merged revisions 81713 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r81713 | mmichelson | 2007-09-06 11:25:40 -0500 (Thu, 06 Sep 2007) | 6 lines

Fixes an issue where valid DTMF had to be pressed twice to exit a queue if a member's phone
was ringing.

(closes issue #10655, reported by strider2k, patched by me)


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@81730 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-06 16:31:30 +00:00
Mark Michelson e9548619cf Not having this epoll specific code in wait_for_answer was causing app_queue to infinitely loop.
This makes it so it doesn't. Thanks to file for pointing out where the problem was and showing
a similar function in app_dial as an example of how to fix it.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@81632 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-05 21:59:52 +00:00
Mark Michelson 504f8a09af Weird. When I merged my changes from 1.4, they merged into the wrong function.
This should fix the build for trunk.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@81535 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-05 15:32:58 +00:00
Mark Michelson 2b60033542 Merged revisions 81525 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r81525 | mmichelson | 2007-09-05 10:19:47 -0500 (Wed, 05 Sep 2007) | 4 lines

Fixing the build...



........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@81526 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-05 15:23:57 +00:00
Mark Michelson 3d62457e96 Merged revisions 81520 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r81520 | mmichelson | 2007-09-05 10:03:22 -0500 (Wed, 05 Sep 2007) | 6 lines

Reverting behavior of QUEUE_MEMBER_COUNT to only count members who are logged in
and available.

(related to issue #10652, reported by wuwu)


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@81522 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-05 15:04:50 +00:00
Mark Michelson a748fc6647 Merged revisions 81416 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r81416 | mmichelson | 2007-08-31 14:48:55 -0500 (Fri, 31 Aug 2007) | 6 lines

Fixed broken behavior of a reload on realtime queues. Prior to this patch, if a reload was issued and
a realtime queue had callers waiting in it, then the queue would be removed from the queue list, but it would
not actually be freed (in fact, a debug message warning about a memory leak would come up). With this patch,
reloads do not touch realtime queues at all.


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@81417 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-31 19:50:26 +00:00
Mark Michelson ac9c53375f Merged revisions 81397 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r81397 | mmichelson | 2007-08-30 17:05:56 -0500 (Thu, 30 Aug 2007) | 7 lines

Removing an extraneous (and possibly misleading) log message. Firstly, if the announce file isn't found, the 
streaming functions will report it. Secondly, not all non-zero returns from play_file mean that the announce file
wasn't found. Positive return values simply mean that a digit was pressed (most likely to skip through the announcement).

(closes issue #10612, reported and patched by dimas)


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@81398 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-30 22:08:51 +00:00
Mark Michelson 2d828f3308 Merged revisions 81381 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r81381 | mmichelson | 2007-08-30 10:35:51 -0500 (Thu, 30 Aug 2007) | 3 lines

Changed some manager event messages to reflect whether a queue member is a realtime member or not


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@81382 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-30 15:36:43 +00:00
Mark Michelson 639b4aacce Added the MEMBERREALTIME variable when using setinterfacevar in queues.conf
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@81365 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-29 22:05:37 +00:00
Mark Michelson faeaff33bb Merged revisions 81349 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r81349 | mmichelson | 2007-08-29 11:35:29 -0500 (Wed, 29 Aug 2007) | 12 lines

This patch, in essence, will correctly pause a realtime queue member and reflect those
changes in the realtime engine.

(issue #10424, reported by irroot, patch by me)

This patch creates a new function called update_realtime_member_field, which is a generic
function which will allow any one field of a realtime queue member to be updated. This patch
only uses this function to update the paused status of a queue member, but it lays the foundation
for persisting the state of a realtime member the same way that static members' state is maintained
when using the persistentmembers setting


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@81350 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-29 16:39:40 +00:00
Mark Michelson b823b635ac Merged revisions 81346 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r81346 | mmichelson | 2007-08-29 11:08:09 -0500 (Wed, 29 Aug 2007) | 3 lines

Changed some tabs to spaces


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@81347 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-29 16:09:02 +00:00
Mark Michelson a9bec2f669 Merged revisions 81340 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r81340 | mmichelson | 2007-08-29 10:52:42 -0500 (Wed, 29 Aug 2007) | 8 lines

This fix creates a more accurate way of detecting whether realtime members were deleted.
(closes issue 10541, reported by Alric, patched by me)

The REALLY nice things about this patch is that queue members now have a "realtime" field
which will be true if the member is a realtime member. This means we can check this value
prior to certain processing if it should ONLY be done for realtime members.


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@81341 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-29 15:57:27 +00:00
Mark Michelson 8176c0ee7c Merged revisions 81158 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r81158 | mmichelson | 2007-08-27 17:40:19 -0500 (Mon, 27 Aug 2007) | 5 lines

Resolve a potential deadlock. In this case, a single queue is locked, then the queue list. In changethread(), the queue list is
locked, and then each individual queue is locked. Under the right circumstances, this could deadlock. As such, I have unlocked
the individual queue before locking the queue list, and then locked the queue back after the queue list is unlocked.


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@81159 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-27 22:41:00 +00:00
Mark Michelson cea7b885d9 Merged revisions 81010 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r81010 | mmichelson | 2007-08-27 09:55:44 -0500 (Mon, 27 Aug 2007) | 3 lines

Found a case where the queue's membercount is off. It does not take into account dynamic members on a reload.


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@81011 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-27 14:56:50 +00:00
Russell Bryant e5b801c419 use ast_strlen_zero
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@80896 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-25 17:49:04 +00:00
BJ Weschke eb0e0ec33f Merged revisions 80818 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r80818 | bweschke | 2007-08-24 15:52:06 -0400 (Fri, 24 Aug 2007) | 3 lines

 A minor correction to the available logic of autofill. If a queue member is paused, they're not really "available" so don't count them as such. Somewhat related to issue #10155 


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@80819 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-24 20:21:17 +00:00
Mark Michelson e9a50d1f15 Merged revisions 80049 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r80049 | mmichelson | 2007-08-20 11:17:43 -0500 (Mon, 20 Aug 2007) | 4 lines

Found a pointless ternary if. member->dynamic was set to 1 and has no opportunity to change
between then and this line, so "dynamic" will ALWAYS be output.


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@80050 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-20 16:18:55 +00:00
Tilghman Lesher 56b9568164 Don't reload a configuration file if nothing has changed.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@79747 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-16 21:09:46 +00:00
Mark Michelson 8d929d7afd Allow non-realtime queues to have realtime members
(issue #10424, reported and patched by irroot)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@79238 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-13 15:39:48 +00:00
Mark Michelson 2f88ff4599 Merged revisions 78575 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r78575 | mmichelson | 2007-08-08 09:26:36 -0500 (Wed, 08 Aug 2007) | 4 lines

Changing a bit of logic so that someone will NEVER exit the queue on timeout unless they have enabled the 'n' option.
This commit relates to issue #10320. Thanks to jfitzgibbon for detailing the idea behind this code change.


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@78590 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-08 14:34:10 +00:00
Jason Parker 1bf5335f00 Add the Ring time in the CONNECT on the queue_log and on the Manager event AgentConnect
Closes issue #10349, patch by eliel


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@77879 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-01 20:05:13 +00:00
Russell Bryant 4e0947c5f1 Convert code that checks the _softhangup member of ast_channel directory to use
the ast_check_hangup() funciton.  This function takes scheduled hangups into
account.
(closes issue #10230, patch by Juggie)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@77858 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-01 15:39:54 +00:00
Mark Michelson 04ca0b9728 Merged revisions 77854 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r77854 | mmichelson | 2007-08-01 09:08:57 -0500 (Wed, 01 Aug 2007) | 8 lines

Fixes an issue I introduced to queues wherein a queue with joinempty=yes would kick people out of the queue because of erroneously
thinking the 'n' option was in use.

(closes issue #10320, reported by jfitzgibbon, patched by me, tested by blitzrage and me)

Thank you blitzrage for all the testing you've done lately with queues! It's much appreciated!


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@77855 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-01 14:09:45 +00:00
Mark Michelson 9aee2bf6c7 Merged revisions 77852 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r77852 | mmichelson | 2007-08-01 08:59:59 -0500 (Wed, 01 Aug 2007) | 7 lines

If a queue uses dynamic realtime members, then the member list should be updated after each attempt to call the queue.
This fixes an issue where if a caller calls into a queue where no one is logged in, they would wait forever even if a member
logged in at some point.

(closes issue #10346, reported by and tested by blitzrage, patched by me)


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@77853 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-01 14:02:19 +00:00
Tilghman Lesher 20bbd09de3 Mostly cleanup of documentation to substitute the pipe with the comma, but a few other formatting cleanups, too.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@77808 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-31 01:10:47 +00:00
Russell Bryant f8483a0d04 Do a massive conversion for using the ast_verb() macro
(closes issue #10277, patches by mvanbaak)

Basically, this changes ...

if (option_verbose > 2)
   ast_verbose(VERBOSE_PREFIX_3, "Something\n");

to ...

ast_verb(3, "Something\n");


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@77299 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-26 15:49:18 +00:00
Mark Michelson c3a92f402f Merged revisions 76801 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r76801 | mmichelson | 2007-07-24 11:26:58 -0500 (Tue, 24 Jul 2007) | 13 lines

Added a membercount variable to call_queue struct which keeps track of the number of logged in members in a particular queue.
This makes it so that the 'n' option for Queue() can act properly depending on which strategy is used. If the strategy is
roundrobin, rrmemory, or ringall, we want to ring each phone once before moving on in the dialplan. However, if any other strategy is
used, we will only ring one phone since it cannot be guaranteed that a different phone will ring on subsequent attempts to ring a phone.

As a side effect of this, the QUEUE_MEMBER_COUNT dialplan function now just reads the membercount variable instead of traversing through
the member list to figure out how many members there are.

Special thanks to blitzrage for helping to test this out.

(closes issue #10127, reported by bcnit, patched by me, tested by blitzrage)


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@76804 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-24 16:42:36 +00:00
Tilghman Lesher 55b1ee298e Merge the dialplan_aesthetics branch. Most of this patch simply converts applications
using old methods of parsing arguments to using the standard macros.  However, the big
change is that the really old way of specifying application and arguments separated by
a comma will no longer work (e.g. NoOp,foo|bar).  Instead, the way that has been
recommended since long before 1.0 will become the only method available (e.g. NoOp(foo,bar).


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@76703 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-23 19:51:41 +00:00
Steve Murphy ffd49bc066 One small documentation update made to accompany 10154, the upgrading of the queue ringing to allow periodic announcments
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@76222 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-21 01:08:46 +00:00
Steve Murphy 5c6d509591 This update was supplied in 10154; to allow announcemnts if the 'r' option (ringing) is provided.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@76220 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-21 00:57:00 +00:00
Steve Murphy 7756ba6619 This repairs a 'warning: ISO C90 forbids mixed declarations and code' message that cripples my dev-mode enabled build
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@75982 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-19 22:00:59 +00:00
Mark Michelson 51fa94c6f5 Merged revisions 75978 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r75978 | mmichelson | 2007-07-19 13:59:30 -0500 (Thu, 19 Jul 2007) | 3 lines

The diff on this looks pretty big but all I did was remove a pointless if statement (always evaluates true).


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@75979 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-19 19:02:38 +00:00
Mark Michelson 3dcce46f69 Merged revisions 75969 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r75969 | mmichelson | 2007-07-19 11:26:10 -0500 (Thu, 19 Jul 2007) | 10 lines

Changes in handling return values of several functions in app_queue. This all started as a fix for issue #10008
but now includes all of the following changes:

1. Simplifying the code to handle positive return values from ast API calls.
2. Removing the background_file function.
3. The fix for issue #10008

(closes issue #10008, reported and patched by dimas)


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@75977 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-19 16:29:51 +00:00
Dwayne M. Hubbard b96fde308c Merged revisions 75658 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

................
r75658 | dhubbard | 2007-07-18 12:56:30 -0500 (Wed, 18 Jul 2007) | 9 lines

Merged revisions 75657 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r75657 | dhubbard | 2007-07-18 12:48:33 -0500 (Wed, 18 Jul 2007) | 1 line

removed the word 'pissed' from ast_log(...) function call for BE-90
........

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@75659 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-18 17:59:56 +00:00
Joshua Colp b8cd949cce Applications no longer need to call ast_module_user_add and ast_module_user_remove. This is now taken care of in the pbx_exec function outside of the application.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@75200 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-16 14:39:29 +00:00
Joshua Colp 96a646734f It is no longer required for each module that deals with a channel to call ast_module_user_hangup_all in it's unload function. The loader will automatically perform this action for it.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@75183 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-16 13:35:20 +00:00
Jason Parker 6f8294847f Merged revisions 74428 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

(closes issue #10158)
................
r74428 | qwell | 2007-07-10 14:58:53 -0500 (Tue, 10 Jul 2007) | 14 lines

Merged revisions 74427 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r74427 | qwell | 2007-07-10 14:57:20 -0500 (Tue, 10 Jul 2007) | 6 lines

Fix an issue where it was possible to have a service level of over 100%
Between the time recalc_holdtime and update_queue was called, it was possible that the call could have been hungup.
Move both additions to the same place, so this won't happen.

Issue 10158, initial patch by makoto, modified by me.

........

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@74429 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-10 20:02:05 +00:00
Jason Parker 76e2e39f77 Fix building that was broken by recent monitor.h changes. Thanks Russell for pointing this out (and pointing out what I probably did to prevent gcc from fixing it - don't ctrl-C builds)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@74272 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-10 15:07:25 +00:00
Mark Michelson ab398473a0 Merged revisions 74120 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r74120 | mmichelson | 2007-07-09 13:32:50 -0500 (Mon, 09 Jul 2007) | 6 lines

The n option for Queue should make the queue exit immediately after failure to reach any members and should not
be dependent on the timeout value passed to Queue

(closes issue #10127, reported by bcnit, repaired by me)


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@74121 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-09 18:37:09 +00:00
Russell Bryant 262dfb44cd Add Queue and DestinationChannel headers to the AgentCalled manager event
to be more like the rest of the events in this module.
(closes issue #10114, patch by kwakwaversal)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@74084 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-09 16:35:43 +00:00
Jason Parker 25b941b238 Add the ability to play an announcement to queue caller just before bridging
Issue 7479, patch by tristan_mahe.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@73549 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-05 22:23:23 +00:00
Mark Michelson 850287e46d Merged revisions 73400 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r73400 | mmichelson | 2007-07-05 10:59:41 -0500 (Thu, 05 Jul 2007) | 5 lines

Correcting a minor CLI bug I found. When issuing the queue show command, if you type
queue show and then press tab, you can continue pressing tab and it will keep auto-completing
queue names even though only 1 queue can be used as an argument.


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@73402 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-05 16:05:22 +00:00
Joshua Colp 758873a068 Merged revisions 73316 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

................
r73316 | file | 2007-07-05 10:22:13 -0300 (Thu, 05 Jul 2007) | 10 lines

Merged revisions 73315 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r73315 | file | 2007-07-05 10:19:17 -0300 (Thu, 05 Jul 2007) | 2 lines

Reset ServicelevelPerf variable back to 0 if we are unable to calculate it each time... otherwise we will get previous values. (issue #10117 reported by noriyuki)

........

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@73317 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-05 13:23:49 +00:00
Russell Bryant 8a53d595a5 Fix up the device state processing thread in app_queue so that it's not
possible for there to be entries in the queue and the thread is just sleeping
(Thanks to mmichelson for bringing the problem to my attention)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@73127 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-03 18:25:30 +00:00
Joshua Colp 7b60d29f68 Merged revisions 72328 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

................
r72328 | file | 2007-06-27 18:45:49 -0400 (Wed, 27 Jun 2007) | 10 lines

Merged revisions 72327 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r72327 | file | 2007-06-27 18:43:11 -0400 (Wed, 27 Jun 2007) | 2 lines

Fix issue where queue log events might be missing. (issue #7765 reported by mtryfoss)

........

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@72330 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-06-27 22:48:15 +00:00
Tilghman Lesher 396a37eba8 Fix trunk brokenness; also, optimize application registration
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@70610 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-06-20 23:31:08 +00:00
Steve Murphy 2462d5ab4f Cleaning up a small disaster I created earlier
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@70607 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-06-20 23:26:07 +00:00
Steve Murphy 57526b35cc As per 9228, now app_queue should have the proper machinery to do gosubs.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@70531 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-06-20 21:38:49 +00:00
Steve Murphy 866bbaa515 Via bug9228, no way to create macros via AEL, and some of the apps allow you to call macros..., I modded the apps that allow macro calls to allow gosubs calls also, to make them AEL compliant.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@70161 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-06-19 23:36:34 +00:00
Brett Bryant 7573042f95 Fixed issue where 'stop gracfeully' was hanging ...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@69807 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-06-18 22:23:51 +00:00
Russell Bryant 055d82cbce Add a massive set of changes for converting to use the ast_debug() macro.
(issue #9957, patches from mvanbaak, caio1982, critch, and dimas)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@69327 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-06-14 19:39:12 +00:00
Russell Bryant 9e0458e9f1 Completely remove all of the code related to jumping to priority n + 101. yay!
(issue #9926, caio1982)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@68970 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-06-12 15:58:28 +00:00
Russell Bryant e911f41166 Merged revisions 68280 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r68280 | russell | 2007-06-07 16:16:07 -0500 (Thu, 07 Jun 2007) | 4 lines

Fix loading persistent queue members when using realtime configuration for queues.
Also, remove an unneeded leading slash for the astdb family.
(issue #9911, patch by atis)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@68284 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-06-07 21:17:52 +00:00
Tilghman Lesher 9d05ff8ed5 Issue 9869 - replace malloc and memset with ast_calloc, and other coding guidelines changes
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@67864 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-06-06 21:20:11 +00:00
Russell Bryant 605368649e Merge major changes to the way device state is passed around Asterisk. The two
places that cared about device states were app_queue and the hint code in pbx.c.
The changes include converting it to use the Asterisk event system, as well as
other efficiency improvements.
 * app_queue: This module used to register a callback into devicestate.c to
   monitor device state changes.  Now, it is just a subscriber to Asterisk
   events with the type, device state.
 * pbx.c hints: Previously, the device state processing thread in devicestate.c
   would call ast_hint_state_changed() each time the state of a device changed.
   Then, that code would go looking for all the hints that monitor that device,
   and call their callbacks.  All of this blocked the device state processing
   thread.  Now, the hint code is a subscriber of Asterisk events with the
   type, device state.  Furthermore, when this code receives a device state
   change event, it queues it up to be processed by another thread so that it
   doesn't block one of the event processing threads.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@66958 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-06-01 23:34:43 +00:00
Russell Bryant 9b5d9279be Fix a couple of spots in the handling of device states that could lead to a
double free.  (issue #9772, reported by Mike Anikienko, fix by me)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@65375 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-05-22 12:52:03 +00:00
Russell Bryant ff73bfb7e7 I know we have talked about rewriting app_queue for Asterisk 1.6, but once I
saw this, I couldn't help myself from changing it.  Previously, for *every*
device state change, app_queue would spawn a thread to handle it.  Now, the
device state callback just puts the state change in a queue and it gets
handled by a single state change processing thread.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@65298 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-05-21 06:56:21 +00:00
Russell Bryant 3ecad89b42 Merged revisions 64868 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r64868 | russell | 2007-05-17 21:48:51 -0500 (Thu, 17 May 2007) | 5 lines

Fix a small bug I noticed while working on something else.  app_queue did not
unregister its device state monitoring callback in unload_module().  So, this
would make Asterisk crash on the first device state change after you 
unload the module.

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@64869 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-05-18 02:51:07 +00:00
Jason Parker 2d1b06faef Don't allow rounding seconds to weird values that may cause "unexpected" results.
Issue 9514.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@64263 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-05-14 18:08:54 +00:00
Jason Parker 83c00e346e Add 'c' option to app_queue which allows for continuing in the dialplan if the callee hangs up.
Issue 9284, patch by lyl, modified a little bit by me (I felt 'continue' was better than 'keepalive')


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@64243 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-05-14 17:38:36 +00:00
Russell Bryant 683417407e This patch adds additional information to the EXITWITHKEY and EXITWITHTIMEOUT
entries in the queue log.
(issue #7561, reported and originally patched by fkasumovic, patch slightly
 modified and updated to trunk by me)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@62462 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-04-30 16:46:49 +00:00
Russell Bryant 672fbc1f81 Add a min-announce-frequency option to queues.conf which allows you to control the
minimum amount of time between queue announcements for use when the caller's queue
position changes frequently.
(issue #9604, patch by Matthew Roth)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@62242 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-04-27 22:08:54 +00:00
Jason Parker 52ae7d58f7 Merged revisions 61694 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

................
r61694 | qwell | 2007-04-20 14:51:49 -0500 (Fri, 20 Apr 2007) | 13 lines

Merged revisions 61692 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r61692 | qwell | 2007-04-20 14:49:54 -0500 (Fri, 20 Apr 2007) | 5 lines

If the '* to hangup' option is not enabled, we don't need to disable * as a valid exit key.
  If it was enabled, this statement would've never been checked in the first place.

Issue #9552

........

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@61695 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-04-20 19:54:54 +00:00
Jason Parker 0cb6714ce8 Merged revisions 61022 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r61022 | qwell | 2007-04-09 14:05:48 -0500 (Mon, 09 Apr 2007) | 4 lines

Use the appropriate interface name with COMPLETECALLER.

Issue 9395.

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@61023 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-04-09 19:06:36 +00:00
Joshua Colp 9ab4327d8b Merged revisions 60762 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r60762 | file | 2007-04-08 13:04:44 -0400 (Sun, 08 Apr 2007) | 2 lines

Allow app_queue to use MONITOR_EXEC even if MONITOR_OPTIONS is not set. (issue #9495 reported by cduffy)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@60763 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-04-08 17:13:39 +00:00
Russell Bryant f0aeab730f Send a manager AgentComplete event when the agent transfers the call, in
addition to where it is already sent if either side hangs up.
(issue #9219, rgollent)
In passing, I put this code in a function so it would not be duplicated
a third time.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@58123 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-03-06 23:20:57 +00:00
Joshua Colp f95a15ed58 Merged revisions 55219 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r55219 | file | 2007-02-17 12:39:32 -0500 (Sat, 17 Feb 2007) | 2 lines

Add missing membername option to AddQueueMember documentation. (issue #9088 reported by seanbright)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@55220 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-02-17 17:41:47 +00:00
Joshua Colp 177953c8f1 We want to skip the queue if the name doesn't match the specified one, not if they *do*.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@55198 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-02-17 16:48:20 +00:00