Commit Graph

273 Commits

Author SHA1 Message Date
Joshua Colp
338ed4c623 Merged revisions 170051 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
  r170051 | file | 2009-01-22 11:14:50 -0400 (Thu, 22 Jan 2009) | 13 lines
  
  Merged revisions 170050 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r170050 | file | 2009-01-22 11:13:56 -0400 (Thu, 22 Jan 2009) | 6 lines
    
    Do a string comparison instead of pointer comparison since some people specify the context they are actually in as an argument to get around some funkiness.
    (closes issue #14011)
    Reported by: dveiga
    Patches:
          pbx.c.patch uploaded by dveiga (license 665)
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@170053 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-01-22 15:16:12 +00:00
Joshua Colp
03e3317439 Merged revisions 169869 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
  r169869 | file | 2009-01-21 19:25:27 -0400 (Wed, 21 Jan 2009) | 11 lines
  
  Merged revisions 169867 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r169867 | file | 2009-01-21 19:20:47 -0400 (Wed, 21 Jan 2009) | 4 lines
    
    Read lock the contexts to maintain the locking order when we are notified that the state of a device has changed.
    (closes issue #13839)
    Reported by: mcallist
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@169871 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-01-21 23:28:11 +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
Steve Murphy
a7aeaf341b Merged revisions 166665 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

This merged from trunk with no conflicts. I tested
mostly the 'tired' cases, and for the most part
ignored the tests for reconnecting and dialing in
to fetch a parked call, after the first case.

................
  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.1@166730 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-24 01:15:43 +00:00
Russell Bryant
52f5e8fcfb Merged revisions 165723 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
r165723 | russell | 2008-12-18 13:33:42 -0600 (Thu, 18 Dec 2008) | 14 lines

Remove the need for AST_PBX_KEEPALIVE with the GoSub option from Dial.

This is part of an effort to completely remove AST_PBX_KEEPALIVE and other
similar return codes from the source.  While this usage was perfectly safe,
there are others that are problematic.  Since we know ahead of time that
we do not want to PBX to destroy the channel, the PBX API has been changed
so that information can be provided as an argument, instead, thus removing
the need for the KEEPALIVE return value.

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

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

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@165728 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-18 19:45:11 +00:00
Steve Murphy
e3e5457dc4 Merged revisions 164801 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
r164801 | murf | 2008-12-16 13:04:46 -0700 (Tue, 16 Dec 2008) | 36 lines

(closes issue #14076)
Reported by: toc
Tested by: murf

OK, Well this issue has had its share of flip-flopping.
I found the following:

1. the code in question, in ext_cmp1 in pbx.c, would not
allow two extensions that vary only by any dashes contained
within them, to be defined in the same context.

2. for input dialstrings, dashes are NOT ignored.
So, skipping them when sorting patterns seemed a bit silly.
Thus, you might declare ext 891 in a context, but
if you try dialing 8-9-1, it will NOT match 891.

So, I proposed to remove the code from ext_cmp1 to 
skip the spaces and dashes. Just kept us from 
declaring 891 and 8-9-1 in the same context,
forcing users to generate otherwise uselessly
obfuscated dialplan code to get the same effect.

Then, I tried out 1.4, and found that:

1. you can declare 891 and 8-9-1 in the
same context!

2. You can't define 891, and have 8-9-1 match
it! Nor can you define 8-9-1, and have 891
match it!

So, it appears that my proposal simply restores
the pbx to behaving as it did in 1.4.



........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@164805 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-16 20:18:07 +00:00
Steve Murphy
a13fe6807a Merged revisions 164648 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
r164648 | murf | 2008-12-16 08:31:54 -0700 (Tue, 16 Dec 2008) | 13 lines

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

........
r164634 | murf | 2008-12-16 08:15:58 -0700 (Tue, 16 Dec 2008) | 5 lines

I added a sentence to clarify why - and ' ' are ignored in patterns
as per bug 14076. Leif says he'll put some stuff about it in the
extensions.conf sample, etc.


........

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@164658 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-16 15:42:52 +00:00
Tilghman Lesher
704f4a7d5c Merged revisions 162922,162930 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
  r162922 | tilghman | 2008-12-10 16:48:09 -0600 (Wed, 10 Dec 2008) | 7 lines
  
  Checking global variables here actually overwrote the previous substitution by
  channel variables, and in any case, was redundant;
  pbx_substitute_variables_helper ALREADY does substitution for global
  variables.
  (closes issue #13327)
   Reported by: pj
........
  r162930 | tilghman | 2008-12-10 17:01:14 -0600 (Wed, 10 Dec 2008) | 2 lines
  
  Previously missing line, now the substitution works correctly
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@162949 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-10 23:13:22 +00:00
Mark Michelson
b6b83bbe9c Merged revisions 162266 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
r162266 | mmichelson | 2008-12-09 14:30:07 -0600 (Tue, 09 Dec 2008) | 14 lines

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

........
r162265 | mmichelson | 2008-12-09 14:28:44 -0600 (Tue, 09 Dec 2008) | 6 lines

If we fail to start a thread for the pbx to run in, we need to
be sure to decrease the number of active calls on the system.

This fix may relate to ABE-1713, but it is not certain yet.


........

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@162269 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-09 20:31:51 +00:00
Joshua Colp
f1a71be36b Merged revisions 161787 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
  r161787 | file | 2008-12-08 14:47:32 -0400 (Mon, 08 Dec 2008) | 6 lines
  
  Fix a regression introduced when the PBX timeouts were converted to milliseconds. collect_digits now gets milliseconds fed to it, not seconds.
  (closes issue #14012)
  Reported by: dveiga
  Patches:
        14012.patch uploaded by bkruse (license 132)
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@161789 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-08 18:49:47 +00:00
Russell Bryant
96e176f2a0 Merged revisions 161288 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
r161288 | russell | 2008-12-05 08:16:24 -0600 (Fri, 05 Dec 2008) | 10 lines

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

........
r161287 | russell | 2008-12-05 08:12:14 -0600 (Fri, 05 Dec 2008) | 2 lines

Fix a NULL format string warning found by buildbot.

........

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@161290 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-05 14:18:39 +00:00
Tilghman Lesher
6674ef2c22 Merged revisions 160208 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
  r160208 | tilghman | 2008-12-01 18:37:21 -0600 (Mon, 01 Dec 2008) | 10 lines
  
  Merged revisions 160207 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r160207 | tilghman | 2008-12-01 18:25:16 -0600 (Mon, 01 Dec 2008) | 3 lines
    
    Ensure that Asterisk builds with --enable-dev-mode, even on the latest gcc
    and glibc.
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@160234 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-02 00:58:43 +00:00
Tilghman Lesher
e05fd35dc6 Merged revisions 158602 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
  r158602 | tilghman | 2008-11-21 17:14:11 -0600 (Fri, 21 Nov 2008) | 12 lines
  
  Merged revisions 158600 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r158600 | tilghman | 2008-11-21 17:07:46 -0600 (Fri, 21 Nov 2008) | 5 lines
    
    The passed extension may not be the same in the list as the current entry,
    because we strip spaces when copying the extension into the structure.
    Therefore, use the copied item to place the item into the list.
    (found by lmadsen on -dev, fixed by me)
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@158604 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-21 23:15:58 +00:00
Jeff Peeler
fe6767f2e1 Merged revisions 156649 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
r156649 | jpeeler | 2008-11-13 13:17:50 -0600 (Thu, 13 Nov 2008) | 6 lines

(closes issue #13891)
Reported by: smurfix

This reverts a change I made in 116297. At the time it seemed the change was required to solve an issue with attempting a transfer but then letting it timeout without dialing any digits. However, I didn't realize that having an empty extension was possible. I'm removing the immediate return that was added in pbx_find_extension if the extension is null.


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@156650 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-13 19:18:34 +00:00
Steve Murphy
475be50f76 Merged revisions 156299 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
r156299 | murf | 2008-11-12 12:47:29 -0700 (Wed, 12 Nov 2008) | 26 lines

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

........
r156297 | murf | 2008-11-12 12:36:16 -0700 (Wed, 12 Nov 2008) | 18 lines

It turns out that the 0x0XX00 codes being returned for
N, X, and Z are off by one, as per conversation with
jsmith on #asterisk-dev;  he was teaching a class
and disconcerted that this published rule was not
being followed, with patterns _NXX, _[1-8]22 and
_[2-9]22... and NXX was winning, but [1-8] should
have been. 

This change, tested on these 3 patterns now 
picks the proper one.

However, this change may surprise users who
set up dialplans based on previous behavior,
which has been there for what, 2 and half 
years or so now.



........

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@156354 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-12 20:11:54 +00:00
Tilghman Lesher
f34b1869bd Merged revisions 152689 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
  r152689 | tilghman | 2008-10-29 19:45:47 -0500 (Wed, 29 Oct 2008) | 2 lines
  
  Track down and fix annoying lock errors
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@152690 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-10-30 00:54:37 +00:00
Steve Murphy
c6fc68ab1a Merged revisions 148519 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
r148519 | murf | 2008-10-13 11:14:38 -0600 (Mon, 13 Oct 2008) | 15 lines

Hmmm. Nobody (but me) is interested in seeing 
the trie info when they do 'dialplan show ...'
(even with debug set to non-zero); so I set up a 
   'dialplan debug [context]' cli command instead, 
to explicitly show just the trie info.  I even
added an extension_exists() call to make sure the
trie info is built. I moved the explanatory header
to above the extension loop to ensure it only prints
once. And it will do this now, whether debug is set
or not.

I removed the trie printing from the 'dialplan show' 
command entirely. 


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@148562 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-10-13 17:56:13 +00:00
Steve Murphy
2c1bfe7643 Merged revisions 147807 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
r147807 | murf | 2008-10-09 08:17:33 -0600 (Thu, 09 Oct 2008) | 15 lines

(closes issue #13557)
Reported by: nickpeirson
Patches:
      pbx.c.patch uploaded by nickpeirson (license 579)
      replace_bzero+bcopy.patch uploaded by nickpeirson (license 579)
Tested by: nickpeirson, murf

1. replaced all refs to bzero and bcopy to memset and memmove instead.
2. added a note to the CODING-GUIDELINES
3. add two macros to asterisk.h to prevent bzero, bcopy from creeping
   back into the source
4. removed bzero from configure, configure.ac, autoconfig.h.in



........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@147811 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-10-09 15:06:21 +00:00
Steve Murphy
59d9a004e9 Merged revisions 144678 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
r144678 | murf | 2008-09-26 11:50:35 -0600 (Fri, 26 Sep 2008) | 20 lines

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

........
r144677 | murf | 2008-09-26 11:47:13 -0600 (Fri, 26 Sep 2008) | 12 lines

(closes issue #13563)
Reported by: mnicholson
Patches:
      found1.diff uploaded by mnicholson (license 96)

This patch was mainly meant to apply to trunk and 1.6.x,
but I'm applying it to 1.4 also, which should be a perfectly
harmless fix to the vast majority of users who are not using
external switches, but the few who might be affected 
will not have to go to the pain of filing a bug report.


........

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@144680 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-09-26 17:53:23 +00:00
Steve Murphy
6f1745168e Merged revisions 144569 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
r144569 | murf | 2008-09-25 16:21:28 -0600 (Thu, 25 Sep 2008) | 14 lines

(closes issue #13557)
Reported by: nickpeirson

The user attached a patch, but the license is not yet
recorded. I took the liberty of finding and replacing
ALL index() calls with strchr() calls, and that
involves more than just main/pbx.c;

chan_oss, app_playback, func_cut also had calls
to index(), and I changed them out. 1.4 had no
references to index() at all.



........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@144578 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-09-25 22:25:34 +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
Russell Bryant
b55ecb6aea Merged revisions 141807 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
r141807 | russell | 2008-09-08 16:05:01 -0500 (Mon, 08 Sep 2008) | 15 lines

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

........
r141806 | russell | 2008-09-08 16:02:36 -0500 (Mon, 08 Sep 2008) | 7 lines

When doing an async goto, detect if the channel is already in the middle of a
masquerade.  This can happen when chan_local is trying to optimize itself out.
If this happens, fail the async goto instead of bursting into flames.

(closes issue #13435)
Reported by: geoff2010

........

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@141952 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-09-09 01:51:28 +00:00
Steve Murphy
09fe3752a5 Merged revisions 140824 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
r140824 | murf | 2008-09-03 08:01:27 -0600 (Wed, 03 Sep 2008) | 21 lines

In these changes, I have added some explanation
of changes to the Set and MSet apps, so people aren't
so shocked and surprised when they upgrade from
1.4 to 1.6.

Also, for the sake of those upgrading from 1.4 to
1.6 with AEL, I provide automatic support for the 
"old" way of using Set(), that still does the
exact same old thing with quotes and backslashes
and so on as 1.4 did, by having AEL compile in the
use of MSet() instead of Set(), everywhere it inserts
this code.

But, if the app_set var is set to 1.6 or higher,
it uses the "new", non-evaluative Set().

This only usually happens if the user manually 
inserts this into the asterisk.conf file, or runs
the "make samples" command.

(closes issue #13249)
Reported by: dimas
Patches:
      ael-MSet.diff uploaded by murf (license 17)
Tested by: dimas, murf
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@140886 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-09-03 14:39:04 +00:00
Steve Murphy
0c8172a97c Merged revisions 140691 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

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

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

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

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

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

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



........

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@140693 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-09-02 22:58:50 +00:00
Steve Murphy
dfe7bf451a 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.1@139778 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-08-25 16:05:30 +00:00
Steve Murphy
41138ad333 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.1@139629 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-08-22 22:15:36 +00:00
Steve Murphy
7af40ac1a1 Merged revisions 138815 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
r138815 | murf | 2008-08-19 09:59:12 -0600 (Tue, 19 Aug 2008) | 19 lines

These changes are in regards to bug 13249, where users are being surprised by the changes made
to the Set app in trunk/1.6.x, as they come from the 1.4 world. They are only bitten if
they write their AEL dialplan in the 1.4 world, and then carry it over to a trunk/1.6.x 
installation where a "make samples" was executed, or where they hand-edited the 
asterisk.conf file and added the [compat] category with app_set = 1.6 (or higher).

(this commit does not totally solve 13249, at least not yet)

The change involves issueing a single warning while the AEL file is loading, if:
 1. app_set is present in the config file, and set to 1.6 or higher.
 2. there are double quotes in an assignment statement (eg x = "hi there";)
 3. the warning was not already issued.

The standalone app, aelparse, does not (yet) issue this warning. I'd have to
have it read in the asterisk.conf file, and that's a bit of hassle. I'll add
it if users request it, tho.



........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@138853 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-08-19 16:59:08 +00:00
Tilghman Lesher
88d23d712e Merged revisions 138409 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
r138409 | tilghman | 2008-08-16 07:52:06 -0500 (Sat, 16 Aug 2008) | 3 lines

Also make sure hinting won't crash on reload.
(Closes issue #13312)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@138411 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-08-16 13:00:57 +00:00
Tilghman Lesher
f42b756512 Merged revisions 138148 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
r138148 | tilghman | 2008-08-15 14:36:11 -0500 (Fri, 15 Aug 2008) | 2 lines

Change free to ast_free_ptr, too

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@138150 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-08-15 19:37:22 +00:00
Tilghman Lesher
0ffc03dffc Merged revisions 138124 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
r138124 | tilghman | 2008-08-15 14:22:48 -0500 (Fri, 15 Aug 2008) | 4 lines

e->data can be NULL, so use the safe version of ast_strdup()
(closes issue #13312)
 Reported by: pj

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@138133 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-08-15 19:24:27 +00:00
Sean Bright
790fde68d9 Another batch of files from RSW. The remaining apps and a few more
files from main/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@137089 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-08-10 20:23:50 +00:00
Mark Michelson
316fb598d2 Don't allow Answer() to accept a negative argument.
Negative argument means an infinite delay and we
don't want that.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@136635 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-08-07 19:58:32 +00:00
Kevin P. Fleming
7df8b8b848 make datastore creation and destruction a generic API since it is not really channel related, and add the ability to add/find/remove datastores to manager sessions
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@135680 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-08-05 16:56:11 +00:00
Steve Murphy
9051edfa4a (closes issue #13202)
Reported by: falves11
Tested by: murf

falves11 ==

The changes I introduce here seem to clear up the problem
for me. However, if they do not for you, please reopen this
bug, and we'll keep digging.

The root of this problem seems to be a subtle memory corruption
introduced when creating an extension with an empty extension
name. While valgrind cannot detect it outside of DEBUG_MALLOC
mode, when compiled with DEBUG_MALLOC, this is certain death.

The code in main/features.c is a puzzle to me. On the initial
module load, the code is attempting to add the parking extension
before the features.conf file has even been opened!

I just wrapped the offending call with an if() that will not
try to add the extension if the extension name is empty. THis
seems to solve the corruption, and let the "memory show allocations"
work as one would expect.

But, really, adding an extension with an empty name is a seriously
bad thing to allow, as it will mess up all the pattern matching 
algorithms, etc. So, I added a statement to the add_extension2 code to return
a -1 if this is attempted.




git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@135265 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-08-02 04:51:29 +00:00
Steve Murphy
1adecc56eb (closes issue #13144)
Reported by: murf
Tested by: murf
For: J. Geis

The 'data' field in the ast_exten struct was being
'moved' from the current dialplan to the replacement
dialplan. This was not good, as the current dialplan
could have problems in the time between the change
and when the new dialplan is swapped in.

So, I modified the merge_and_delete code to strdup
the 'data' field (the args to the app call), and
then it's freed as normal.

I improved a few messages; I added code to limit
the number of calls to the context_merge_incls_swits_igps_other_registrars()
to one per context. I don't think having it called
multiple times per context was doing anything bad,
but it was inefficient.

I hope this fixes the problems Mr. Geiss was noting in
asterisk-users, see 
http://lists.digium.com/pipermail/asterisk-users/2008-July/215634.html




git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@133299 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-07-23 22:03:48 +00:00
Tilghman Lesher
1517710d7e Change several 'core' commands to be 'dialplan' commands (with appropriate
deprecation, of course)
(closes issue #13016)
 Reported by: caio1982
 Patches: 
       dialplan_globals6.diff uploaded by caio1982 (license 22)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@131606 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-07-17 14:00:27 +00:00
Steve Murphy
a1fe3d917f (closes issue #12960)
Reported by: mnicholson

Spent most of the day on this bug, and the
solution was so simple. Just had to find and
understand the problem.

The problem was, that the routine to copy
the existing switches, includes, and ignorepats
from the old context to the new one, wasn't
getting called when the context is already 
existent. (In other words, if AEL is adding
a new context to the mix, they get copied,
but if pbx_config already defined a context,
then the copy wasn't happening. This made
no sense, so I moved the call to copy the 
includes & etc, no matter the case.




git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@131129 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-07-15 23:36:19 +00:00
Tilghman Lesher
49715c05f1 Merged revisions 130959 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r130959 | tilghman | 2008-07-15 12:19:13 -0500 (Tue, 15 Jul 2008) | 8 lines

astman_send_error does not need a newline appended -- the API takes care of
that for us.
(closes issue #13068)
 Reported by: gknispel_proformatique
 Patches: 
       asterisk_1_4_astman_send.patch uploaded by gknispel (license 261)
       asterisk_trunk_astman_send.patch uploaded by gknispel (license 261)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@131044 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-07-15 18:25:34 +00:00
Steve Murphy
42942b790d (closes issue #13041)
Reported by: eliel

OK, now the context registrar slot is strdup'd. It is freed
on destruction. I don't see the need to do this with all
the structs' registrar fields, but if some wild case proves
they should also be handled this way, then we can 
put in the extra work at that time.




git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@130297 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-07-11 22:03:19 +00:00
Steve Murphy
2ca242b2ba (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/trunk@130145 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-07-11 18:24:31 +00:00
Matthew Fredrickson
0b185a2276 Add Proceeding() application (#13025)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@129399 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-07-09 15:57:06 +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
Brett Bryant
d185405755 Janitor project to convert sizeof to ARRAY_LEN macro.
(closes issue #13002)
Reported by: caio1982
Patches:
      janitor_arraylen5.diff uploaded by caio1982 (license 22)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@129045 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-07-08 16:40:28 +00:00
Olle Johansson
6f400edeab Changing name of global api call to ast_*
My mistake, pointed out by Russell.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@128378 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-07-06 08:28:58 +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
Tilghman Lesher
12e5c68622 Merged revisions 127973 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r127973 | tilghman | 2008-07-03 22:30:30 -0500 (Thu, 03 Jul 2008) | 8 lines

Fix the 'dialplan remove extension' logic, so that it a) works with cidmatch,
and b) completes contexts correctly when the extension is ambiguous.
(closes issue #12980)
 Reported by: licedey
 Patches: 
       20080703__bug12980.diff.txt uploaded by Corydon76 (license 14)
 Tested by: Corydon76

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@128027 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-07-04 16:06:34 +00:00
Steve Murphy
bc2cfb3e81 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/trunk@127793 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-07-03 17:16:44 +00:00
Tilghman Lesher
6d5b1d76ab If we don't match registrar when destroying a context, it can cause a crash.
(closes issue #12835)
 Reported by: ys
 Patches: 
       pbx.c.diff uploaded by ys (license 281)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@123358 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-17 18:23:01 +00:00
Steve Murphy
f4c85ebd22 (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/trunk@123165 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-16 20:43:46 +00:00
Russell Bryant
e9d72e0cb2 Merge another big set of changes from team/russell/events
This commit merges in the rest of the code needed to support distributed device
state.  There are two main parts to this commit.

Core changes:
 - The device state handling in the core has been updated to understand device
   state across a cluster of Asterisk servers.  Every time the state of a device
   changes, it looks at all of the device states on each node, and determines the
   aggregate device state.  That resulting device state is what is provided to
   modules in Asterisk that take actions based on the state of a device.

New module, res_ais:
 - A module has been written to facilitate the communication of events between
   nodes in a cluster of Asterisk servers.  This module uses the SAForum AIS
   (Service Availability Forum Application Interface Specification) CLM and EVT
   services (Cluster Management and Event) to handle this task.  This module
   currently supports sharing Voicemail MWI (Message Waiting Indication) and
   device state events between servers.  It has been tested with openais, though
   other implementations of the spec do exist.

For more information on testing distributed device state, see the following doc:
  - doc/distributed_devstate.txt


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@121559 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-10 15:12:17 +00:00