Commit Graph

1353 Commits

Author SHA1 Message Date
Mark Michelson
5f95c7adae Always use the value of the AGISIGHUP when running an AGI.
Prior to this patch, the value of AGISIGUP was not always
honored when set on a channel.

(closes issue #13711)
Reported by: fmueller
Patches:
      13711.patch uploaded by putnopvut (license 60)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@166470 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-22 23:25:34 +00:00
Russell Bryant
dd7ed66142 Cosmetic change - don't mix struct initializer styles.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@166436 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-22 21:45:28 +00:00
Russell Bryant
cf25187ac4 Fix a bad typo.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@166377 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-22 20:26:48 +00:00
Russell Bryant
77b1fe0ceb Re-work ref count handling of MoH classes using astobj2 to resolve crashes.
(closes issue #13566)
Reported by: igorcarneiro
Tested by: russell
Review: http://reviewboard.digium.com/r/106/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@166273 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-22 16:10:40 +00:00
Russell Bryant
7e72821959 Remove AST_PBX_KEEPALIVE usage from res_agi.
This patch removes the usage of AST_PBX_KEEPALIVE from res_agi.  The only usage
was for the AGI command, "asyncagi break".  This patch removes this feature.
Normally, a feature would not be removed like this.  However, this code is
broken and usage of it will result in a memory leak.

Usage of this feature will make the AGI code return a result of 
AST_PBX_KEEPALIVE.  The PBX handler assumes that another thread has assumed
ownership of the channel.  The channel thread will exit without destroying the
channel.  Unfortunately, _no_ thread has ownership of the channel at this
point.  There are a couple of serious problems here:

1) The only way to recover the caller is to issue a channel redirect.  This
   will work, but this will be done with a masquerade, and the old ast_channel
   structure will be lost.

2) Until the channel redirect happens, there is no code servicing the channel.
   That means nothing is reading audio or handling events coming from the
   channel.  This is very bad.

The recommended way to get this same "break" functionality is to issue the
redirect while the channel is still being handled by the AGI code.  That way,
there will be no memory leak, and there will be no period of time that the
channel is not being serviced.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@166258 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-22 14:16:54 +00:00
Mark Michelson
221694480c Fix crashes in res_odbc.
The variable "class" was being set NULL just prior to
being dereferenced in an ao2_link call. I have moved
the setting of the variable to NULL until after the
ao2_link call.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@165724 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-18 19:34:33 +00:00
Russell Bryant
8cc50d4677 Merged revisions 165661 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r165661 | russell | 2008-12-18 12:52:18 -0600 (Thu, 18 Dec 2008) | 7 lines

Set the process group ID on the MOH process so that all children will get killed

(closes issue #14099)
Reported by: caspy
Patches:
      res_musiconhold.c.patch.killpg.try2 uploaded by caspy (license 645)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@165662 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-18 18:54:47 +00:00
Tilghman Lesher
a2c557f3a1 Fix reference counts of the class and add an assertion to the end.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@165541 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-18 16:36:48 +00:00
Mark Michelson
6c459b1b58 Fix a refcount leak in res_odbc
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@165330 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-17 21:46:19 +00:00
Mark Michelson
7c1bd94231 Fix the build
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@165326 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-17 21:29:30 +00:00
Mark Michelson
a7829044ec Merged revisions 165255 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r165255 | mmichelson | 2008-12-17 14:51:38 -0600 (Wed, 17 Dec 2008) | 7 lines

Fix some memory leaks found while looking at how realtime
configs are handled.

Also cleaned up some coding guidelines violations in app_realtime.c,
mostly related to spacing


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@165318 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-17 21:17:20 +00:00
Terry Wilson
647c8f2222 Polycom phones close the connection after reading a little bit of the firmware files, we should stop sending in that case. Also, make that case print out a debug statement instead of a scary WARNING.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@165219 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-17 19:55:10 +00:00
Russell Bryant
1f40479382 Merged revisions 164605 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r164605 | russell | 2008-12-16 08:28:10 -0600 (Tue, 16 Dec 2008) | 5 lines

Don't try to change working directory if a directory was not configured.

(closes issue #14089)
Reported by: caspy

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@164606 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-16 14:31:02 +00:00
Sean Bright
1a4a30aaea Use ast_str_strlen() instead of recalculating the string length.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@164054 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-13 18:25:58 +00:00
Michiel van Baak
517afad041 nuke another use of the ast_str internals.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@164028 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-13 13:26:13 +00:00
Tilghman Lesher
c8223fc957 Merge ast_str_opaque branch (discontinue usage of ast_str internals)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@163991 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-13 08:36:35 +00:00
Russell Bryant
babd4e6876 Add a note to indicate why this only supports one channel for now.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@163828 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-12 23:06:55 +00:00
Russell Bryant
afceccd015 Add a new CLI command, "channel redirect", which is similar in operation
to AMI Redirect.

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@163716 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-12 20:12:23 +00:00
Michiel van Baak
39e47e88e9 Document default Monitor file location.
(closes issue #14065)
Reported by: kshumard
Patches:
      res_monitor.documentation.patch.txt uploaded by kshumard (license 92)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@163612 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-12 17:22:47 +00:00
Russell Bryant
06c56e1381 Fix a problem where continuous mode will get inadvertently get turned off if set_rate()
is used while continuous mode was already turned on.

(closes issue #13738)
Reported by: smurfix
Patches:
      res.patch.fixed uploaded by smurfix (license 547)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@163241 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-11 21:21:31 +00:00
Tilghman Lesher
d254de9194 Merged revisions 163088 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r163088 | tilghman | 2008-12-11 10:51:27 -0600 (Thu, 11 Dec 2008) | 6 lines
  
  Don't wait forever, if there's a specified recording timeout.
  (closes issue #13885)
   Reported by: bamby
   Patches: 
         res_agi.c.patch uploaded by bamby (license 430)
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@163089 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-11 16:52:24 +00:00
Jeff Peeler
f0883cacca Merged revisions 162926 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r162926 | jpeeler | 2008-12-10 16:52:51 -0600 (Wed, 10 Dec 2008) | 3 lines

Oops, inverted logic for a strcasecmp check. Pointed out by mmichelson, thanks!


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@162927 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-10 22:53:34 +00:00
Joshua Colp
fb21acf310 Fix reloads of aliased CLI commands. Due to changes done to turn it into a single memory allocation we can't just use the existing CLI alias structure. We have to destroy all existing ones and then create new ones.
(closes issue #14054)
Reported by: pj


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@162923 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-10 22:48:58 +00:00
Jeff Peeler
040e552c26 Merged revisions 162874 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r162874 | jpeeler | 2008-12-10 16:04:18 -0600 (Wed, 10 Dec 2008) | 5 lines

(closes issue #13229)
Reported by: clegall_proformatique

Ensure that moh_generate does not return prematurely before local_ast_moh_stop is called. Also, the sleep in mp3_spawn now only occurs for http locations since it seems to have been added originally only for failing media streams.

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@162891 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-10 22:11:46 +00:00
Joshua Colp
bc3d3a25b5 FreeBSD also needs libgen.h
(closes issue #14051)
Reported by: ys
Patches:
      res_http_post.c.diff uploaded by ys (license 281)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@162660 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-10 16:11:06 +00:00
Michiel van Baak
ef965af270 Make res_snmp.so compile on OpenBSD.
OpenBSD uses an old version of gcc which throws an error
if you use a macro that's not #defined


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@162583 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-10 11:34:09 +00:00
Steve Murphy
08225b9f7a Merged revisions 162264 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r162264 | murf | 2008-12-09 13:20:54 -0700 (Tue, 09 Dec 2008) | 1 line

In discussion with seanbright on #asterisk-dev,  I have added a default rule, and an option to suppress the default rule from being generated in the flex output, for the sake of those OS's where they didn't tweak flex's ECHO macro, and the compiler doesn't like it. The regressions are OK with this.
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@162271 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-09 20:40:31 +00:00
Steve Murphy
24395ed5c7 Merged revisions 162136 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r162136 | murf | 2008-12-09 11:13:39 -0700 (Tue, 09 Dec 2008) | 1 line

Previous fix used ast_malloc and ast_copy_string and messed up the standalone stuff. Fixed.
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@162140 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-09 18:35:35 +00:00
Steve Murphy
67cb0526b7 Merged revisions 162013 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r162013 | murf | 2008-12-09 09:31:55 -0700 (Tue, 09 Dec 2008) | 45 lines

(closes issue #14019)
Reported by: ckjohnsonme
Patches:
      14019.diff uploaded by murf (license 17)
Tested by: ckjohnsonme, murf

This crash was the result of a few small errors that
would combine in 64-bit land to result in a crash.

32-bit land might have seen these combine to mysteriously
drop the args to an application call, in certain
circumstances.

Also, in trying to find this bug, I spotted
a situation in the flex input, where, in passing
back a 'word' to the parser, it would allocate
a buffer larger than necessary. I changed the
usage in such situations, so that strdup was
not used, but rather, an ast_malloc, followed
by ast_copy_string.

I removed a field from the pval struct, in
u2, that was never getting used, and set in
one spot in the code. I believe it was an
artifact of a previous fix to make switch
cases work invisibly with extens.

And, for goto's I removed a '!' from
before a strcmp, that has been there
since the initial merging of AEL2, that
might prevent the proper target of a 
goto from being found. This was pretty
harmless on its own, as it would just
louse up a consistency check for users.

Many thanks to ckjohnsonme for providing
a simplified and complete set of information
about the bug, that helped considerably in
finding and fixing the problem.

Now, to get aelparse up and running again
in trunk, and out of its "horribly broken" state,
so I can run the regression suite!


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@162079 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-09 17:18:03 +00:00
Eliel C. Sardanons
1e8e12efcf Janitor, use ARRAY_LEN() when possible.
(closes issue #13990)
Reported by: eliel
Patches:
      array_len.diff uploaded by eliel (license 64)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@161218 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-05 10:31:25 +00:00
Eliel C. Sardanons
8192031e83 Added XML documentation for the following AGI commands:
- get option
        - get variable
        - hangup
        - noop



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@160896 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-04 13:45:32 +00:00
Kevin P. Fleming
9a7c28cd5a we can now build with -Wformat=2, which found a couple of real bugs
because SPRINTF() use non-literal format strings (which cannot be checked), move it into its own module so the rest of func_strings can benefit from format string checking



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@159774 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-29 15:29:33 +00:00
Michiel van Baak
445c5296da Make res_config_ldap compile with the official OpenLDAP 2.3.X versions.
They removed the LDAP_DEPRECATED define from their source and since we are using a couple
of deprecated function calls we should define it with a CFLAG.

Tested by me on OpenBSD 4.4 and snuff-home on Linux to make sure everything keeps compiling.
It shouldn't break, we only define the LDAP_DEPRECATED with this which is what 
all 2.2.X and older versions of OpenLDAP did in their own tree.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@159734 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-28 14:20:11 +00:00
Philippe Sultan
3d4f86f605 Removed duplicate code
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@159701 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-27 20:29:21 +00:00
Kevin P. Fleming
e14dfcbedc improve handling of API calls provided by loaded modules through use of some GCC features; this makes app_stack's usage of AGI APIs even cleaner, and will allow it to work 'as expected' either with or without res_agi being loaded
reviewed at http://reviewboard.digium.com/r/62



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@159631 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-26 21:20:50 +00:00
Sean Bright
fd8caa1778 This is basically a complete rollback of r155401, as it was determined that
it would be best to maintain API compatibility.  Instead, this commit introduces
ao2_callback_data() which is functionally identical to ao2_callback() except
that it allows you to pass arbitrary data to the callback.

Reviewed by Mark Michelson via ReviewBoard:
	http://reviewboard.digium.com/r/64


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@158959 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-25 01:01:49 +00:00
Matthew Nicholson
f3d086256c Added EVENT_FLAG_AGI and used it for manager calls in res_agi.c
(closes issue #13873)
Reported by: fnordian
Patches:
      ami_agievent.patch uploaded by fnordian (license 110)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@158876 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-24 21:56:22 +00:00
Sean Bright
574f2daa2a Fix one case where the application argument was not converted from a pipe to
a comma.  This was causing problems with switch statements with empty expressions.

(closes issue #13901)
Reported by: smurfix
Patches:
      20081118_bug13901.diff uploaded by seanbright (license 71)
Tested by: seanbright
Reviewed by: murf


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@158188 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-20 19:41:23 +00:00
Kevin P. Fleming
8d5deb312b Merged revisions 157859 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r157859 | kpfleming | 2008-11-19 15:34:47 -0600 (Wed, 19 Nov 2008) | 7 lines
  
  the gcc optimizer frequently finds broken code (use of uninitalized variables, unreachable code, etc.), which is good. however, developers usually compile with the optimizer turned off, because if they need to debug the resulting code, optimized code makes that process very difficult. this means that we get code changes committed that weren't adequately checked over for these sorts of problems.
  
  with this build system change, if (and only if) --enable-dev-mode was used and DONT_OPTIMIZE is turned on, when a source file is compiled it will actually be preprocessed (into a .i or .ii file), then compiled once with optimization (with the result sent to /dev/null) and again without optimization (but only if the first compile succeeded, of course).
  
  while making these changes, i did some cleanup work in Makefile.rules to move commonly-used combinations of flag variables into their own variables, to make the file easier to read and maintain
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@157974 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-20 00:08:12 +00:00
Terry Wilson
ebe533b83b Fix compiling
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@157973 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-20 00:06:46 +00:00
Mark Michelson
da33129373 Cast this value since a uint64_t is not the same
as an unsigned long long on a 64-bit machine.

Reported by kpfleming on IRC



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@157874 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-19 21:55:25 +00:00
Mark Michelson
0e5367f7eb Merge the changes from the res_timing_timerfd branch.
This provides a new timing interface. In order to use it,
you must be running a Linux with a kernel version of
2.6.25 or newer and glibc 2.8 or newer.

This timing interface is a good alternative if a timing
source is necessary (e.g. for IAX trunking) but DAHDI is
otherwise unnecessary for the system.

For now, this commit contains the actual work done in the
res_timing_timerfd branch. There are no notices in the README
or CHANGES files yet, but they will be added in my next commit.

The timing API of Asterisk also needs to have a bit of work done
with regards to choosing which timing interface to use. This commit
makes the choice a build-time decision, by only allowing one of
the timer interfaces to be chosen in menuselect. It would be preferable
if the choice could be made at run-time, however. The preferred timing
interface could be loaded and tested, and if it does not work, choice
number two may be used instead. That sort of thing. That is beyond
the scope of work in this branch though.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@157820 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-19 19:37:32 +00:00
Terry Wilson
d66a8cd264 Fix checking for CONFIG_STATUS_FILEINVALID so that modules don't crash upon trying to parse an invalid config
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@157818 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-19 19:25:14 +00:00
Kevin P. Fleming
438e410c4f correct small bug introduced during API conversion
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@157743 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-19 13:45:48 +00:00
Kevin P. Fleming
81a16aa982 make some corrections to the ast_agi_register_multiple(), ast_agi_unregister_multiple() and ast_agi_fdprintf() API calls to be consistent with API guidelines
also, move UPGRADE.txt to UPGRADE-1.6.txt and make the new UPGRADE.txt contain information about upgrading between Asterisk 1.6 releases



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@157706 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-19 12:42:19 +00:00
Mark Michelson
a361f7897a This change prevents a crash from occurring if res_musiconhold.so
is unloaded and then Asterisk is stopped. The problem was that
we are not unregistering the ast_moh_destroy function at exit.

(closes issue #13761)
Reported by: eliel
Patches:
      res_musiconhold.c.patch uploaded by eliel (license 64)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@157592 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-18 23:59:02 +00:00
Terry Wilson
655abd1757 Cleanup whitespace issues
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@156918 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-14 17:35:33 +00:00
Terry Wilson
401b8bea76 Use Mark's new ast_str_case_hash function instead of jumping through hoops to do insensitive case lookups
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@156916 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-14 17:29:05 +00:00
Eliel C. Sardanons
10da221e03 - Make alias->real_cmd point to the allocated space outside alias->alias.
- Register the aliased cli command (or we will not alias anything).
- Use ARRAY_LEN() when possible.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@156355 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-12 20:27:40 +00:00
Russell Bryant
6828c5a0eb Fix a bug caused by using sizeof(pointer) instead of sizeof(the struct)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@156298 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-12 19:38:51 +00:00