Commit Graph

274 Commits

Author SHA1 Message Date
Mark Michelson
128d8e31b7 Merged revisions 189278 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
  r189278 | mmichelson | 2009-04-20 09:05:27 -0500 (Mon, 20 Apr 2009) | 18 lines
  
  Merged revisions 189277 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r189277 | mmichelson | 2009-04-20 09:04:41 -0500 (Mon, 20 Apr 2009) | 12 lines
    
    Move the check for chan->fdno == -1 to after the zombie/hangup check.
    
    Many users were finding that their hung up channels were staying up and
    causing 100% CPU usage.
    
    (issue #14723)
    Reported by: seadweller
    Patches:
          14723_1-4-tip.patch uploaded by mmichelson (license 60)
    Tested by: falves11, bamby
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@189280 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-04-20 14:06:49 +00:00
Tilghman Lesher
d470a900fa Merged revisions 187599 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
  r187599 | tilghman | 2009-04-09 22:55:27 -0500 (Thu, 09 Apr 2009) | 2 lines
  
  Modify headers and macros, according to Russell's suggestions on the -dev list
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@187600 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-04-10 03:56:37 +00:00
Mark Michelson
278f2646a6 Merged revisions 186985 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
  r186985 | mmichelson | 2009-04-08 10:27:41 -0500 (Wed, 08 Apr 2009) | 30 lines
  
  Merged revisions 186984 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r186984 | mmichelson | 2009-04-08 10:26:46 -0500 (Wed, 08 Apr 2009) | 24 lines
    
    Make a couple of changes with regards to a new message printed in ast_read().
    
    "ast_read() called with no recorded file descriptor" is a new message added
    after a bug was discovered. Unfortunately, it seems there are a bunch of places
    that potentially make such calls to ast_read() and trigger this error message
    to be displayed. This commit does two things to help to make this message appear
    less.
    
    First, the message has been downgraded to a debug level message if dev mode is
    not enabled. The message means a lot more to developers than it does to end users,
    and so developers should take an effort to be sure to call ast_read only when
    a channel is ready to be read from. However, since this doesn't actually cause an
    error in operation and is not something a user can easily fix, we should not spam
    their console with these messages.
    
    Second, the message has been moved to after the check for any pending masquerades.
    ast_read() being called with no recorded file descriptor should not interfere with
    a masquerade taking place.
    
    This could be seen as a simple way of resolving issue #14723. However, I still want
    to try to clear out the existing ways of triggering this message, since I feel that
    would be a better resolution for the issue.
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@186987 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-04-08 15:28:50 +00:00
Mark Michelson
5fb82960ab Merged revisions 186833 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
  r186833 | mmichelson | 2009-04-07 18:50:56 -0500 (Tue, 07 Apr 2009) | 15 lines
  
  Merged revisions 186832 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r186832 | mmichelson | 2009-04-07 18:49:49 -0500 (Tue, 07 Apr 2009) | 8 lines
    
    Set the AST_FEATURE_WARNING_ACTIVE flag when a p2p bridge returns AST_BRIDGE_RETRY.
    
    Without this flag set, warning sounds will not be properly played to either party
    of the bridge.
    
    (closes issue #14845)
    Reported by: adomjan
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@186835 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-04-07 23:51:54 +00:00
Russell Bryant
5d677e2d39 Merged revisions 185772 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
r185772 | russell | 2009-04-01 08:48:26 -0500 (Wed, 01 Apr 2009) | 14 lines

Merged revisions 185771 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r185771 | russell | 2009-04-01 08:47:30 -0500 (Wed, 01 Apr 2009) | 6 lines

Fix a case where DTMF could bypass audiohooks.

This change fixes a situation where an audiohook that wants DTMF would not
actually get it.  This is in the code path where we end DTMF digit length
emulation while handling a NULL frame.

........

................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@185774 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-04-01 13:50:36 +00:00
Kevin P. Fleming
ad618c6c4f Merged revisions 184762 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
  r184762 | kpfleming | 2009-03-27 14:10:32 -0500 (Fri, 27 Mar 2009) | 12 lines
  
  Improve timing interface to remember which provider provided a timer
  
  The ability to load/unload timing interfaces is nice, but it means that when a timer is allocated, it may come from provider A, but later provider B becomes the 'preferred' provider. If this happens, all timer API calls on the timer that was provided by provider A will actually be handed to provider B, which will say WTF and return an error.
  
  This patch changes the timer API to include a pointer to the provider of the timer handle so that future operations on the timer will be forwarded to the proper provider.
  
  (closes issue #14697)
  Reported by: moy
  
  Review: http://reviewboard.digium.com/r/211/
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@184765 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-27 19:17:22 +00:00
Joshua Colp
baa195703b Merged revisions 183057 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
  r183057 | file | 2009-03-18 19:22:56 -0300 (Wed, 18 Mar 2009) | 6 lines
  
  Fix an issue where a T38 control frame would get dropped.
  
  If two channels were bridged together using a generic bridge the T38
  control frame would get passed up instead of being indicated on the
  other channel.
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@183067 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-18 22:28:43 +00:00
Russell Bryant
baab6e74b9 Merged revisions 182847 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
r182847 | russell | 2009-03-17 21:28:55 -0500 (Tue, 17 Mar 2009) | 52 lines

Merged revisions 182810 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r182810 | russell | 2009-03-17 21:09:13 -0500 (Tue, 17 Mar 2009) | 44 lines

Fix cases where the internal poll() was not being used when it needed to be.

We have seen a number of problems caused by poll() not working properly on 
Mac OSX.  If you search around, you'll find a number of references to using 
select() instead of poll() to work around these issues.  In Asterisk, we've 
had poll.c which implements poll() using select() internally.  However, we 
were still getting reports of problems.

vadim investigated a bit and realized that at least on his system, even 
though we were compiling in poll.o, the system poll() was still being used.  
So, the primary purpose of this patch is to ensure that we're using the 
internal poll() when we want it to be used.

The changes are:

1) Remove logic for when internal poll should be used from the Makefile.  
   Instead, put it in the configure script.  The logic in the configure 
   script is the same as it was in the Makefile.  Ideally, we would have 
   a functionality test for the problem, but that's not actually possible, 
   since we would have to be able to run an application on the _target_ 
   system to test poll() behavior.

2) Always include poll.o in the build, but it will be empty if AST_POLL_COMPAT
   is not defined.

3) Change uses of poll() throughout the source tree to ast_poll().  I feel 
   that it is good practice to give the API call a new name when we are 
   changing its behavior and not using the system version directly in all cases.
   So, normally, ast_poll() is just redefined to poll().  On systems where 
   AST_POLL_COMPAT is defined, ast_poll() is redefined to ast_internal_poll().

4) Change poll() in main/poll.c to be ast_internal_poll().

It's worth noting that any code that still uses poll() directly will work fine 
(if they worked fine before).  So, for example, out of tree modules that are 
using poll() will not stop working or anything.  However, for modules to work 
properly on Mac OSX, ast_poll() needs to be used.

(closes issue #13404)
Reported by: agalbraith
Tested by: russell, vadim

http://reviewboard.digium.com/r/198/

........

................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@182946 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-18 14:32:47 +00:00
Russell Bryant
d2f5ee0407 Merged revisions 182553 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
r182553 | russell | 2009-03-17 10:22:12 -0500 (Tue, 17 Mar 2009) | 5 lines

Tweak the handling of the frame list inside of ast_answer().

This does not change any behavior, but moves the frames from the local frame
list back to the channel read queue using an O(n) algorithm instead of O(n^2).

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@182570 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-17 15:31:14 +00:00
Kevin P. Fleming
860b5570e3 Merged revisions 182530 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
  r182530 | kpfleming | 2009-03-17 09:59:33 -0500 (Tue, 17 Mar 2009) | 2 lines
  
  correct logic flaw in ast_answer() changes in r182525
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@182533 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-17 15:00:45 +00:00
Kevin P. Fleming
4d1d39c1e7 Merged revisions 182525 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
  r182525 | kpfleming | 2009-03-17 09:38:11 -0500 (Tue, 17 Mar 2009) | 11 lines
  
  Improve behavior of ast_answer() to not lose incoming frames
  
  ast_answer(), when supplied a delay before returning to the caller, use ast_safe_sleep() to implement the delay. Unfortunately during this time any incoming frames are discarded, which is problematic for T.38 re-INVITES and other sorts of channel operations.
  
  When a delay is not passed to ast_answer(), it still delays for up to 500 milliseconds, waiting for media to arrive. Again, though, it discards any control frames, or non-voice media frames.
  
  This patch rectifies this situation, by storing all incoming frames during the delay period on a list, and then requeuing them onto the channel before returning to the caller.
  
  http://reviewboard.digium.com/r/196/
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@182527 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-17 14:39:50 +00:00
Joshua Colp
d52bcf4383 Merged revisions 182171 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
  r182171 | file | 2009-03-16 10:58:24 -0300 (Mon, 16 Mar 2009) | 7 lines
  
  Fix a memory leak in the ast_answer / __ast_answer API call.
  
  For a channel that is not yet answered this API call will wait
  until a voice frame is received on the channel before returning.
  It does this by waiting for frames on the channel and reading them
  in. The frames read in were not freed when they should have been.
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@182173 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-16 14:00:21 +00:00
Russell Bryant
e9ed2c1920 Merged revisions 181465 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
r181465 | russell | 2009-03-11 17:25:57 -0500 (Wed, 11 Mar 2009) | 2 lines

Make handling of the BRIDGE_PLAY_SOUND variable thread-safe.

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@181474 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-11 22:27:40 +00:00
Russell Bryant
846b799e5b Merged revisions 181428 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
r181428 | russell | 2009-03-11 17:14:55 -0500 (Wed, 11 Mar 2009) | 2 lines

Make handling of the BRIDGEPVTCALLID variable thread-safe.

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@181430 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-11 22:16:12 +00:00
Russell Bryant
d46ccc57ab Merged revisions 181424 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
r181424 | russell | 2009-03-11 16:49:29 -0500 (Wed, 11 Mar 2009) | 17 lines

Merged revisions 181423 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r181423 | russell | 2009-03-11 16:42:58 -0500 (Wed, 11 Mar 2009) | 9 lines

Make code that updates BRIDGEPEER variable thread-safe.

It is not safe to read the name field of an ast_channel without the channel
locked.  This patch fixes some places in channel.c where this was being done,
and lead to crashes related to masquerades.

(closes issue #14623)
Reported by: guillecabeza

........

................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@181426 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-11 22:01:46 +00:00
David Vossel
84b495160a Merged revisions 180032 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
  r180032 | dvossel | 2009-03-03 17:21:18 -0600 (Tue, 03 Mar 2009) | 14 lines
  
  app_read does not break from prompt loop with user terminated empty string
  
  In app.c, ast_app_getdata is called to stream the prompts and receive DTMF input.  If ast_app_getdata() receives an empty string caused by the user inputing the end of string character, in this case '#', it should break from the prompt loop and return to app_read, but instead it cycles through all the prompts.  I've added a return value for this special case in ast_readstring() which uses an enum I've delcared in apps.h.  This enum is now used as a return value for ast_app_getdata().
  
  (closes issue #14279)
  Reported by: Marquis
  Patches:
  	fix_app_read.patch uploaded by Marquis (license 32)
  	read-ampersanmd.patch2 uploaded by dvossel (license 671)
  Tested by: Marquis, dvossel
  Review: http://reviewboard.digium.com/r/177/
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@180080 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-03 23:39:25 +00:00
Russell Bryant
14ac305777 Merged revisions 179742 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
r179742 | russell | 2009-03-03 10:47:28 -0600 (Tue, 03 Mar 2009) | 14 lines

Merged revisions 179741 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r179741 | russell | 2009-03-03 10:45:46 -0600 (Tue, 03 Mar 2009) | 6 lines

Ensure chan->fdno always gets reset to -1 after handling a channel fd event.

Since setting fdno to -1 had to be moved, a couple of other code paths that
do process an fd event return early and do not pass through the code path
where it was moved to.  So, set it to -1 in a few other places, too.

........

................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@179744 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-03 16:48:50 +00:00
Joshua Colp
064f510266 Merged revisions 179672 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
  r179672 | file | 2009-03-03 10:40:04 -0400 (Tue, 03 Mar 2009) | 10 lines
  
  Merged revisions 179671 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r179671 | file | 2009-03-03 10:38:09 -0400 (Tue, 03 Mar 2009) | 3 lines
    
    Move where fdno is set to the default value to *after* the read callback of the channel driver is called.
    We have to do this as the underlying channel driver may need the fdno value to determine what to read.
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@179674 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-03 14:41:57 +00:00
Russell Bryant
e20075c14a Merged revisions 179609 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
r179609 | russell | 2009-03-03 07:54:41 -0600 (Tue, 03 Mar 2009) | 17 lines

Merged revisions 179608 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r179608 | russell | 2009-03-03 07:53:52 -0600 (Tue, 03 Mar 2009) | 9 lines

Make it easier to detect an improper call to ast_read().

When you call ast_waitfor() on a channel, the index into the channel fds array
that holds the file descriptor that poll() determines has input available is
stored in fdno.  This patch clears out this value after a call to ast_read()
and also reports errors if ast_read() is called without an fdno set.

From a discussion on the asterisk-dev list.

........

................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@179611 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-03 13:56:06 +00:00
Jeff Peeler
97c4d8f7aa Merged revisions 179537 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
  r179537 | jpeeler | 2009-03-02 18:01:51 -0600 (Mon, 02 Mar 2009) | 21 lines
  
  Merged revisions 179536 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r179536 | jpeeler | 2009-03-02 17:54:39 -0600 (Mon, 02 Mar 2009) | 15 lines
    
    Fix bridging regression from commit 176701
    
    This fixes a bad regression where the bridge would exit after an attended
    transfer was made. The problem was due to nexteventts getting set after the
    masquerade which caused the bridge to return AST_BRIDGE_COMPLETE.
    
    (closes issue #14315)
    Reported by: tim_ringenbach
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@179539 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-03 00:04:10 +00:00
Russell Bryant
79d21b7843 Merged revisions 179462 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
r179462 | russell | 2009-03-02 17:00:30 -0600 (Mon, 02 Mar 2009) | 16 lines

Merged revisions 179461 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r179461 | russell | 2009-03-02 16:58:18 -0600 (Mon, 02 Mar 2009) | 8 lines

Ensure that only one thread is calling ast_settimeout() on a channel at a time.

For example, with an IAX2 channel, you can have both the channel thread and the
chan_iax2 processing threads calling this function, and doing so twice at the
same time is a bad thing.

(Found in a debugging session with dvossel and mmichelson)

........

................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@179464 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-02 23:04:18 +00:00
Jeff Peeler
22dafa5396 Merged revisions 176708 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
  r176708 | jpeeler | 2009-02-17 16:08:00 -0600 (Tue, 17 Feb 2009) | 23 lines
  
  Merged revisions 176701 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r176701 | jpeeler | 2009-02-17 15:54:34 -0600 (Tue, 17 Feb 2009) | 17 lines
    
    Modify bridging to properly evaluate DTMF after first warning is played
    
    The main problem is currently if the Dial flag L is used with a warning sound,
    DTMF is not evaluated after the first warning sound. To fix this, a flag has 
    been added in ast_generic_bridge for playing the warning which ensures that if
    a scheduled warning is missed, multiple warrnings are not played back (due to a
    feature evaluation or waiting for digits). ast_channel_bridge was modified to
    store the nexteventts in the ast_bridge_config structure as that information
    was lost every time ast_channel_bridge was reentered, causing a hangup due to
    incorrect time calculations.
    
    (closes issue #14315)
    Reported by: tim_ringenbach
    
    Reviewed on reviewboard:
    http://reviewboard.digium.com/r/163/
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@176711 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-17 22:15:26 +00:00
Russell Bryant
18b14510f2 Merged revisions 176666 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
r176666 | russell | 2009-02-17 15:22:40 -0600 (Tue, 17 Feb 2009) | 16 lines

Update the timing API to have better support for multiple timing interfaces.

1) Add module use count handling so that timing modules can be unloaded.

2) Implement unload_module() functions for the timing interface modules.

3) Allow multiple timing modules to be loaded, and use the one with the
   highest priority value.

4) Report which timing module is being use in the "timing test" CLI command.

(closes issue #14489)
Reported by: russell

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

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@176675 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-17 21:24:17 +00:00
Mark Michelson
20655a3a05 Merged revisions 174945 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
  r174945 | mmichelson | 2009-02-11 16:41:01 -0600 (Wed, 11 Feb 2009) | 29 lines
  
  Fix 'd' option for app_dial and add new option to Answer application
  
  The 'd' option would not work for channel types which use RTP to transport
  DTMF digits. The only way to allow for this to work was to answer the channel
  if we saw that this option was enabled.
  
  I realized that this may cause issues with CDRs, specifically with giving false
  dispositions and answer times. I therefore modified ast_answer to take another
  parameter which would tell if the CDR should be marked answered.
  
  I also extended this to the Answer application so that the channel may be answered
  but not CDRified if desired.
  
  I also modified app_dictate and app_waitforsilence to only answer the channel if it
  is not already up, to help not allow for faulty CDR answer times.
  
  All of these changes are going into Asterisk trunk. For 1.6.0 and 1.6.1, however, all
  the changes except for the change to the Answer application will go in since we do
  not introduce new features into stable branches
  
  (closes issue #14164)
  Reported by: DennisD
  Patches:
        14164.patch uploaded by putnopvut (license 60)
  Tested by: putnopvut
  
  Review: http://reviewboard.digium.com/r/145
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@174947 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-11 22:55:16 +00:00
Joshua Colp
4a89cdc0d5 Merged revisions 174844 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
  r174844 | file | 2009-02-11 10:44:47 -0400 (Wed, 11 Feb 2009) | 10 lines
  
  Tell the device state core a change happened when a channel is freed but not a specific state.
  We need to do this because while we know that the freeing of the channel may cause something to become
  not in use we do not know this for sure. There may be another channel that is still up which would cause
  it to be in use.
  (closes issue #13238)
  Reported by: kowalma
  Patches:
        20090121__bug13238.diff.txt uploaded by Corydon76 (license 14)
  Tested by: alecdavis
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@174846 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-11 14:46:13 +00:00
Joshua Colp
c3711994a1 Merged revisions 170652 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
  r170652 | file | 2009-01-23 16:18:05 -0400 (Fri, 23 Jan 2009) | 11 lines
  
  Merged revisions 170648 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r170648 | file | 2009-01-23 16:16:39 -0400 (Fri, 23 Jan 2009) | 4 lines
    
    When a channel is answered make sure any indications currently playing stop. Usually the phone would do this but if the channel was already answered then they are being generated by Asterisk and we darn well need to stop them.
    (closes issue #14249)
    Reported by: RadicAlish
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@170664 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-01-23 20:20:38 +00:00
Mark Michelson
94c4df06b0 Merged revisions 170393 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
r170393 | mmichelson | 2009-01-23 09:44:27 -0600 (Fri, 23 Jan 2009) | 36 lines

Merged revisions 170392 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r170392 | mmichelson | 2009-01-23 09:40:39 -0600 (Fri, 23 Jan 2009) | 28 lines

Fix broken call pickup

There was a subtle change in ast_do_masquerade which
resulted in failed attempts to pickup calls. The problem
was that the value of the AST_FLAG_OUTGOING flag was
copied from the clone to the original channel. In the case
of call pickup, this meant that the AST_FLAG_OUTGOING flag
ended up being cleared on the channel that was attempting
to execute the pickup.

Because this flag was not set, when ast_read came across
an answer frame, it ignored it. The result of this was that
the calling channel was never properly answered.

This fix changes the behavior in ast_do_masquerade to set
the flags on the original channel to the union of the flags
on the clone channel. This way, if the AST_FLAG_OUTGOING
flag is set on either of the two channels involved in the
masquerade, the resulting channel will have the flag set
as well.

(closes issue #14206)
Reported by: francesco_r
Patches:
      14206.patch uploaded by putnopvut (license 60)
Tested by: francesco_r, aragon, putnopvut


........

................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@170395 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-01-23 15:51:02 +00:00
Russell Bryant
a29672060a Merged revisions 168562 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
r168562 | russell | 2009-01-13 13:22:13 -0600 (Tue, 13 Jan 2009) | 10 lines

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/branches/1.6.1@168565 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-01-13 19:35:59 +00:00
Mark Michelson
63f2d52453 Merged revisions 166569 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
r166569 | mmichelson | 2008-12-23 09:17:54 -0600 (Tue, 23 Dec 2008) | 20 lines

Merged revisions 166568 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r166568 | mmichelson | 2008-12-23 09:16:26 -0600 (Tue, 23 Dec 2008) | 12 lines

Fix a crash resulting from a datastore with inheritance but no duplicate callback

The fix for this is to simply set the newly created datastore's data pointer
to NULL if it is inherited but has no duplicate callback.

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


........

................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@166571 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-23 15:20:15 +00:00
Tilghman Lesher
9981739dd1 Merged revisions 166533 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
  r166533 | tilghman | 2008-12-22 22:32:15 -0600 (Mon, 22 Dec 2008) | 11 lines
  
  Merged revisions 166509 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r166509 | tilghman | 2008-12-22 22:05:25 -0600 (Mon, 22 Dec 2008) | 4 lines
    
    Use the integer form of condition for integer comparisons.
    (closes issue #14127)
     Reported by: andrew
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@166535 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-23 04:34:13 +00:00
Mark Michelson
7ed70a7a3f Merged revisions 166092,166095 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
r166092 | mmichelson | 2008-12-19 16:26:16 -0600 (Fri, 19 Dec 2008) | 28 lines

Adding a new dialplan function AUDIOHOOK_INHERIT

This function is being added as a method to allow for
an audiohook to move to a new channel during a channel
masquerade. The most obvious use for such a facility is
for MixMonitor when a transfer is performed. Prior to
the addition of this functionality, if a channel 
running MixMonitor was transferred by another party, then
the recording would stop once the transfer had completed.
By using AUDIOHOOK_INHERIT, you can make MixMonitor 
continue recording the call even after the transfer
has completed.

It has also been determined that since this is seen
by most as a bug fix and is not an invasive change,
this functionality will also be backported to 1.4 and
merged into the 1.6.0 branches, even though they are
feature-frozen.

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

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


........
r166095 | mmichelson | 2008-12-19 16:40:57 -0600 (Fri, 19 Dec 2008) | 5 lines

Remove the verbatim tag from the author line

I could have sworn I already did that before, though...


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@166098 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-19 23:07:33 +00:00
Russell Bryant
e74bc96b7b Merged revisions 164203 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
r164203 | russell | 2008-12-15 08:40:24 -0600 (Mon, 15 Dec 2008) | 39 lines

Merged revisions 164201 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r164201 | russell | 2008-12-15 08:31:37 -0600 (Mon, 15 Dec 2008) | 31 lines

Handle a case where a call can be bridged to a channel that is still ringing.

The issue that was reported was about a case where a RINGING channel got 
redirected to an extension to pick up a call from parking.  Once the parked 
call got taken out of parking, it heard silence until the other side answered.  
Ideally, the caller that was parked would get a ringing indication.  This patch
fixes this case so that the caller receives ringback once it comes out of 
parking until the other side answers.

The fixes are:

 - Make sure we remember that a channel was an outgoing channel when doing 
   a masquerade.  This prevents an erroneous ast_answer() call on the channel,
   which causes a bogus 200 OK to be sent in the case of SIP.

 - Add some additional comments to explain related parts of code.

 - Update the handling of the ast_channel visible_indication field.  Storing 
   values that are not stateful is pointless.  Control frames that are events 
   or commands should be ignored.

 - When a bridge first starts, check to see if the peer channel needs to be 
   given ringing indication because the calling side is still ringing.

 - Rework ast_indicate_data() a bit for the sake of readability.

(closes issue #13747)
Reported by: davidw
Tested by: russell
Review: http://reviewboard.digium.com/r/90/

........

................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@164300 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-15 16:32:10 +00:00
Joshua Colp
79d555f70c Merged revisions 163579 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
  r163579 | file | 2008-12-12 12:55:15 -0400 (Fri, 12 Dec 2008) | 4 lines
  
  Since chan_sip is callback devicestate driven do not pass in actual states, pass in unknown so we get asked. Additionally do not pass in an actual device state value in ast_setstate since the channel may be callback driven.
  (closes issue #13525)
  Reported by: pj
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@163581 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-12 16:57:04 +00:00
Russell Bryant
85ad905561 Merged revisions 163449 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
r163449 | russell | 2008-12-12 07:55:30 -0600 (Fri, 12 Dec 2008) | 34 lines

Merged revisions 163448 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r163448 | russell | 2008-12-12 07:44:08 -0600 (Fri, 12 Dec 2008) | 26 lines

Resolve issues that could cause DTMF to be processed out of order.

These changes come from team/russell/issue_12658

1) Change autoservice to put digits on the head of the channel's frame readq 
   instead of the tail.  If there were frames on the readq that autoservice 
   had not yet read, the previous code would have resulted in out of order 
   processing.  This required a new API call to queue a frame to the head 
   of the queue instead of the tail.

2) Change up the processing of DTMF in ast_read().  Some of the problems 
   were the result of having two sources of pending DTMF frames.  There 
   was the dtmfq and the more generic readq.  Both were used for pending 
   DTMF in various scenarios.  Simplifying things to only use the frame 
   readq avoids some of the problems.

3) Fix a bug where a DTMF END frame could get passed through when it 
   shouldn't have.  If code set END_DTMF_ONLY in the middle of digit emulation,
   and a digit arrived before emulation was complete, digits would get 
   processed out of order.

(closes issue #12658)
Reported by: dimas
Tested by: russell, file
Review: http://reviewboard.digium.com/r/85/

........

................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@163515 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-12 14:48:40 +00:00
Russell Bryant
39a8f051b7 Merged revisions 163171 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
r163171 | russell | 2008-12-11 14:07:47 -0600 (Thu, 11 Dec 2008) | 16 lines

Fix the "failed" extension for outgoing calls.  

The conversion to use ast_check_hangup() everywhere instead of checking the softhangup
flag directly introduced this problem.  The issue is that ast_check_hangup() checked
for tech_pvt to be NULL.  Unfortunately, this will be NULL is some valid circumstances,
such as with a dummy channel.

The fix is simple.  Don't check tech_pvt.  It's pointless, because the code path that
sets this to NULL is when the channel hangup callback gets called.  This happens inside
of ast_hangup(), which is the same function responsible for freeing the channel.  Any
code calling ast_check_hangup() better not be calling it after that point, and if so,
we have a bigger problem at hand.

(closes issue #14035)
Reported by: erogoza

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@163173 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-11 20:10:13 +00:00
Steve Murphy
9edc58f39e Merged revisions 154687 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
r154687 | murf | 2008-11-05 09:11:11 -0700 (Wed, 05 Nov 2008) | 9 lines

Merged revisions 154685 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r154685 | murf | 2008-11-05 09:06:53 -0700 (Wed, 05 Nov 2008) | 1 line

This fix was prompted by communication from user, who was seeing thousands of error logs... looks like EAGAIN. Made such uninteresting.
........

................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@154690 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-05 16:14:20 +00:00
Kevin P. Fleming
1036849a42 import gcc 4.3.2 warning fixes from trunk, with a few changes specific to this branch
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@153710 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-02 23:56:13 +00:00
Russell Bryant
50c690fb59 Merged revisions 141949 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
r141949 | russell | 2008-09-08 20:47:56 -0500 (Mon, 08 Sep 2008) | 9 lines

Modify ast_answer() to not hold the channel lock while calling ast_safe_sleep()
or when calling ast_waitfor().  These are inappropriate times to hold the channel
lock.  This is what has caused "could not get the channel lock" messages from
chan_sip and has likely caused a negative impact on performance results of SIP
in Asterisk 1.6.  Thanks to file for pointing out this section of code.

(closes issue #13287)
(closes issue #13115)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@141951 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-09-09 01:50:48 +00:00
Steve Murphy
aaff8a2a20 Merged revisions 141157 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
r141157 | murf | 2008-09-05 08:18:43 -0600 (Fri, 05 Sep 2008) | 9 lines

Merged revisions 141156 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r141156 | murf | 2008-09-05 08:15:43 -0600 (Fri, 05 Sep 2008) | 1 line

A small change to prevent double-posting of CDR's; thanks to Daniel Ferrer for bringing it to our attention
........

................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@141159 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-09-05 14:25:49 +00:00
Steve Murphy
08146f95bc Merged revisions 140692 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
r140692 | murf | 2008-09-02 16:55:12 -0600 (Tue, 02 Sep 2008) | 13 lines

Merged revisions 140690 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r140690 | murf | 2008-09-02 16:40:13 -0600 (Tue, 02 Sep 2008) | 1 line

After reconsidering, with respect to 13409, ast_cdr_detach should be OK, better in fact, than ast_cdr_free, which generates lots of useless warnings that will undoubtably generate complaints.

Hmmm. It doesn't hush the useless warnings, but it does allow control of posting via the detach and post routines, for those possible situations,
where you'd want to post single-channel cdrs.

........

................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@140695 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-09-02 23:01:35 +00:00
Steve Murphy
0c8172a97c Merged revisions 140691 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
r140691 | murf | 2008-09-02 16:50:59 -0600 (Tue, 02 Sep 2008) | 22 lines

Merged revisions 140670 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r140670 | murf | 2008-09-02 16:15:57 -0600 (Tue, 02 Sep 2008) | 14 lines

(closes issue #13409)
Reported by: tomaso
Patches:
      asterisk-1.6.0-rc2-cdrmemleak.patch uploaded by tomaso (license 564)

I basically spent the day, verifying that this patch 
solves the problem, and doesn't hurt in non-problem 
cases. Why valgrind did not plainly reveal this leak
absolutely mystifies and stuns me. 

Many, many thanks to tomaso for finding and providing the fix.



........

................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@140693 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-09-02 22:58:50 +00:00
Tilghman Lesher
fdd92290af Convert deprecated routines to the new names.
(closes issue #13297)
 Reported by: snuffy
 Patches: 
       bug13297_20080814.diff uploaded by snuffy (license 35)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@137456 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-08-13 17:36:15 +00:00
Sean Bright
790fde68d9 Another batch of files from RSW. The remaining apps and a few more
files from main/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@137089 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-08-10 20:23:50 +00:00
Sean Bright
b69c8e6ab5 Another big chunk of changes from the RSW branch. Bunch of stuff from main/
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@137082 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-08-10 19:35:50 +00:00
Mark Michelson
9b5b8246c5 Fix a calculation error I had made in the poll. The poll
would reset to 500 ms every time a non-voice frame
was received. The total time we poll should be 500 ms, so
now we save the amount of time left after the poll returned
and use that as our argument for the next call to poll



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@136633 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-08-07 19:54:27 +00:00
Mark Michelson
ed4e6bf52b Scrap the 500 ms delay when Asterisk auto-answers a channel.
Instead, poll the channel until receiving a voice frame. The
cap on this poll is 500 ms.

The optional delay is still allowable in the Answer() application,
but the delay has been moved back to its original position, after
the call to the channel's answer callback. The poll for the voice
frame will not happen if a delay is specified when calling Answer().

(closes issue #12708)
Reported by: kactus



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@136631 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-08-07 19:36:46 +00:00
Tilghman Lesher
700d4501b8 Merged revisions 135949 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r135949 | tilghman | 2008-08-05 22:53:36 -0500 (Tue, 05 Aug 2008) | 4 lines

Fix a longstanding bug in channel walking logic, and fix the explanation to
make sense.
(Closes issue #13124)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@135950 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-08-06 03:55:49 +00:00
Mark Michelson
89c2844242 Merged revisions 135841,135847,135850 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r135841 | mmichelson | 2008-08-05 19:25:10 -0500 (Tue, 05 Aug 2008) | 27 lines

Merging the issue11259 branch.

The purpose of this branch was to take into account
"burps" which could cause jitterbuffers to misbehave.
One such example is if the L option to Dial() were used
to inject audio into a bridged conversation at regular
intervals. Since the audio here was not passed through
the jitterbuffer, it would cause a gap in the jitterbuffer's
timestamps which would cause a frames to be dropped for a 
brief period.

Now ast_generic_bridge will empty and reset the jitterbuffer
each time it is called. This causes injected audio to be handled
properly.

ast_generic_bridge also will empty and reset the jitterbuffer
if it receives an AST_CONTROL_SRCUPDATE frame since the change
in audio source could negatively affect the jitterbuffer.

All of this was made possible by adding a new public API call
to the abstract_jb called ast_jb_empty_and_reset.

(closes issue #11259)
Reported by: plack
Tested by: putnopvut


........
r135847 | mmichelson | 2008-08-05 19:27:54 -0500 (Tue, 05 Aug 2008) | 4 lines

Revert inadvertent changes to app_skel that occurred when
I was testing for a memory leak


........
r135850 | mmichelson | 2008-08-05 19:29:54 -0500 (Tue, 05 Aug 2008) | 3 lines

Remove properties that should not be here


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@135851 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-08-06 00:30:53 +00:00
Steve Murphy
5eaf8450d6 Merged revisions 135799 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r135799 | murf | 2008-08-05 17:13:20 -0600 (Tue, 05 Aug 2008) | 34 lines

(closes issue #12982)
Reported by: bcnit
Tested by: murf

I discovered that also, in the previous bug fixes and changes,
the cdr.conf 'unanswered' option is not being obeyed, so
I fixed this.

And, yes, there are two 'answer' times involved in this
scenario, and I would agree with you, that the first 
answer time is the time that should appear in the CDR.
(the second 'answer' time is the time that the bridge
was begun).

I made the necessary adjustments, recording the first
answer time into the peer cdr, and then using that to
override the bridge cdr's value.

To get the 'unanswered' CDRs to appear, I purposely
output them, using the dial cmd to mark them as
DIALED (with a new flag), and outputting them if
they bear that flag, and you are in the right mode.

I also corrected one small mention of the Zap device
to equally consider the dahdi device.

I heavily tested 10-sec-wait macros in dial, and
without the macro call; I tested hangups while the
macro was running vs. letting the macro complete
and the bridge form. Looks OK. Removed all the
instrumentation and debug.



........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@135821 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-08-05 23:45:32 +00:00
Kevin P. Fleming
7df8b8b848 make datastore creation and destruction a generic API since it is not really channel related, and add the ability to add/find/remove datastores to manager sessions
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@135680 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-08-05 16:56:11 +00:00