dect
/
asterisk
Archived
13
0
Fork 0
Commit Graph

53 Commits

Author SHA1 Message Date
russell f63398715e Global var cleanup - constification and removing unused vars.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@199479 f38db490-d61c-443f-a65b-d21fe96a405b
2009-06-07 14:55:51 +00:00
mmichelson ce47d41510 Add the ability to execute connected line interception macros.
When connected line updates are received or generated in the middle
of an application call, it is now possible to execute a macro to
manipulate the connected line data. This way, phone numbers may be
manipulated to be more presentable to users, names may be changed 
for...whatever reason, or whatever else needs to be done may be.

Review: https://reviewboard.asterisk.org/r/256

AST-165



git-svn-id: http://svn.digium.com/svn/asterisk/trunk@198727 f38db490-d61c-443f-a65b-d21fe96a405b
2009-06-01 20:57:31 +00:00
mmichelson c1ae3106d7 Remove some redundant or unnecessary connected line-related function calls.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@196893 f38db490-d61c-443f-a65b-d21fe96a405b
2009-05-26 19:50:07 +00:00
kpfleming 230a66da7d Const-ify the world (or at least a good part of it)
This patch adds 'const' tags to a number of Asterisk APIs where they are appropriate (where the API already demanded that the function argument not be modified, but the compiler was not informed of that fact). The list includes:

- CLI command handlers
- CLI command handler arguments
- AGI command handlers
- AGI command handler arguments
- Dialplan application handler arguments
- Speech engine API function arguments

In addition, various file-scope and function-scope constant arrays got 'const' and/or 'static' qualifiers where they were missing.

Review: https://reviewboard.asterisk.org/r/251/



git-svn-id: http://svn.digium.com/svn/asterisk/trunk@196072 f38db490-d61c-443f-a65b-d21fe96a405b
2009-05-21 21:13:09 +00:00
kpfleming f58bc31e46 add 'const' qualifiers in various places where they should have been
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@193832 f38db490-d61c-443f-a65b-d21fe96a405b
2009-05-12 13:59:35 +00:00
rmudgett 28fb3d8a7d Fixed crashes from issue8824 review board channel locking changes.
The local struct ast_party_connected_line connected_caller variable
was uninitialized when the copy function was called.


git-svn-id: http://svn.digium.com/svn/asterisk/trunk@192590 f38db490-d61c-443f-a65b-d21fe96a405b
2009-05-05 20:54:07 +00:00
russell 89175b7e04 Convert the ast_channel data structure over to the astobj2 framework.
There is a lot that could be said about this, but the patch is a big 
improvement for performance, stability, code maintainability, 
and ease of future code development.

The channel list is no longer an unsorted linked list.  The main container 
for channels is an astobj2 hash table.  All of the code related to searching 
for channels or iterating active channels has been rewritten.  Let n be 
the number of active channels.  Iterating the channel list has gone from 
O(n^2) to O(n).  Searching for a channel by name went from O(n) to O(1).  
Searching for a channel by extension is still O(n), but uses a new method 
for doing so, which is more efficient.

The ast_channel object is now a reference counted object.  The benefits 
here are plentiful.  Some benefits directly related to issues in the 
previous code include:

1) When threads other than the channel thread owning a channel wanted 
   access to a channel, it had to hold the lock on it to ensure that it didn't 
   go away.  This is no longer a requirement.  Holding a reference is 
   sufficient.

2) There are places that now require less dealing with channel locks.

3) There are places where channel locks are held for much shorter periods 
   of time.

4) There are places where dealing with more than one channel at a time becomes 
   _MUCH_ easier.  ChanSpy is a great example of this.  Writing code in the 
   future that deals with multiple channels will be much easier.

Some additional information regarding channel locking and reference count 
handling can be found in channel.h, where a new section has been added that 
discusses some of the rules associated with it.

Mark Michelson also assisted with the development of this patch.  He did the 
conversion of ChanSpy and introduced a new API, ast_autochan, which makes it 
much easier to deal with holding on to a channel pointer for an extended period 
of time and having it get automatically updated if the channel gets masqueraded.
Mark was also a huge help in the code review process.

Thanks to David Vossel for his assistance with this branch, as well.  David 
did the conversion of the DAHDIScan application by making it become a wrapper 
for ChanSpy internally.

The changes come from the svn/asterisk/team/russell/ast_channel_ao2 branch.

Review: http://reviewboard.digium.com/r/203/


git-svn-id: http://svn.digium.com/svn/asterisk/trunk@190423 f38db490-d61c-443f-a65b-d21fe96a405b
2009-04-24 14:04:26 +00:00
file 8b7866b97e Fix a double free issue with the Pickup dialplan application.
As part of the pickup process the connected line information is updated.
Part of this process does a shallow copy of the target channel's connected line
information to a local structure. Once complete the structure contents are freed.
As a result any information in the target channel's connected line information
structure is no longer valid. This change will now set the contents back to a clean
state so that the freeing of the target channel's connected line information structure
when the channel is destroyed will no longer try to double free things.

(closes issue #14839)
Reported by: lmsteffan


git-svn-id: http://svn.digium.com/svn/asterisk/trunk@190217 f38db490-d61c-443f-a65b-d21fe96a405b
2009-04-23 16:55:48 +00:00
mmichelson f00656db9e This commit introduces COLP/CONP and Redirecting party information into Asterisk.
The channel drivers which have been most heavily tested with these enhancements are
chan_sip and chan_misdn. Further work is being done to add Q.SIG support and will be
introduced in a later commit. chan_skinny has code added to it here, but according
to user pj, the support on chan_skinny is not working as of now. This will be fixed in
a later commit.

A special thanks goes out to bugtracker user gareth for getting the ball rolling and
providing the initial support for this work. Without his initial work on this, this would
not have been nearly as painless as it was.

This functionality has been tested by Digium's product quality department, as well as a
customer site running thousands of calls every day. In addition, many many many many bugtracker
users have tested this, too.

(closes issue #8824)
Reported by: gareth

Review: http://reviewboard.digium.com/r/201



git-svn-id: http://svn.digium.com/svn/asterisk/trunk@186525 f38db490-d61c-443f-a65b-d21fe96a405b
2009-04-03 22:41:46 +00:00
bmd 0bf5a4bea5 fix a leaked channel lock (and future deadlock) when we try to pick up our own channel
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@179903 f38db490-d61c-443f-a65b-d21fe96a405b
2009-03-03 20:02:20 +00:00
file e84e9daf4b Merged revisions 162341 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r162341 | file | 2008-12-09 17:14:29 -0400 (Tue, 09 Dec 2008) | 4 lines
  
  Add 'down' as a valid state for directed call pickup. This creeps up when we receive session progress when dialing a device and not ringing.
  (closes issue #14005)
  Reported by: ddl
........


git-svn-id: http://svn.digium.com/svn/asterisk/trunk@162342 f38db490-d61c-443f-a65b-d21fe96a405b
2008-12-09 21:16:37 +00:00
seanbright 2034723f38 In order to move away from nested function use, some changes to the recently introduced
ast_channel_search_locked need to be made.  Specifically, the caller needs to be able to
pass arbitrary data which in turn is passed to the callback.  This patch addresses all
of the nested functions currently in asterisk trunk.


git-svn-id: http://svn.digium.com/svn/asterisk/trunk@155590 f38db490-d61c-443f-a65b-d21fe96a405b
2008-11-09 01:59:59 +00:00
seanbright a3bf4d4612 Fix some whitespace.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@154926 f38db490-d61c-443f-a65b-d21fe96a405b
2008-11-05 22:22:37 +00:00
seanbright b6eddc8dd9 Update a couple places to use the new ast_channel_search_locked API call.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@154923 f38db490-d61c-443f-a65b-d21fe96a405b
2008-11-05 22:19:22 +00:00
russell b31b9954cb Instead of doing a couple of strlen() calls each iteration of the loop, only do it once
at the beginning of the function


git-svn-id: http://svn.digium.com/svn/asterisk/trunk@153435 f38db490-d61c-443f-a65b-d21fe96a405b
2008-11-02 02:14:19 +00:00
russell b1f91b97d2 Merge changes from team/group/appdocsxml
This commit introduces the first phase of an effort to manage documentation of the
interfaces in Asterisk in an XML format.  Currently, a new format is available for
applications and dialplan functions.  A good number of conversions to the new format
are also included.

For more information, see the following message to asterisk-dev:

http://lists.digium.com/pipermail/asterisk-dev/2008-October/034968.html


git-svn-id: http://svn.digium.com/svn/asterisk/trunk@153365 f38db490-d61c-443f-a65b-d21fe96a405b
2008-11-01 21:10:07 +00:00
qwell 411be90034 Merge app_pickupchan with app_directed_pickup, for AST-27.
Initially, this was to be a new feature, with a patch from Switchvox,
 but after discussions, it was noted that this feature already existed in trunk.

The resulting discussions ended in a comment that was along the lines of
 "the patch provided here is a lot smaller than what is already in trunk,
 because it doesn't create a new application and duplicate existing code"

It was decided that these two applications could be easily merged to reduce
 code duplication.  SO, that's what this does.


git-svn-id: http://svn.digium.com/svn/asterisk/trunk@114660 f38db490-d61c-443f-a65b-d21fe96a405b
2008-04-25 18:32:22 +00:00
mvanbaak 54bf9542cd whitespace fixes only.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@103249 f38db490-d61c-443f-a65b-d21fe96a405b
2008-02-09 11:27:10 +00:00
rizzo 150b2c22ef remove another set of redundant #include "asterisk/options.h"
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@89512 f38db490-d61c-443f-a65b-d21fe96a405b
2007-11-21 23:24:55 +00:00
rizzo 9cf442d7f7 include "logger.h" and errno.h from asterisk.h - usage shows that they
were included almost everywhere.
Remove some of the instances.



git-svn-id: http://svn.digium.com/svn/asterisk/trunk@89424 f38db490-d61c-443f-a65b-d21fe96a405b
2007-11-19 18:52:04 +00:00
rizzo 883346d64a 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: http://svn.digium.com/svn/asterisk/trunk@89333 f38db490-d61c-443f-a65b-d21fe96a405b
2007-11-16 20:04:58 +00:00
mmichelson 92ac6820ee "show application <foo>" changes for clarity.
(closes issue #11171, reported and patched by blitzrage)

Many thanks!



git-svn-id: http://svn.digium.com/svn/asterisk/trunk@89044 f38db490-d61c-443f-a65b-d21fe96a405b
2007-11-06 19:04:45 +00:00
tilghman f0f89a8dd6 Enhance Pickup to do native pickupgroup pickup when no arguments are specified (closes issue #10404)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@81118 f38db490-d61c-443f-a65b-d21fe96a405b
2007-08-27 20:55:36 +00:00
file d17ff1ea42 Applications no longer need to call ast_module_user_add and ast_module_user_remove. This is now taken care of in the pbx_exec function outside of the application.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@75200 f38db490-d61c-443f-a65b-d21fe96a405b
2007-07-16 14:39:29 +00:00
russell f042431847 Add a massive set of changes for converting to use the ast_debug() macro.
(issue #9957, patches from mvanbaak, caio1982, critch, and dimas)


git-svn-id: http://svn.digium.com/svn/asterisk/trunk@69327 f38db490-d61c-443f-a65b-d21fe96a405b
2007-06-14 19:39:12 +00:00
file d03433354b Merged revisions 67626 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r67626 | file | 2007-06-06 09:16:34 -0400 (Wed, 06 Jun 2007) | 2 lines

Include macroexten while searching for a channel to pick up in case they are in a macro. (issue #9491 reported by jamesb63)

........


git-svn-id: http://svn.digium.com/svn/asterisk/trunk@67628 f38db490-d61c-443f-a65b-d21fe96a405b
2007-06-06 13:17:26 +00:00
file 569a88fb54 Minor clean up. Constify a few variables and use ast_strlen_zero in a few places.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@67063 f38db490-d61c-443f-a65b-d21fe96a405b
2007-06-04 17:32:41 +00:00
file 373fef766e Merged revisions 47850 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r47850 | file | 2006-11-20 10:51:37 -0500 (Mon, 20 Nov 2006) | 2 lines

Use a separate variable in the channel structure to store the context that the channel was dialed from. (issue #8382 reported by jiddings)

........


git-svn-id: http://svn.digium.com/svn/asterisk/trunk@47851 f38db490-d61c-443f-a65b-d21fe96a405b
2006-11-20 15:55:58 +00:00
file a5792338f6 It's new directed pickup! This now features a more sane way of finding the channel to pick up (I snuck it into the tree on Friday... bet you didn't know I'd actually use it eh?). PICKUPMARK now also works in a different way, you should prefix it with _ when setting it so it gets inherited onto the channel(s) created in app_dial as directed pickup will now look for it on the target channel, not the originating channel. (BE-85)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@45234 f38db490-d61c-443f-a65b-d21fe96a405b
2006-10-16 16:26:23 +00:00
mogorman 4a1aaf52ae bug #8076 check option_debug before printing to debug channel.
patch provided in bugnote, with minor changes.


git-svn-id: http://svn.digium.com/svn/asterisk/trunk@44253 f38db490-d61c-443f-a65b-d21fe96a405b
2006-10-03 15:53:07 +00:00
kpfleming 8b0c007ad9 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: http://svn.digium.com/svn/asterisk/trunk@40722 f38db490-d61c-443f-a65b-d21fe96a405b
2006-08-21 02:11:39 +00:00
russell ec5e68f253 fix a seg fault in this application if no context paramater is given
(issue #7571)


git-svn-id: http://svn.digium.com/svn/asterisk/trunk@38118 f38db490-d61c-443f-a65b-d21fe96a405b
2006-07-23 05:20:59 +00:00
kpfleming 73c525e6e2 simplify autoconfig include mechanism (make tholo happy he can use lint again :-)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@32846 f38db490-d61c-443f-a65b-d21fe96a405b
2006-06-07 18:54:56 +00:00
file b6724cffb4 Add PICKUPMARK support to app_directed_pickup (issue #7104 reported by thaeger)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@29463 f38db490-d61c-443f-a65b-d21fe96a405b
2006-05-22 16:08:23 +00:00
rizzo 3664249356 This rather large commit changes the way modules are loaded.
As partly documented in loader.c and include/asterisk/module.h,
modules are now expected to return all of their methods and flags
into a structure 'mod_data', and are normally loaded with RTLD_NOW
| RTLD_LOCAL, so symbols are resolved immediately and conflicts
should be less likely.  Only in a small number of cases (res_*,
typically) modules are loaded RTLD_GLOBAL, so they can export
symbols.
 
The core of the change is only the two files loader.c and
include/asterisk/module.h, all the rest is simply adaptation of the
existing modules to the new API, a rather mechanical (but believe
me, time and finger-consuming!) process whose detail you can figure
out by svn diff'ing any single module.

Expect some minor compilation issue after this change, please
report it on mantis http://bugs.digium.com/view.php?id=6968
so we collect all the feedback in one place.

I am just sorry that this change missed SVN version number 20000!



git-svn-id: http://svn.digium.com/svn/asterisk/trunk@20003 f38db490-d61c-443f-a65b-d21fe96a405b
2006-04-14 14:08:19 +00:00
kpfleming e4880150b1 since the module API is changing, it's a good time to const-ify the description() and key() return values
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@18552 f38db490-d61c-443f-a65b-d21fe96a405b
2006-04-08 22:01:19 +00:00
file 2ac1e2ee67 Merged revisions 17905 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r17905 | file | 2006-04-06 14:00:10 -0300 (Thu, 06 Apr 2006) | 2 lines

Update email address to my Digium one

........


git-svn-id: http://svn.digium.com/svn/asterisk/trunk@17914 f38db490-d61c-443f-a65b-d21fe96a405b
2006-04-06 17:01:47 +00:00
tilghman d14ce4c739 Bug 6417 - Allow retrieval of raw CDR values
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@10953 f38db490-d61c-443f-a65b-d21fe96a405b
2006-02-23 23:12:41 +00:00
russell c72e5e1b38 remove the uses of the deprecated STANDARD_LOCAL_USER
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@10241 f38db490-d61c-443f-a65b-d21fe96a405b
2006-02-15 20:11:56 +00:00
mogorman 9eef25dff8 allow app_directed_pickup to try to pickup
multiple channels at the same time. however it
does not work in cases where dial was called
with multiple devices.  bug 5694.


git-svn-id: http://svn.digium.com/svn/asterisk/trunk@8057 f38db490-d61c-443f-a65b-d21fe96a405b
2006-01-13 17:02:15 +00:00
russell ab6566173e update doxygen docs to specify authors
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@7682 f38db490-d61c-443f-a65b-d21fe96a405b
2005-12-30 21:18:06 +00:00
markster b5a869b53c Fix segfault on directed pickup when no CDR is available (bug #5998)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@7541 f38db490-d61c-443f-a65b-d21fe96a405b
2005-12-20 09:56:55 +00:00
kpfleming 24c1e3c222 git-svn-id: http://svn.digium.com/svn/asterisk/trunk@7221 f38db490-d61c-443f-a65b-d21fe96a405b 2005-11-29 18:24:39 +00:00
russell 6278fdcd82 update the descriptions of a couple more apps
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@7073 f38db490-d61c-443f-a65b-d21fe96a405b
2005-11-11 15:52:55 +00:00
russell 465d1d7712 make app_queue 1.2 jump compliant (issue #5580)
add missing includes of stdio.h
remove some unused and duplicate headers


git-svn-id: http://svn.digium.com/svn/asterisk/trunk@7026 f38db490-d61c-443f-a65b-d21fe96a405b
2005-11-08 04:48:00 +00:00
russell d3ddc001a2 issue #5605
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@6979 f38db490-d61c-443f-a65b-d21fe96a405b
2005-11-06 15:09:47 +00:00
russell 2a1fd152ed remove unnecessary checks before calls to ast_strlen_zero
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@6864 f38db490-d61c-443f-a65b-d21fe96a405b
2005-10-26 19:48:14 +00:00
russell 2c3b3edc86 Doxygen documentation update from oej (issue #5505)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@6847 f38db490-d61c-443f-a65b-d21fe96a405b
2005-10-24 20:12:06 +00:00
russell 58818426d6 Massive cleanups to applications for LOCAL_USER handling and some other things.
In general, LOCAL_USER_ADD/REMOVE should be the first/last thing called in an
application.  An exception is if there is some *fast* setup code that might
halt the execution of the application, such as checking to see if an argument
exists.


git-svn-id: http://svn.digium.com/svn/asterisk/trunk@6832 f38db490-d61c-443f-a65b-d21fe96a405b
2005-10-19 18:19:02 +00:00
russell 2c83f05ebb it's a good idea to unregister everything before calling STANDARD_HANGUP_LOCALUSERS
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@6828 f38db490-d61c-443f-a65b-d21fe96a405b
2005-10-18 22:52:21 +00:00