Commit Graph

560 Commits

Author SHA1 Message Date
Tilghman Lesher 96d11d3e02 This commit fixes the following issues:
- Deadlock in ast_write (issue #10406)
- Deadlock in ast_read (issue #10406)
- Possible mutex initialization error in lock.h (issue #10571)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@85158 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-09 21:55:06 +00:00
Joshua Colp ba0bb743e6 Only update codec information if the channel has a technology private structure.
(issue #10915)
Reported by: ramonpeek


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@85057 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-08 20:06:33 +00:00
Joshua Colp 3dcf938f73 Update codec information as well as address when doing hold reinvites.
(issue #10868)
Reported by: mavince


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@85023 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-08 15:37:46 +00:00
Joshua Colp 2baeb29ae4 Don't keep trying to native bridge if either of the channels are involved in a masquerade operation to be done.
(closes issue #10696)
Reported by: tbelder


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@84990 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-08 15:03:07 +00:00
Tilghman Lesher 9ae23cba31 Log exactly why we can't open the database, if we fail (closes issue #10887)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@84851 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-05 19:42:21 +00:00
Joshua Colp 35ed1f7148 Update the remembered RTP peer information when putting an endpoint on hold or taking it off hold so that the RTP stack does not initiate a needless reinvite.
(closes issue #10868)
Reported by: mavince


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@84818 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-05 18:55:36 +00:00
Russell Bryant 2c757f0747 Fix a copy/paste error in the description of UpdateConfig that was pointed
out by JerJer on #asterisk-dev


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@84742 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-05 01:39:07 +00:00
Tilghman Lesher 1e9edf1338 When an RFC 2833 event is sent that we don't recognize, ignore it, don't queue a NULL digit (closes issue #10877)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@84581 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-03 22:59:17 +00:00
Dwayne M. Hubbard bae4135759 moved get_base_channel() code from action_redirect to ast_channel_masquerade() for issue 7706 and BE-160
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@84274 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-01 21:25:37 +00:00
Russell Bryant 5fdc354155 Fulfull a feature request from Qwell on the "core show locks" output. It will
now note the lock type for each lock that a thread holds.
(mutex, rdlock, or wrlock)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@84271 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-01 21:07:06 +00:00
Tilghman Lesher b1f26cfcdf Correct pronunciations of numbers for .nl (Closes issue #10837)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@84078 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-28 14:13:47 +00:00
Tilghman Lesher 253a34b756 Avoid a deadlock with ALL of the locks in the masquerade function, not just the
pairs of channels.  (Closes issue #10406)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@84049 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-28 05:30:22 +00:00
Dwayne M. Hubbard 7c4e477fde if an Agent is redirected, the base channel should actually be redirected. This was causing multiple issues, especially issue 7706 and BE-160
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@84018 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-27 23:12:25 +00:00
Tilghman Lesher 20e50a731b jmls pointed out that unsetting the group and setting the group to the blank string aren't quite the same.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@83773 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-25 14:13:25 +00:00
Tilghman Lesher 8c95942b7f Making change to group splitting, as discussed on the -dev list. The main
effect of this will be to permit Set(GROUP([cat])=), i.e. unsetting a group.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@83637 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-24 15:17:06 +00:00
Russell Bryant d6b8fb4dc0 gcc 4.2 has a new set of warnings dealing with cosnt pointers. This set of
changes gets all of Asterisk (minus chan_alsa for now) to compile with gcc 4.2.
(closes issue #10774, patch from qwell)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@83432 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-21 14:37:20 +00:00
Russell Bryant 578c1d0c8a When daemonizing, don't change working directory to "/". It makes it not be
able to do a core dump when not running as uid=root.
(closes issue #10766, xrg)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@83348 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-20 21:16:48 +00:00
Russell Bryant df5599d598 Fix up another potential race condition. Do the loop decrementing use count
on events with the eventq protected from being changed.
(reported on IRC by Ivan)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@83121 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-19 15:10:14 +00:00
Doug Bailey 8ac8d79a5d Corrected patch applied in revision r82887.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@82913 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-18 21:49:32 +00:00
Doug Bailey 33a1011c51 Fixed a bug where http manager sessions prevented the eventq from being cleaned out because http manager sessions do not have a valid file descriptor.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@82887 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-18 21:10:14 +00:00
Russell Bryant 4668601f9c Fix a memory leak that can occur on systems under higher load. The issue is
that when events are appended to the master event queue, they use the number
of active sessions as a use count so it will know when all active sessions
at the time the event happened have consumed it.  However, the handling of
the number of sessions was not properly synchronized, so the use count was
not always correct, causing an event to disappear early, or get stuck in
the event queue for forever.

(closes issue #9238, reported by bweschke, patch from Ivan, modified by me)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@82867 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-18 20:56:43 +00:00
Russell Bryant 82a6309168 Put a memset in ast_localtime() instead of a couple places in app_voicemail
to prevent the problem everywhere instead of just a couple of places.
(related to issue #10746)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@82676 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-17 20:16:25 +00:00
Joshua Colp 5bf3facef0 (closes issue #10734)
Reported by: asgaroth
Instead of passing a NULL pointer into snprintf pass "". It makes Solaris much happier.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@82514 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-17 02:00:59 +00:00
Steve Murphy 3dd879bb13 closes issue #10668; thanks to arkadia for his patch; had to leave out the bit about ending the previous cdr in the fork; it would destroy current implementations.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@82444 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-14 21:19:27 +00:00
Russell Bryant 8138003de7 resolve a warning when not building under dev mode
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@82339 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-13 18:57:08 +00:00
Russell Bryant c8dd4e7430 Only compile in tracking astobj2 statistics if dev-mode is enabled. Also, when
dev mode is enabled, register the CLI command that can be used to run the astobj2
test and print out statistics.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@82337 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-13 18:45:59 +00:00
Tilghman Lesher 4f1183bd27 Oops, wrong location for FreeBSD zone files
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@82291 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-12 21:28:33 +00:00
Tilghman Lesher e28d1357de Working on issue #10531 exposed a rather nasty 64-bit issue on ast_mktime, so we
updated the localtime.c file from source.  Next we'll have to write ast_strptime
to match.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@82285 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-12 20:12:06 +00:00
Russell Bryant ef740deceb Clean up the output of "asterisk -h". This tweaks the wording and wraps lines
at 80 characters.
(closes issue #10699, seanbright)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@82280 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-12 15:16:49 +00:00
Steve Murphy e84f98ea4f this change should fix issue # 10659 -- what I worry about is how many other bug reports it may generate. Hopefully, we can please the/a majority. Hopefully. We shall see. Calls not marked ANSWERED and with only one channel name will not be posted. This should eliminate the double CDR's.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@82261 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-11 20:36:15 +00:00
Russell Bryant b8261abd0b backport astobj2 race condition fix. This function is the exact same as trunk
so it applies here as well.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@82198 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-10 19:53:17 +00:00
Russell Bryant 827ca97872 Fix a small memory leak. ast_unregister_atexit() did not free the entry it removed.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@81997 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-08 18:41:32 +00:00
Russell Bryant aa3b7e22f5 Fix an issue that can occur when you do an attended transfer to parking. If
you complete the transfer before the announcement of the parking spot finishes,
then the channel being parked will hear the remainder of the announcement.
These changes make it so that will not happen anymore.

Basically, res_features sets a flag on the channel is playing the announcement
to so that the file streaming core knows that it needs to watch out for a
channel masquerade, and if it occurs, to abort the announcement.

(closes BE-182)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@81599 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-05 20:53:41 +00:00
Joshua Colp 0f82a9bbf1 (closes issue #10650)
Reported by: tacvbo
Only print out that the spy was removed while holding the spy lock.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@81492 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-05 13:11:48 +00:00
Russell Bryant c95389856a Remove the typedefs on ao2_container and ao2_iterator. This is simply because
we don't typedef objects anywhere else in Asterisk, so we might as well make
this follow the same convention.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@81448 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-04 18:37:44 +00:00
Joshua Colp 63669c4496 (closes issue #10476)
Reported by: mdu113
Only look for the end of a digit when waiting for a digit. This in turn disables emulation in the core.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@81437 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-04 13:46:23 +00:00
Joshua Colp 7e7eef085c (closes issue #10610)
Reported by: john
Patches:
      dns.c.patch uploaded by john (license 218)
Tested by: mvanbaak
Don't return a match if no SRV record actually exists.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@81435 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-04 13:10:56 +00:00
Mark Michelson e0b90d3b06 Making match_by_addr into ao2_match_by_addr and making it available
everywhere since it could be a handy callback to have



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@81426 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-01 06:02:06 +00:00
Steve Murphy 07f7547e84 via issue 10599, where 'CDR already initialized' messages are being generated. Since all channels will have an init'd CDR attached at creation time, this message is now particularly useless. Removed.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@81392 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-30 21:11:48 +00:00
Joshua Colp d080d7bfc4 (closes issue #10603)
Reported by: jmls
Patches:
      pbx.diff uploaded by jmls (license 141)
Backport changes from 81372. Add REASON dialplan variable for when an originated call fails and the failed extension is executed.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@81375 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-30 14:53:43 +00:00
Russell Bryant 8399112981 If chan_h323 is not being built, don't use g++ to do the final link of Asterisk.
(in response to a question on the asterisk-dev list)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@81342 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-29 15:57:29 +00:00
Joshua Colp 968be2def2 (closes issue #10562)
Reported by: idkpmiller
Correct jitter value output in the CLI to be as expected.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@80974 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-27 13:20:31 +00:00
Russell Bryant 1959929a2a Improve the debouncing logic in the DTMF detector to fix some reliability
issues.  Previously, this code used a shift register of hits and non-hits.
However, if the start of the digit isn't clean, it is possible for the
leading edge detector to miss the digit.  These changes replace the flawed
shift register logic and also does the debouncing on the trailing edge as well.
(closes issue #10535, many thanks to softins for the patch)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@80820 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-24 20:24:05 +00:00
Steve Murphy d96548ab3c From a complaint by jmls, I realize that the message in cdr_disposition is unnecessary. To get failure disposition, just return -1; no use having more than one case do that.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@80789 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-24 18:52:15 +00:00
Tilghman Lesher 02d6a884bb Make the deprecation warning inline with the code, instead of only in documentation (closes issue #10549)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@80747 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-24 15:41:43 +00:00
Russell Bryant b2c65cf51d This is a hack to maintain old behavior of chan_iax2. This ensures that if
the peers and users are being stored in a linked list, that they go in the
list in the same order that the older code used.  This is necessary to maintain
the behavior of which peers and users get matched when traversing the container.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@80497 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-23 16:53:52 +00:00
Russell Bryant 851b4e474c When converting this code to use the list macros, I changed it so objects are
added to the head of a bucket instead of the tail.  However, while looking over
code with mmichelson, we noticed that the algorithm used in ao2_iterator_next
requires that items are added to the tail.  This wouldn't have caused any huge
problem, but it wasn't correct.  It meant that if an object was added to a
container while you were iterating it, and it was added to the same bucket that
the current element is in, then the new object would be returned by 
ao2_iterator_next, and any other objects in the bucket would be bypassed in
the traversal.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@80424 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-22 22:40:27 +00:00
Russell Bryant 566371bd50 Merge changes from team/russell/iax_refcount.
This set of changes fixes problems with the handling of iax2_user and iax2_peer
objects.  It was very possible for a thread to still hold a reference to one of
these objects while a reload operation tries to delete them.  The fix here is to
ensure that all references to these objects are tracked so that they can't go away
while still in use.

To accomplish this, I used the astobj2 reference counted object model.  This
code has been in one of Luigi Rizzo's branches for a long time and was primarily
developed by one of his students, Marta Carbone.  I wanted to go ahead and bring
this in to 1.4 because there are other problems similar to the ones fixed by these
changes, so we might as well go ahead and use the new astobj if we're going to go
through all of the work necessary to fix the problems.

As a nice side benefit of these changes, peer and user handling got more efficient.
Using astobj2 lets us not hold the container lock for peers or users nearly as long
while iterating.  Also, by changing a define at the top of chan_iax2.c, the objects
will be distributed in a hash table, drastically increasing lookup speed in these
containers, which will have a very big impact on systems that have a large number of
users or peers.

The use of the hash table will be made the default in trunk.  It is not the default
in 1.4 because it changes the behavior slightly.  Previously, since peers and users
were stored in memory in the same order they were specified in the configuration file,
you could influence peer and user matching order based on the order they are specified
in the configuration.  The hash table does not guarantee any order in the container,
so this behavior will be going away.  It just means that you have to be a little
more careful ensuring that peers and users are matched explicitly and not forcing
chan_iax2 to have to guess which user is the right one based on secret, host, and
access list settings, instead of simply using the username.

If you have any questions, feel free to ask on the asterisk-dev list.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@80362 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-22 20:21:36 +00:00
Joshua Colp d13b192018 (closes issue #10526)
Reported by: sinistermidget
Revert commit from issue #10355 and return timestamp skew to 640. 


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@80255 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-22 16:14:38 +00:00
Steve Murphy 4b5a9ae533 This patch solves problem 1 in 8126; it should not slow down the alaw codec, but should prevent signal degradation via multiple trips thru the codec. Fossil estimates the twice thru this codec will prevent fax from working. 4-6 times thru would result hearable, noticeable, voice degradation.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@80166 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-21 16:36:34 +00:00