Commit Graph

1103 Commits (799fc3b99fa19e74499b691ab7bd7fd00117b4cf)

Author SHA1 Message Date
Tilghman Lesher 9cd09c5214 Merged revisions 89239 via svnmerge from
18 years ago
Jason Parker cfbc4f5fb8 Doxygen fixes.
18 years ago
Steve Murphy fd1fbb0223 Thanks to snuff-work, who brought up that these fixes might need to be made.
18 years ago
Jason Parker 50879dcb1d Merged revisions 89194 via svnmerge from
18 years ago
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.
18 years ago
Tilghman Lesher 061e5a1674 Merged revisions 89184 via svnmerge from
18 years ago
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.
18 years ago
Jason Parker ec8497c58f Merged revisions 89125 via svnmerge from
18 years ago
Mark Michelson 0881f07aed AST_LIST_REMOVE_CURRENT takes only one argument.
18 years ago
Luigi Rizzo 339d27ebe9 use %d and cast to int instead of %zd for size_t object,
18 years ago
Kevin P. Fleming c18691dec0 Merged revisions 89105 via svnmerge from
18 years ago
Kevin P. Fleming edc78d6023 improve linked-list macros in two ways:
18 years ago
Luigi Rizzo d0b2d2dc62 remove a debugging message which i forgot in.
18 years ago
Russell Bryant 5480c54e56 Fix another CLI command so it doesn't run the real code when called for initialization.
18 years ago
Joshua Colp f440f8ba48 Fix up some PBX logic that became broken. The code would exit prematurely when it should have been collecting more digits.
18 years ago
Tilghman Lesher 7c56918262 Commit some cleanups to the format type code.
18 years ago
Steve Murphy 9f08e7e132 Merged revisions 89036 via svnmerge from
18 years ago
Joshua Colp 0971b51cfc Remove native bridging check for DTMF based transfers. Thanks to the last batch of RTP changes it is no longer required for the media stream to go through Asterisk if DTMF is going over signalling. It will simply reinvite back as needed.
18 years ago
Russell Bryant 5ab1541da9 Fix the memory show allocations CLI command so that it doesn't spew out all
18 years ago
Steve Murphy 117d3d834e Hoping to avoid a crash in OSX for a problem blitzrage found
18 years ago
Olle Johansson 402cfcfbbc Formatting. Illegaly using some spare spaces from Russell's space-bucket.
18 years ago
Olle Johansson 6519abeffc Additional TDD changes (preparing for SIP changes - adding TDD support to SIP)
18 years ago
Mark Michelson 5a4867543d "show application <foo>" changes for clarity.
18 years ago
Olle Johansson 8b917df39b Merged revisions 89042 via svnmerge from
18 years ago
Luigi Rizzo 81456f8493 Fix embedding of modules on FreeBSD:
18 years ago
Russell Bryant 9bfd82cec2 Merged revisions 88805 via svnmerge from
18 years ago
Mark Michelson 57c4409689 Merged revisions 88826 via svnmerge from
18 years ago
Luigi Rizzo b80dc41707 Move the last instance of AST_LIBS to the only place it is used,
18 years ago
Russell Bryant aecb21e822 Merged revisions 88719 via svnmerge from
18 years ago
Russell Bryant 7df9905e71 Merged revisions 88709 via svnmerge from
18 years ago
Russell Bryant 6677325afc Merged revisions 88624 via svnmerge from
18 years ago
Luigi Rizzo ba6664ef7d remove a cygwin-specific function remap that does not work.
18 years ago
Luigi Rizzo 08b10da53b Simplify the implementation and the API for stringfields;
18 years ago
Tilghman Lesher eb856fbb48 Revert commit #86119. Some users intentionally do not want colorized terminals, so this was a misfeature.
18 years ago
James Golovich 05dd7fec2c Set CLI command to the correct name. Rev 85460 introduced two 'database show' commands when this one
18 years ago
Russell Bryant 927901fdef Show the channel unique ID in the "show channel concise" output
18 years ago
Jason Parker 4cb45f18a1 Merged revisions 88283 via svnmerge from
18 years ago
Tilghman Lesher e8c781b215 Add pbx_lua as a method of doing extensions
18 years ago
Tilghman Lesher b6c7daa804 Don't re-cache the filename, but check to see if it already exists
18 years ago
Tilghman Lesher b5c2bcb169 'h' extension doesn't execute past first priority
18 years ago
Tilghman Lesher 90db1316ed Modify WaitExten to include an optional dialtone
18 years ago
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.
18 years ago
Tilghman Lesher c2aee728e9 Conditionally free lock_info->thread_name to avoid a useless warning
18 years ago
Joshua Colp 284721fdb1 Drop any more references to type in the Exception dialplan function.
18 years ago
Tilghman Lesher b6ec350910 Optimize pbx_substitute_variables
18 years ago
Jason Parker e985a00a32 Update documentation to give an example of how to use the return status of RaiseException
18 years ago
Mark Michelson e0d13e169c The priority gets incremented after raising an exception, so the priority should be set to 0
18 years ago
Mark Michelson e5f87bbac3 Jumped the gun a bit in the RaiseException app. It would always return -1
18 years ago
Jason Parker efe87112fb Merged revisions 87567 via svnmerge from
18 years ago
Kevin P. Fleming a4b8ca220d clean up assembler and preprocessor files if they are here too
18 years ago