Commit Graph

3356 Commits

Author SHA1 Message Date
Mark Michelson
e04e940a71 Merged revisions 173396 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r173396 | mmichelson | 2009-02-04 11:44:48 -0600 (Wed, 04 Feb 2009) | 3 lines

Revert my previous change because it was stupid


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@173397 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-04 17:45:14 +00:00
Mark Michelson
668f9f4e31 Merged revisions 173392 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r173392 | mmichelson | 2009-02-04 11:40:29 -0600 (Wed, 04 Feb 2009) | 3 lines

Add a missing unlock. Extremely unlikely to ever matter, but it's needed.


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@173393 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-04 17:41:02 +00:00
Tilghman Lesher
e179e613f7 1. Make OS X compile cleanly with app_stack.
2. Use curl to download sound files, as curl is installed natively on OS X,
whereas wget and fetch are not.
(closes issue #14332)
 Reported by: oej
 Tested by: Corydon76


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@173130 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-03 00:29:49 +00:00
Steve Murphy
53d9b77898 This reverts the changes I made for 11583; will
reviewboard this before committing again...
reopened 11583 until all Russell's issues are
resolved.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@172929 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-02 19:02:24 +00:00
Steve Murphy
c61e8a7865 This change allows the disconnect feature (as in "one-touch" in features.c)
to be used within the dial app, before a call is bridged.

Many thanks to sobomax for submitting this patch. 

Quoting from bug 11582:

  "So the goal of the patch was to use the user configured feature code during the 
   call setup phase. The original ast_feature_interpret() function is not well suited 
   for this purpose as it uses much call bridge specific data and doesn't separate a 
   detection of feature from a feature handler call. So a new function ast_feature_detect() 
   has been extracted off the ast_feature_interpret() function but keeping the original 
   logic intact except some insignificant changes to locking.

  "Having created the ast_feature_detect() function the possibility to use feature detection 
   in almost any place of the asterisk code. So a call to this function has been added to 
   wait_for_answer() function of app_dial.so module. This code doesn't call the feature handler 
   however and uses old call leg disconnect logic to make the changes as small and simple as 
   possible to prevent unexpected problems. A disconnect feature currently is the only one 
   supported during call setup as other features as call parking and call transfer don't make much 
   sense during call setup. However if need in some of the features would arise it is much easier to 
   implement as the infrastructure changes are already in place with this patch."

I have cleaned up the patch somewhat, and verified that the existing functionality is not
harmed, and that the new functionality works. Terry has committed his stuff, and there were
no conflicts (see 14274).

(closes issue #11583)
Reported by: sobomax
Patches:
      patch-apps__app_dial.c uploaded by sobomax (license 359)
      patch-include__asterisk__features.h uploaded by sobomax (license 359)
      patch-res__res_features.c uploaded by sobomax (license 359)
      enable-features-during-call-setup.diff uploaded by sobomax (license 359)
      11583.newdiff uploaded by murf (license 17)
      enable-features-during-call-setup-1.diff uploaded by sobomax (license 359)
      11583.latest-patch uploaded by murf (license 17)
Tested by: sobomax, murf




git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@172890 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-02 17:37:15 +00:00
Tilghman Lesher
317e4e7313 Blank argument crashes Asterisk
(closes issue #14377)
 Reported by: amorsen


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@172741 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-01 02:44:23 +00:00
Terry Wilson
8d782f96b8 Merged revisions 172517 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r172517 | twilson | 2009-01-30 11:47:41 -0600 (Fri, 30 Jan 2009) | 37 lines
  
  Fix feature inheritance with builtin features
  
  When using builtin features like parking and transfers, the AST_FEATURE_* flags
  would not be set correctly for all instances when either performing a builtin
  attended transfer, or parking a call and getting the timeout callback.  Also,
  there was no way on a per-call basis to specify what features someone should
  have on picking up a parked call (since that doesn't involve the Dial() command).
  There was a global option for setting whether or not all users who pickup a
  parked call should have AST_FEATURE_REDIRECT set, but nothing for DISCONNECT,
  AUTOMON, or PARKCALL.
  
  This patch:
  1) adds the BRIDGE_FEATURES dialplan variable which can be set either in the
  dialplan or with setvar in channels that support it.  This variable can be set
  to any combination of 't', 'k', 'w', and 'h' (case insensitive matching of the
  equivalent dial options), to set what features should be activated on this
  channel.  The patch moves the setting of the features datastores into the
  bridging code instead of app_dial to help facilitate this.
  
  2) adds global options parkedcallparking, parkedcallhangup, and
  parkedcallrecording to be similar to the parkedcalltransfers option for
  globally setting features.
  
  3) has builtin_atxfer call builtin_parkcall if being transfered to the parking
  extension since tracking everything through multiple masquerades, etc. is
  difficult and error-prone
  
  4) attempts to fix all cases of return calls from parking and completed builtin
  transfers not having the correct permissions
  (closes issue #14274)
  Reported by: aragon
  Patches: 
        fix_feature_inheritence.diff.txt uploaded by otherwiseguy (license 396)
  Tested by: aragon, otherwiseguy
  
  Review http://reviewboard.digium.com/r/138/
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@172580 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-01-30 21:29:12 +00:00
Tilghman Lesher
80f91f6ab7 Merged revisions 172438 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r172438 | tilghman | 2009-01-29 16:54:29 -0600 (Thu, 29 Jan 2009) | 9 lines
  
  Lose the CAP_NET_ADMIN at every fork, instead of at startup.  Otherwise, if
  Asterisk runs as a non-root user and the administrator does a 'restart now',
  Asterisk loses the ability to set QOS on packets.
  (closes issue #14004)
   Reported by: nemo
   Patches: 
         20090105__bug14004.diff.txt uploaded by Corydon76 (license 14)
   Tested by: Corydon76
........


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



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@172318 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-01-29 17:08:22 +00:00
Steve Murphy
268ac221a2 Merged revisions 172030 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r172030 | murf | 2009-01-28 11:51:16 -0700 (Wed, 28 Jan 2009) | 46 lines
  
  This patch fixes h-exten running misbehavior in manager-redirected 
  situations.
  
  What it does:
  1. A new Flag value is defined in include/asterisk/channel.h,
   AST_FLAG_BRIDGE_HANGUP_DONT, which used as a messenge to the
   bridge hangup exten code not to run the h-exten there (nor
   publish the bridge cdr there). It will done at the pbx-loop
   level instead.
  2. In the manager Redirect code, I set this flag on the channel
   if the channel has a non-null pbx pointer. I did the same for the
   second (chan2) channel, which gets run if name2 is set...
   and the first succeeds.
  3. I restored the ending of the cdr for the pbx loop h-exten
   running code. Don't know why it was removed in the first place.
  4. The first attempt at the fix for this bug was to place code
     directly in the async_goto routine, which was called from a
     large number of places, and could affect a large number of
     cases, so I tested that fix against a fair number of transfer
     scenarios, both with and without the patch. In the process,
     I saw that putting the fix in async_goto seemed not to affect
     any of the blind or attended scenarios, but still, I was
     was highly concerned that some other scenarios I had not tested
     might be negatively impacted, so I refined the patch to 
     its current scope, and jmls tested both. In the process, tho,
     I saw that blind xfers in one situation, when the one-touch
     blind-xfer feature is used by the peer, we got strange 
     h-exten behavior.  So, I  inserted code to swap CDRs and
     to set the HANGUP_DONT field, to get uniform behavior.
  5. I added code to the bridge to obey the HANGUP_DONT flag,
     skipping both publishing the bridge CDR, and running
     the h-exten; they will be done at the pbx-loop (higher)
     level instead.
  6. I removed all the debug logs from the patch before committing.
  7. I moved the AUTOLOOP set/reset in the h-exten code in res_features
     so it's only done if the h-exten is going to be run. A very
     minor performance improvement, but technically correct.
  
  
  (closes issue #14241)
  Reported by: jmls
  Patches:
        14241_redirect_no_bridgeCDR_or_h_exten_via_transfer uploaded by murf (license 17)
  Tested by: murf, jmls
........


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



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

To fix this problem, there are two measures taken

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

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



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@171618 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-01-27 19:30:54 +00:00
Sean Bright
ec5aa59105 Merged revisions 170979 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r170979 | seanbright | 2009-01-25 08:33:20 -0500 (Sun, 25 Jan 2009) | 9 lines
  
  Resolve a logic error that was causing Page() to crash when more than one
  channel was specified.
  
  (closes issue #14308)
  Reported by: bluefox
  Patches:
        20090124__bug14308.diff.txt uploaded by seanbright (license 71)
  Tested by: kc0bvu
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@170980 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-01-25 13:35:48 +00:00
Joshua Colp
665bba38f1 Merged revisions 170568 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r170568 | file | 2009-01-23 15:06:54 -0400 (Fri, 23 Jan 2009) | 4 lines
  
  When a call is forwarded stop any active indications. The new channel will provide an indication, if need be, itself.
  (closes issue #14310)
  Reported by: RadicAlish
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@170569 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-01-23 19:09:18 +00:00
Joshua Colp
fcf4d42cde Reset the ast_str used for escape substitution. We need to do this since it is a thread local variable that may contain the value of a previous substitution.
(closes issue #14312)
Reported by: pj


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@170498 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-01-23 17:32:26 +00:00
Joshua Colp
f6f5197e63 Merged revisions 170147 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r170147 | file | 2009-01-22 12:50:54 -0400 (Thu, 22 Jan 2009) | 4 lines
  
  If we are unable to request a DAHDI pseudo channel and we are using the user introduction without review option make sure it gets unset so other code does not blindly assume a DAHDI pseudo channel exists.
  (closes issue #14282)
  Reported by: cheesegrits
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@170148 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-01-22 16:52:21 +00:00
Joshua Colp
9ee6a741dc Clear the autoloop flag when parsing and setting the context/extension/priority to go back to. When the channel executes a PBX again we want it to start out at the point we explicitly say and at that point it will not yet be doing autoloop.
(closes issue #14304)
Reported by: jcovert


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

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

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



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



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@169574 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-01-20 21:57:24 +00:00
Tilghman Lesher
071301029c Merged revisions 169364 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r169364 | tilghman | 2009-01-19 13:49:25 -0600 (Mon, 19 Jan 2009) | 4 lines
  
  Truncate userevents at the end of a line, when the command exceeds the buffer.
  (closes issue #14278)
   Reported by: fnordian
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@169365 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-01-19 20:05:52 +00:00
Tilghman Lesher
3728c3aa92 Merged revisions 168828 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r168828 | tilghman | 2009-01-16 12:41:35 -0600 (Fri, 16 Jan 2009) | 6 lines
  
  Fix the conjugation of Russian and Ukrainian languages.
  (related to issue #12475)
   Reported by: chappell
   Patches: 
         vm_multilang.patch uploaded by chappell (license 8)
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@168832 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-01-16 18:49:09 +00:00
Kevin P. Fleming
9a7efae8fd remove the PBX_ODBC logic from the configure script, and add GENERIC_ODCB logic that includes copying the relevant LIB and INCLUDE data from either UnixODBC or iODBC, based on which was found; if both were found, prefer UnixODBC
this stops modules from being linked against both sets of libraries on systems that have both installed



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@168734 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-01-15 20:18:53 +00:00
Sean Bright
fcb69e6f9d Add a missing unlock and properly handle the 'maxusers' setting on MeetMe
conferences.  We were using the 'user number' field to compare against the
maximum allowed users, which works assuming users with lower user numbers
didn't leave the conference.

(closes issue #14117)
Reported by: sergedevorop
Patches:
      20090114__bug14117-2.diff.txt uploaded by seanbright (license 71)
Tested by: sergedevorop


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

EDV-102


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

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

Fix some crashes from bad datastore handling in app_queue.c

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

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

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


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@168629 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-01-15 00:14:17 +00:00
Steve Murphy
a474341105 Merged revisions 168608 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r168608 | murf | 2009-01-14 12:34:35 -0700 (Wed, 14 Jan 2009) | 1 line
  
  app_page was failing to compile in dev-mode on my gcc-4.2.4 system. This change gets rid of the warning.
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@168613 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-01-14 20:51:26 +00:00
Terry Wilson
2015f9c980 Merged revisions 168593 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r168593 | twilson | 2009-01-13 19:27:18 -0600 (Tue, 13 Jan 2009) | 20 lines
  
  Don't overflow when paging more than 128 extensions
  
  The number of available slots for calls in app_page was hardcoded to 128.
  Proper bounds checking was not in place to enforce this limit, so if more than
  128 extensions were passed to the Page() app, Asterisk would crash.  This patch
  instead dynamically allocates memory for the ast_dial structures and removes
  the (non-functional) arbitrary limit.
  
  This issue would have special importance to anyone who is dynamically creating
  the argument passed to the Page application and allowing more than 128
  extensions to be added by an outside user via some external interface.
  
  The patch posted by a_villacis was slightly modified for some coding guidelines
  and other cleanups.  Thanks, a_villacis!
  (closes issue #14217)
  Reported by: a_villacis
  Patches: 
        20080912-asterisk-app_page-fix-buffer-overflow.patch uploaded by a (license 660)
  Tested by: otherwiseguy
........


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

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



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@168579 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-01-13 22:30:59 +00:00
Russell Bryant
ef6ad2b53c Merged revisions 168561 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r168561 | russell | 2009-01-13 13:13:05 -0600 (Tue, 13 Jan 2009) | 2 lines

Revert unnecessary indications API change from rev 122314

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@168562 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-01-13 19:22:13 +00:00
Olle Johansson
64e564aa55 Better to use the proper app name
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@168497 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-01-12 16:31:27 +00:00
Terry Wilson
1253c8aa0d Set ORIGINATE_STATUS instead of OUTGOING_STATUS to match the documentation
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@167973 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-01-09 01:15:43 +00:00
Terry Wilson
c37aa68d77 Set peer context and exten values so MACRO_EXTEN and MACRO_CONTEXT will be set
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@167935 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-01-09 00:13:12 +00:00
Tilghman Lesher
6dbe101045 Fix variables to comply with documentation changes
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@167837 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-01-08 21:40:28 +00:00
Tilghman Lesher
31a3307245 Textual changes, consistency in status variable naming, and other minor bugs.
(closes issue #13943)
 Reported by: Marquis
 Patches: 
       minivm_trunk_fixes3.patch uploaded by Marquis (license 32)


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

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



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@167792 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-01-08 19:48:42 +00:00
BJ Weschke
3a4e3df193 Answer the channel if it has not already been answered and we've already found a valid profile for followme.
(closes issue #14140)
 Reported by: dimas
 Patches:
       14140.patch uploaded by dimas



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

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



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

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

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

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

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@166665 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-23 18:13:49 +00:00
Eliel C. Sardanons
340d22ab39 Fix the XML documentation for Record().
<value> tags inside <variable> elements must have CDATA and no
another XML node.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@165954 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-19 18:20:46 +00:00
Russell Bryant
37d8f255e4 Merged revisions 165889 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r165889 | russell | 2008-12-19 09:03:02 -0600 (Fri, 19 Dec 2008) | 9 lines

Ensure that the chanspy datastore is fully initialized.

This patch resolved some random crash issues observed by a user on a BSD system

(closes issue #14111)
Reported by: ys
Patches:
      app_chanspy.c.diff uploaded by ys (license 281)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@165890 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-19 15:05:09 +00:00
Tilghman Lesher
a117714b88 Merged revisions 165767 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r165767 | tilghman | 2008-12-18 15:14:47 -0600 (Thu, 18 Dec 2008) | 8 lines
  
  Add mutexes around accesses to the IMAP library interface.  This prevents
  certain crashes, especially when shared mailboxes are used.
  (closes issue #13653)
   Reported by: howardwilkinson
   Patches: 
         asterisk-1.4.21.2-appvoicemail-sharedimap-lock.patch uploaded by howardwilkinson (license 590)
   Tested by: jpeeler
........


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


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@165792 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-18 21:21:44 +00:00
Russell Bryant
50a25ac847 Remove the need for AST_PBX_KEEPALIVE with the GoSub option from Dial.
This is part of an effort to completely remove AST_PBX_KEEPALIVE and other
similar return codes from the source.  While this usage was perfectly safe,
there are others that are problematic.  Since we know ahead of time that
we do not want to PBX to destroy the channel, the PBX API has been changed
so that information can be provided as an argument, instead, thus removing
the need for the KEEPALIVE return value.

Further changes to get rid of KEEPALIVE and related code is being done by
murf.  There is a patch up for that on review 29.

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@165723 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-18 19:33:42 +00:00
Tilghman Lesher
665b55e6f8 Fix 2 resource leaks and fix another pipe-to-comma conversion
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@165658 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-18 18:36:48 +00:00
Russell Bryant
9e3ecac5ab Add a \todo note for app_originate.
Jared Smith suggested that we add a way to be able to set variables
and functions on the outbound channel.  I think that it's a great idea, so I
have added it as a todo so that it gets done at some point.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@165469 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-18 14:23:22 +00:00
Russell Bryant
aecde42abb Add a new application, Originate.
(closes issue #14075)
Reported by: rcasas
Patches:
      app_originate.c uploaded by rcasas (license 641), heavily modified by me
Tested by: russell
Review: http://reviewboard.digium.com/r/95/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@165433 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-18 13:33:34 +00:00
Tilghman Lesher
08ae164b58 Add RECORD_STATUS variable, as requested on the -users list.
Patch by me (license 14)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@165397 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-17 23:39:48 +00:00
Mark Michelson
7c1bd94231 Fix the build
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@165326 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-17 21:29:30 +00:00
Tilghman Lesher
6c521ba21f Oops, broke trunk
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@165325 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-17 21:28:51 +00:00
Tilghman Lesher
f09b0b3a83 Merged revisions 165317 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r165317 | tilghman | 2008-12-17 15:14:37 -0600 (Wed, 17 Dec 2008) | 4 lines
  
  Reverse the fix from issue #6176 and add proper handling for that issue.
  (Closes issue #13962, closes issue #13363)
  Fixed by myself (license 14)
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@165319 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-17 21:18:57 +00:00