Commit graph

975 commits

Author SHA1 Message Date
Matthew Fredrickson
3c4dc2033f Update configure and closest kin. *Hopes my branch doesn't break*
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@43282 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-19 17:09:01 +00:00
Matt O'Gorman
465adf2bf1 allow for packetization on rtp channel drivers, need to add
option for setting our own packetization as apposed to just doing 
what is asked.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@43243 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-18 23:32:57 +00:00
Kevin P. Fleming
734a3d356e don't need two copies of this
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@43239 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-18 22:14:09 +00:00
Kevin P. Fleming
7b43316cbc a little cleanup and simplification, and remove ON_FIRST_USE mode since nobody uses it
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@43237 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-18 22:05:53 +00:00
Jason Parker
31d25ac6f3 u_intXX_t is silly
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@43236 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-18 22:02:04 +00:00
Kevin P. Fleming
fcb999c01c merge qwell's CLI verbification work
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@43212 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-18 19:54:18 +00:00
Kevin P. Fleming
c2c4f86c72 merge markster's usersconf branch with some slight changes
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@43052 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-16 23:53:58 +00:00
Jason Parker
f18cbf77df Many Solaris fixes - this moves some of the stuff from utils.c to strcompat.c
Every OS uses strcompat now - this was done on purpose.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@42982 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-15 17:16:00 +00:00
Joshua Colp
bc5924120d Remove old unused functions
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@41974 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-04 03:18:12 +00:00
Joshua Colp
55d594e9da Make the difference clear about what the responsibilities of the core and a spy are when it comes to spying on a channel. The core is responsible for adding a spy to a channel, feeding frames into the spy, removing the spy from the channel, and notifying the spy that is has been detached. The spy is responsible for reading frames in, and cleaning itself up. Each side will not try to do the other's job.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@41959 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-03 23:30:37 +00:00
Russell Bryant
4de3c0e447 Add the ability to specify that a frame should not be considered for caching
for uses in cases where you *know* that it will do no good.  This patch was
inspired by file for use in some work of his on mixmonitor/chanspy.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@41958 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-03 23:14:54 +00:00
Joshua Colp
c6977b9983 Merge in VLDTMF support with Zaptel/Core done by the ever great Darumkilla Russell Bryant and the RTP portion done by myself, Muffinlicious Joshua Colp. This has gone through so many discussions/revisions it's not funny but we finally have it!
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@41507 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-31 01:59:02 +00:00
Joshua Colp
12b6ec4e11 Use an API call (ast_rtp_get_bridged) to return the RTP stream we are bridged to, and also use it in chan_sip so we know to ignore the no RTP activity checking
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@41316 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-30 03:16:03 +00:00
Kevin P. Fleming
ece7018515 add one remaining bit of functionality to the features.conf applicationmap (from Matt Nicholson in Digium Express Services)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@41281 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-29 21:20:43 +00:00
Russell Bryant
f7e7161607 Merge team/russell/frame_caching
There are some situations in Asterisk where ast_frame and/or iax_frame
structures are rapidly allocatted and freed (at least 50 times per second
for one call).

This code significantly improves the performance of ast_frame_header_new(), 
ast_frdup(), ast_frfree(), iax_frame_new(), and iax_frame_free() by keeping
a thread-local cache of these structures and using frames from the cache 
whenever possible instead of calling malloc/free every time.

This commit also converts the ast_frame and iax_frame structures to use the
linked list macros.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@41278 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-29 20:50:36 +00:00
Joshua Colp
c70ed7614a Merge in RTP-level packet bridging. Packet comes in, packet goes out - that's what RTP-level packet bridging is all about!
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@41235 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-28 17:37:56 +00:00
Russell Bryant
3a83fbed5b menuselect doesn't use asterisk's autoconfig.h anymore, so this ifdef can be
removed


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@41181 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-26 17:15:38 +00:00
Russell Bryant
1ff5a0988d Merged revisions 40994 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r40994 | russell | 2006-08-24 15:41:26 -0400 (Thu, 24 Aug 2006) | 11 lines

Fix a few issues related to the handling of channel variables
 - in pbx_builtin_serialize_variables(), the variable list traversal would stop
   on a variables with empty name/values, which is not appropriate
 - When removing the GROUP variables, use AST_LIST_REMOVE_CURRENT instead of
   AST_LIST_REMOVE
 - During masquerading, when copying the variables list from one channel to the
   other, using AST_LIST_INSERT_TAIL is not valid for appending a whole list.
   It leaves the tail pointer of the list invalid.  Introduce a new macro,
   AST_LIST_APPEND_LIST that appends a list properly.
(issue #7802, softins)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@40995 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-24 19:53:43 +00:00
Olle Johansson
8b3aeaeae6 Fixing a comment
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@40960 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-23 21:19:21 +00:00
Kevin P. Fleming
7eecf0bfbc use RTLD_NOLOAD if it's available to make loading dynamic modules a little faster and less resource-intensive
also, keep trying to dlclose() a module until it actually goes away, since it may have other modules it brought in when it was loaded (thanks PCadach for pointing this problem out to me)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@40949 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-23 19:28:13 +00:00
Kevin P. Fleming
74fb27c15f add a new include file for out-of-tree modules that need to know where things are located
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@40853 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-22 21:45:15 +00:00
Joshua Colp
432e19f2b7 Sorry, but this does not resemble malloc... so GCC was ignoring the attribute and throwing a warning.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@40815 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-22 01:57:40 +00:00
Kevin P. Fleming
26fa229138 restore 'preload' functionality in loader
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@40796 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-21 22:23:26 +00:00
Kevin P. Fleming
6cd063c74d use new configure-provided wrappers for attributes
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@40785 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-21 19:56:45 +00:00
Russell Bryant
d030102eed - use a common error message in all of the memory allocation macros
- add ast_asprintf() and ast_vasprintf()
- tweak doxygen comments
- simplify the definition of a flag macro


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@40775 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-21 17:22:24 +00:00
Kevin P. Fleming
0a27d8bfe5 merge new_loader_completion branch, including (at least):
- restructured build tree and makefiles to eliminate recursion problems
  - support for embedded modules
  - support for static builds
  - simpler cross-compilation support
  - simpler module/loader interface (no exported symbols)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@40722 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-21 02:11:39 +00:00
Russell Bryant
5dc72404ab convert lists of constants in channel.h to enums instead of #defines
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@40424 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-19 00:33:44 +00:00
Matt O'Gorman
a95851978b updating configure script and putting comments in the docs
in english. yay!


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@40337 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-17 22:52:07 +00:00
Joshua Colp
ecb907e010 Use OSAtomicAdd instead of OSAtomicDecrement to decrement the value by 1.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@40303 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-17 21:14:03 +00:00
Russell Bryant
9ad9e42c3e add MacroExclusive application, a Macro that only one call can executed at
a time (issue #7366, Steve Davies, with mods by me as discussed in the report)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@39681 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-14 03:24:06 +00:00
Russell Bryant
fd82d4569c increase the maximum length of the mohinterpret/mohsuggest options (issue #7696)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@39594 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-13 23:26:06 +00:00
Russell Bryant
92bd7f19f7 Merge team/russell/ast_verbose_threadstorage
- instead of defining a free() wrapper in a bunch of files, define it as
  ast_free() in utils.h and remove the copies from all the files.

- centralize and abstract the code used for doing thread storage. The code
  lives in threadstorage.h, with one function being implemented in utils.c.
  This new API includes generic thread storage as well as special functions
  for handling thread local dynamic length string buffers.

- update ast_inet_ntoa() to use the new threadstorage API
- update ast_state2str() to use the new threadstorage API
- update ast_cli() to use the new threadstorage API

- Modify manager_event() to use thread storage. Instead of using a buffer of
  4096 characters as the workspace for building the manager event, use a thread
  local dynamic string.  Now there is no length limitation on the length of the
  body of a manager event.

- Significantly simplify the handling of ast_verbose() ...
  - Instead of using a static char buffer and a lock to make sure only one
    thread can be using ast_verbose() at a time, use a thread local dynamic
    string as the workspace for preparing the verbose message. Instead of
    locking around the entire function, the only locking done now is when the
    message has been built and is being deliviered to the list of registered
    verbose message handlers.
  - This function was doing a strdup() on every message passed to it and
    keeping a queue of the last 200 messages in memory. This has been
    completely removed. The only place this was used was that if there were
    any messages in the verbose queue when a verbose handler was registered,
    all of the messages in the queue would be fed to it.  So, I just made sure
    that the console verbose handler and the network verbose handler (for
    remote asterisk consoles) were registered before any verbose messages.
    pbx_gtkconsole and pbx_kdeconsole will now lose a few verbose messages at
    startup, but I didn't feel the performance hit of this message queue was
    worth saving the initial verbose output for these very rarely used modules.
  - I have removed the last three arguments to the verbose handlers, leaving
    only the string itself because they aren't needed anymore. For example,
    ast_verbose had some logic for telling the verbose handler to add
    a newline if the buffer was completely full. Now that the buffer can grow
    as needed, this doesn't matter anymore.
  - remove unused function, ast_verbose_dmesg() which was to dispatch the
    message queue
  - Convert the list of verbose handlers to use the linked list macros.

- add missing newline characters to a few ast_verbose() calls

- convert the list of log channels to use the linked list macros in logger.c

- fix close_logger() to close all of the files it opened for logging

- update ast_log() to use a thread local dynamic string for its workspace
  for preparing log messages instead of a buffer of size BUFSIZ (8kB on my
  system) allocated on the stack.  The dynamic string in this case is limited
  to only growing to a maximum size of BUFSIZ.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@39272 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-08 06:32:04 +00:00
Steve Murphy
3042d0e046 This commit folds in changes to both stringfields (some enhancements to the ...field_set() macro, to optimize setting strings to empty, resetting strings to shorter contents, etc.) and to chan_iax2.c, to use stringfields in the user, peer, and pvt structs. Has been running stably on iaxtel, but while iaxtel has a large registration volume, it doesn't seem to have a high call volume. So far, it seems to reduce heap usage by over half. YMMV\! Please report any IAX bugs that might involve stringfields\!
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@39203 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-07 18:12:51 +00:00
Steve Murphy
14c12fed9b The contents of branch teams/murf/bug_7598 are being folded in here.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@39151 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-07 12:59:47 +00:00
Russell Bryant
4d7c67fc72 Merge my applicationmap_fixup branch to address the issues described in this
post to the asterisk-dev mailing list:
  http://lists.digium.com/pipermail/asterisk-dev/2006-August/022174.html

This implements full control over both which channel(s) can activate a dynamic
feature, as well as which channel to run the application on.  I also updated
the documentation on the applicationmap in features.conf.sample in hopes that
the configuration is more clear.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@39109 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-07 04:15:52 +00:00
Tilghman Lesher
a9f8f09c19 Add details about flash and wait to doxygen about DTMF.
Reformat the lines to break at column 80.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@38521 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-07-30 15:02:34 +00:00
Mark Spencer
f2a6636210 Allow updates to match specific lines, allow specification of object or
no when appending.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@38489 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-07-29 22:02:37 +00:00
Kevin P. Fleming
4bc6613648 add ExtenSpy variant of ChanSpy
implement whisper mode for ExtenSpy/ChanSpy



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@38465 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-07-28 23:36:06 +00:00
Russell Bryant
99f9d827c1 the pure attribute was not implemented before gcc 2.96. Since we have this
version check here anwyay, define attribute_pure to be empty if it's an earlier
version.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@38464 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-07-28 23:30:18 +00:00
Russell Bryant
450db95711 add macros for the pure and const attributes to compiler.h, in case they ever
need to be handled differently for a specific compiler


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@38454 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-07-28 22:50:54 +00:00
Russell Bryant
d6246e579f Add the function attribute "pure" or "const" to various functions that perform
int to string or string to int operations.

"pure" essentially says that this function has no side effects aside from its
result, and the result depends on nothing else other than its arguments and
global variables.  "const" is a more strict form of "pure", where the function
also doesn't access any global variables.

From the gcc manual: "Such a function can be subject to common subexpression 
elimination and loop optimization just as an arithmetic operator would be."
This also tells the compiler that it is safe to call the function fewer times
than the code says to, given the same arguments, since the result will always
be the same.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@38452 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-07-28 22:14:49 +00:00
Russell Bryant
b04f059b4a As discussed and decided on the asterisk-dev mailing list ...
- Fix some breakage I introduced a while ago that made the timestamps option
  not functional for CLI verbose output.
- Remove the use of the timestamps option for log output, since it was not
  functional.
- clarify text referring to the timestamps option so that it is clear that it
  only applies to CLI verbose output


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@38439 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-07-28 19:17:56 +00:00
Kevin P. Fleming
3314ea0d59 move slinfactory structure definition back to header... it's just easier to use this way
add infrastructure for whispering onto a channel


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@38422 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-07-28 18:59:59 +00:00
Kevin P. Fleming
d079b1c49f more slinfactory structure definition to inside implementation module
make read/write/hold work on samples, not bytes
add an API call to find out how many samples are available in a slinfactory


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@38418 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-07-28 18:03:57 +00:00
Kevin P. Fleming
a8b85fda84 more simplification, and correct a bug i introduced in the last commit
fix prototype for a channel walking function to use a const input pointer
use existing channel walk by name prefix instead of reproducing that code in this app


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@38389 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-07-27 23:16:08 +00:00
Russell Bryant
41ab9c5015 remove an XXX comment and document that ast_autoservice_start() will return -1
if the channel is already in the autoservice list.

Why is this a valid case to return -1, you ask?  Well, there should never be
any code where it is not clear if the channel is in autoservice or not because
trying to read frames from a channel that is in the autoservice list will lead
to bad results because more than one thread will be waiting on frames to arrive
on the channel and then trying to read them.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@38076 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-07-22 00:08:21 +00:00
Russell Bryant
ca9ba719b6 Merge a new implementation of ast_inet_ntoa, our thread safe replacement for
inet_ntoa, which uses thread specific data (aka thread local storage) instead
of stack allocatted buffers to store the result.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@38042 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-07-21 17:31:28 +00:00
North Antara
1edb21b423 Fix a few doxygen warnings.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@38009 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-07-19 22:40:36 +00:00
Kevin P. Fleming
6d0742fc16 merge Russell's 'hold_handling' branch, finally implementing music-on-hold handling the way it was decided at AstriDevCon Europe 2006 (and the way people really want it to be)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@37988 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-07-19 20:44:39 +00:00
Mark Spencer
837910062b First pass at in-place file manipulation via manager
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@37936 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-07-19 13:28:38 +00:00