summaryrefslogtreecommitdiff
path: root/apps/app_queue.c
AgeCommit message (Collapse)Author
2008-06-27Remove debug messageMark Michelson
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@125856 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-27Ensure the thread-safety of the monexec variable in app_queue.Mark Michelson
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-27Make this compile with dev-mode onMark Michelson
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@125666 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-27The monitor-join option for queues was deprecated in favor of usingMark Michelson
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-26Fix a really stupid mistakeMark Michelson
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@125591 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-26Merged revisions 125585 via svnmerge from Mark Michelson
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-26Merged revisions 125476 via svnmerge from Mark Michelson
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-19Older versions of GNU gcc do not allow 'NULL' as sentinel.Michiel van Baak
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-19Include original position in TRANSFER entries written to queue_log.Sean Bright
(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-18A portion of the code which handled the 'c' queue option had beenMark Michelson
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-18Silly pointers. This fixes a memory corruption I introducedMark Michelson
with the attended transfer logging. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@123650 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-17Merged revisions 123274 via svnmerge from Mark Michelson
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-16(closes issue #12689)Steve Murphy
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-12Fix a segfault by not trying to store a stack address forMark Michelson
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-12Recommitting revision 122228, which was accidentally revertedMark Michelson
as a result of commit 122234. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@122399 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-12Merged revisions 122311 via svnmerge from Mark Michelson
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-12Goodbye Zaptel, hello DAHDI. Removes Zaptel driver support with DAHDI. ↵Jeff Peeler
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-12Merging the work done in the queue-log-atxfer branch. TheMark Michelson
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-10Merge another big set of changes from team/russell/eventsRussell Bryant
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-09Expand RQ_INTEGER type out to multiple types, one for each precisionTilghman Lesher
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@121367 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-05Merge the adaptive realtime branch, which will make adding new required fieldsTilghman Lesher
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-04Merged revisions 120513 via svnmerge from Mark Michelson
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-04Merged revisions 120285 via svnmerge from Mark Michelson
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-03Adding two new queue log events. The ADDMEMBER event is logged whenMark Michelson
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-05-30Merged revisions 119404 via svnmerge from Tilghman Lesher
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-28Update to the janitor project for making sure to be thread-safe whenMark Michelson
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-22- revert change to ast_queue_hangup and create ast_queue_hangup_with_causeMichiel van Baak
- 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-22Committing a fix pointed out by Atis Lezdins on the asterisk-dev list. Thanks!Mark Michelson
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@117794 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-05-21Add a new manager event, AgentRingNoAnswer toMark Michelson
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-21Optimize the update_realtime_member_field function by not havingMark Michelson
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-12Correctly document state interface for AddQueueMember. Discovered while ↵Jason Parker
looking at issue #12626. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@115705 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-05-05Merged revisions 115320 via svnmerge from Mark Michelson
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-03app_queue uses a taskprocessor for device state changesDwayne M. Hubbard
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@115270 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-05-01Modify TIMEOUT() to be accurate down to the millisecond.Tilghman Lesher
(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-04-30Adding new configuration options to app_queue. This adds two new valuesMark Michelson
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-29Merged revisions 114848 via svnmerge from Mark Michelson
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-25Whitespace changes onlyTilghman Lesher
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@114667 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-04-24Pass the hangup cause all the way to the calling app/channel.Michiel van Baak
(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-24Merged revisions 114628 via svnmerge from Mark Michelson
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-22Allow setqueuevar=yes (et al) to work, after changes to pbx_builtin_setvar()Jason Parker
(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-15Merged revisions 114133 via svnmerge from Jason Parker
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-14Merged revisions 114112 via svnmerge from Mark Michelson
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-09Fix a crash that happened due to accessing free'd memoryMark Michelson
(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-02Merged revisions 112393 via svnmerge from Mark Michelson
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-03-28Forgetting to unregister a manager action is bad, mmmk?Joshua Colp
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@111565 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-03-28Fix a crash that would happen when attempting to unload the app_queue module.Mark Michelson
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-18Merged revisions 109713 via svnmerge from Mark Michelson
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-18Add option 'randomperiodicannounce' to queues.conf. Setting this willMark Michelson
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-18Go through and fix a bunch of places where character strings were being ↵Terry Wilson
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-10app_queue has now been doxygenified thanks to snuffy! The ony thing I changedMark Michelson
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