Commit Graph

791 Commits

Author SHA1 Message Date
Richard Mudgett 4c5f4fe365 Fix exception path typo in app_queue.c try_calling().
(closes issue ASTERISK-20380)
Reported by: Jeremy Pepper
Patches:
      fix-local-channel-locking.patch (license #6350) patch uploaded by Jeremy Pepper
........

Merged revisions 372624 from http://svn.asterisk.org/svn/asterisk/branches/1.8


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@372625 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-09-07 21:49:16 +00:00
Kinsey Moore 778fa24451 Ensure listed queues are not offered for completion
When using tab-completion for the list of queues on "queue reset stats"
or "queue reload {all|members|parameters|rules}", the tab-completion
listing for further queues erroneously listed queues that had already
been added to the list. The tab-completion listing now only displays
queues that are not already in the list.

(closes issue AST-963)
Reported-by: John Bigelow
........

Merged revisions 372517 from http://svn.asterisk.org/svn/asterisk/branches/1.8


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@372518 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-09-06 21:40:50 +00:00
Kinsey Moore 9ea1b864bb Ensure "rules" is tab-completable for "queue show"
Previously, tabbing at the end of "queue show" produced a list of
available queues about which information could be shown, but did not
include an alternative command, "rules", to access information about
queue rules. The "rules" item should now be shown in the list of
tab-completable items.

(closes issue AST-958)
Reported-by: John Bigelow
........

Merged revisions 372444 from http://svn.asterisk.org/svn/asterisk/branches/1.8


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@372445 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-09-06 14:29:35 +00:00
Mark Michelson 5fefc48cd8 Prevent crash on shutdown due to refcount error on queues container.
When app_queue is unloaded, the queues container has its refcount
decremented, potentially to 0. Then the taskprocessor responsible
for handling device state changes is unreferenced. If the
taskprocessor happens to be just about to run its task, then it
will create and destroy an iterator on the queues container.
This can cause the refcount on the queues container to increase to
1 and then back to 0. Going back to 0 a second time results in
double frees.

This failure was seen periodically in the testsuite when Asterisk
would shut down.
........

Merged revisions 372089 from http://svn.asterisk.org/svn/asterisk/branches/1.8


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@372090 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-08-30 20:53:09 +00:00
Mark Michelson 37fca69948 Help prevent ringing queue members from being rung when ringinuse set to no.
Queue member status would not always get updated properly when the member
was called, thus resulting in the member getting multiple calls. With this
change, we update the member's status at the time of calling, and we also
check to make sure the member is still available to take the call before
placing an outbound call.

(closes issue ASTERISK-16115)
reported by nik600
Patches:
	app_queue.c-svn-r370418.patch uploaded by Italo Rossi (license #6409)
........

Merged revisions 372048 from http://svn.asterisk.org/svn/asterisk/branches/1.8


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@372049 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-08-30 18:33:37 +00:00
Mark Michelson 9928641702 Fix misuses of asprintf throughout the code.
This fixes three main issues

* Change asprintf() uses to ast_asprintf() so that it
pairs properly with ast_free() and no longer causes
MALLOC_DEBUG to freak out.

* When ast_asprintf() fails, set the pointer NULL if
it will be referenced later.

* Fix some memory leaks that were spotted while taking
care of the first two points.

(Closes issue ASTERISK-20135)
reported by Richard Mudgett

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

Merged revisions 371590 from http://svn.asterisk.org/svn/asterisk/branches/1.8


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@371591 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-08-21 20:40:18 +00:00
Mark Michelson f82e3495bf Fix bug where final queue member would not be removed from memory.
If a static queue had realtime members, then there could be a potential
for those realtime members not to be properly deleted from memory.

If the queue's members were loaded from realtime and then all the
members were deleted from the backend, then the queue would still
think these members existed. The reason was that there was a short-
circuit in code such that if there were no members found in the
backend, then the queue would not be updated to reflect this.

Note that this only affected static queues with realtime members.
Realtime queues with realtime members were unaffected by this issue.

(closes issue ASTERISK-19793)
reported by Marcus Haas
........

Merged revisions 371306 from http://svn.asterisk.org/svn/asterisk/branches/1.8


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@371313 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-08-15 23:19:09 +00:00
Mark Michelson 9019038951 Fix a couple of documentation problems in app_queue.c
* The RemoveQueueMember app made mention of options that could
be passed in, but no options are supported. I have removed the
listing of options from the documentation.

* The RQMSTATUS variable did not list "NOTDYNAMIC" as a possible
value that could be set.

(closes issue AST-949)
reported by Steve Pitts

(closes issue AST-954)
reported by Steve Pitts
........

Merged revisions 371141 from http://svn.asterisk.org/svn/asterisk/branches/1.8


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@371142 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-08-10 21:23:52 +00:00
Richard Mudgett 5c1f7c99c2 Explicitly check caller hangup in app Queue rather than a polluted res2 value.
........

Merged revisions 369262 from http://svn.asterisk.org/svn/asterisk/branches/1.8


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@369263 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-06-22 22:09:29 +00:00
Kinsey Moore 3b4b40beb0 Fix coverity UNUSED_VALUE findings in core support level files
Most of these were just saving returned values without using them and
in some cases the variable being saved to could be removed as well.

(issue ASTERISK-19672)
........

Merged revisions 368738 from http://svn.asterisk.org/svn/asterisk/branches/1.8


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@368739 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-06-11 15:15:07 +00:00
Richard Mudgett a9c6f566ab Coverity Report: Fix issues for error type REVERSE_INULL (core modules)
* Fixes findings: 0-2,5,7-15,24-26,28-31

(issue ASTERISK-19648)
Reported by: Matt Jordan
........

Merged revisions 368039 from http://svn.asterisk.org/svn/asterisk/branches/1.8


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@368042 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-05-31 18:20:15 +00:00
Richard Mudgett a33416f735 Fix Dial I option ignored if dial forked and one fork redirects.
The Dial and Queue I option is intended to block connected line updates
and redirecting updates.  However, it is a feature that when a call is
locally redirected, the I option is disabled if the redirected call runs
as a local channel so the administrator can have an opportunity to setup
new connected line information.  Unfortunately, the Dial and Queue I
option is disabled for *all* forked calls if one of those calls is
redirected.

* Make the Dial and Queue I option apply to each outgoing call leg
independently.  Now if one outgoing call leg is locally redirected, the
other outgoing calls are not affected.

* Made Dial not pass any redirecting updates when forking calls.
Redirecting updates do not make sense for this scenario.

* Made Queue not pass any redirecting updates when using the ringall
strategy.  Redirecting updates do not make sense for this scenario.

* Fixed deadlock potential with chan_local when Dial and Queue send
redirecting updates for a local redirect.

* Converted the Queue stillgoing flag to a boolean bitfield.

(closes issue ASTERISK-19511)
Reported by: rmudgett
Tested by: rmudgett

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

Merged revisions 367678 from http://svn.asterisk.org/svn/asterisk/branches/1.8


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@367679 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-05-24 22:29:23 +00:00
Matthew Jordan 9dbc175305 Fix a variety of memory leaks
This patch addresses a number of memory leaks in a variety of modules that were
found by a static analysis tool.  A brief summary of the changes:

* app_minivm:       free ast_str objects on off nominal paths
* app_page:         free the ast_dial object if the requested channel technology
                    cannot be appended to the dialing structure
* app_queue:        if a penalty rule failed to match any existing rule list
                    names, the created rule would not be inserted and its memory
                    would be leaked
* app_read:         dispose of the created silence detector in the presence of
                    off nominal circumstances
* app_voicemail:    dispose of an allocated unique ID field for MWI event
                    un-subscribe requests in off nominal paths; dispose of
                    configuration objects when using the secret.conf option
* chan_dahdi:       dispose of the allocated frame produced by ast_dsp_process
* chan_iax2:        properly unref peer in CLI command "iax2 unregister"
* chan_sip:         dispose of the allocated frame produced by sip_rtp_read's
                    call of ast_dsp_process; free memory in parse unit tests
* func_dialgroup:   properly deref ao2 object grhead in nominal path of
                    dialgroup_read
* func_odbc:        free resultset in off nominal paths of odbc_read
* cli:              free match_list in off nominal paths of CLI match completion
* config:           free comment_buffer/list_buffer when configuration file load
                    is unchanged; free the same buffers any time they were
                    created and config files were processed
* data:             free XML nodes in various places
* enum:             free context buffer in off nominal paths
* features:         free ast_call_feature in off nominal paths of applicationmap
                    config processing
* netsock2:         users of ast_sockaddr_resolve pass in an ast_sockaddr struct
                    that is allocated by the method.  Failures in
                    ast_sockaddr_resolve could result in the users of the method
                    not knowing whether or not the buffer was allocated.  The
                    method will now not allocate the ast_sockaddr struct if it
                    will return failure.
* pbx:              cleanup hash table traversals in off nominal paths; free
                    ignore pattern buffer if it already exists for the specified
                    context
* xmldoc:           cleanup various nodes when we no longer need them
* main/editline:    various cleanup of pointers not being freed before being
                    assigned to other memory, cleanup along off nominal paths
* menuselect/mxml:  cleanup of value buffer for an attribute when that attribute
                    did not specify a value
* res_calendar*:    responses are allocated via the various *_request method
                    returns and should not be allocated in the various
                    write_event methods; ensure attendee buffer is freed if no
                    data exists in the parsed node; ensure that calendar objects
                    are de-ref'd appropriately
* res_jabber:       free buffer in off nominal path
* res_musiconhold:  close the DIR* object in off nominal paths
* res_rtp_asterisk: if we run out of ports, close the rtp socket object and free
                    the rtp object
* res_srtp:         if we fail to create the session in libsrtp, destroy the
                    temporary ast_srtp object

(issue ASTERISK-19665)
Reported by: Matt Jordan

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

Merged revisions 366880 from http://svn.asterisk.org/svn/asterisk/branches/1.8


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@366881 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-05-18 14:01:56 +00:00
Jonathan Rose 12581fed9f Coverity Report: Fix issues for error type CHECKED_RETURN for core
(issue ASTERISK-19658)
Reported by: Matt Jordan
Review: https://reviewboard.asterisk.org/r/1905/
........

Merged revisions 366094 from http://svn.asterisk.org/svn/asterisk/branches/1.8


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@366106 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-05-10 16:55:22 +00:00
Jonathan Rose 485130c92f Change default value of 'ignorebusy' on Queue members so that behavior is more like 1.8
Prior to this patch, in order to restore that behavior, a function would have
to be used on the QueueMember to make the ringinuse option do anything, which
is pretty unreasonable.

(closes issue ASTERISK-19536)
reported by: Philippe Lindheimer
Review: https://reviewboard.asterisk.org/r/1860/


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@361907 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-04-11 16:07:50 +00:00
Richard Mudgett 3fc64ea06b Add missing connected line macro calls to initial dial for Dial and Queue apps.
The connected line interception macros do not get executed when the
outgoing channel is initially created and that channel's caller-id is
implicitly imported into the incoming channel's connected line data.  If
you are using the interception macros, you would expect that they get run
for every change to a channel's connected line information outside of
normal dialplan execution.

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

Merged revisions 359609 from http://svn.asterisk.org/svn/asterisk/branches/1.8


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@359620 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-03-15 18:22:01 +00:00
Richard Mudgett 0a7d748e2c Audit of ao2_iterator_init() usage for v10. Missed one.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@353039 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-01-27 21:37:39 +00:00
Richard Mudgett 88af121f9f Audit of ao2_iterator_init() usage for v1.8.
Fixes numerous reference leaks and missing ao2_iterator_destroy() calls as
a result.

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

Merged revisions 352955 from http://svn.asterisk.org/svn/asterisk/branches/1.8


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@352956 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-01-27 18:36:43 +00:00
Matthew Jordan fa56c109a3 Realtime queues failed to load queue information without queue member table
Previously, realtime queues could be loaded without defining the queue member
table.  This allowed for queue members to be dynamic, while the realtime
queue definitions could exist in some backing storage.  Revision 342223 broke
this when it changed the return value for realtime_multientry to return NULL
when no results are returned.  Previously, an empty ast_config object was
expected.

(closes issue ASTERISK-19170)
Reported by: Rene Mendoza
Tested by: Rene Mendoza
Patches: 
  rt_queue_member_patch.diff uploaded by Matt Jordan (license 6283)
........

Merged revisions 350552 from http://svn.asterisk.org/svn/asterisk/branches/1.8


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@350553 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-01-13 16:59:02 +00:00
Richard Mudgett 5688637636 Fix crash during CDR update.
The ast_cdr_setcid() and ast_cdr_update() were shown in ASTERISK-18836 to
be called by different threads for the same channel.  The channel driver
thread and the PBX thread running dialplan.

* Add lock protection around CDR API calls that access an ast_channel
pointer.

(closes issue ASTERISK-18836)
Reported by: gpluser

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

Merged revisions 348362 from http://svn.asterisk.org/svn/asterisk/branches/1.8


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@348363 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-12-16 21:04:01 +00:00
Matthew Jordan 3d75189139 Fixed Asterisk crash when function QUEUE_MEMBER receives invalid input
The function QUEUE_MEMBER has two required parameters (queuename, option).  It
was only checking for the presence of queuename.  The patch checks for the
existence of the option parameter and provides better error logging when
invalid values are provided for the option parameter as well.

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@348211 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-12-14 21:58:12 +00:00
Jonathan Rose 1ebeb108c8 Fix regressed behavior of queue set penalty to work without specifying 'in <queuename>'
r325483 caused a regression in Asterisk 10+ that would make Asterisk segfault when
attempting to set penalty on an interface without specifying a queue in the queue set
penalty CLI command. In addition, no attempt would be made whatsoever to perform the
penalty setting on all the queues in the core list with either the cli command or the
non-segfaulting ami equivalent. This patch fixes that and also makes an attempt to
document and rename some functions required by this command to better represent what
they actually do. Oh yeah, and the use of this command without specifying a specific
queue actually works now.

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@347656 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-12-08 20:43:20 +00:00
Richard Mudgett e6be04538c Make queue log indicate if ADDMEMBER is paused for AMI and realtime.
* Add parameter to queue log ADDMEMBER to indicate if the member is
paused.

(closes issue ASTERISK-18645)
Reported by: garlew
Patches:
      paused.diff (License #5337) patch uploaded by garlew
Tested by: rmudgett, garlew

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

Merged revisions 345285 from http://svn.asterisk.org/svn/asterisk/branches/1.8


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@345290 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-11-14 22:20:25 +00:00
Richard Mudgett b2b0dfa615 Fix potential deadlock calling ast_call() with channel locks held.
Fixed app_queue.c:ring_entry() calling ast_call() with the channel locks
held.  Chan_local attempts to do deadlock avoidance in its ast_call()
callback and could deadlock if a channel lock is already held.
........

Merged revisions 344539 from http://svn.asterisk.org/svn/asterisk/branches/1.8


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@344540 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-11-10 23:01:31 +00:00
Richard Mudgett 6692a0ad9e Make AMI event AgentCalled get CallerID/ConnectedLine info from the incoming channel.
It was strange that the AgentCalled AMI event would get most of its
information from the incoming channel but then get the CallerID
information from the outgoing channel.  Before connected line support was
added, this information was always the same at this point.

(closes issue ASTERISK-18152)
Reported by: Thomas Farnham
Tested by: rmudgett
........

Merged revisions 344536 from http://svn.asterisk.org/svn/asterisk/branches/1.8


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@344537 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-11-10 22:36:47 +00:00
Terry Wilson ba2c590c18 Use int for storing ao2_container_count instad of size_t
AST-676
........

Merged revisions 342435 from http://svn.asterisk.org/svn/asterisk/branches/1.8


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@342436 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-10-25 21:10:02 +00:00
Terry Wilson 7e46d3ee91 Simplify queue membercount code
Despite an ominous sounding comment stating that membercount was for "logged
in" members only and thus we couldn't use ao2_container_count(), I could not
find a single place in the code where that seemed to be accurate. The only time
we decremented membercount was when we were marking something dead or actually
removing it. The only places we incremented it were either after ao2_link(), or
trying to correct for having set it to 0 during a reload. In every case where
we were correcting the value, it seemed that we were trying to make the count
actually match what ao2_container_count() would return. The only place I could
find where we made a determination about something being "logged in" or not, we
didn't trust the membercount, but instead looked at devicestate, paused, etc.

This patch removes membercount, replaces its use with ao2_container_count, and
manually adds the results of ao2_container_count to a "membercount" field for
ast_data queue query results. This patch also would fix AST-676, but as it is
slightly riskier than the previously committed fix, the two commits have been
made separately.

Reivew: https://reviewboard.asterisk.org/r/1541/
........

Merged revisions 342383 from http://svn.asterisk.org/svn/asterisk/branches/1.8


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@342384 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-10-25 20:04:15 +00:00
Terry Wilson 1bc124ae58 Properly update membercount for reloaded members
Since q->membercount is set to 0 before reloading, it is important
to increment it again for reloaded members as well as added.

(closes issue AST-676)

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

Merged revisions 342380 from http://svn.asterisk.org/svn/asterisk/branches/1.8


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@342381 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-10-25 19:53:13 +00:00
Gregory Nietsky 55a92b7499 queues container needs locking when using the OBJ_NOLOCK flag
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@342017 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-10-24 07:31:10 +00:00
Gregory Nietsky 05f7d0c095 Remove some ref leaks and a return without unlock.
There some resource leaks introduced in asterisk 10
make sure that locks are not held on return and we 
release ref's held.



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@341972 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-10-23 14:20:35 +00:00
Gregory Nietsky b0120e5e43 Revert Janitor patch 341920 For now
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@341922 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-10-23 11:37:03 +00:00
Gregory Nietsky ec07b6448c Whitespace Fixups / Add Braces
This janitorial patch is related to work on RB1538
........

Merged revisions 341906 from http://svn.asterisk.org/svn/asterisk/branches/1.8


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@341920 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-10-23 11:24:49 +00:00
Gregory Nietsky 3aa9147fc2 Add option to check state when state is unknown
r341486 reverts r325483 this is a rework of the patch.
optimize to minimize load.

add option check_state_unknown to control whether a member with unknown
device state is checked there is a small % chance that calls will be sent
to the member when they on a call.

app_queue will see a device with unknown state as available and does not 
try verify the state without this option enabled.

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



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@341580 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-10-20 17:13:23 +00:00
Matthew Nicholson 69d2d46275 Fix a performance regression introduced in r325483.
The regression was caused by a call to ast_parse_device_state() in app_queue's
ring_entry() function. The ast_parse_device_state() function eventually calls
ast_channel_get_full() with a channel name prefix which causes it to walk the
channel list causing massive lock contention and slow downs.

This patch fixes the regression by removing the call to
ast_parase_device_state() which should be unnecessary. Queue member device
state should be maintained by device state events. Some users have seen
instances where busy agents were called when they shouldn't have, which is the
reason the call to ast_parse_device_state() was added. That change appears to
have resolved that issue but also causes this performance regression. There may
still be issues with queue member status, and if so, alternative methods should
be investigated to resolve them.

AST-695


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@341486 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-10-19 21:23:17 +00:00
Gregory Nietsky 876cf3f78e Merged revisions 337839 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8

........
  r337839 | irroot | 2011-09-23 10:34:03 +0200 (Fri, 23 Sep 2011) | 11 lines
  
  Make sure a CDR is on the stack for call in the Queue.
  Only let update_cdr act on the last CDR in the stack.
  
  In some circumstances [Attended transfer to queue] a 
  CDR record is not inserted for this call where it should.
  
  (closes issue ASTERISK-18567)
  
  Review: https://reviewboard.asterisk.org/r/1266
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@337840 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-09-23 08:39:22 +00:00
Jonathan Rose 8285989c1c Merged revisions 336716 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8

........
  r336716 | jrose | 2011-09-19 15:07:36 -0500 (Mon, 19 Sep 2011) | 7 lines
  
  Document applications that play audio and do not answer unanswered calls.
  
  This patch is part of an effort to document early media and its usage. If you are
  interested in contributing to this documentation effort, there are probably other
  applications worth documenting as well as an Asterisk wiki article at
  https://wiki.asterisk.org/wiki/display/AST/Early+Media+and+the+Progress+Application
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@336717 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-09-19 20:16:23 +00:00
Gregory Nietsky a687f85aa5 Merged revisions 336093 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8

........
  r336093 | irroot | 2011-09-15 17:46:21 +0200 (Thu, 15 Sep 2011) | 20 lines
  
  
  Locking order in app_queue.c causes deadlocks.
  
  a channel lock must never be held with the queues container lock held.
  
  the deadlock occured on masquerade.
  
  the queues container lock is a relic of the past the old queue module lock.
  with ao2 there is no need to hold this lock when dealing with members this
  patch removes unneeded locks.
  
  (closes issue ASTERISK-18101)
  (closes issue ASTERISK-18487)
  Reported by: Paul Rolfe, Jason Legault
  Tested by: irroot, Jason Legault, Paul Rolfe
  Reviewed by: Matthew Nicholson
  
  Review: https://reviewboard.asterisk.org/r/1402/
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@336094 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-09-15 15:54:46 +00:00
Alec L Davis d1af4d4f15 Merged revisions 334620 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8

........
  r334620 | alecdavis | 2011-09-07 20:12:49 +1200 (Wed, 07 Sep 2011) | 2 lines
  
  peroid typo
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@334621 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-09-07 08:14:50 +00:00
Richard Mudgett 1a85bf60a2 Merged revisions 333010 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8

........
  r333010 | rmudgett | 2011-08-23 13:14:01 -0500 (Tue, 23 Aug 2011) | 12 lines
  
  Memory Leak in app_queue
  
  The patch that was committed in the 1.6.x versions of Asterisk for
  ASTERISK-15862 actually fixed two issues.  One was not applicable to 1.8
  but the other is.  queue_leak.patch fixes the portion applicable to 1.8.
  
  (closes issue ASTERISK-18265)
  Reported by: Fred Schroeder
  Patches:
        queue_leak.patch (license #5049) patch uploaded by mmichelson
  Tested by: Thomas Arimont
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@333011 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-08-23 18:15:49 +00:00
Richard Mudgett d3082a6e01 Merged revisions 332874 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8

........
  r332874 | rmudgett | 2011-08-22 14:32:19 -0500 (Mon, 22 Aug 2011) | 18 lines
  
  Reference leaks in app_queue.
  
  * Fixed load_realtime_queue() leaking a queue reference when it overwrites
  q when processing a realtime queue.
  (issue ASTERISK-18265)
  
  * Make join_queue() unreference the queue returned by
  load_realtime_queue() when it is done with the pointer.  The
  load_realtime_queue() returns a reference to the just loaded realtime
  queue.
  
  * Fixed queues container reference leak in queues_data_provider_get().
  
  * queue_unref() should not return q that was just unreferenced.
  
  * Made logic in __queues_show() and queues_data_provider_get() when
  calling load_realtime_queue() easier to understand.
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@332878 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-08-22 19:46:25 +00:00
Matthew Nicholson 0a1d4c7c02 Merged revisions 331774 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8

........
  r331774 | mnicholson | 2011-08-12 14:01:27 -0500 (Fri, 12 Aug 2011) | 11 lines
  
  Unlock the channel before calling update_queue.
  
  Holding the channel lock when calling update_queue which attempts to lock the
  queue lock can cause a deadlock. This deadlock involves the following chain:
  
  1. hold chan lock -> wait queue lock
  2. hold queue lock -> wait agent list lock
  3. hold agent list lock -> wait chan list lock
  4. hold chan list lock -> wait chan lock
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@331775 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-08-12 19:03:31 +00:00
Richard Mudgett ee2096fe55 Make hint watcher callback take const strings for context and exten parameters.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.10@328329 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-07-15 00:19:32 +00:00
Leif Madsen 7caa2349af Merged revisions 328209 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8

........
  r328209 | lmadsen | 2011-07-14 16:13:06 -0400 (Thu, 14 Jul 2011) | 6 lines
  
  Introduce <support_level> tags in MODULEINFO.
  This change introduces MODULEINFO into many modules in Asterisk in order to show
  the community support level for those modules. This is used by changes committed
  to menuselect by Russell Bryant recently (r917 in menuselect). More information about
  the support level types and what they mean is available on the wiki at
  https://wiki.asterisk.org/wiki/display/AST/Asterisk+Module+Support+States
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.10@328247 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-07-14 20:25:31 +00:00
Tilghman Lesher 7d179abfd4 Merged revisions 326411 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8

........
  r326411 | tilghman | 2011-07-05 17:08:29 -0500 (Tue, 05 Jul 2011) | 14 lines
  
  Add the attribute "type" to each "<use>" for menuselect.
  
  This matters only when autoconf fails to detect that weak linking is supported.
  External optional dependencies will become optional in both cases, as they are
  removed at compile time when not detected.  However, runtime-optional modules
  are made mandatory when weak linking is not found.  This change affects only
  the external optional dependencies; previously, they were incorrectly required
  when weak linking support was not detected.
  
  Patches:
  	20110702__issue18062__asterisk_trunk.diff.txt by tilghman (License #5003)
  
  Tested by: iasgoscouk
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@326412 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-07-05 22:11:40 +00:00
Richard Mudgett 4240017462 Merged revisions 325614 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8

........
  r325614 | rmudgett | 2011-06-29 13:16:45 -0500 (Wed, 29 Jun 2011) | 5 lines
  
  Fixed some error exit cleanup in app_queue.c.
  
  * Fixed error exit cleanup in app_queue.c copy_rules() and
  reload_queue_rules().
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@325616 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-06-29 18:18:00 +00:00
Richard Mudgett 54763625c6 Merged revisions 325610 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8

........
  r325610 | rmudgett | 2011-06-29 13:05:15 -0500 (Wed, 29 Jun 2011) | 18 lines
  
  Response to QueueRule manager command does not contain ActionID if it was specified.
  
  * Add ActionID support as documented for the QueueRule AMI action.
  
  * Remove documentation for ActionID with the Queues AMI action.  The
  output does not follow normal AMI response output and there is no place to
  put an ActionID header.
  
  (closes issue AST-602)
  Reported by: Vlad Povorozniuc
  Patches:
        jira_ast_602_v1.8.patch (license #5621) patch uploaded by rmudgett
  Tested by: Vlad Povorozniuc, rmudgett
  
  Review: https://reviewboard.asterisk.org/r/1295/
  
  JIRA SWP-3575
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@325611 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-06-29 18:07:26 +00:00
Gregory Nietsky f99a06d030 Commit "distrotech" app_queue changes to Trunk
* Added general option negative_penalty_invalid default off. when set
   members are seen as invalid/logged out when there penalty is negative.  
   for realtime members when set remove from queue will set penalty to -1.  
 * Added queue option autopausedelay when autopause is enabled it will be
   delayed for this number of seconds since last successful call if there
   was no prior call the agent will be autopaused immediately.
 * Added member option ignorebusy this when set and ringinuse is not   
   will allow per member control of multiple calls as ringinuse does for
   the Queue.
  
 - Mark QUEUE_MEMBER_PENALTY Deprecated it never worked for realtime members
 - QUEUE_MEMBER is now R/W supporting setting paused, ignorebusy and penalty.

(closes issue ASTERISK-17421)
(closes issue ASTERISK-17391)
Reported by: irroot
Tested by: irroot, jrose
Review: https://reviewboard.asterisk.org/r/1119/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@325483 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-06-29 06:39:26 +00:00
Richard Mudgett 67dc7a4c93 Merged revisions 322484 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8

........
  r322484 | rmudgett | 2011-06-08 15:46:55 -0500 (Wed, 08 Jun 2011) | 15 lines
  
  Ring all queue with more than 255 agents will cause crash.
  
  1. Create a ring-all queue with 500 permanent agents.
  2. Call it.
  3. Asterisk will crash.
  
  The watchers array in app_queue.c has a hard limit of 255.  Bounds
  checking is not done on this array.  No sane person should put 255 people
  in a ring-all queue, but we should not crash anyway.
  
  * Added bounds checking to the watchers array.
  
  JIRA AST-464
  JIRA SWP-2903
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@322485 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-06-08 20:48:03 +00:00
Gregory Nietsky 2cfe89a7fd Remove Unused Var Warning rt_handle_member_record
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@322128 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-06-06 19:39:25 +00:00
Gregory Nietsky cfb10e99b5 Refactor rt_handle_member_record
Review: https://reviewboard.asterisk.org/r/1172



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@322111 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-06-06 19:30:56 +00:00