Commit Graph

141 Commits

Author SHA1 Message Date
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
Russell Bryant 1c7eb1d82b Change some uses of free() to ast_free(). (No functional differences.)
(closes issue #11138)
Reported by: eliel
Patches: 
      pbx_dundi.c.patch uploaded by eliel (license 64)
	  chan_sip.c.patch uploaded by eliel (license 64)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@88077 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-01 15:56:25 +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
Joshua Colp 9409a33900 Merged revisions 86661 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r86661 | file | 2007-10-22 11:05:26 -0300 (Mon, 22 Oct 2007) | 6 lines

Fix tab completion for dundi show peer.
(closes issue #11041)
Reported by: jsmith
Patches:
      asterisk-dundicomplete.diff.txt uploaded by jamesgolovich (license 176)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@86662 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-22 14:07:14 +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
Jason Parker ed690fc348 Switch dundi to new tos config format.
Remove old unused defines for old style.

Closes issue 10860, patch by IgorG.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@85764 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-15 23:20:40 +00:00
Russell Bryant 3f2e8db598 Merged revisions 85556 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r85556 | russell | 2007-10-15 10:40:45 -0500 (Mon, 15 Oct 2007) | 9 lines

Ensure the buffer passed to ast_canmatch_extension() is properly initialized so
that it is null terminated.

(issue #10977)
Reported by: dimas
Patches: 
      pbxdundi.patch uploaded by dimas (license 88)
	    - small mods by me

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@85557 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-15 15:47:46 +00:00
Russell Bryant e97a723cf1 Merge a ton of NEW_CLI conversions. Thanks to everyone that helped out! :)
(closes issue #10724)
Reported by: eliel
Patches: 
      chan_skinny.c.patch uploaded by eliel (license 64)
      chan_oss.c.patch uploaded by eliel (license 64)
      chan_mgcp.c.patch2 uploaded by eliel (license 64)
      pbx_config.c.patch uploaded by seanbright (license 71)
      iax2-provision.c.patch uploaded by eliel (license 64)
      chan_gtalk.c.patch uploaded by eliel (license 64)
      pbx_ael.c.patch uploaded by seanbright (license 71)
      file.c.patch uploaded by seanbright (license 71)
      image.c.patch uploaded by seanbright (license 71)
      cli.c.patch uploaded by moy (license 222)
      astobj2.c.patch uploaded by moy (license 222)
      asterisk.c.patch uploaded by moy (license 222)
      res_limit.c.patch uploaded by seanbright (license 71)
      res_convert.c.patch uploaded by seanbright (license 71)
      res_crypto.c.patch uploaded by seanbright (license 71)
      app_osplookup.c.patch uploaded by seanbright (license 71)
      app_rpt.c.patch uploaded by seanbright (license 71)
      app_mixmonitor.c.patch uploaded by seanbright (license 71)
      channel.c.patch uploaded by seanbright (license 71)
      translate.c.patch uploaded by seanbright (license 71)
      udptl.c.patch uploaded by seanbright (license 71)
      threadstorage.c.patch uploaded by seanbright (license 71)
      db.c.patch uploaded by seanbright (license 71)
      cdr.c.patch uploaded by moy (license 222)
      pbd_dundi.c.patch uploaded by moy (license 222)
      app_osplookup-rev83558.patch uploaded by moy (license 222)
      res_clioriginate.c.patch uploaded by moy (license 222)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@85460 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-11 19:03:06 +00:00
Russell Bryant 41d513f443 Merged revisions 83976 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r83976 | russell | 2007-09-26 19:01:29 -0500 (Wed, 26 Sep 2007) | 1 line

remove a todo item that has been completed
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@83977 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-27 00:02:18 +00:00
Russell Bryant 9f64905d4e Merged revisions 83432 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r83432 | russell | 2007-09-21 09:37:20 -0500 (Fri, 21 Sep 2007) | 4 lines

gcc 4.2 has a new set of warnings dealing with cosnt pointers.  This set of
changes gets all of Asterisk (minus chan_alsa for now) to compile with gcc 4.2.
(closes issue #10774, patch from qwell)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@83433 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-21 14:40:10 +00:00
Joshua Colp 6489076887 Fix memory leaks in pbx_dundi, cdr_pgsql, and the configuration file parser.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@83229 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-20 16:10:57 +00:00
Russell Bryant 3d7cf301d8 Merged revisions 82802 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r82802 | russell | 2007-09-18 11:31:01 -0500 (Tue, 18 Sep 2007) | 4 lines

When copying the contents from the wildcard peer, do a deep copy instead of
shallow copy so that it doesn't crash when beging destroyed.
(closes issue #10546, patch by me)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@82803 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-18 16:34:05 +00:00
Russell Bryant c0f72f5311 Merged revisions 82250 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r82250 | russell | 2007-09-11 11:03:42 -0500 (Tue, 11 Sep 2007) | 4 lines

The sample dundi.conf claims support for a wildcard peer entry - [*], but the
code did not support it.  This patch makes it work.
(closes issue #10546, patch by dds, with some changes by me)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@82251 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-11 16:05:03 +00:00
Joshua Colp 078595f5c5 Merged revisions 82243 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r82243 | file | 2007-09-11 11:56:39 -0300 (Tue, 11 Sep 2007) | 6 lines

(closes issue #10577)
Reported by: jamesgolovich
Patches:
      asterisk-dundifree.diff.txt uploaded by jamesgolovich (license 176)
Don't leak memory when unloading DUNDi.

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@82244 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-11 14:58:11 +00:00
Russell Bryant 2f4a2811b6 Add proper channel locking around the uses of datastore_add and _find. There
are still more places in the tree that I have not yet changed if someone wants
to go through and find the places they are used without the channel locked.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@81262 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-28 18:41:18 +00:00
Russell Bryant 44795584b2 This should have been trunk only, I guess. oh well ... it's harmless.
Merged revisions 81065 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r81065 | russell | 2007-08-27 11:38:33 -0500 (Mon, 27 Aug 2007) | 1 line

explicity define a variable as a boolean
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@81098 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-27 17:44:24 +00:00
Russell Bryant adcd4d4ab4 Merged revisions 81074 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r81074 | russell | 2007-08-27 12:27:48 -0500 (Mon, 27 Aug 2007) | 3 lines

Add a \todo to note that this module leaks most of the memory it allocates on
unload and should be fixed (when I'm not in the middle of something else ...).

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@81076 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-27 17:28:14 +00:00
Russell Bryant 8d4761f8d3 localize a variable and remove a duplicate error message
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@80897 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-25 17:49:51 +00:00
Jason Parker fafa7d93e4 Correct the argument separator for a Dial statement in pbx_dundi.
Closes issue #10483, patch by lunn


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@79888 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-17 15:27:19 +00:00
Tilghman Lesher 56b9568164 Don't reload a configuration file if nothing has changed.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@79747 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-16 21:09:46 +00:00
Joshua Colp 3f998a86a1 (closes issue #10467)
Reported by: lunn
Patches:
      pbx_dundi.diff uploaded by lunn (license 179)
Don't print a warning saying an ethernet interface was found when it indeed was.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@79688 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-16 15:29:44 +00:00
Russell Bryant 4e0947c5f1 Convert code that checks the _softhangup member of ast_channel directory to use
the ast_check_hangup() funciton.  This function takes scheduled hangups into
account.
(closes issue #10230, patch by Juggie)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@77858 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-01 15:39:54 +00:00
Russell Bryant f8483a0d04 Do a massive conversion for using the ast_verb() macro
(closes issue #10277, patches by mvanbaak)

Basically, this changes ...

if (option_verbose > 2)
   ast_verbose(VERBOSE_PREFIX_3, "Something\n");

to ...

ast_verb(3, "Something\n");


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@77299 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-26 15:49:18 +00:00
Steve Murphy 0e969271ae After some study, thought, comparing, etc. I've backed out the previous universal mod to make ast_flags a 64 bit thing. Instead, I added a 64-bit version of ast_flags (ast_flags64), and 64-bit versions of the test-flag, set-flag, etc. macros, and an app_parse_options64 routine, and I use these in app_dial alone, to eliminate the 30-option limit it had grown to meet. There is room now for 32 more options and flags. I was heavily tempted to implement some of the other ideas that were presented, but this solution does not intro any new versions of dial, doesn't have a different API, has a minimal/zero impact on code outside of dial, and doesn't seriously (I hope) affect the code structure of dial. It's the best I can think of right now. My goal was NOT to rewrite dial. I leave that to a future, coordinated effort.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@75983 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-19 23:24:27 +00:00
Steve Murphy 5ac24b25d3 This corrects the problem with flags and %lld formats on 64-bit machines, where uint64_t is NOT acceptable for %lld, and also works on 32-bit machines. At least, with gcc.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@75585 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-18 14:35:07 +00:00
Joshua Colp 674dbeb0cf Merged revisions 75583 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r75583 | file | 2007-07-18 11:18:53 -0300 (Wed, 18 Jul 2007) | 5 lines

(closes issue #10224)
Reported by: irroot

Record the threadid of each running thread before shutting them down as the thread themselves may change the value.

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@75584 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-18 14:20:19 +00:00
Steve Murphy 8a7732f067 via 10206, I have added an option (e) to Dial to allow the h exten to get run on peer. Had to upgrade ast_flag stuff to 64 bits to do this.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@75400 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-17 19:40:29 +00:00
Joshua Colp 836ea36d3c Merged revisions 74045 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r74045 | file | 2007-07-09 11:49:05 -0300 (Mon, 09 Jul 2007) | 2 lines

Few minor thread synchronization tweaks. (issue #10124 reported by gzero)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@74046 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-09 14:50:04 +00:00
Joshua Colp 36668045a6 Merged revisions 72006 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r72006 | file | 2007-06-26 20:58:35 -0400 (Tue, 26 Jun 2007) | 2 lines

Make unloading of pbx_dundi actually work.

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@72007 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-06-27 01:00:47 +00:00
Kevin P. Fleming 4573b36af1 use the OpenSSL AES implementation if it's available (unless configured not to)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@66071 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-05-24 22:07:50 +00:00
Russell Bryant 4b3a3fb14c Add a new API call for creating detached threads. Then, go replace all of the
places in the code where the same block of code for creating detached threads
was replicated.  (patch from bbryant)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@65968 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-05-24 18:30:19 +00:00
Russell Bryant f02e26feff Make sure that DUNDIRESULT is given an ID.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@64469 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-05-15 22:57:01 +00:00
Russell Bryant b419fc1134 Add support for setting the CoS for VLAN traffic (802.1p) in Linux. The
file doc/qos.tex has been updated to document the new functionality.
(issue #9540, patch submitted by IgorG)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@62457 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-04-30 16:16:26 +00:00
Russell Bryant c59b8876aa Merge changes from team/russell/dundi_results
This introduces two new dialplan functions: DUNDIQUERY and DUNDIRESULT.
DUNDIQUERY lets you intitiate a DUNDi query from the dialplan.  Then,
DUNDIRESULT will let you find out how many results there are, and access each
one without having to the query again.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@62267 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-04-28 19:52:37 +00:00
Russell Bryant 32e03f9e4a Add the ability to dynamically specify weights for responses to DUNDi queries.
This can be done using a global variable or a dialplan function.  Using the
SHELL() function will allow you to use an external script to determine what the
weight in the response should be.  This can be very useful in load balancing
applications.
(inspired by discussions with blitzrage and jsmith in #asterisk-bugs)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@58304 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-03-07 22:30:52 +00:00
Joshua Colp e7b03a991e Convert the PBX core to use read/write locks. This yields a nifty performance improvement when it comes to simultaneous calls going through the dialplan. Using murf's test the old mutex based core took an average of 57.3 seconds while the rwlock based core took 31.1 seconds. That's a nifty 26.2 seconds performance improvement. The other good part is that if we do need to switch back then we just have to change the lock/unlock API calls. I converted everywhere that used to touch the mutex locks directly to use them.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@57184 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-02-28 20:46:01 +00:00
Russell Bryant b233892198 Merged revisions 53046 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

................
r53046 | russell | 2007-01-31 15:32:08 -0600 (Wed, 31 Jan 2007) | 11 lines

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/trunk@53047 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-31 21:35:15 +00:00
Kevin P. Fleming cd73a483f1 const-ify some more APIs, and fix rev 49710 from branch-1.4 in a better way here
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@49711 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-05 23:32:42 +00:00
Russell Bryant 17a2888d2e Staticize one, and Constify a bunch of usage strings for CLI commands.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48303 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-06 07:28:56 +00:00
Joshua Colp eceb5c60d7 Fine, take this.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47465 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-10 20:05:31 +00:00
Joshua Colp 3521586712 Hello compiler working, goodbye compiler warning. (fix compiler warning introduced from pbx_dundi optimizations)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47461 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-10 19:42:15 +00:00
Russell Bryant 74b6314d50 Various little bits of code cleanup to reduce nesting, remove useless casts,
and to remove a duplicated error message after a memory allocation error


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47410 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-10 04:30:23 +00:00
Russell Bryant 908b6ed6bc Make pbx_dundi compile again. Sorry. :(
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47213 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-05 01:04:29 +00:00
Russell Bryant b1e7dd843a use the AST_MODULE_LOAD_* return codes from load_module()
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47207 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-04 22:08:35 +00:00
Russell Bryant 121bd75fcc simplify a couple of loops
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47206 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-04 21:54:37 +00:00
Russell Bryant 4b5ad8fb98 Do some minor cleanup to the section of code that sets the EID by getting the
mac address for an ethernet interface


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47204 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-04 21:44:48 +00:00
Russell Bryant 4ffc388358 Add the ability to pass options to the Dial application when using the DUNDi
switch in the dialplan by setting the DUNDIDIALARGS channel variable.
(issue #8084, patch by bluecrow76, with small modifications and documentation
updates)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@46781 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-01 18:40:13 +00:00
Russell Bryant fef9ec96c7 put flags in an enum and remove a couple of unused defines
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@44944 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-12 16:51:31 +00:00
Kevin P. Fleming 3c876af5cf Merged revisions 44378 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r44378 | kpfleming | 2006-10-04 14:47:22 -0500 (Wed, 04 Oct 2006) | 4 lines

update thread creation code a bit
reduce standard thread stack size slightly to allow the pthreads library to allocate the stack+data and not overflow a power-of-2 allocation in the kernel and waste memory/address space
add a new stack size for 'background' threads (those that don't handle PBX calls) when LOW_MEMORY is defined

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@44379 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-04 19:51:38 +00:00
Matt O'Gorman ae8cc3e18b bug #8076 check option_debug before printing to debug channel.
patch provided in bugnote, with minor changes.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@44253 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-03 15:53:07 +00:00