Steve Murphy
8e90425a6c
A free in add_pri was ultimately the source of the grief we were having with parking. This set of changes fixes that problem, and introduces some more error messages, and puts debugs into ifdefs for what could be short-term usage. Txs to Terry W. for his help, guidance, and especially patience.
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89474 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-21 01:09:47 +00:00
Luigi Rizzo
a23c055c3d
move asterisk/paths.h outside asterisk.h and into those files
...
who really need it.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89466 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-20 23:16:15 +00:00
Luigi Rizzo
915b97d300
move internal function declarations to include/asterisk/_private.h
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89465 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-20 22:18:21 +00:00
Mark Michelson
dda649ead2
Merged revisions 89457 via svnmerge from
...
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r89457 | mmichelson | 2007-11-20 11:50:31 -0600 (Tue, 20 Nov 2007) | 9 lines
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/trunk@89458 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-20 17:59:00 +00:00
Steve Murphy
f62bf52e55
Get rid of some debug messages in pbx.c
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89442 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-20 00:17:15 +00:00
Steve Murphy
4ea5eced10
These changes were made in response to niklas@tese.se's letter of 11-17-2007, where he had 20 and 201 in two different contexts, included in the same context. In that particular case, we were behaving the same as 1.4, but after experimenting, I quickly found that if 20 and 201 were in the same extension, 1.4 would return 201, and this code returns 20. These changes now enable the current code to replicate the behavior of 1.4 in respect to MATCHMORE in cases like this.
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89438 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-19 22:55:38 +00:00
Luigi Rizzo
9335ace850
another bunch of include removals (errno.h and asterisk/logger.h)
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89425 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-19 19:09:03 +00:00
Steve Murphy
406f6f2909
a correction to code involved in an extension removal
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89422 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-19 17:18:26 +00:00
Steve Murphy
1a5cdeb138
a quick fix to pbx_dundi.c to make it so it will compile. Hope I did the right thing. And some additions to removal of extens to take care of hashtab pointers in all cases.
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89388 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-17 17:46:36 +00:00
Steve Murphy
7953c2c46f
My goodness, haven't handled an extension deletion. Add code to ast_context_remove_extension2() to remove an extension from the trie. Done by marking it deleted. The scoreboard won't update for it any more. Also, a couple of calls to insert hashtab had a spurious ->exten, which was removed.
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89346 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-16 23:33:32 +00:00
Luigi Rizzo
fdb7f7ba3d
Start untangling header inclusion in a way that does not affect
...
build times - tested, there is no measureable difference before and
after this commit.
In this change:
use asterisk/compat.h to include a small set of system headers:
inttypes.h, unistd.h, stddef.h, stddint.h, sys/types.h, stdarg.h,
stdlib.h, alloca.h, stdio.h
Where available, the inclusion is conditional on HAVE_FOO_H as determined
by autoconf.
Normally, source files should not include any of the above system headers,
and instead use either "asterisk.h" or "asterisk/compat.h" which does it
better.
For the time being I have left alone second-level directories
(main/db1-ast, etc.).
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89333 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-16 20:04:58 +00:00
Steve Murphy
ab32ff2ad8
This corrects a hashtab removal, given a bad argument
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89330 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-16 19:26:54 +00:00
Steve Murphy
542f29ea0e
This fixes a problem with pattern ranges; and corrects a situation in res_features, where an extension would be created with the name Zap/51, as an example. THe / is bad because it would tend to mean that the 51 is to be cid matched.
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89329 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-16 18:59:02 +00:00
Steve Murphy
eee92d0881
Get rid of a previously missed ast_log call for debug, no longer nec.
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89295 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-15 16:50:16 +00:00
Steve Murphy
0bad49b3dd
Perhaps I went overboard on initializing things. I can remove unnecc. stuff later. A few bug fixes. Killing small bugs on the way to killing bigger ones. Removed locking on hashtabs; there's plenty of locks already being taken. A small bug in the root_tree hashtab compare func.
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89294 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-15 16:30:13 +00:00
Steve Murphy
620e580ed6
Had trouble playing with parking; spent a long time trying to reason out MATCHMORE mode. made these updates and xfers on zaptel lines seem to work ok now
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89277 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-15 01:42:12 +00:00
Steve Murphy
20d24e1027
Rescaled the weights of the patterns to give something more independent of pattern length; and make . less likely to win. Question: which should win for 14102241145-- _1xxxxxxx. or _XXXXXXXXXXX -- right now, the pure X pattern will win.
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89272 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-14 18:05:50 +00:00
Steve Murphy
225c94d950
A further problem highlighted by 11233 has been resolved; a certain combination of patterns in a certain order, led to a malformed trie, due to a ptr not being initialized in the loop. Also, some tree printing prettifications.
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89271 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-14 15:43:30 +00:00
Kevin P. Fleming
a34bbab643
use simpler technique for removing known entries from lists
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89259 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-14 00:54:38 +00:00
Steve Murphy
fd1f6df25f
This hopefully will fix the re-opened 11233. Hadn't covered the case of a context with no patterns. (blush)
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89257 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-13 23:43:41 +00:00
Steve Murphy
f0a7e86177
closes issue #11233 -- where some fine points in the algorithm to build the tree needed to be corrected. Many thanks for the test case, jtodd
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89256 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-13 21:19:11 +00:00
Jason Parker
50879dcb1d
Merged revisions 89194 via svnmerge from
...
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r89194 | qwell | 2007-11-12 14:46:52 -0600 (Mon, 12 Nov 2007) | 1 line
Fix a typo pointed out by De_Mon on #asterisk-dev
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89195 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-12 20:48:57 +00:00
Steve Murphy
98429d37b2
Based on a note in asterisk-dev by Brian Capouch, I determined I too agressive in not initializing arrays passed to pbx_substitute_variables_xxxx; I reviewed the code (again) and hopefully found every possible spot where substitute_variables is called conditionally, and made sure the char array involved was set to a null string.
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89186 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-12 18:44:36 +00:00
Steve Murphy
a897556f7f
This is the perhaps the biggest, boldest, most daring change I've ever committed to trunk. Forgive me in advance any disruption this may cause, and please, report any problems via the bugtracker. The upside is that this can speed up large dialplans by 20 times (or more). Context, extension, and priority matching are all fairly constant-time searches. I introduce here my hashtables (hashtabs), and a regression for them. I would have used the ast_obj2 tables, but mine are resizeable, and don't need the object destruction capability. The hashtab stuff is well tested and stable. I introduce a data structure, a trie, for extension pattern matching, in which knowledge of all patterns is accumulated, and all matches can be found via a single traversal of the tree. This is per-context. The trie is formed on the first lookup attempt, and stored in the context for future lookups. Destruction routines are in place for hashtabs and the pattern match trie. You can see the contents of the pattern match trie by using the 'dialplan show' cli command when 'core set debug' has been done to put it in debug mode. The pattern tree traversal only traverses those parts of the tree that are interesting. It uses a scoreboard sort of approach to find the best match. The speed of the traversal is more a function of the length of the pattern than the number of patterns in the tree. The tree also contains the CID matching patterns. See the source code comments for details on how everything works. I believe the approach general enough that any issues that might come up involving fine points in the pattern matching algorithm, can be solved by just tweaking things. We shall see. The current pattern matcher is fairly involved, and replicating every nuance of it is difficult. If you find and report problems, I will try to resolve than as quickly as I can. The trie and hashtabs are added to the existing context and exten structs, and none of the old machinery has been removed for the sake of the multitude of functions that use them. In the future, we can (maybe) weed out the linked lists and save some space.
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89129 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-09 16:00:22 +00:00
Kevin P. Fleming
edc78d6023
improve linked-list macros in two ways:
...
- the *_CURRENT macros no longer need the list head pointer argument
- add AST_LIST_MOVE_CURRENT to encapsulate the remove/add operation when moving entries between lists
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89106 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-08 05:28:47 +00:00
Joshua Colp
f440f8ba48
Fix up some PBX logic that became broken. The code would exit prematurely when it should have been collecting more digits.
...
(closes issue #11175 )
Reported by: pj
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89072 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-06 23:08:36 +00:00
Mark Michelson
5a4867543d
"show application <foo>" changes for clarity.
...
(closes issue #11171 , reported and patched by blitzrage)
Many thanks!
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89044 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-06 19:04:45 +00:00
Russell Bryant
9bfd82cec2
Merged revisions 88805 via svnmerge from
...
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r88805 | russell | 2007-11-05 16:07:54 -0600 (Mon, 05 Nov 2007) | 12 lines
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/trunk@88934 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-06 14:08:54 +00:00
Luigi Rizzo
08b10da53b
Simplify the implementation and the API for stringfields;
...
details and examples are in include/asterisk/stringfields.h.
Not applicable to older branches except for 1.4 which will
receive a fix for the routines that free memory pools.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@88454 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-04 19:44:31 +00:00
Tilghman Lesher
e8c781b215
Add pbx_lua as a method of doing extensions
...
Reported by: mnicholson
Patch by: mnicholson
Closes issue #11140
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@88250 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-02 15:36:34 +00:00
Tilghman Lesher
b5c2bcb169
'h' extension doesn't execute past first priority
...
Reported by: dimas
Patch by: dimas
Closes bug #11146
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@88209 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-02 12:54:31 +00:00
Tilghman Lesher
90db1316ed
Modify WaitExten to include an optional dialtone
...
Closes issue #10783
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@88183 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-01 23:26:35 +00:00
Steve Murphy
63f2f04cf4
This commits the performance mods that give the priority processing engine in the pbx, a 25-30% speed boost. The two updates used, are, first, to merge the ast_exists_extension() and the ast_spawn_extension() where they are called sequentially in a loop in the code, into a slightly upgraded version of ast_spawn_extension(), with a few extra args; and, second, I modified the substitute_variables_helper_full, so it zeroes out the byte after the evaluated string instead of demanding you pre-zero the buffer; I also went thru the code and removed the code that zeroed this buffer before every call to the substitute_variables_helper_full. The first fix provides about a 9% speedup, and the second the rest. These figures come from the 'PIPS' benchmark I describe in blogs, conf. reports, etc.
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@88166 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-01 22:26:51 +00:00
Joshua Colp
284721fdb1
Drop any more references to type in the Exception dialplan function.
...
(closes issue #11134 )
Reported by: blitzrage
Patches:
exception_patch.txt uploaded by blitzrage (license 10)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@87953 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-01 00:04:43 +00:00
Tilghman Lesher
b6ec350910
Optimize pbx_substitute_variables
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@87811 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-31 15:46:41 +00:00
Jason Parker
e985a00a32
Update documentation to give an example of how to use the return status of RaiseException
...
Closes issue #11117 , patch by blitzrage (yay blitzrage)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@87626 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-30 18:28:55 +00:00
Mark Michelson
e0d13e169c
The priority gets incremented after raising an exception, so the priority should be set to 0
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@87608 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-30 17:07:26 +00:00
Mark Michelson
e5f87bbac3
Jumped the gun a bit in the RaiseException app. It would always return -1
...
since it checked for the existence of something that will never exist.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@87573 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-30 16:36:29 +00:00
Jason Parker
ebe4050128
Switch from AST_CLI (formerly NEW_CLI) to AST_CLI_DEFINE, since the former didn't make much sense
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@86820 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-22 20:05:18 +00:00
Jason Parker
b0f3e6097e
Convert NEW_CLI to AST_CLI.
...
Closes issue #11039 , as suggested by seanbright.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@86536 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-19 18:29:40 +00:00
Tilghman Lesher
c0fcb59d38
Merged revisions 85356 via svnmerge from
...
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r85356 | tilghman | 2007-10-10 23:35:33 -0500 (Wed, 10 Oct 2007) | 2 lines
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/trunk@85357 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-11 04:40:56 +00:00
Joshua Colp
094e9d8397
Don't register the exception function with module information. Since it is in the core there is none and it will explode.
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@84613 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-04 02:01:43 +00:00
Tilghman Lesher
c2f7cc4bd4
Create a universal exception handling extension, "e" (closes issue #9785 )
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@84580 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-03 22:14:09 +00:00
Tilghman Lesher
5139a2f6f7
Add MSet for people who prefer the old, deprecated syntax of Set (Closes issue #10549 )
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@84405 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-02 18:12:49 +00:00
Jason Parker
c7a9ec1691
(issue #10724 )
...
Reported by: eliel
Patches:
res_features.c.patch uploaded by eliel (license 64)
res_agi.c.patch uploaded by seanbright (license 71)
res_musiconhold.c.patch uploaded by seanbright (license 71)
pbx.c.patch uploaded by moy (license 222)
logger.c.patch uploaded by moy (license 222)
frame.c.patch uploaded by moy (license 222)
manager.c.patch uploaded by moy (license 222)
http.c.patch uploaded by moy (license 222)
dnsmgr.c.patch uploaded by moy (license 222)
res_realtime.c.patch uploaded by eliel (license 64)
res_odbc.c.patch uploaded by seanbright (license 71)
res_jabber.c.patch uploaded by eliel (license 64)
chan_local.c.patch uploaded by eliel (license 64)
chan_agent.c.patch uploaded by eliel (license 64)
chan_alsa.c.patch uploaded by eliel (license 64)
chan_features.c.patch uploaded by eliel (license 64)
chan_sip.c.patch uploaded by eliel (license 64)
RollUp.1.patch (includes all of the above patches) uploaded by seanbright (license 71)
Convert many CLI commands to the NEW_CLI format.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@82930 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-18 22:43:45 +00:00
Joshua Colp
abe84c029f
Merged revisions 82514 via svnmerge from
...
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r82514 | file | 2007-09-16 23:00:59 -0300 (Sun, 16 Sep 2007) | 4 lines
(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/trunk@82516 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-17 02:02:09 +00:00
Mark Michelson
3a6e79ad80
Fixes Solaris build warnings
...
(closes issue #10698 , reported and patched by snuffy)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@82283 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-12 16:24:45 +00:00
Joshua Colp
56e74f0dde
(closes issue #10603 )
...
Reported by: jmls
Patches:
pbx.diff uploaded by jmls (license 141)
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/trunk@81372 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-30 14:42:41 +00:00
Tilghman Lesher
f8c93488d5
Fix documentation for Set (closes issue #10549 )
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@80817 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-24 19:50:16 +00:00
Steve Murphy
9836efb5fb
This commit closes bug 7605, and half-closes 7638. The AEL code has been redistributed/repartitioned to allow code re-use both inside and outside of Asterisk. This commit introduces the utils/conf2ael program, and an external config-file reader, for both normal config files, and for extensions.conf (context, exten, prio); It provides an API for programs outside of asterisk to use to play with the dialplan and config files.
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@79595 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-15 19:21:27 +00:00