Russell Bryant [Mon, 28 Jan 2008 17:21:24 +0000 (17:21 +0000)]
Merged revisions 100581 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r100581 | russell | 2008-01-28 11:15:41 -0600 (Mon, 28 Jan 2008) | 9 lines
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.
Joshua Colp [Mon, 28 Jan 2008 13:57:38 +0000 (13:57 +0000)]
Don't do a network byte order conversion when setting the socket's port variable to that of bindaddr's. It is already in the correct network byte order.
(closes issue #11800)
Reported by: hmodes
Russell Bryant [Mon, 28 Jan 2008 00:56:14 +0000 (00:56 +0000)]
These readlocks always fail for me on my mac, and I saw it happen again
today on another mac. We ignore the return value of locking operations almost
everywhere in Asterisk. So, ignore these, as well, so Asterisk will actually
work on systems where this is occurring while I look into what the issue is.
Tilghman Lesher [Sun, 27 Jan 2008 23:14:48 +0000 (23:14 +0000)]
With the switch to the ast_sched_replace* API in trunk, we lose the correction
that was just merged from 1.4, so this is a changeover to those APIs to use the
macro versions, so that we properly detect errors from ast_sched_del, instead
of simply ignoring the return values.
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`
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
James Golovich [Thu, 24 Jan 2008 18:35:04 +0000 (18:35 +0000)]
Increase the size of filenames stored when astmm is used. If the path
length was long they would be truncated and grouped together with
whatever matches
Joshua Colp [Thu, 24 Jan 2008 17:47:50 +0000 (17:47 +0000)]
Merge in strictrtp branch. This adds a strictrtp option to rtp.conf which drops packets that do not come from the remote party.
(closes issue #8952)
Reported by: amorsen
Kevin P. Fleming [Thu, 24 Jan 2008 00:04:35 +0000 (00:04 +0000)]
fix flag bit definitions to make code from issue #11049 actually work; along the way, clarify comments and add some dummy flag definitions for other multi-bit flags to hopefully stop this from happening in the future
Russell Bryant [Wed, 23 Jan 2008 17:48:08 +0000 (17:48 +0000)]
Merged revisions 99923 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r99923 | russell | 2008-01-23 11:46:55 -0600 (Wed, 23 Jan 2008) | 8 lines
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.
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)
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 too heavy memory allocations on some systems.
Ensure that we can get an address even when we don't have a default route.
(closes issue #9225)
Reported by: junky
Patches:
20080122__bug9225.diff.txt uploaded by Corydon76 (license 14)
Tested by: oej, loloski, sergee
Fixing an issue wherein monitoring local channels was not possible. During a channel
masquerade, the monitors on the two channels involved are swapped. In 99% of the cases
this results in the desired effect. However, if monitoring a local channel, this caused
the monitor which was on the local channel to get moved onto a channel which is immediately
hung up after the masquerade has completed. By swapping the monitors prior to the masquerade,
we avoid the problem by tricking the masquerade into placing the monitor back onto the channel
where we want it.
During the investigation of the issue, the channel's monitor was the only thing that was swapped
in such a manner which did not make sense to have done. All other variable swapping made sense.
Permit the user to specify number of seconds that a connection may remain idle,
which fixes a crash on reconnect with the MyODBC driver.
(closes issue #11798)
Reported by: Corydon76
Patches:
20080119__res_odbc__idlecheck.diff.txt uploaded by Corydon76 (license 14)
Tested by: mvanbaak
Russell Bryant [Sun, 20 Jan 2008 07:28:23 +0000 (07:28 +0000)]
Add a "console active" CLI command, which lets you find out which console device
is currently active for the Asterisk CLI, or to set it. Also, knock multiple device
support off of the to-do list.
Russell Bryant [Sun, 20 Jan 2008 06:11:49 +0000 (06:11 +0000)]
Merge changes from team/russell/console_devices
- Add support for multiple devices. All devices are configured in console.conf.
- Add "console list devices" CLI command to show configured devices. Also, changed
the old "list devices" to be "list available", which queries PortAudio for all
audio devices that are available for use.
Russell Bryant [Sat, 19 Jan 2008 10:06:02 +0000 (10:06 +0000)]
Merged revisions 99187 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r99187 | russell | 2008-01-19 04:05:27 -0600 (Sat, 19 Jan 2008) | 4 lines
Fix a couple of memory leaks with frame handling. Specifically,
ast_frame_free() needed to be called on the frame that came from the translator
to signed linear.
Russell Bryant [Fri, 18 Jan 2008 22:04:33 +0000 (22:04 +0000)]
Merge changes from team/group/sip-tcptls
This set of changes introduces TCP and TLS support for chan_sip. There are various
new options in configs/sip.conf.sample that are used to enable these features. Also,
there is a document, doc/siptls.txt that describes some things in more detail.
This code was implemented by Brett Bryant and James Golovich. It was reviewed
by Joshua Colp and myself. A number of other people participated in the testing
of this code, but since it was done outside of the bug tracker, I do not have their
names. If you were one of them, thanks a lot for the help!
(closes issue #4903, but with completely different code that what exists there.)
Russell Bryant [Fri, 18 Jan 2008 21:38:01 +0000 (21:38 +0000)]
Merged revisions 99081 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r99081 | russell | 2008-01-18 15:37:21 -0600 (Fri, 18 Jan 2008) | 9 lines
Revert adding the packed attribute, as it really doesn't make sense why that
would do any good. Fix the real bug, which is to do the check to see if the
frame came from a translator at the beginning of ast_frame_free(), instead of
at the end. This ensures that it always gets checked, even if none of the
parts of the frame are malloc'd, and also ensures that we aren't looking at
free'd memory in the case that it is a malloc'd frame.
(closes issue #11792, reported by explidous, patched by me)
Russell Bryant [Fri, 18 Jan 2008 21:24:05 +0000 (21:24 +0000)]
Merged revisions 99079 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r99079 | russell | 2008-01-18 15:22:21 -0600 (Fri, 18 Jan 2008) | 4 lines
Since we're relying on the offset between the frame and the beginning of the translator
pvt struct, set the packed attribute to make sure we get to the right place.
(potential fix for issue #11792)
Terry Wilson [Fri, 18 Jan 2008 16:58:50 +0000 (16:58 +0000)]
This should at least temporarily fix a problem where the 't' Dial
option is incorrectly passed to the transferee when built-in
attended transfers are used. There is still a problem with 'T',
but better to fix some problems than no problems while we work
on it.
Tilghman Lesher [Fri, 18 Jan 2008 06:52:18 +0000 (06:52 +0000)]
Permit username and password to be NULL (which enables pass-through from the layer above).
Reported by: lurcher
Patch by: tilghman
(Closes issue #11739)
Russell Bryant [Thu, 17 Jan 2008 22:50:13 +0000 (22:50 +0000)]
Merged revisions 99004 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r99004 | russell | 2008-01-17 16:37:22 -0600 (Thu, 17 Jan 2008) | 10 lines
Have IAX2 optimize the codec translation path just like chan_sip does it. If
the caller's codec is in our codec list, move it to the top to avoid transcoding.
Mark Michelson [Thu, 17 Jan 2008 16:26:41 +0000 (16:26 +0000)]
Get the device state of the state interface instead of the interface when creating a new queue member.
Thanks to Atis Lezdins for bringing this up on the Asterisk-Dev mailing list.