Joshua Colp [Mon, 18 Feb 2008 23:56:48 +0000 (23:56 +0000)]
Ensure that emulated DTMFs do not get interrupted by another begin frame.
(closes issue #11740)
Reported by: gserra
Patches:
v1-11740.patch uploaded by dimas (license 88)
(closes issue #11955)
Reported by: tsearle
(closes issue #10530)
Reported by: xmarksthespot
Mark Michelson [Mon, 18 Feb 2008 20:52:09 +0000 (20:52 +0000)]
There was an invalid assumption when calculating the duration of a file that the filestream in question
was created properly. Unfortunately this led to a segfault in the situation where an unknown format was
specified in voicemail.conf and a voicemail was recorded. Now, we first check to be sure that the stream
was written correctly or else assume a zero duration.
Tilghman Lesher [Mon, 18 Feb 2008 17:31:52 +0000 (17:31 +0000)]
When a SIP channel is being auto-destroyed, it's possible for it to still be
in bridge code. When that happens, we crash. Delay the RTP destruction until
the bridge is ended.
(closes issue #11960)
Reported by: norman
Patches:
20080215__bug11960__2.diff.txt uploaded by Corydon76 (license 14)
Tested by: norman
Russell Bryant [Fri, 15 Feb 2008 19:50:11 +0000 (19:50 +0000)]
In the case that you try to directly reload a module has returned
AST_MODULE_LOAD_DECLINE, log a message indicating that the module is not fully
initialized and must be initialized using "module load".
Russell Bryant [Fri, 15 Feb 2008 18:33:29 +0000 (18:33 +0000)]
Don't attempt to execute the reload callback for a module that returned
AST_MODULE_LOAD_DECLINE. This fixes a crash that was reported against
chan_console in trunk.
(closes issue #11953, reported by junky, fixed by me)
Mark Michelson [Fri, 15 Feb 2008 17:26:37 +0000 (17:26 +0000)]
Final round of changes for configure script logic for IMAP
Now if a directory is specified, then we will search that directory for
a source installation of the IMAP toolkit. If none is found, then we will
use that directory as the basis for detecting a package installation of
the IMAP c-client. If that check fails, then configure will fail.
Mark Michelson [Fri, 15 Feb 2008 15:05:49 +0000 (15:05 +0000)]
Fix a bit of wrong logic in the configure script that caused problems when trying to configure
without IMAP. Patch suggestion from phsultan, but I modified it slightly.
Mark Michelson [Fri, 15 Feb 2008 00:50:49 +0000 (00:50 +0000)]
I apparently misunderstood one of the requirements of this configure change.
Now, if a source directory is specified with the --with-imap option, and a valid
source installation is not detected there, then configure will fail and will not
check for a package installation.
Mark Michelson [Thu, 14 Feb 2008 23:30:17 +0000 (23:30 +0000)]
Change to the configure logic regarding IMAP. Prior to this commit, if you wished to configure
Asterisk with IMAP support, you would use the --with-imap configure switch in one of the following
two ways:
--with-imap=/some/directory would look in the directory specified for a UW IMAP source installation
--with-imap would assume that you had imap-2004g installed in .. relative to the Asterisk source
With this set of changes the two above options still work the same, but there are two new behaviors, too.
--with-imap=system will assume that you have -libc-client.so where you store your shared objects and will
attempt to find c-client headers in your include path either in the imap or c-client directory.
If either of the two original methods of specifying the imap option should fail, then the check for --with-imap
=system will be performed in addition. It is only after this "system" check that failure can happen.
Tilghman Lesher [Wed, 13 Feb 2008 00:26:57 +0000 (00:26 +0000)]
Refuse to load app_voicemail if res_adsi is not loaded (which is a symbol dependency)
(closes issue #11760)
Reported by: non-poster
Patches:
20080114__bug11760.diff.txt uploaded by Corydon76 (license 14)
Tested by: Corydon76, non-poster, jamesgolovich
Joshua Colp [Mon, 11 Feb 2008 22:09:07 +0000 (22:09 +0000)]
If entering a conference with the 'w' option ensure that we can't listen or speak until the marked user appears.
(closes issue #11835)
Reported by: alanmcmillan
Tilghman Lesher [Sat, 9 Feb 2008 06:23:49 +0000 (06:23 +0000)]
Commit fix for being unable to send voicemail from VoiceMailMain
Reported by: William F Acker (via the -users mailing list)
Patch by: Corydon76 (license 14)
ensure that components of chan_misdn.so are built using any special build options that the configure script generated (reported by Philipp Kempgen on asterisk-dev)
Tilghman Lesher [Mon, 4 Feb 2008 21:06:09 +0000 (21:06 +0000)]
Cross-platform fix: OS X now deprecates the use of the daemon(3) API.
(closes issue #11908)
Reported by: oej
Patches:
20080204__bug11908.diff.txt uploaded by Corydon76 (license 14)
Tested by: Corydon76
Russell Bryant [Fri, 1 Feb 2008 23:06:32 +0000 (23:06 +0000)]
Change the SDP_SAMPLE_RATE macro. It turns out that even though G.722 is 16 kHz,
it is supposed to specified as 8 kHz in the RTP, and RTP timestamps are supposed
to be calculated based on 8 kHz. (Apparently this is due to a bug in a spec, but
people follow it anyway, because it's the spec ...)
Tilghman Lesher [Fri, 1 Feb 2008 21:54:28 +0000 (21:54 +0000)]
Fix the VM_DUR variable for forwarded voicemail, and fixed several other bugs
while I'm in the area.
(closes issue #11615)
Reported by: jamessan
Patches:
20071226__bug11615__2.diff.txt uploaded by Corydon76 (license 14)
Tested by: Corydon76, jamessan
Jason Parker [Fri, 1 Feb 2008 17:41:40 +0000 (17:41 +0000)]
Remove a needless (and incorrect) call to feof() after fgets().
This would have exited the loop early if you had an authentication file with no newline at the end.
Russell Bryant [Fri, 1 Feb 2008 17:23:47 +0000 (17:23 +0000)]
Don't overwrite the last character of a line if it's not a newline. This would
happen if the last line in the file doesn't have a newline.
(pointed out by Qwell)
Russell Bryant [Fri, 1 Feb 2008 00:32:49 +0000 (00:32 +0000)]
Add some more sanity checking on IAX2 dial strings for the case that no peer
or hostname was provided, which is the one part of the dial string that is
absolutely required. If it's not there, bail out.
(closes issue #11897)
Reported by sokhapkin
Patch by me
Russell Bryant [Thu, 31 Jan 2008 23:10:06 +0000 (23:10 +0000)]
Fix a couple of places where ast_frfree() was not called on a frame that came
from a translator. This showed itself by g729 decoders not getting released.
Since the flag inside the translator frame never got unset by freeing the frame
to indicate it was no longer in use, the translators never got destroyed, and
thus the g729 licenses were not released.
(closes issue #11892)
Reported by: xrg
Patches:
11892.diff uploaded by russell (license 2)
Tested by: xrg, russell
Mark Michelson [Thu, 31 Jan 2008 21:00:24 +0000 (21:00 +0000)]
1. Prevent the addition of an extra '/' to the beginning of an absolute pathname.
2. If ast_monitor_change_fname is called and the new filename is the same as the old, then exit early and don't set the
filename_changed field in the monitor structure. Setting it in this case was causing ast_monitor_stop to erroneously
delete them.
Joshua Colp [Wed, 30 Jan 2008 15:41:04 +0000 (15:41 +0000)]
Fix an issue where if a frame of higher sample size preceeded a frame of lower sample size and ast_slinfactory_read was called with a sample size of the combined values or higher a crash would happen.
(closes issue #11878)
Reported by: stuarth
Jason Parker [Wed, 30 Jan 2008 15:34:37 +0000 (15:34 +0000)]
Change default config to use descending channel order of groups, rather than ascending.
Fixes a potential source of confusion in glare-type situations.
Mark Michelson [Wed, 30 Jan 2008 15:23:00 +0000 (15:23 +0000)]
Fix a logic error with regards to autofill. Prior to this change, it was possible
for a caller to go out of turn if autofill were enabled and callers ahead in the queue were attempting
to call a member. This change fixes this.
Russell Bryant [Mon, 28 Jan 2008 17:15:41 +0000 (17:15 +0000)]
Make some deadlock related fixes. These bugs were discovered and reported
internally at Digium by Steve Pitts.
- Fix up chan_local to ensure that the channel lock is held before the local
pvt lock.
- Don't hold the channel lock when executing the timing function, as it can
cause a deadlock when using chan_local. This actually changes the code back
to be how it was before the change for issue #10765. But, I added some other
locking that I think will prevent the problem reported there, as well.
Tilghman Lesher [Sun, 27 Jan 2008 21:59:53 +0000 (21:59 +0000)]
When deleting a task from the scheduler, ignoring the return value could
possibly cause memory to be accessed after it is freed, which causes all
sorts of random memory corruption. Instead, if a deletion fails, wait a
bit and try again (noting that another thread could change our taskid
value).
(closes issue #11386)
Reported by: flujan
Patches:
20080124__bug11386.diff.txt uploaded by Corydon76 (license 14)
Tested by: Corydon76, flujan, stuarth`
Kevin P. Fleming [Thu, 24 Jan 2008 21:57:41 +0000 (21:57 +0000)]
make these macros not assume that the only other field in the structure is 'argc'... this is true when someone uses AST_DECLARE_APP_ARGS, but it's perfectly reasonable to define your own structure as long as it has the right fields
Russell Bryant [Wed, 23 Jan 2008 17:46:55 +0000 (17:46 +0000)]
ChanSpy issues a beep when it starts at the beginning of a list of channels to
potentially spy on. However, if there were no matching channels, it would beep
at you over and over, which is pretty annoying. Now, it will only beep once in
the case that there are no channels to spy on, but it will still beep again once
it reaches the beginning of the channel list again.
Tilghman Lesher [Wed, 23 Jan 2008 04:31:51 +0000 (04:31 +0000)]
When we reset the password via an external command, we should also reset the
password stored in the in-memory list, too (otherwise it doesn't really take
effect).
(closes issue #11809)
Reported by: davetroy
Patches:
fix_externpass.diff uploaded by davetroy (license 384)
Olle Johansson [Tue, 22 Jan 2008 20:56:09 +0000 (20:56 +0000)]
Thanks to Russell's education I realize that BUFSIZ has changed since I learned the C language
over 20 years ago... Resetting chan_sip to the size of BUFSIZ that I expected in my old
head to avoid to heavy memory allocations on some systems.