Jeff Peeler [Wed, 30 Apr 2008 16:14:43 +0000 (16:14 +0000)]
Fixes a bug where if a stream monitor thread was not created (caused from failure of opening or starting the stream) pthread_cancel was called with an invalid thread ID.
use the ARRAY_LEN macro for indexing through the iaxs/iaxsl arrays so that the size of the arrays can be adjusted in one place, and change the size of the arrays from 32768 calls to 2048 calls when LOW_MEMORY is defined
Jeff Peeler [Tue, 29 Apr 2008 22:54:14 +0000 (22:54 +0000)]
Fixes a problem where all the templates were marked as dead no matter what. The templates should only be marked as dead if a configuration file has been successfully loaded and has changes. Bug found while making API documentation for 1.6.0.
Mark Michelson [Tue, 29 Apr 2008 21:07:36 +0000 (21:07 +0000)]
Patching app_chanspy to jibe better with what is documented. This allows for
a colon-delimited list of spygroups to be specified when calling the ChanSpy application
with the 'g' option. Prior to this, you could only specify a single group when using the
'g' option.
I also have upped the maximum number of spygroups to 128 and added a #define so that this
can be easily increased or decreased later.
Use the MACRO_CONTEXT and MACRO_EXTEN channel variables instead of the channel's macrocontext
and macroexten fields. This is needed because if macros are daisy-chained, the incorrect
context and extension are placed on the new channel. I also added locking to the channel prior
to accessing these variables as noted in trunk's janitor project file.
(closes issue #12549)
Reported by: darren1713
Patches:
app_queue.c.macroextenpatch uploaded by darren1713 (license 116)
(with modifications from me)
Tested by: putnopvut
Mark Michelson [Tue, 29 Apr 2008 17:56:13 +0000 (17:56 +0000)]
Since there is now a globally available function for saying someone's name, a LOT of
functions in app_directory can be removed since the ODBC-specific lookups are accomplished
within app_voicemail. This change greatly reduces the amount of lines in app_directory that
were solely for the purpose of looking up a name when ODBC_STORAGE is specified for voicemail.
This commit also makes the name-saying interruptable via DTMF.
Mark Michelson [Mon, 28 Apr 2008 22:38:07 +0000 (22:38 +0000)]
Adding a new option 'n' to app_chanspy. This option allows for the name of the spied-on
party to be spoken instead of the channel name or number.
This was accomplished by adding a new function pointer to point to a function in app_voicemail
which retrieves the name file and plays it. This makes for an easy way that applications may play
a user's name should it be necessary. app_directory, in particular, can be simplified greatly by
this change.
This change comes as a suggestion from Switchvox, which already has this feature. AST-23
When modules are embedded, they take on a different name, without the ".so"
extension. Specifically check for this name, when we're checking if a module
is loaded.
(Closes issue #12534)
When we don't explicitly pass a path to the --with-tds configure option, we
may end up finding tds.h in /usr/local/include instead of /usr/include. If
this happens, the grep that looks for the version (from tdsver.h) will fail
and we'll have some problems during the build.
Mark Michelson [Fri, 25 Apr 2008 22:24:32 +0000 (22:24 +0000)]
Adding a new option, 'B' to app_chanspy. This option allows the spy to
barge on the call. It is like the existing whisper option, except that
it allows the spy to talk to both sides of the conversation on which
he is spying.
This feature has existed in Switchvox, and this merges the functionality
into Asterisk.
Jason Parker [Fri, 25 Apr 2008 18:32:22 +0000 (18:32 +0000)]
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.
Mark Michelson [Fri, 25 Apr 2008 18:18:30 +0000 (18:18 +0000)]
This patch allows for forwarding a message with a "comment" attachment
if using IMAP storage for voicemail. The comment will be recorded and attached
as a second attachment in addition to the original message. This will be invoked
if you choose to prepend a message the way you would with file or ODBC storage
Russell Bryant [Fri, 25 Apr 2008 18:18:27 +0000 (18:18 +0000)]
Merge code from team/russell/parking_updates
Add some additional features to the core park_call_full() function, and expose
them as options to the Park() application. The functionality being added is the
ability to specify a custom return extension/context/priority, a custom timeout,
and a couple of options. The options are to play ringing instead of MOH to the
parked caller, and to randomize parking spot selection.
(code inspired by the patch in AST-17, code from switchvox)
Pass the hangup cause all the way to the calling app/channel.
(closes issue #11328)
Reported by: rain
Patches:
20071207__pass_cause_in_hangup_control_frame.diff.txt uploaded by Corydon76 (license 14)
brought up-to-date to trunk by me
Re-invite RTP during a masquerade so that, for instance, an AMI
redirect of two channels which are natively bridged will preserve audio
on both channels. This prevents a problem with Asterisk not re-inviting
due to one of the channels having being a zombie.
Fix DST calculation, and fix bug in calculation of whether conf has started yet or not
(Closes issue #12292)
Reported by: DEA
Patches:
app_meetme-rt-dst-sched-fix.txt uploaded by DEA (license 3)
Improve some broken cookie parsing code. Previously, manager login over HTTP
would only work if the mansession_id cookie was first. Now, the code builds
a list of all of the cookies in the Cookie header. This fixes a problem
observed by users of the Asterisk GUI.
(closes AST-20)
Fix an issue that caused getting the correct next channel to not always work.
Also, remove setting the amount of time to wait for a digit from 5 seconds back
down to 1/10 of a second. I believe this was so the beep didn't get played over
and over really fast, but a while back I put in another fix for that issue.
Store the manager session ID explicitly as 4 byte ID instead of a ulong. The
mansession_id cookie is coded to be limited to 8 characters of hex, and this
could break logins from 64-bit machines in some cases.
(inspired by AST-20)
Instead of stopping dialplan execution when SayNumber attempts to say a large number that it can not print out a message informing the user and continue on.
(closes issue #12502)
Reported by: bcnit
Mark Michelson [Wed, 23 Apr 2008 00:58:49 +0000 (00:58 +0000)]
Round 2 of IMAP_STORAGE app_voicemail.c fixes:
This fixes a bug that was thought to be fixed already.
app_voicemail, if using IMAP_STORAGE, has a problem because
the IMAP header files include syslog.h, which define LOG_WARNING
and LOG_DEBUG to be different than what Asterisk uses for those
same macros. This was "fixed" in the past by including all the
IMAP header files prior to including asterisk.h. This fix worked...
unless you were to try to compile with MALLOC_DEBUG. MALLOC_DEBUG
prepends the inclusion of astmm.h to every file, which means that no
matter what order the includes are in in app_voicemail, the unexpected
values for LOG_WARNING and LOG_DEBUG will be in place.
The action taken for this fix was to define AST_LOG_* macros in addition
to the LOG_* macros already defined. These new macros are used in app_voicemail.c,
logger.h, and astobj.h right now, and their use will be encouraged in the future.
In consideration of those who have written third-party modules which use
the LOG_* macros, these will NOT be removed from the source, however future use
of these macros is discouraged.
Mark Michelson [Wed, 23 Apr 2008 00:40:30 +0000 (00:40 +0000)]
Round 1 of IMAP_STORAGE-related app_voicemail changes
This makes IMAP_STORAGE include the proper headers if you
have specified the "system" option for --with-imap when running
the configure script and your IMAP-related headers exist in
/usr/include/c-client.
This change is due to a hasty merge of a 1.4 change I made.
Steve Murphy [Tue, 22 Apr 2008 21:57:57 +0000 (21:57 +0000)]
(closes issue #12469)
Reported by: triccyx
I had a bit a problem reproducing this in my setup (trying not to disturb my other stuff)
but finally, I got it. The problem appears to be that the extension is being added in
replace mode, which kinda assumes that the pattern trie has been formed, when in fact,
in this case, it was not. The checks being done are not nec. when the tree is not yet
formed, as changes like this will be summarized when the trie is formed in the future.
I tested the fix, and the crash no longer happens. Feel free to open the bug again if
this fix doesn't cure the problem.
I thought I was going to be able to leave 1.4 alone, but that was not the case.
I ran into some problems with G.722 in 1.4, so I have merged in all of the fixes
in this area that I have made in trunk/1.6.0, and things are happy again.
If the dial string passed to the call channel callback does not indicate an
extension, then consider the extension on the channel before falling back
to the default.
Russell Bryant [Tue, 22 Apr 2008 16:47:00 +0000 (16:47 +0000)]
Add a c() option for the Jack() application and JACK_HOOK() funciton for supplying
a custom client name. Using the channel name is still the default. This was done
at the request of Jared Smith.
Add support for authenticating on a NOTIFY request. This is useful for phones that require it when sending them a special packet to get them to do something (such as reload their configuration).
(closes issue #9896)
Reported by: IgorG
Patches:
sipnotify-113980-v14.patch uploaded by IgorG (license 20)
These changes make sure that the reference count for sip_peer objects properly
reflects the fact that the peer is sitting in the scheduler for a scheduled
callback for qualifying peers or for expiring registrations. Without this, it
was possible for these callbacks to happen at the same time that the peer was
being destroyed. This was especially likely to happen with realtime peers, and
for people making use of the realtime prune CLI command.
(closes issue #9520)
Reported by: kryptolus
Committed patch by me
Steve Murphy [Tue, 22 Apr 2008 14:38:46 +0000 (14:38 +0000)]
Hopefully, this will resolve the issues that russellb had with this log_show_lock().
I gathered the code that filled the string, and put it in a different func which
I cryptically call "append_lock_information()".
Now, both log_show_lock(), and handle_show_locks() both call this code to do
the work. Tested, seems to work fine.
Also, log_show_lock was modified to use the ast_str stuff, along with checking
for successful ast_str creation, and freeing the ast_str obj when finished.
A break was inserted to terminate the search for the lock; we should never
see it twice.
An example usage in chan_sip.c was created as a comment, for instructional
purposes.
This patch implements multiple parking lots for parked calls. The default parkinglot is used by default, however setting the channel variable PARKINGLOT in the dialplan will allow use of any other configured parkinglot. See configs/features.conf.sample for more details on setting up another non-default parkinglot. Also, one can (currently) set the default parkinglot to use in the driver configuration file via the parkinglot option.
Patch initially written by oej, brought up to date and finalized by mvanbaak, and then stabilized and converted to astobj2 by me.
This upgrade adds the ~~ (concatenation) string operator to expr2.
While not needed in normal runtime pbx operation, it is needed when
raw exprs are being syntax checked. This plays into future syntax-
unification plans. By permission of atis, this addition in trunk
and the reason of why things are as they are will suffice to close
this bug.
I also added a short note about the previous addition of "sip show sched"
to the CLI in CHANGES, which I discovered I forgot in a previous commit.
Jeff Peeler [Mon, 21 Apr 2008 15:34:37 +0000 (15:34 +0000)]
This removes an invalid warning message for an incorrectly entered pin, but more importantly removes an inapplicable check. If the first argument passed to app_authenticate does not contain a '/', the argument should be treated as the sole fixed "password" to match against and that is all. (Previous behavior was attempting to open a file based on the pin.)
Only drop audio if we receive it without a progress indication. We allow other frames through such as DTMF because they may be needed to complete the call.
(closes issue #12440)
Reported by: aragon
Only print out the error message if ldap_modify_ext_s actually returns an error, and not success.
(closes issue #12438)
Reported by: gservat
Patches:
res_config_ldap.c-patch-code uploaded by gservat (license 466)
Add MEETME_INFO dialplan function that allows querying various properties of a Meetme conference.
(closes issue #11691)
Reported by: junky
Patches:
meetme_info.patch uploaded by jpeeler (license 325)
Declaration of the peer channel in this scope was making it so the peer variable defined
in the outer scope was never set properly, therefore making iterating through the channel
list always restart from the beginning. This bug would have affected anyone who called
chanspy without specifying a first argument.