Making some changes designed to not allow for a corrupted mailstream for a vm_state.
1. Add locking to the vm_state retrieval functions so that no linked list corruption occurs.
2. Make sure to always grab the persistent vm_state when mailstream access is necessary.
3. Correct an incorrect return value in the init_mailstream function.
Joshua Colp [Tue, 8 Jan 2008 20:06:52 +0000 (20:06 +0000)]
Move common code for setting T38 capabilities and fix a bug with fax detection in the SIP RTP read callback. It's still sort of silly... but more on that later.
(closes issue #11239)
Reported by: dimas
Patches:
sipt38prop.patch uploaded by dimas (license 88)
If no group has been provided to the GROUP_COUNT dialplan function then use the first one specific to the channel.
(closes issue #11077)
Reported by: m4him
Luigi Rizzo [Mon, 7 Jan 2008 23:03:11 +0000 (23:03 +0000)]
add support for cropping the keypad image while displaying it.
This way it can contain additional elements (e.g. fonts, buttons,
widgets) without having to use a zillion files to store them.
Mark Michelson [Mon, 7 Jan 2008 21:04:09 +0000 (21:04 +0000)]
Adding user-configurable TCP timeout settings to IMAP voicemail. This could
go a long way towards preventing unexplainable hangs experienced by people. In the
case of MWI hangs, this also will mean that the SIP port isn't blocked anymore.
Russell Bryant [Mon, 7 Jan 2008 17:09:23 +0000 (17:09 +0000)]
If the HTML documentation exists, install it in the static-http/docs directory
so that it can be viewed through the Asterisk http server if it is turned on.
Joshua Colp [Mon, 7 Jan 2008 15:52:55 +0000 (15:52 +0000)]
Move ModuleLoad and ModuleCheck manager commands from loader.c to manager.c. Previously they would get registered twice because of the way manager.c operates.
(closes issue #11699)
Reported by: caio1982
Patches:
manager_module_commands1.diff uploaded by caio1982 (license 22)
Russell Bryant [Sat, 5 Jan 2008 23:05:35 +0000 (23:05 +0000)]
Convert this file over the new method of getting the Asterisk version.
(I don't have this building on this machine, so caio1982 on IRC is going to
test it for me. :) )
Russell Bryant [Sat, 5 Jan 2008 22:09:06 +0000 (22:09 +0000)]
Now that the version.h file was getting properly regenerated every time the svn
revision changed, every module that used the version was getting rebuilt after
every svn update. This severly annoyed me pretty quickly, so I have improved
the situation.
Now, instead of generating version.h, main/version.c is generated. version.c
includes the version information, as well as a couple of API calls for modules
to retrieve the version. So now, only version.c will get rebuilt, and the main
asterisk binary relinked, which is must faster than rebuilding http.c, manager.c,
asterisk.c, relinking the asterisk binary, chan_sip.c, func_version.c, res_agi ...
The only minor change in behavior here is that the version information reported by
chan_sip, for example, is the version of the Asterisk core, and not necessarily the
Asterisk version that the chan_sip module came from.
Russell Bryant [Sat, 5 Jan 2008 21:35:54 +0000 (21:35 +0000)]
Add a note about changing modules.conf since another console channel driver is
now present that can not be used at the same time as chan_alsa or chan_oss.
Fix the problem of notification of a device state change to a device with a '-'
in the name. Could probably do with a better fix in trunk, but this bug has
been open way too long without a better solution.
Reported by: stevedavies
Patch by: tilghman
(Closes issue #9668)
Philippe Sultan [Fri, 4 Jan 2008 17:19:25 +0000 (17:19 +0000)]
Use SASL DIGEST-MD5 authentication over unsecured network connections only.
This authentication mechanism is implemented under the iksemel API, which
makes use of GnuTLS, whereas we use OpenSSL. Note : there's ongoing
dicsussion at the SASL IETF WG in order to deprecate SASL DIGEST-MD5, see
http://ietfreport.isoc.org/ids-wg-sasl.html.
eliminiate sound_thread() and other stuff from chan_oss since Asterisk indications can handle it
remove gentone and all the headers containing tones that are no longer needed
coding guidelines cleanup
remove background thread and all sound generation mechanisms, as the built-in indications can handle everything that is needed
Merged revisions 96198 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r96198 | crichter | 2008-01-03 13:08:40 +0100 (Do, 03 Jan 2008) | 1 line
when overlapdial was used and no number was dialed, the call was dropped, now we just jump into the s extension, which makes a lot more sense.
........
We need to reset the membername to NULL on each iteration of this loop, otherwise the result is that
multiple members can have the same name, since the variable was not reset on each iteration of the loop.
Russell Bryant [Wed, 2 Jan 2008 23:22:25 +0000 (23:22 +0000)]
Add support for generating a ringing sound on an incoming call. This is a bit
of a hack. It just asks the core to generate the same tone that it would when
you hear ringback when making an outbound call. But hey, it works, and you get
the localized ring tone for the appropriate language set on the channel.
another checkpoint... chan_zap can now use the new ZT_ECHOCAN_PARAMS ioctl if it is present, but doesn't parse any supplied parameters yet
(this implementation is not very memory efficient as the parameters and their values will be duplicated for each channel that has the same settings, but we can worry about that later once it is working)
Allocate a SIP refer structure when performing a transfer using BYE with Also so that the transfer information is properly stored. (AST-2008-001)
(closes issue #11637)
Reported by: greyvoip
Mark Michelson [Wed, 2 Jan 2008 20:23:23 +0000 (20:23 +0000)]
Since ',' is the standard argument separator in trunk, change app_queue
to use AST_STANDARD_APP_ARGS instead of AST_NONSTANDARD_APP_ARGS for determining
member data.
improve AC_C_DEFINE_CHECK to not try to evaluate the macro being checked for, but just check for its existence
finish implementation of check for Zaptel HWGAIN support
add check for Zaptel ECHOCANCEL_PARAMS support
and now just to keep the libresample party going... if the functions from libresample are going to be in the main Asterisk binary, it makes sense for the header that defines them to be available without any special CFLAGS and to out-of-tree modules building against /usr/include/asterisk
umm... this did not compile on x86-64, and could not possibly have worked on any platform as it was passing string pointers to a function expecting ints
A change to improve the accuracy of queue logging in the case where a member does not
answer during the specified timeout period. Prior to this change, there was a small chance
that the member name recorded in this case would be blank. Also prior to this change, if using
the ringall strategy, if no one answered the call during the specified timeout, the member name
listed in the queue log would randomly be one of the members that was rung.
(closes issue #11498, reported and tested by hloubser, patched by me)
Russell Bryant [Wed, 2 Jan 2008 16:20:26 +0000 (16:20 +0000)]
For some odd reason, the last set of libresample build changes from Kevin did
not work for everyone, but it did for some. This set of changes makes trunk
start again for those having problems. Instead of building libresample as a
static library, it just links the object files in directly with the asterisk
binary.
actually check for a function present in libiconv (don't know how this test could have worked before) and don't do the check on Linux/GNU systems because libiconv is not present there and attempting to link with '-liconv' always fails (it's not necessary as the iconv functionality is always available)
go back to including libresample in the main Asterisk binary, but this time including a small hack to ensure that it does get linked in (and also modify the strip_nonapi script to leave the resample_<foo> symbols alone)
Philippe Sultan [Wed, 2 Jan 2008 11:34:26 +0000 (11:34 +0000)]
Set stream flags to zero upon initialization.
When the XMPP over TLS/SSL connection resets for some reason, it is
wrongly believed as being secured, which makes the re-connection
process endlessly fail. This was reported by mvanbaak in issue #11644.
Luigi Rizzo [Wed, 2 Jan 2008 09:16:17 +0000 (09:16 +0000)]
some cleanup of this code while I am trying to debug a problem with
gdb dying while debugging asterisk. The problem seems to be related
with a race in the handling of module_list, which in turn is triggeded
by calling dlopen() on a system which uses initializers to create
locks.
Russell Bryant [Wed, 2 Jan 2008 01:00:44 +0000 (01:00 +0000)]
Instead of linking libresample into the main Asterisk binary, build it as
res_resample, and mark codec_resample as dependent upon res_resample. This
prevents the linker from optimizing away libresample, and also makes it so the
libresample code isn't linked in to multiple places. (I have another module
in a branch that needs it, too.)
Joshua Colp [Tue, 1 Jan 2008 23:09:32 +0000 (23:09 +0000)]
Fix building of codec_resample on platforms other then Cygwin. On everything else it actually gets built after codec_resample, so you can't exactly link it in since it doesn't exist.
Luigi Rizzo [Tue, 1 Jan 2008 22:21:39 +0000 (22:21 +0000)]
make codec_resample build on __CYGWIN__, and make it load on FreeBSD
(and probably other systems as well).
Both need libresample.a to be specified in the linking phase,
and cygwin needs <float.h> as other BSD.
The checks for OS-specific headers should really be moved to some
common header though.
Luigi Rizzo [Tue, 1 Jan 2008 22:08:32 +0000 (22:08 +0000)]
implement "configure" checks for libiconv, and add the
iconv dependency for func_iconv.
This fixes some build issues on CYGWIN and FreeBSD and probably
other platforms where libiconv is not there by default
Avoiding a potentially bad locking situation. ast_merge_contexts_and_delete writelocks the conlock, then
calls ast_hint_extension, which attempts to readlock the same lock. Recursion with read-write locks is
dangerous, so the inner lock needs to be removed. I did this by copying the "guts" of ast_hint_extension
into ast_merge_contexts_and_delete (sans the extra lock).
(this change is inspired by the locking problems seen in issue #11080, but I have no idea if this is the
problematic area experienced by the reporters of that issue)
Russell Bryant [Mon, 31 Dec 2007 21:33:45 +0000 (21:33 +0000)]
Update chan_console to natively use a 16 kHz sample rate. If it is talking
to an 8 kHz endpoint, then codec_resample will automatically be used to properly
resample the audio before sending it to/from chan_console.
Russell Bryant [Mon, 31 Dec 2007 21:22:31 +0000 (21:22 +0000)]
Merge changes from team/russell/codec_resample
This commit imports libresample for use in Asterisk. It also adds a new codec
module, codec_resample. This module uses libresample to re-sample signed linear
audio between 8 kHz and 16 kHz.
It also provides an alternative for converting between 16 kHz G.722 and 8 kHz
signed linear when using G.722, which will likely be useful as some people have
complained about volume issues when the current codec_g722 converts to 8 kHz
signed linear. But, to test this, you will have to disable the g722-to-slin and
g722-to-slin16 translators in codec_g722.c.
Russell Bryant [Mon, 31 Dec 2007 16:13:26 +0000 (16:13 +0000)]
Merge the main set of changes from team/russell/chan_console.
Add a new console channel driver, chan_console, which is a console channel
driver that uses portaudio as a cross platform audio interface. It was written
to provide a console channel driver that works with Mac CoreAudio, but it
supports a number of other audio interfaces, as well, including OSS and ALSA.
It could one day be the single console channel driver, but does not yet have
as many features as chan_oss.
Luigi Rizzo [Sat, 29 Dec 2007 02:02:03 +0000 (02:02 +0000)]
Move grabbers definitions to a separate file, vgrabbers.c, so it is easier
to add more entries. This required moving struct grab_desc to the common
header, and adding an entry in the Makefile.
On passing, cleanup some comments and file headers (some are still missing).
Luigi Rizzo [Fri, 28 Dec 2007 23:15:11 +0000 (23:15 +0000)]
Add a few entries up to 1408x1152 in the table of known video resolutions.
This makes it very convenient to enlarge images using the right-click
on the video window.