Commit Graph

515 Commits

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