Commit Graph

267 Commits

Author SHA1 Message Date
Tilghman Lesher
b5e1442f4c Merged revisions 237406 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
  r237406 | tilghman | 2010-01-04 12:28:28 -0600 (Mon, 04 Jan 2010) | 23 lines
  
  Merged revisions 237405 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r237405 | tilghman | 2010-01-04 12:19:00 -0600 (Mon, 04 Jan 2010) | 16 lines
    
    Add a flag to disable the Background behavior, for AGI users.
    This is in a section of code that relates to two other issues, namely
    issue #14011 and issue #14940), one of which was the behavior of
    Background when called with a context argument that matched the current
    context.  This fix broke FreePBX, however, in a post-Dial situation.
    Needless to say, this is an extremely difficult collision of several
    different issues.  While the use of an exception flag is ugly, fixing all
    of the issues linked is rather difficult (although if someone would like
    to propose a better solution, we're happy to entertain that suggestion).
    (closes issue #16434)
     Reported by: rickead2000
     Patches: 
           20091217__issue16434.diff.txt uploaded by tilghman (license 14)
           20091222__issue16434__1.6.1.diff.txt uploaded by tilghman (license 14)
     Tested by: rickead2000
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@237408 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-01-04 18:30:44 +00:00
Tilghman Lesher
ae34805b65 Merged revisions 225360 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
  r225360 | tilghman | 2009-10-22 12:11:23 -0500 (Thu, 22 Oct 2009) | 11 lines
  
  Merged revisions 225105 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r225105 | tilghman | 2009-10-21 11:02:12 -0500 (Wed, 21 Oct 2009) | 4 lines
    
    Fix documentation for ast_softhangup() and correct the misuse thereof.
    (closes issue #16103)
     Reported by: majorbloodnok
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@225362 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-10-22 17:14:39 +00:00
Matthew Nicholson
3dbbef0acc Merged revisions 219139 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
  r219139 | mnicholson | 2009-09-17 10:18:01 -0500 (Thu, 17 Sep 2009) | 17 lines
  
  Merged revisions 219136 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r219136 | mnicholson | 2009-09-17 09:58:39 -0500 (Thu, 17 Sep 2009) | 10 lines
    
    Prevent a potential race condition and crash when hanging up a channel by removing the channel from the channel list before begining channel tear down.
    
    This fix may potentially cause problems with CDR backends that access the channel a CDR is associated with via the channel list.  This fix makes the channel unavabile at the time when the CDR backend is invoked.  This has been documented in include/asterisk/cdr.h.
    
    (closes issue #15316)
    Reported by: vmarrone
    Tested by: mnicholson
    
    Review: https://reviewboard.asterisk.org/r/362/
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@219199 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-09-17 15:44:14 +00:00
Kevin P. Fleming
bbfd73e692 Merged revisions 201056 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
  r201056 | kpfleming | 2009-06-16 13:54:30 -0500 (Tue, 16 Jun 2009) | 18 lines
  
  Merged revisions 200991 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r200991 | kpfleming | 2009-06-16 12:05:38 -0500 (Tue, 16 Jun 2009) | 11 lines
    
    Improve support for media paths that can generate multiple frames at once.
    
    There are various media paths in Asterisk (codec translators and UDPTL, primarily)
    that can generate more than one frame to be generated when the application calling
    them expects only a single frame. This patch addresses a number of those cases,
    at least the primary ones to solve the known problems. In addition it removes the
    broken TRACE_FRAMES support, fixes a number of bugs in various frame-related API
    functions, and cleans up various code paths affected by these changes.
    
    https://reviewboard.asterisk.org/r/175/
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@201096 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-06-16 19:42:08 +00:00
David Vossel
935853d4a3 Merged revisions 198856 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
  r198856 | dvossel | 2009-06-02 16:17:49 -0500 (Tue, 02 Jun 2009) | 10 lines
  
  Generic call forward api, ast_call_forward()
  
  The function ast_call_forward() forwards a call to an extension specified in an ast_channel's call_forward string.  After an ast_channel is called, if the channel's call_forward string is set this function can be used to forward the call to a new channel and terminate the original one.  I have included this api call in both channel.c's ast_request_and_dial() and feature.c's feature_request_and_dial().  App_dial and app_queue already contain call forward logic specific for their application and options.
  
  (closes issue #13630)
  Reported by: festr
  
  Review: https://reviewboard.asterisk.org/r/271/
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@198887 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-06-03 15:26:16 +00:00
Jeff Peeler
538fc9986c Fix broken attended transfers
The bridge was terminating immediately after the attended transfer was 
completed. The problem was because upon reentering ast_channel_bridge
nexteventts was checked to see if it was set and if so could possibly
return AST_BRIDGE_COMPLETE.
  
(closes issue #15183)
Reported by: andrebarbosa
Tested by: andrebarbosa, tootai, loloski


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@197145 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-05-27 17:21:04 +00:00
Kevin P. Fleming
1e4552ef29 Merged revisions 192318 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
  r192318 | kpfleming | 2009-05-05 12:34:19 +0200 (Tue, 05 May 2009) | 5 lines
  
  Properly account for memory allocated for channels and datastores
  
  As in previous commits, when channels are allocated (with ast_channel_alloc) or datastores are allocated (with ast_datastore_alloc) properly account for the memory being owned by the caller, instead of the allocator function itself.
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@192354 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-05-05 12:44:54 +00:00
Jeff Peeler
fc096399ea Merged revisions 190057 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
  r190057 | jpeeler | 2009-04-22 16:15:55 -0500 (Wed, 22 Apr 2009) | 9 lines
  
  Fix building of chan_h323 with gcc-3.3
  
  There seems to be a bug with old versions of g++ that doesn't allow a structure
  member to use the name list. Rename list member to group_list in ast_group_info
  and change the few places it is used.
  
  (closes issue #14790)
  Reported by: stuarth
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@190063 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-04-22 21:18:11 +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
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
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
Jeff Peeler
b3eaf3beef Merged revisions 180719 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
  r180719 | jpeeler | 2009-03-09 15:58:17 -0500 (Mon, 09 Mar 2009) | 16 lines
  
  Add Doxygen documentation for API changes from 1.6.0 to 1.6.1
  
  Copied from my review board description:
  This is a continuation of the API changes documentation started for describing
  changes between releases. Most of the API changes were pretty simple needing
  only to be brought to attention via the new "Asterisk API Changes" list.
  However, if you see anything that needs further explanation feel free to
  supplement what is there. The current method of documenting is to add (in the
  header file): \version <ver number> <description of changes> and then to add
  the function to the change list in doxyref.h on the AstAPIChanges page. I also
  made sure all the functions that were newly added were tagged with \since
  1.6.1. I think this is a good habit to start both for the historical aspect as
  well as for the future ability to easily add a "New Asterisk API" page.
  
  Review: http://reviewboard.digium.com/r/190/
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@180740 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-09 21:22:42 +00:00
Jeff Peeler
461e660582 Merged revisions 177387 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
  r177387 | jpeeler | 2009-02-19 10:45:02 -0600 (Thu, 19 Feb 2009) | 3 lines
  
  Fix another merge error from 176708
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@177389 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-19 16:46:09 +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
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
Mark Michelson
9cfdc405ed Merged revisions 172598 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
r172598 | mmichelson | 2009-01-30 16:22:04 -0600 (Fri, 30 Jan 2009) | 3 lines

Fix redefinition of flag in channel.h


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@172609 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-01-30 22:24:12 +00:00
Steve Murphy
dfb881fadf Merged revisions 172063 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
  r172063 | murf | 2009-01-28 13:31:06 -0700 (Wed, 28 Jan 2009) | 52 lines
  
  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/branches/1.6.1@172067 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-01-28 20:56:48 +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
2850729218 Merged revisions 164419 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
r164419 | mmichelson | 2008-12-15 13:51:24 -0600 (Mon, 15 Dec 2008) | 12 lines

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

........
r164416 | mmichelson | 2008-12-15 13:45:07 -0600 (Mon, 15 Dec 2008) | 4 lines

Add notes to autoservice and pbx doxygen regarding a potential
deadlock scenario so that it is avoided in the future


........

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@164421 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-15 19:52:19 +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
Kevin P. Fleming
c3347e79a5 Merged revisions 159818 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
  r159818 | kpfleming | 2008-11-29 11:57:39 -0600 (Sat, 29 Nov 2008) | 18 lines
  
  incorporates r159808 from branches/1.4:
  ------------------------------------------------------------------------
  r159808 | kpfleming | 2008-11-29 10:58:29 -0600 (Sat, 29 Nov 2008) | 7 lines
  
  update dev-mode compiler flags to match the ones used by default on Ubuntu Intrepid, so all developers will see the same warnings and errors
  
  since this branch already had some printf format attributes, enable checking for them and tag functions that didn't have them
  
  format attributes in a consistent way
  
  
  ------------------------------------------------------------------------
  
  in addition:
  
  move some format attributes from main/utils.c to the header files they belong in, and fix up references to the relevant functions based on new compiler warnings
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@159851 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-29 18:16:50 +00:00
Mark Michelson
892f98a1e6 Merged revisions 157306 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
r157306 | mmichelson | 2008-11-18 12:31:08 -0600 (Tue, 18 Nov 2008) | 20 lines

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

........
r157305 | mmichelson | 2008-11-18 12:25:55 -0600 (Tue, 18 Nov 2008) | 12 lines

Fix a crash in the end_bridge_callback of app_dial and
app_followme which would occur at the end of an attended
transfer. The error occurred because we initially stored
a pointer to an ast_channel which then was hung up due
to a masquerade.

This commit adds a "fixup" callback to the bridge_config
structure to allow for end_bridge_callback_data to be
changed in the case that a new channel pointer is needed
for the end_bridge_callback.


........

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@157308 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-18 18:32:54 +00:00
Sean Bright
839cb83ea3 Merged revisions 155554 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
r155554 | seanbright | 2008-11-08 20:27:00 -0500 (Sat, 08 Nov 2008) | 14 lines

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

........
r155553 | seanbright | 2008-11-08 20:08:07 -0500 (Sat, 08 Nov 2008) | 6 lines

Use static functions here instead of nested ones.  This requires a small
change to the ast_bridge_config struct as well.  To understand the reason
for this change, see the following post:

    http://gcc.gnu.org/ml/gcc-help/2008-11/msg00049.html

........

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@155556 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-09 01:43:14 +00:00
Terry Wilson
239f1d53bc Merged revisions 153181 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
  r153181 | twilson | 2008-10-31 13:55:33 -0500 (Fri, 31 Oct 2008) | 5 lines
  
  Recent CDR fixes moved execution of the 'h' exten into the bridging code, so variables that were set after ast_bridge_call was called would not show up in the 'h' exten.  Added a callback function to handle setting variables, etc. from w/in the bridging code.  Calls back into a nested function within the function calling ast_bridge_call
  
  (closes issue #13793)
  Reported by: greenfieldtech
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@153266 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-10-31 22:11:11 +00:00
Steve Murphy
bc73329607 Merged revisions 142676 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
r142676 | murf | 2008-09-11 22:50:48 -0600 (Thu, 11 Sep 2008) | 40 lines

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

........
r142675 | murf | 2008-09-11 22:29:34 -0600 (Thu, 11 Sep 2008) | 29 lines

Tested by: sergee, murf, chris-mac, andrew, KNK

This is a "second attempt" to restore the previous "endbeforeh" behavior
in 1.4 and up. In order to capture information concerning all the
legs of transfers in all their infinite combinations, I was forced
to this particular solution by a chain of logical necessities, the
first being that I was not allowed to rewrite the CDR mechanism from 
the ground up!

This change basically leaves the original machinery alone, which allows
IVR and local channel type situations to generate CDR's as normal, but
a channel flag can be set to suppress the normal running of the h exten.
That flag would be set by the code that runs the h exten from the
ast_bridge_call routine, to prevent the h exten from being run twice.
Also, a flag in the ast_bridge_config struct passed into ast_bridge_call
can be used to suppress the running of the h exten in that routine. This
would happen, for instance, if you use the 'g' option in the Dial app.

Running this routine 'early' allows not only the CDR() func to be used
in the h extension for reading CDR variables, but also allows them to
be modified before the CDR is posted to the backends.

While I dearly hope that this patch overcomes all problems, and 
introduces no new problems, reality suggests that surely someone
will have problems. In this case, please re-open 13251 (or 13289),
and we'll see if we can't fix any remaining issues.

** trunk note: some code to suppress the h exten being run 
from app_queue was added; for the 'continue' option available
only in trunk/1.6.x.


........

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@142678 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-09-12 05:03:09 +00:00
Sean Bright
7a636521b1 Fix this again so we can compile with shadow warnings enabled and IMAP chosen
in voicemail.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@137112 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-08-10 21:10:04 +00:00
Kevin P. Fleming
f24d7a89f5 datastore inheritance is a channel feature, so move this definition back
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@135681 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-08-05 17:05:34 +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
Tilghman Lesher
4ff527903e Code wasn't ready to be merged - see -dev list discussion
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@129307 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-07-09 03:39:59 +00:00
Olle Johansson
45e79490ba Implement flags for AGI in the channel structure so taht "show channels" and
AMI commands can display that a channel is under control of an AGI.

Work inspired by work at customer site, but paid for by Edvina AB


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@128240 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-07-05 20:54:30 +00:00
Kevin P. Fleming
da14954bdc another minor ast_channel memory size decrease... for nearly all channels, 'dialcontext' is only going to be set once during the channel's lifetime, so make it a string field instead of a char array
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@126960 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-07-01 16:16:36 +00:00
Kevin P. Fleming
af671ade7e yay for airplane ride optimizations... sort the fields in ast_channel by alignment requirements, saving 36 bytes per instance on a 64-bit platform
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@126187 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-28 15:54:04 +00:00
Russell Bryant
b6457ecf4c Merge changes from timing branch
- Convert chan_iax2 to use the timing API
 - Convert usage of timing in the core to use the timing API instead of
   using DAHDI directly
 - Make a change to the timing API to add the set_rate() function
 - change the timing core to use a rwlock
 - merge a timing implementation, res_timing_dahdi

Basic testing was successful using res_timing_dahdi


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@122523 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-13 12:45:50 +00:00
Jeff Peeler
ef3b214728 Goodbye Zaptel, hello DAHDI. Removes Zaptel driver support with DAHDI. Configuration file and dialplan backwards compatability has been put in place where appropiate. Release announcement to follow.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@122234 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-12 17:27:55 +00:00
Michiel van Baak
f1e9371da8 - revert change to ast_queue_hangup and create ast_queue_hangup_with_cause
- make data member of the ast_frame struct a named union instead of a void

Recently the ast_queue_hangup function got a new parameter, the hangupcause
Feedback came in that this is no good and that instead a new function should be created.
This I did.

The hangupcause was stored in the seqno member of the ast_frame struct. This is not very
elegant, and since there's already a data member that one should be used.
Problem is, this member was a void *.
Now it's a named union so it can hold a pointer, an uint32 and there's a padding in case someone
wants to store another type in there in the future.

This commit is so massive, because all ast_frame.data uses have to be
altered to ast_frame.data.data

Thanks russellb and kpfleming for the feedback.

(closes issue #12674)
Reported by: mvanbaak


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@117802 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-05-22 16:29:54 +00:00
Russell Bryant
08f91c1192 Merged revisions 116463 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r116463 | russell | 2008-05-14 16:32:00 -0500 (Wed, 14 May 2008) | 4 lines

Add ast_assert(), which can be used to handle fatal errors.  It is only compiled
in if dev-mode is enabled, and only aborts if DO_CRASH is defined.
(inspired by issue #12650)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@116469 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-05-14 21:40:43 +00:00
Tilghman Lesher
b5a127daac Modify TIMEOUT() to be accurate down to the millisecond.
(closes issue #10540)
 Reported by: spendergrass
 Patches: 
       20080417__bug10540.diff.txt uploaded by Corydon76 (license 14)
 Tested by: blitzrage


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@115076 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-05-01 23:06:23 +00:00
Michiel van Baak
08e674bce0 Pass the hangup cause all the way to the calling app/channel.
(closes issue #11328)
Reported by: rain
Patches:
      20071207__pass_cause_in_hangup_control_frame.diff.txt uploaded by Corydon76 (license 14)
brought up-to-date to trunk by me


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@114637 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-04-24 22:16:48 +00:00
Jeff Peeler
41fd7a6a21 (closes issue #6113)
Reported by: oej
Tested by: jpeeler

This patch implements multiple parking lots for parked calls. The default parkinglot is used by default, however setting the channel variable PARKINGLOT in the dialplan will allow use of any other configured parkinglot. See configs/features.conf.sample for more details on setting up another non-default parkinglot. Also, one can (currently) set the default parkinglot to use in the driver configuration file via the parkinglot option.

Patch initially written by oej, brought up to date and finalized by mvanbaak, and then stabilized and converted to astobj2 by me.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@114487 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-04-21 23:42:45 +00:00
Russell Bryant
835df7d30f Merged revisions 108583 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r108583 | russell | 2008-03-13 16:38:16 -0500 (Thu, 13 Mar 2008) | 11 lines

Fix another issue that was causing crashes in chanspy.  This introduces a new
datastore callback, called chan_fixup().  The concept is exactly like the
fixup callback that is used in the channel technology interface.  This callback
gets called when the owning channel changes due to a masquerade.  Before this
was introduced, if a masquerade happened on a channel being spyed on, the
channel pointer in the datastore became invalid.

(closes issue #12187)
(reported by, and lots of testing from atis)
(props to file for the help with ideas)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@108584 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-03-13 21:40:43 +00:00
Joshua Colp
e54da94808 Add a non-invasive API for application level manipulation of T38 on a channel. This uses control frames (so they can even pass across IAX2) to negotiate T38 and provided a way of getting the current status of T38 using queryoption. This should by no means cause any issues and if it does I will take responsibility for it.
(closes issue #11873)
Reported by: dimas
Patches:
      v4-t38-api.patch uploaded by dimas (license 88)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@103799 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-02-18 23:47:01 +00:00
Tilghman Lesher
26755e3882 Context tracing for channels
(closes issue #11268)
 Reported by: moy
 Patches: 
       chantrace-datastored-encapsulated-rev94934.patch uploaded by moy (license 222)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@103754 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-02-18 04:43:33 +00:00
Olle Johansson
13c62afa80 Constifying the interface to get pvt_ids in the bridge, based on
suggestion from (const char *) Kevin. Thanks!


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@101154 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-30 11:27:56 +00:00
Russell Bryant
1c74c549d7 Merged revisions 100581 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r100581 | russell | 2008-01-28 11:15:41 -0600 (Mon, 28 Jan 2008) | 9 lines

Make some deadlock related fixes.  These bugs were discovered and reported
internally at Digium by Steve Pitts.
 - Fix up chan_local to ensure that the channel lock is held before the local
   pvt lock.
 - Don't hold the channel lock when executing the timing function, as it can
   cause a deadlock when using chan_local.  This actually changes the code back
   to be how it was before the change for issue #10765.  But, I added some other
   locking that I think will prevent the problem reported there, as well.

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@100582 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-28 17:21:24 +00:00
Olle Johansson
b8aa3248ec Add a generic function to set the bridged call PVT unique id string
as a channel variable BRIDGEPVTCALLID

This is important for call tracing in log files and CDRs, so that
the SIP callID can be traced along servers.

The CHANNEL dialplan function won't work here, since the outbound
channel is gone when we need the Call-ID.

Other channel drivers may now implement the same function :-),
but this patch only supports chan_sip.so.

Inspired by (issue #11816)
Reported by: ctooley

Patch by oej



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@99644 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-22 20:35:10 +00:00
Tilghman Lesher
d4bebf6068 Document recent API addition
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@96368 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-03 21:58:52 +00:00
Russell Bryant
91ac3e9de8 fix a spelling error in a comment
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@95411 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-12-31 15:55:22 +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
Joshua Colp
46d2c050c5 Merged revisions 90548 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r90548 | file | 2007-12-03 14:40:56 -0400 (Mon, 03 Dec 2007) | 2 lines

Preserve the indication currently playing on a channel when a masquerade operation happens. (issue #BE-88)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@90550 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-12-03 18:44:16 +00:00
Mark Michelson
6b08c442c7 Adding support for the "automixmonitor" dial and queue options.
This works in much the same way as the automonitor, except that instead of using the monitor
app, it uses the mixmonitor app. By providing an 'x' or 'X' as a dial or queue option, a DTMF
sequence may be entered (as defined in features.conf) to start the one-touch mixmonitor.

This patch also introduces some new API calls to the audiohooks code for searching for an audiohook
by type and for searching for a running audiohook by type.

Big thanks to joetester for writing the initial patch, testing it and patiently waiting for it to 
be committed.

(closes issue #10185, reported and patched by xmarksthespot)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@90388 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-30 21:19:57 +00:00