Commit Graph

563 Commits

Author SHA1 Message Date
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