Commit Graph

59 Commits

Author SHA1 Message Date
Jeff Peeler
676fb48b9b Merged revisions 177356 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
  r177356 | jpeeler | 2009-02-19 09:56:31 -0600 (Thu, 19 Feb 2009) | 4 lines
  
  Fix mismerge from revision 176708 pointed out by Kaloyan Kovachev on the
  asterisk-dev mailing list. Thanks!
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@177357 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-19 15:57:16 +00:00
David Vossel
48cccb7858 Merged revisions 177226 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
  r177226 | dvossel | 2009-02-18 16:51:38 -0600 (Wed, 18 Feb 2009) | 9 lines
  
  Locking issue in action_bridge and bridge_exec
  
  action_bridge() and bridge_exec() both search for the channels to bridge to, and then immediately drop the lock.  Instead, they should hold the lock until the masquerade is complete.  This will guarantee the channel remains and prevent any other weirdness from occurring.  In action_bridge() some more weirdness comes into play.  Both channels are needlessly locked at the same time and perform the exact same logic.  It makes sense from a coding organizational standpoint, but could cause a theoretical deadlock so I split the code up.  There is an issue associated with this, but since its a rather complicated thing to reproduce I'm not certain this alone will close it.
  
  issue# 14296
  Review: http://reviewboard.digium.com/r/167/
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@177227 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-18 22:55:56 +00:00
Jeff Peeler
46db811169 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.0@176710 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-17 22:14:38 +00:00
Jeff Peeler
8008dca29d Fix mistake in merging conflict from 175299.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@175301 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-12 20:59:09 +00:00
Jeff Peeler
0a72cfe440 Merged revisions 175298 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
  r175298 | jpeeler | 2009-02-12 14:48:56 -0600 (Thu, 12 Feb 2009) | 15 lines
  
  Merged revisions 175294 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r175294 | jpeeler | 2009-02-12 14:34:36 -0600 (Thu, 12 Feb 2009) | 9 lines
    
    Fix ParkedCall event information for From field in the case of a blind transfer
    
    If the parker information can not be obtained from the peer, try and see if
    the BLINDTRANSFER channel variable has been set. Previously, a blind transfer
    to the ParkAndAnnounce app would return nothing for the From.
    
    Closes AST-189
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@175299 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-12 20:50:30 +00:00
Jeff Peeler
17df1c9d13 Merged revisions 175188 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
  r175188 | jpeeler | 2009-02-12 12:00:11 -0600 (Thu, 12 Feb 2009) | 12 lines
  
  Merged revisions 175187 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r175187 | jpeeler | 2009-02-12 11:57:10 -0600 (Thu, 12 Feb 2009) | 6 lines
    
    Fix crash in event of failed attempt to transfer to parking
    
    The peer may not necessarily exist, such as in the case of a transfer to 
    ParkAndAnnounce. In this case don't try to play a sound to it.
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@175189 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-12 18:00:49 +00:00
Jeff Peeler
58d71a9470 Merged revisions 173500 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
  r173500 | jpeeler | 2009-02-04 15:17:53 -0600 (Wed, 04 Feb 2009) | 23 lines
  
  Merged revisions 173211 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r173211 | jpeeler | 2009-02-03 15:57:01 -0600 (Tue, 03 Feb 2009) | 17 lines
    
    Parking attempts made to one end of a bridge no longer will hang up due to a
    parking failure.
    
    Parking attempts made using either one-touch, or doing either a blind or 
    assisted transfer to the parking extension now keep up the bridge instead of
    hanging up the attempted parked party. Normal causes for the parking attempt
    to fail includes the specific specified extension (via PARKINGEXTEN) not being 
    available or if all the parking spaces are currently in use. To avoid having
    to reverse a masquerade park_space_reserve was made to provide foresight if
    a parking attempt will succeed and if so reserve the parking space.
    
    (closes issue #13494)
    Reported by: mdu113
    
    Reviewed by Russell: http://reviewboard.digium.com/r/133/
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@173546 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-04 23:38:54 +00:00
Terry Wilson
6aa5e4f230 Merged revisions 173067 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
  r173067 | twilson | 2009-02-02 17:57:25 -0600 (Mon, 02 Feb 2009) | 9 lines
  
  Merged revisions 173066 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r173066 | twilson | 2009-02-02 17:48:06 -0600 (Mon, 02 Feb 2009) | 2 lines
    
    Fix a feature inheritance bug I added after code review
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@173068 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-02 23:59:46 +00:00
Terry Wilson
af2b34cb56 Merged revisions 172580 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
  r172580 | twilson | 2009-01-30 15:29:12 -0600 (Fri, 30 Jan 2009) | 44 lines
  
  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/branches/1.6.0@172635 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-01-30 23:58:31 +00:00
Steve Murphy
491c4a9c68 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.0@172065 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-01-28 20:41:45 +00:00
Terry Wilson
cc34381691 Merged revisions 169510 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
  r169510 | twilson | 2009-01-20 13:22:24 -0600 (Tue, 20 Jan 2009) | 7 lines
  
  Make a proper builtin attended transfer to parking work
  
  This is an ugly hack from 1.4 that allows the timeout callback from a parked
  call to use the right channel name for the callback when the park is done with
  a builtin attended transfer (that isn't completed early).  This hasn't ever
  worked in trunk and no one has complained yet, so eh.
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@169541 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-01-20 19:29:24 +00:00
Terry Wilson
5c9043b90b Merged revisions 169486 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
  r169486 | twilson | 2009-01-20 12:48:14 -0600 (Tue, 20 Jan 2009) | 13 lines
  
  Merged revisions 169485 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r169485 | twilson | 2009-01-20 12:40:56 -0600 (Tue, 20 Jan 2009) | 6 lines
    
    Don't play audio to the channel if we've masqueraded
    
    (closes issue #14066)
    Reported by: bluefox
    Tested by: otherwiseguy, bluefox
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@169487 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-01-20 18:58:34 +00:00
Terry Wilson
d996191010 Merged revisions 168941 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
  r168941 | twilson | 2009-01-16 16:16:23 -0600 (Fri, 16 Jan 2009) | 19 lines
  
  Merged revisions 168716 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r168716 | twilson | 2009-01-15 12:22:49 -0600 (Thu, 15 Jan 2009) | 12 lines
    
    Convert call to park_call_full to masq_park_call_announce
    
    Since we removed the AST_PBX_KEEPALIVE return value, we need to use masqueraded
    parking, otherwise we will try to call ast_hangup() in __pbx_run() and in
    do_parking_thread() and then promptly crash.
    (closes issue #14215)
    	Reported by: waverly360	
    	Tested by: otherwiseguy
    (closes issue #14228)
    	Reported by: kobaz
    	Tested by: otherwiseguy
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@168980 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-01-16 22:52:03 +00:00
Steve Murphy
5d34e0df03 Merged revisions 166665 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

Due to non-symmetrical updating, I had some fairly
interesting conflicts to straighten out in this
release. The changes were such that I was compelled
to run thru all the same tests as trunk, which turned
up some problems, which I fixed. 

................
  r166665 | murf | 2008-12-23 11:13:49 -0700 (Tue, 23 Dec 2008) | 153 lines
  
  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/branches/1.6.0@166729 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-24 00:52:12 +00:00
Russell Bryant
28a97c18ee 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.0@164279 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-15 16:26:09 +00:00
Russell Bryant
2f56ece505 Merged revisions 163094 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
r163094 | russell | 2008-12-11 11:06:16 -0600 (Thu, 11 Dec 2008) | 19 lines

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

........
r163092 | russell | 2008-12-11 10:54:51 -0600 (Thu, 11 Dec 2008) | 11 lines

Fix an issue that made it so you could only have a single caller executing
a custom feature at a time.  This was especially problematic when custom
features ran for any appreciable amount of time.

The fix turned out to be quite simple.  The dynamic features are now stored
in a read/write list instead of a list using a mutex.

(closes issue #13478)
Reported by: neutrino88
Fix suggested by file

........

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@163095 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-11 17:11:50 +00:00
Tilghman Lesher
8411899d44 Merged revisions 147518,147689,148000,148112,148268,148917,148988,149062,149131,149201,149205,149208 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
  r147518 | file | 2008-10-08 09:53:51 -0500 (Wed, 08 Oct 2008) | 9 lines
  
  Merged revisions 147517 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r147517 | file | 2008-10-08 11:51:42 -0300 (Wed, 08 Oct 2008) | 2 lines
    
    If we receive DTMF make sure that the state of the speech structure goes back to being not ready. (issue #LUMENVOX-8)
  ........
................
  r147689 | kpfleming | 2008-10-08 17:26:55 -0500 (Wed, 08 Oct 2008) | 9 lines
  
  Merged revisions 147681 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r147681 | kpfleming | 2008-10-08 17:22:09 -0500 (Wed, 08 Oct 2008) | 3 lines
    
    when parsing a text configuration option, ensure that the buffer on the stack is actually large enough to hold the legal values of that option, and also ensure that sscanf() knows to stop parsing if it would overrun the buffer (without these changes, specifying "buffers=...,immediate" would overflow the buffer on the stack, and could not have worked as expected)
  ........
................
  r148000 | tilghman | 2008-10-09 14:39:34 -0500 (Thu, 09 Oct 2008) | 11 lines
  
  Merged revisions 147997 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r147997 | tilghman | 2008-10-09 14:38:33 -0500 (Thu, 09 Oct 2008) | 4 lines
    
    When blank, callerid name and number should display "unknown caller" in voicemail
    emails.
    (Closes issue #13643)
  ........
................
  r148112 | mmichelson | 2008-10-09 18:15:33 -0500 (Thu, 09 Oct 2008) | 26 lines
  
  Merged revisions 146026 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
  r146026 | murf | 2008-10-03 12:12:54 -0500 (Fri, 03 Oct 2008) | 18 lines
  
  (closes issue #13579)
  Reported by: dwagner
  
  (closes issue #13584)
  Reported by: dwagner
  Tested by: murf, putnopvut
  
  The thought occurred to me that the res= from the extension spawn
  was ending up being returned from the bridge.
  
  "Thou shalt not poison the return value". Made the change
  and it appears to allow blind xfers to work as normal.
  
  If I'm wrong, reopen the bugs. But it looks good to me!
  
  Many thanks to putnopvut for helping me reproduce this!
  
  
  ........
................
  r148268 | tilghman | 2008-10-10 11:31:31 -0500 (Fri, 10 Oct 2008) | 14 lines
  
  Merged revisions 148257 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r148257 | tilghman | 2008-10-10 11:25:31 -0500 (Fri, 10 Oct 2008) | 7 lines
    
    User not notified of temporary greeting, if ODBC storage is in use.
    (closes issue #13659)
     Reported by: moliveras
     Patches: 
           20081009__bug13659.diff.txt uploaded by Corydon76 (license 14)
     Tested by: moliveras
  ........
................
  r148917 | tilghman | 2008-10-14 12:46:48 -0500 (Tue, 14 Oct 2008) | 11 lines
  
  Merged revisions 148916 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r148916 | tilghman | 2008-10-14 12:41:08 -0500 (Tue, 14 Oct 2008) | 4 lines
    
    Ensure that mail headers are 7-bit clean, even when UTF-8 characters are used
    in headers like 'Subject' and 'To'.
    Closes AST-107.
  ........
................
  r148988 | tilghman | 2008-10-14 14:03:44 -0500 (Tue, 14 Oct 2008) | 9 lines
  
  Merged revisions 148987 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r148987 | tilghman | 2008-10-14 14:03:08 -0500 (Tue, 14 Oct 2008) | 2 lines
    
    Some compilers warn, some don't.  Fixing.
  ........
................
  r149062 | tilghman | 2008-10-14 15:16:48 -0500 (Tue, 14 Oct 2008) | 13 lines
  
  Merged revisions 149061 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r149061 | tilghman | 2008-10-14 15:09:06 -0500 (Tue, 14 Oct 2008) | 6 lines
    
    Check correct values in the return of ast_waitfor(); also, get rid of a
    possible memory leak.
    (closes issue #13658)
     Reported by: explidous
     Patch by: me
  ........
................
  r149131 | mmichelson | 2008-10-14 16:08:48 -0500 (Tue, 14 Oct 2008) | 15 lines
  
  Merged revisions 149130 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
  r149130 | mmichelson | 2008-10-14 15:49:02 -0500 (Tue, 14 Oct 2008) | 7 lines
  
  Don't allow reserved characters to be used in register
  lines in sip.conf.
  
  (closes issue #13570)
  Reported by: putnopvut
  
  
  ........
................
  r149201 | mmichelson | 2008-10-14 17:41:13 -0500 (Tue, 14 Oct 2008) | 20 lines
  
  Merged revisions 149200 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
  r149200 | mmichelson | 2008-10-14 17:40:42 -0500 (Tue, 14 Oct 2008) | 12 lines
  
  Update the queue with the correct number of calls and
  whether the call was completed within the service level
  when a transfer takes place. This way, we do not "break"
  the leastrecent and fewestcalls strategies by not logging
  a call until after the transferred call has ended.
  
  (closes issue #13395)
  Reported by: Marquis
  Patches:
        app_queue.c.transfer.patch uploaded by Marquis (license 32)
  
  
  ........
................
  r149205 | mmichelson | 2008-10-14 18:04:44 -0500 (Tue, 14 Oct 2008) | 20 lines
  
  Merged revisions 149204 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
  r149204 | mmichelson | 2008-10-14 18:00:01 -0500 (Tue, 14 Oct 2008) | 12 lines
  
  Add a tolerance period for sync-triggered audiohooks
  so that if packetization of audio is close (but not equal)
  we don't end up flushing the audiohooks over small
  inconsistencies in synchronization.
  
  Related to issue #13005, and solves the issue
  for most people who were experiencing the problem.
  However, a small number of people are still experiencing
  the problem on long calls, so I am not closing
  the issue yet
  
  
  ........
................
  r149208 | mmichelson | 2008-10-14 18:15:04 -0500 (Tue, 14 Oct 2008) | 17 lines
  
  Merged revisions 149207 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
  r149207 | mmichelson | 2008-10-14 18:10:26 -0500 (Tue, 14 Oct 2008) | 9 lines
  
  Call register_peer_exten even in the case that the peer's
  IP/port does not change.
  
  (closes issue #13309)
  Reported by: dimas
  Patches:
        v2-13309.patch uploaded by dimas (license 88)
  
  
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@160387 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-02 22:16:32 +00:00
Kevin P. Fleming
2eb5c30a3a 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.0@159855 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-29 18:37:55 +00:00
Steve Murphy
3661324455 Merged revisions 158484 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
r158484 | murf | 2008-11-21 14:47:16 -0700 (Fri, 21 Nov 2008) | 19 lines

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

........
r158483 | murf | 2008-11-21 14:19:47 -0700 (Fri, 21 Nov 2008) | 11 lines

(closes issue #13871)
Reported by: mdu113

This one is totally my fault. The code doesn't even
create a bridge CDR if the channel CDR has POST_DISABLED.
I didn't check for that at the end of the bridge.
Fixed with a few small insertions. Tested. Looks
good. No cdr generated, no crash, no unnecc. data
objects created either.


........

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@158545 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-21 22:40:28 +00:00
Mark Michelson
35a7e1deca 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.0@157307 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-18 18:32:18 +00:00
Sean Bright
0591cc3029 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.0@155555 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-09 01:34:59 +00:00
Terry Wilson
e23be17786 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.0@153265 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-10-31 21:49:23 +00:00
Mark Michelson
4a2c9d25ba Merged revisions 145606 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
r145606 | mmichelson | 2008-10-01 17:23:50 -0500 (Wed, 01 Oct 2008) | 11 lines

Okay, this should really do it now. While I did manage
to fix blind transfers with my last commit here, I also
caused an unwanted side-effect. That is, only the first
priority of the 'h' extension would be executed when
a blind transfer occurred instead of all priorities.

Essentially, my last commit corrected the return value
of ast_bridge_call. However, the implementation still
was not 100% correct. Now it is.


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@145607 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-10-01 22:24:16 +00:00
Mark Michelson
2b6112542e Merged revisions 145579 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
r145579 | mmichelson | 2008-10-01 16:33:11 -0500 (Wed, 01 Oct 2008) | 4 lines

if (!(x) == 0) is the same as
if (x).


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@145581 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-10-01 21:33:55 +00:00
Mark Michelson
64773d186f Merged revisions 145553 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
r145553 | mmichelson | 2008-10-01 16:06:26 -0500 (Wed, 01 Oct 2008) | 13 lines

The logic surrounding the return value of ast_spawn_extension
within ast_bridge_call was reversed.

This problem was observed when a blind transfer placed from
the callee channel of a test call failed.

While the problem I am solving here is exactly the same
as what was reported in issue #13584, the difference is
that this fix I am applying is trunk-only. Issue #13584
was reported against the 1.4 branch, and my tests
of 1.4's blind transfers appear to work fine.


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@145556 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-10-01 21:19:46 +00:00
Steve Murphy
f1421805ed Merged revisions 144067 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
r144067 | murf | 2008-09-23 10:52:32 -0600 (Tue, 23 Sep 2008) | 37 lines

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

........
r144066 | murf | 2008-09-23 10:41:49 -0600 (Tue, 23 Sep 2008) | 29 lines

(closes issue #13489)
Reported by: DougUDI
Tested by: murf

(closes issue #13490)
Reported by: seanbright
Tested by: murf

(closes issue #13467)
Reported by: edantie
Tested by: murf, edantie, DougUDI


This crash happens because we are unsafely handling old pointers.
The channel whose cdr is being handled, has been hung up and 
destroyed already. I reorganized the code a bit, and tried not
to lose the fork-cdr-chain concepts of the previous code.
I now verify that the 'previous' channel (the channel we
had when the bridge was started), still exists, by looking it up
by name in the channel list. I also do not try to reset the
CDR's of channels involved in bridges. 

Testing shows it solves the crash problem, and should not
negatively impact previous fixes involving CDR's generated
during/after blind transfers. (The reason we need to reset
the CDR's on the "beginning" channels in the first place).



........

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@144068 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-09-23 16:57:56 +00:00
Steve Murphy
3c1c24500b 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.0@142677 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-09-12 04:58:38 +00:00
Steve Murphy
d1723e6ae5 Merged revisions 142576 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
r142576 | murf | 2008-09-11 17:12:53 -0600 (Thu, 11 Sep 2008) | 28 lines

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

........
r142575 | murf | 2008-09-11 16:55:49 -0600 (Thu, 11 Sep 2008) | 20 lines

(closes issue #13364)
Reported by: mdu113

Well, fundamentally, the problems revealed in 13364 are
because of the ForkCDR call that is done before the dial. 
When the bridge is in place, it's dealing with the first
(and wrong) cdr in the list.

So, I wrote a little func to zip down to the first non-locked
cdr in the chain, and thru-out the ast_bridge_call, these
results are used instead of raw chan->cdr and peer->cdr pointers.
This shouldn't affect anyone who isn't forking cdrs before a
dial, and should correct the cdr's of those that do.

So, this change ends up correcting the dstchannel
and userfield; the disposition was fixed by a previous
patch, it was OK coming into this problem.



........

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@142631 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-09-11 23:49:00 +00:00
Steve Murphy
2116207025 Merged revisions 142475 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
r142475 | murf | 2008-09-10 16:11:27 -0600 (Wed, 10 Sep 2008) | 38 lines

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

........
r142474 | murf | 2008-09-10 15:58:17 -0600 (Wed, 10 Sep 2008) | 30 lines

(closes issue #12318)
Reported by: krtorio

I made a small change to the code that handles local channel situations.
In that code, I copy the answer time from the peer cdr, to the bridge_cdr,
but I wasn't also copying the disposition from the peer cdr.

So, Now I copy the disposition, and I've tested against 
these cases:

1. phone 1 never answers the phone; no cdr is generated at all.
   this should show up as a manager command failure or something.

2. phone 2 never answers. CDR is generated, says NO ANSWER

3. phone 2 is busy. CDR is generated, says BUSY

4. phone 2 answers: CDR is generated, times are correct; disposition
   is ANSWERED, which is correct. The start time is the time that
   the manager dialed the first phone. The answer time is the time
   the second phone picks up.

I purposely left the cid and src fields blank; since this call really
originates from the manager, there is no 'easy' data to put in these
fields. If you feel strongly that these fields should be filled in,
re-open this bug and I'll dig further.




........

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@142477 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-09-10 22:14:41 +00:00
Russell Bryant
f573a4785e Merged revisions 142064 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
r142064 | russell | 2008-09-09 10:44:10 -0500 (Tue, 09 Sep 2008) | 13 lines

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

........
r142063 | russell | 2008-09-09 10:40:24 -0500 (Tue, 09 Sep 2008) | 5 lines

Ensure that the stored CDR reference is still valid after the bridge before
poking at it.  Also, keep the channel locked while messing with this CDR.

(fixes crashes reported in issue #13409)

........

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@142065 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-09-09 15:44:43 +00:00
Jeff Peeler
4ee5b75c5c Merged revisions 141039 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
r141039 | jpeeler | 2008-09-04 12:27:56 -0500 (Thu, 04 Sep 2008) | 15 lines

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

........
r141028 | jpeeler | 2008-09-04 12:00:29 -0500 (Thu, 04 Sep 2008) | 7 lines

(closes issue #11979)
Fixes multiple parking problems:
Crash when executing a park on an extension dialed by AGI due to not returning the proper return code.
Crash when using a builtin feature that was a subset of a enabled dynamic feature.
Crash due to always hanging up the peer despite the fact that the peer was supposed to be parked.


........

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@141086 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-09-04 18:35:26 +00:00
Steve Murphy
ee9f8015b6 Merged revisions 139770 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
r139770 | murf | 2008-08-25 09:54:18 -0600 (Mon, 25 Aug 2008) | 17 lines

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

........
r139764 | murf | 2008-08-25 09:33:14 -0600 (Mon, 25 Aug 2008) | 9 lines

This patch reverts the changes made via 139347, and 139635, as users
are seeing adverse difference. 

I will un-close 13251.

Back to the drawing board/ concept/ beginning/ whatever!



........

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@139774 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-08-25 16:00:03 +00:00
Steve Murphy
41ed986072 Merged revisions 139662 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
r139662 | murf | 2008-08-22 16:32:35 -0600 (Fri, 22 Aug 2008) | 14 lines

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

........
r139635 | murf | 2008-08-22 16:24:02 -0600 (Fri, 22 Aug 2008) | 6 lines

I found some problems with the code I committed earlier, when
I merged them into trunk, so I'm coming back to clean up.
And, in the process, I found an error in the code I added
to trunk and 1.6.x, that I'll fix using this patch also.


........

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@139671 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-08-22 22:35:14 +00:00
Steve Murphy
ee980c4a33 Merged revisions 139627 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
r139627 | murf | 2008-08-22 16:03:13 -0600 (Fri, 22 Aug 2008) | 59 lines

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

........
r139347 | murf | 2008-08-21 17:03:50 -0600 (Thu, 21 Aug 2008) | 47 lines


(closes issue #13251)
Reported by: sergee
Tested by: murf



THis is a bold move for a static release fix, but I wouldn't have
made it if I didn't feel confident (at least a *bit* confident)
that it wouldn't mess everyone up.

The reasoning goes something like this:

1. We simply cannot do anything with CDR's at the current point
(in pbx.c, after the __ast_pbx_run loop). It's way too late to
have any affect on the CDRs. The CDR is already posted and gone,
and the remnants have been cleared.

2. I was very much afraid that moving the running of the 'h'
extension down into the bridge code (where it would be now
practical to do it), would result in a lot more calls to the
'h' exten, so I implemented it as another exten under another
name, but found, to my pleasant surprise, that there was a 
1:1 correspondence to the running of the 'h' exten in the
pbx_run loop, and the new spot at the end of the bridge.
So, I ifdef'd out the current 'h' loop, and moved it into
the bridge code. The only difference I can see is the stuff
about the AST_PBX_KEEPALIVE, and hopefully, if this 
is still an important decision point, I can replicate it
if there are complaints. To be perfectly honest,
the KEEPALIVE situation is not totally clear to me,
and how it relates to a post-bridge situation is less
clear. I suspect the users will point out everything
in total clarity if this steps on anyone's toes!

3. I temporarily swap the bridge_cdr into the channel
before running the 'h' exten, which makes it possible
for users to edit the cdr before it goes out the door.
And, of course, with the endbeforehexten config var set,
the users can also get at the billsec/duration vals.
After the h exten finishes, the cdr is swapped back
and processing continues as normal.

Please, all who deal with CDR's, please test this version
of Asterisk, and file bug reports as appropriate!


........

I also made a little fix to the app_dial's 'e' option,
that is related to my updates.


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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@139628 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-08-22 22:09:31 +00:00
Sean Bright
8dcca4a2b0 Merged revisions 138482 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
r138482 | seanbright | 2008-08-17 10:12:11 -0400 (Sun, 17 Aug 2008) | 6 lines

Move Uniqueid to the end of the event for those that rely on the position
of the name/value pairs, pointed out by snuffy-home on #asterisk-commits.

For those of you who rely on the position of name/value pairs in manager
events... stop... that is why associative arrays were invented.

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@138483 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-08-17 14:14:46 +00:00
Sean Bright
141673d440 Merged revisions 138479 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
r138479 | seanbright | 2008-08-17 09:51:08 -0400 (Sun, 17 Aug 2008) | 7 lines

Add Uniqueid header to ParkedCall manager event.

(closes issue #13323)
Reported by: srt
Patches:
      13323_unique_id_for_parkedcalls_event.diff uploaded by srt (license 378)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@138480 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-08-17 14:00:54 +00:00
Mark Michelson
eee3091cbf Merged revisions 136660 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
r136660 | mmichelson | 2008-08-07 15:25:43 -0500 (Thu, 07 Aug 2008) | 4 lines

Bump a LOG_NOTICE message to LOG_DEBUG since it appears
once for every bridged call


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@136663 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-08-07 20:26:24 +00:00
Steve Murphy
638711f573 Merged revisions 135821 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
r135821 | murf | 2008-08-05 17:45:32 -0600 (Tue, 05 Aug 2008) | 42 lines

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/branches/1.6.0@135822 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-08-05 23:52:14 +00:00
Steve Murphy
7a26f22be2 Merged revisions 134922 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
r134922 | murf | 2008-07-31 13:48:08 -0600 (Thu, 31 Jul 2008) | 63 lines

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

........
r134883 | murf | 2008-07-31 13:23:42 -0600 (Thu, 31 Jul 2008) | 51 lines

(closes issue #11849)
Reported by: greyvoip
Tested by: murf

OK, a few days of debugging, a bunch of instrumentation
in chan_sip, main/channel.c, main/pbx.c, etc. and 5 solid 
notebook pages of notes later, I  have made the small
tweek necc. to get the start time right on the second 
CDR when:

  A Calls B
  B answ.
  A hits Xfer button on sip phone,
  A dials C and hits the OK button,
  A hangs up
  C answers ringing phone
  B and C converse
  B and/or C hangs up

But does not harm the scenario where:

  A Calls B
  B answ.
  B hits xfer button on sip phone,
  B dials C and hits the OK button,
  B hangs up
  C answers ringing phone
  A and C converse
  A and/or C hangs up

The difference in start times on the second CDR is because
of a Masquerade on the B channel when the xfer number is 
sent. It ends up replacing the CDR on the B channel with
a duplicate, which ends up getting tossed out. We keep 
a pointer to the first CDR, and update *that* after the
bridge closes. But, only if the CDR has changed.

I hope this change is specific enough not to muck
up any current CDR-based apps. In my defence, I 
assert that the previous information was wrong,
and this change fixes it, and possibly other
similar scenarios.

I wonder if I should be doing the same thing
for the channel, as I did for the peer, but
I can't think of a scenario this might affect.
I leave it, then, as an exersize for the users,
to find the scenario where the chan's CDR 
changes and loses the proper start time.


........

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@134923 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-07-31 19:54:58 +00:00
Kevin P. Fleming
261a4972f6 Merged revisions 134086 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
r134086 | kpfleming | 2008-07-28 11:42:00 -0500 (Mon, 28 Jul 2008) | 3 lines

remove remaining Zaptel references in various places


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@134087 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-07-28 16:49:18 +00:00
Brett Bryant
bd279373b2 Merged revisions 131916 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
r131916 | bbryant | 2008-07-18 10:38:22 -0500 (Fri, 18 Jul 2008) | 12 lines

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

........
r131915 | bbryant | 2008-07-18 10:34:42 -0500 (Fri, 18 Jul 2008) | 4 lines

Fix a bug in blind transfers where the BLINDTRANSFER variable isn't always set to the other end of the blind transfer.

(closes issue #12586)

........

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@131917 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-07-18 15:39:32 +00:00
Brett Bryant
384d11190e Merged revisions 131717 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
r131717 | bbryant | 2008-07-17 13:14:42 -0500 (Thu, 17 Jul 2008) | 8 lines

Fix a memory leak in register_group_feature when attempting to register 
a feature without specifying a group or feature to register.

(closes issue #13101)
Reported by: eliel
Patches:
      features.c.patch uploaded by eliel (license 64)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@131718 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-07-17 18:15:10 +00:00
Steve Murphy
e45d4f3bf1 Merged revisions 130145 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

Merging this rev from trunk to 1.6.0 was not
simple. Why? Because we've enhanced trunk to
do a [fast] merge-and-delete operation which 
also solved problems with contexts having 
entries from different registrars.
Fast as in the amount of time the contexts
are locked down. That *is* fast, but traversing
the entire dialplan looking for priorities to
delete takes more time overall.
This particular fix involved pulling in those
enhancements from trunk, along with all the
various fixes and refinements made along the
way.

Merging all this from trunk into 1.6 involved:
a. mergetrunk6 in the stuff from 130145;
b. revert all but the prop changes
c. catalog all revisions to pbx.c since 1.6.0 was forked
   (at rev 105596).
d. catalog all revisions to pbx.c in trunk since 1.6.0
   was forked, making special note of all revs that
   were not merged into 1.6.0.
e. study each rev in trunk not applied to 1.6.0, and
   determine if it was involved in the merge_and_delete
   enhancements in trunk. 25 commits were done in 1.6.0,
   all but one (106306) was a merge from trunk.
   Trunk had 22 additional changes, of which 7 were
   involved in the merge_and_delete enhancements:
    106757
    108894
    109169
    116461
    123358
    130145
    130297
f. Go to trunk and collect patches, one by one,
   of the changes made by each rev across the
   entire source tree, using svn diff -c <num> > pfile
g. Apply each patch in order to 1.6.0, and 
   resolve all failures and compilation problems
   before proceding to the next patch.
h. test the stuff.
i. profit!


........
r130145 | murf | 2008-07-11 12:24:31 -0600 (Fri, 11 Jul 2008) | 40 lines

(closes issue #13041)
Reported by: eliel
Tested by: murf

(closes issue #12960)
Reported by: mnicholson

In this 'omnibus' fix, I **think** I solved both
the problem in 13041, where unloading pbx_ael.so
caused crashes, or incomplete removal of previous
registrar'ed entries. And I added code to completely
remove all includes, switches, and ignorepats that
had a matching registrar entry, which should
appease 12960.

I also added a lot of seemingly useless brackets
around single statement if's, which helped debug 
so much that I'm leaving them there.

I added a routine to check the correlation between
the extension tree lists and the hashtab 
tables. It can be amazingly helpful when you have
lots of dialplan stuff, and need to narrow
down where a problem is occurring. It's ifdef'd
out by default.

I cleaned up the code around the new CIDmatch code.
It was leaving hanging extens with bad ptrs, getting confused
over which objects to remove, etc. I tightened
up the code and changed the call to remove_exten
in the merge_and_delete code.

I added more conditions to check for empty context
worthy of deletion. It's not empty if there are
any includes, switches, or ignorepats present.

If I've missed anything, please re-open this bug,
and be prepared to supply example dialplan code.


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@130946 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-07-15 13:14:07 +00:00
Steve Murphy
b8002ee93e Merged revisions 127793 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
r127793 | murf | 2008-07-03 11:16:44 -0600 (Thu, 03 Jul 2008) | 38 lines

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

........
r127663 | murf | 2008-07-02 18:16:25 -0600 (Wed, 02 Jul 2008) | 30 lines

The CDRfix4/5/6 omnibus cdr fixes.

(closes issue #10927)
Reported by: murf
Tested by: murf, deeperror

(closes issue #12907)
Reported by: falves11
Tested by: murf, falves11


(closes issue #11849)
Reported by: greyvoip

As to 11849, I think these changes fix the core problems 
brought up in that bug, but perhaps not the more global
problems created by the limitations of CDR's themselves
not being oriented around transfers.

Reopen if necc, but bug reports are not the best
medium for enhancement discussions. We need to start
a second-generation CDR standardization effort to cover
transfers.

(closes issue #11093)
Reported by: rossbeer
Tested by: greyvoip, murf



........

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@127830 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-07-03 19:12:14 +00:00
Steve Murphy
3a1b062a16 Merged revisions 123165 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
r123165 | murf | 2008-06-16 14:43:46 -0600 (Mon, 16 Jun 2008) | 19 lines

(closes issue #12689)
Reported by: ys

Many thanks to ys for doing the research on this problem.
I didn't think it would be best to unlock the contexts
and then relock them after the remove_extension2() call,
so I added an extra arg to remove_extension2() and set it
appropriately in each call. There were not that many.

I considered forcing the code to lock the contexts before
the call to remove_extension2(), but that would require
a slightly greater degree of changes, especially since
the find_context_locked is local to pbx.c

I did a simple sanity test to make sure the code doesn't
mess things up in general.



........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@123173 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-16 21:19:23 +00:00
Jeff Peeler
c902b29042 Merged revisions 122433 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
r122433 | jpeeler | 2008-06-12 18:08:37 -0500 (Thu, 12 Jun 2008) | 4 lines

(closes issue 0012193)
Reported by: davidw
Patch by: Corydon76, modified by me to work properly with ParkAndAnnounce app

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@122467 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-13 00:18:02 +00:00
Mark Michelson
a3a59c0f89 Merged revisions 114064 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
r114064 | mmichelson | 2008-04-11 10:49:35 -0500 (Fri, 11 Apr 2008) | 19 lines

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

........
r114063 | mmichelson | 2008-04-11 10:44:28 -0500 (Fri, 11 Apr 2008) | 11 lines

Fix a race condition that may happen between a sip hangup
and a "core show channel" command. This patch adds locking
to prevent the resulting crash.

(closes issue #12155)
Reported by: tsearle
Patches:
      show_channels_crash2.patch uploaded by tsearle (license 373)
Tested by: tsearle


........

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@114065 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-04-11 15:51:10 +00:00
Russell Bryant
4af367c3a9 Merged revisions 109447 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
r109447 | twilson | 2008-03-18 10:43:34 -0500 (Tue, 18 Mar 2008) | 3 lines

Go through and fix a bunch of places where character strings were being interpreted as format strings. Most of these changes are solely to make compiling with -Wsecurity and -Wformat=2 happy, and were not
actual problems, per se.  I also added format attributes to any printf wrapper functions I found that didn't have them.  -Wsecurity and -Wmissing-format-attribute added to --enable-dev-mode.

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@109459 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-03-18 15:58:50 +00:00
Russell Bryant
68ebba346c Merged revisions 107465 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
r107465 | file | 2008-03-11 10:05:17 -0500 (Tue, 11 Mar 2008) | 4 lines

Clarify comment about masquerading and playback of the parking slot.
(closes issue #12180)
Reported by: davidw

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@108355 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-03-12 22:53:24 +00:00
Joshua Colp
a241dd0b5d Merged revisions 107659 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
r107659 | file | 2008-03-11 16:23:28 -0300 (Tue, 11 Mar 2008) | 12 lines

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

........
r107646 | file | 2008-03-11 16:20:01 -0300 (Tue, 11 Mar 2008) | 4 lines

Make sure the visible indication is on the right channel so when the masquerade happens the proper indication is enacted.
(closes issue #11707)
Reported by: iam

........

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@107666 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-03-11 19:25:00 +00:00