Commit Graph

62 Commits

Author SHA1 Message Date
Steve Murphy
595ab7340d closes issue #11845; that's the one where there's a 1004 byte cdr leak with every AMI Redirect to a zap channel
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@101480 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-31 19:30:37 +00:00
Tilghman Lesher
44cdbc7d00 WaitExten didn't handle AbsoluteTimeout properly (went to 't' instead of 'T')
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@100675 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-28 21:02:02 +00:00
Mark Michelson
8fded490ce Avoiding a potentially bad locking situation. ast_merge_contexts_and_delete writelocks the conlock, then
calls ast_hint_extension, which attempts to readlock the same lock. Recursion with read-write locks is 
dangerous, so the inner lock needs to be removed. I did this by copying the "guts" of ast_hint_extension
into ast_merge_contexts_and_delete (sans the extra lock).

(this change is inspired by the locking problems seen in issue #11080, but I have no idea if this is the
problematic area experienced by the reporters of that issue)



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@95577 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-12-31 23:43:13 +00:00
Russell Bryant
c03ccc41f2 Now that the contexts lock is a read/write lock, it should not be locked here
in ast_hint_state_changed().  This makes it get locked recursively which now
causes a deadlock.
(closes issue #11080, thanks to callguy for the access to a deadlocked machine)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@94831 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-12-27 15:16:56 +00:00
Russell Bryant
5977f8d5be Convert the contexts lock to a read/write lock to resolve a deadlock. This
has a nice side benefit of improving performance.  :)

(closes issue #11609)
(closes issue #11080)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@94466 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-12-21 16:37:47 +00:00
Jason Parker
65cbfa5d0d Make application help text a little more clear about the use of extensions in a filename.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@92809 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-12-13 20:13:48 +00:00
Russell Bryant
644c7a89e7 Make some changes to some additions I made recently for doing channel autoservice
when looking up extensions.  This code was added to handle the case where a
dialplan switch was in use that could block for a long time.  However, the way
that I added it, it did this for all extension lookups.  However, lookups in the
in-memory tree of extensions should _not_ take long enough to matter.  So, move
the autoservice stuff to be only around executing a switch.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@90967 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-12-04 19:57:39 +00:00
Mark Michelson
815d77f1f6 Removing some seemingly pointless code. This sets a channel variable for every priority
executed in the dialplan if you have debug set to anything non-zero. This seems pointless
due to the fact that these channel variables are not referenced anywhere else in the code and
their names are esoteric enough that they would not be practical to reference in the dialplan. Plus
the fact that this behavior isn't documented anywhere means that the change is not likely to cause
any disruption. If anything, this may actually cause a slight performance increase if running with
debug on.

The motivating influence for this code change is the eventwhencalled option for queues. If set to
vars, all channel variables will be output to the manager. These unnecessary channel variables make
the output a lot more difficult to deal with.



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@90059 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-28 22:08:50 +00:00
Russell Bryant
d0cd120d47 - update documentation for some of the goto functions to note that they
handle locking the channel as needed
 - update ast_explicit_goto() to lock the channel as needed


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@89893 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-28 00:20:13 +00:00
Russell Bryant
3df74ed9ac Don't start/stop autoservice in pbx_extension_helper() unless a channel exists
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@89839 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-27 23:16:00 +00:00
Russell Bryant
80c81b8e8c Merge changes from team/russell/autoservice_1.4
This set of changes fixes an issue that was reported to me on IRC yesterday.
The user, d1mas, was using chan_zap for incoming calls and was having DTMF
recognition issues in some situations.  Specifically, he noticed that the 
problem occurred when using DISA or WaitExten.  He also noticed that when 
using Read, the problem did not occur.  His system also used DUNDi for 
dialplan lookups.

So, he theorized that if the DUNDi lookups blocked for some period of time,
that audio from the zap channel could get lost.  If the audio got lost, then
it wouldn't be run through the DTMF detector, and digits could get lost.
He was correct, and the following set of changes fixes the problem.  However,
the changes go a little bit further than what was necessary to fix this exact
problem.

1) I updated pbx_extension_helper() to autoservice the associated channel to
   handle cases where extension lookups may take a long time.  This would
   normally be a dialplan switch that does some lookup over the network, such
   as the DUNDi or IAX2 switches.

   This ensures that even while a DUNDi lookup is blocking, the channel will be
   continuously serviced.

2) I made a change to the autoservice code.  This is actually something that
   has bothered me for a long time.  When a channel is in autoservice, _all_
   frames get thrown away.  However, some frames really shouldn't be thrown
   away.  The most notable examples are signalling (CONTROL) frames, and DTMF.

   So, this patch queues up important frames while a channel is in autoservice.
   When autoservice is stopped on the channel, the queued up frames get stuck
   back on the channel so that they can get processed instead of thrown away.

3) I made another change to the autoservice code to handle the case where
   autoservice is started on channels recursively.

   Previously, you could call ast_autoservice_start() multiple times on a
   channel, and it would stop the first time ast_autoservice_stop() gets
   called.  Now, it will ensure that autoservice doesn't actually stop until
   the final call to ast_autoservice_stop().


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@89790 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-27 21:45:51 +00:00
Russell Bryant
a17edf7d99 Add channel locking to a function that needed to be doing it. This is just a
little something I noticed while working on a completely unrelated issue.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@89594 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-26 17:41:04 +00:00
Mark Michelson
da4933e657 According to comments in main/pbx.c, it is essential that if we are going to lock
the conlock as well as the hints lock, it must be locked in that respective order.
In order to prevent a potential deadlock, we need to lock the conlock prior to 
locking the hints lock in ast_hint_state_changed (see the call stack example on
issue #11323 for how this can happen).

(closes issue #11323, reported  by eelcob, suggestion for patch by eelcob, patch by me)



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@89457 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-20 17:50:31 +00:00
Jason Parker
05df1092da Fix a typo pointed out by De_Mon on #asterisk-dev
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@89194 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-12 20:46:52 +00:00
Russell Bryant
34002d567b After seeing crashes related to channel variables, I went looking around at the
ways that channel variables are handled.  In general, they were not handled in
a thread-safe way.  The channel _must_ be locked when reading or writing from/to
the channel variable list.

What I have done to improve this situation is to make pbx_builtin_setvar_helper()
and friends lock the channel when doing their thing.  Asterisk API calls almost 
all lock the channel for you as necessary, but this family of functions did not.

(closes issue #10923, reported by atis)
(closes issue #11159, reported by 850t)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@88805 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-05 22:07:54 +00:00
Tilghman Lesher
18fa561af4 A dollar sign by itself, not indicating a start of a variable or expression prematurely ends substitution (closes issue #10939)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@85356 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-11 04:35:33 +00:00
Joshua Colp
5bf3facef0 (closes issue #10734)
Reported by: asgaroth
Instead of passing a NULL pointer into snprintf pass "". It makes Solaris much happier.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@82514 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-17 02:00:59 +00:00
Joshua Colp
d080d7bfc4 (closes issue #10603)
Reported by: jmls
Patches:
      pbx.diff uploaded by jmls (license 141)
Backport changes from 81372. Add REASON dialplan variable for when an originated call fails and the failed extension is executed.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@81375 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-30 14:53:43 +00:00
Tilghman Lesher
02d6a884bb Make the deprecation warning inline with the code, instead of only in documentation (closes issue #10549)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@80747 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-24 15:41:43 +00:00
Russell Bryant
0a1a04137e (closes issue #10209)
Reported by: juggie
Patches:
      10209-trunk-2.patch uploaded by juggie
Tested by: juggie, blitzrage

In ast_pbx_run(), mark a channel as hung up after an application returned -1, 
or when it runs out of extensions to execute.  This is so that code can detect
that this channel has been hung up for things like making sure DeadAGI is used
on actual dead channels, and is beneficial for other things, like making sure
someone doesn't try to start spying on a channel that is about to go away.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@75403 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-17 20:01:12 +00:00
Kevin P. Fleming
ae82d97c6d use ast_localtime() in every place localtime_r() was being used
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@69392 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-06-14 21:50:40 +00:00
Steve Murphy
8c635fb2c1 As per 9570, worrisome CDR warnings have been removed, that are either not helpful, or not relevant.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@64193 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-05-14 13:58:42 +00:00
Steve Murphy
d2c7601c21 Merged revisions 62737 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r62737 | murf | 2007-05-02 14:10:32 -0600 (Wed, 02 May 2007) | 1 line

Some tweaks to satisfy CDR bug 8796, where being in 'h' extension louses up the dst field
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@62738 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-05-02 20:46:07 +00:00
Steve Murphy
55f4eb3e3d a)In chan_zap, set the clid, src fields in channel_alloc call. b)in the channel_alloc func, set the cid_num and name fields from the arglist[blush]. c) don't update the channel app & app data fields if you are in the 'h' extension. d)the load_module func in cdr_radius needs to return DECLINE, SUCCESS.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@62689 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-05-02 17:10:50 +00:00
Russell Bryant
a53ebcf546 If no variables were passed into pbx_substitute_variables_helper_full(), then
don't even bother creating a temporary bogus channel, since that is only for
allowing certain functions to operate on the variables as if they were on a 
channel.  Most importantly, this fixes a crash.
(issue #9613, reported by callguy, fixed by me)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@62171 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-04-27 16:14:11 +00:00
Russell Bryant
215adb35b6 Some dialplan functions, such as CUT(), expect to operate on variables on a
channel.  So, this little hack lets them work in places where a channel doesn't
exist, such as within DUNDi configuration.
(issue #9465, reported and patched by Corydon76, testing by blitzrage)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@61765 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-04-23 18:17:00 +00:00
Steve Murphy
7d5a79a0b9 This is a big improvement over the current CDR fixes. It may still need refinement, but this won't have as many folks bothered.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@60989 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-04-09 18:32:07 +00:00
Steve Murphy
798039b4d8 several changes via kpflemings review
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@59522 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-03-30 17:51:17 +00:00
Steve Murphy
9c69e34f62 These mods fix CDR issues from 8221, 8593, 8680, 8743, and perhaps others. Mainly with CDRs generated from transfer situations.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@59486 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-03-30 14:11:59 +00:00
Russell Bryant
1b8da31130 Making these documentation changes in the 1.4 branch upset various people, so
these chanes will only be done in the trunk.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@58955 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-03-16 01:41:00 +00:00
Tilghman Lesher
b6bd80b7f2 Refashion dump command to match common syntax and update the resulting appdocs TeX file
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@58946 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-03-15 23:52:48 +00:00
Tilghman Lesher
6278d5c65b Expand deprecation warnings from simply warning on use to the builtin documentation.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@58939 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-03-15 23:11:33 +00:00
Russell Bryant
c474809cdf Merge changes from svn/asterisk/team/russell/LaTeX_docs.
* Convert most of the doc directory into a single LaTeX formatted document
  so that we can generate a PDF, HTML, or other formats from this
  information.
* Add a CLI command to dump the application documentation into LaTeX format
  which will only be include if the configure script is run with 
  --enable-dev-mode.
* The PDF turned out to be close to 1 MB, so it is not included.  However, you
  can simply run "make asterisk.pdf" to generate it yourself.  We may include
  it in release tarballs or have automatically generated ones on the web site,
  but that has yet to be decided.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@58931 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-03-15 22:25:12 +00:00
Steve Murphy
85b9c4f565 Merged revisions 57825 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r57825 | murf | 2007-03-05 07:53:57 -0700 (Mon, 05 Mar 2007) | 1 line

Fixed a typo introduced via 9156 (either the gotos or their doc strings are wrong)
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@57826 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-03-05 15:20:17 +00:00
Steve Murphy
f8be0ce753 Merged revisions 57458 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r57458 | murf | 2007-03-02 09:39:33 -0700 (Fri, 02 Mar 2007) | 1 line

further refinement in wording of goto documentation, as per 9156, goto not proceeding to next instruction
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@57473 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-03-02 16:55:16 +00:00
Steve Murphy
6bc3d77c05 Merged revisions 57118 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r57118 | murf | 2007-02-28 12:12:41 -0700 (Wed, 28 Feb 2007) | 1 line

a small documentation update, to reflect reality in the goto doc strings, as per 9156, Goto does not proceed to next prio if jump fails
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@57139 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-02-28 19:23:05 +00:00
Joshua Colp
51fc74da59 Use ast_strlen_zero to see if the language and/or context argument is not present for Background instead of just checking if it is NULL. (issue #9141 reported by mjagdis)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@56805 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-02-26 17:09:53 +00:00
Tilghman Lesher
7e0a469bda Merged revisions 53069 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r53069 | tilghman | 2007-02-01 13:13:53 -0600 (Thu, 01 Feb 2007) | 2 lines

No wonder FIELDQTY doesn't work with functions... the documentation in pbx.c was wrong

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@53070 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-02-01 19:21:20 +00:00
Russell Bryant
9aab046002 Merged revisions 53045 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r53045 | russell | 2007-01-31 15:25:11 -0600 (Wed, 31 Jan 2007) | 3 lines

Fix a bunch of places where pthread_attr_init() was called, but
pthread_attr_destroy() was not.

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@53046 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-31 21:32:08 +00:00
Jason Parker
76eb4e76dc Add some more checks for option_debug before ast_log(LOG_DEBUG, ...) calls.
Issue 8832, patch(es) by tgrman


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@51265 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-18 22:50:23 +00:00
Kevin P. Fleming
34b5a7c8ae Merged revisions 50561 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r50561 | kpfleming | 2007-01-12 08:34:15 -0600 (Fri, 12 Jan 2007) | 2 lines

minor documentation clarification

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@50562 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-12 14:42:24 +00:00
Joshua Colp
59432b9e21 Ensure data's existence before trying to access it. (issue #8774 reported by rcourtna)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@50266 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-10 03:51:29 +00:00
Jason Parker
9e621e99a5 Save 1 whopping byte of allocated memory!
This looks like it may have been a chicken/egg scenario..

You had to call a cleanup func, because everything was allocated.
Then since you had to call a cleanup func, you were forced to allocate - ie; strdup("").


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@49742 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-06 00:24:38 +00:00
Jason Parker
0b50088366 Allow fractions of a second in the Wait() application, like it says it allows.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@49189 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-02 17:33:02 +00:00
Kevin P. Fleming
a299485952 since these variables all have static duration, none of them need initializers (they default to zero anyway)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@49006 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-27 22:06:56 +00:00
Steve Murphy
517978fd5f These mods are to solve the problem in bug 7506. It's a lot of rework to solve a fairly small problem... such is life.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@47303 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-07 23:46:41 +00:00
Tilghman Lesher
e05a2752e8 Reverse change of "show" to "list" and make several other commands more consistent with "category verb arguments"
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@47051 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-02 23:00:20 +00:00
Tilghman Lesher
ab677899a7 WaitExten truncates decimals of times to wait, instead of accepting them (Bug 8208)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@46165 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-25 04:58:44 +00:00
Jason Parker
482c18499e Fix an issue with PLAYBACKSTATUS not being set under certain circumstances.
Fix a minor issue, to make it use the filenames that were parsed, instead of the entire argument string.
Fix Background() to return -1 like Playback(), if no args are specified.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@43803 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-27 19:44:02 +00:00
Matt O'Gorman
d0a1a0033d similar patch for verbose vs debug with minor changes
bug 2617


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@43272 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-19 16:23:45 +00:00