Commit Graph

753 Commits

Author SHA1 Message Date
Joshua Colp
2bf8f9fca3 Move where unanswered CDRs are dropped to the CDR core, not everything uses app_dial.
(closes issue #11516)
Reported by: ys
Patches:
      branch_1.4_cdr.diff uploaded by ys (license 281)
Tested by: anest, jcapp, dartvader


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@107016 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-03-10 14:33:02 +00:00
Jason Parker
06ba2df183 Fix hardcoded grep in editline, were GNU grep is required.
(closes issue #12124)
Reported by: dmartin


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@106842 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-03-07 22:14:45 +00:00
Joshua Colp
28c66694d3 Ignore source update control frame.
(closes issue #12168)
Reported by: plack


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@106788 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-03-07 19:32:00 +00:00
Tilghman Lesher
072171ef5d Properly initialize rtp->schedid
(Closes issue #12154)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@106606 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-03-07 15:20:52 +00:00
Tilghman Lesher
56e908b787 Safely use the strncat() function.
(closes issue #11958)
 Reported by: norman
 Patches: 
       20080209__bug11958.diff.txt uploaded by Corydon76 (license 14)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@106552 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-03-07 06:36:33 +00:00
Mark Michelson
24ca0899c2 Quell an annoying message that is likely to print every single time that
ast_pbx_outgoing_app is called. The reason is that __ast_request_and_dial
allocates the cdr for the channel, so it should be expected that the channel
will have a cdr on it.

Thanks to joetester on IRC for pointing this out



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@106437 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-03-06 22:10:07 +00:00
Joshua Colp
cd703523db Add a control frame to indicate the source of media has changed. Depending on the underlying technology it may need to change some things.
(closes issue #12148)
Reported by: jcomellas


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@106235 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-03-05 22:32:10 +00:00
Russell Bryant
d564404d73 Fix a bug that I just noticed in the RTP code. The calculation for setting the
len field in an ast_frame of audio was wrong when G.722 is in use.  The len field
represents the number of ms of audio that the frame contains.  It would have
set the value to be twice what it should be.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@105932 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-03-05 01:52:18 +00:00
Joshua Colp
be005c60d6 In addition to setting the marker bit let's change our ssrc so they know for sure it is a different source.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@105676 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-03-04 18:10:34 +00:00
Joshua Colp
36bb1f9d46 When a new source of audio comes in (such as music on hold) make sure the marker bit gets set.
(closes issue #10355)
Reported by: wdecarne
Patches:
      10355.diff uploaded by file (license 11)
(closes issue #11491)
Reported by: kanderson


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@105674 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-03-04 18:05:28 +00:00
Russell Bryant
40425a24bf Backport a minor bug fix from trunk that I found while doing random code
cleanup.  Properly break out of the loop when a context isn't found when
verify that includes are valid.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@105591 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-03-04 04:31:29 +00:00
Russell Bryant
9c5af082ca Update the copyright information for autoservice. Most of the code in this file
now is stuff that I have written recently ...


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@105565 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-03-03 16:01:50 +00:00
Russell Bryant
547ac9f501 Merge in some changes from team/russell/autoservice-nochans-1.4
These changes fix up some dubious code that I came across while auditing what
happens in the autoservice thread when there are no channels currently in
autoservice.

1) Change it so that autoservice thread doesn't keep looping around calling
   ast_waitfor_n() on 0 channels twice a second.  Instead, use a thread condition
   so that the thread properly goes to sleep and does not wake up until a
   channel is put into autoservice.

   This actually fixes an interesting bug, as well.  If the autoservice thread
   is already running (almost always is the case), then when the thread goes
   from having 0 channels to have 1 channel to autoservice, that channel would
   have to wait for up to 1/2 of a second to have the first frame read from it.

2) Fix up the code in ast_waitfor_nandfds() for when it gets called with no
   channels and no fds to poll() on, such as was the case with the previous code
   for the autoservice thread.  In this case, the code would call alloca(0), and
   pass the result as the first argument to poll().  In this case, the 2nd
   argument to poll() specified that there were no fds, so this invalid pointer
   shouldn't actually get dereferenced, but, this code makes it explicit and
   ensures the pointers are NULL unless we have valid data to put there.

(related to issue #12116)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@105563 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-03-03 15:50:43 +00:00
Joshua Colp
5bfdc9818d It is possible for no audio to pass between the current digit and next digit so expand logic that clears emulation to AST_FRAME_NULL.
(closes issue #11911)
Reported by: edgreenberg
Patches:
      v1-11911.patch uploaded by dimas (license 88)
Tested by: tbsky


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@105560 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-03-03 15:28:59 +00:00
Russell Bryant
679cc09b1d Fix a major bug in autoservice. There was a race condition in the handling of
the list of channels in autoservice.  The problem was that it was possible for
a channel to get removed from autoservice and destroyed, while the autoservice
thread was still messing with the channel.  This led to memory corruption, and
caused crashes.  This explains multiple backtraces I have seen that have
references to autoservice, but do to the nature of the issue (memory corruption),
could cause crashes in a number of areas.

(fixes the crash in BE-386)
(closes issue #11694)
(closes issue #11940)

The following issues could be related.  If you are the reporter of one of these,
please update to include this fix and try again.

(potentially fixes issue #11189)
(potentially fixes issue #12107)
(potentially fixes issue #11573)
(potentially fixes issue #12008)
(potentially fixes issue #11189)
(potentially fixes issue #11993)
(potentially fixes issue #11791)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@105409 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-02-29 23:34:32 +00:00
Russell Bryant
12e5fb358a Fix a bug in the lock tracking code that was discovered by mmichelson. The issue
is that if the lock history array was full, then the functions to mark a lock as
acquired or not would adjust the stats for whatever lock is at the end of the array,
which may not be itself.  So, do a sanity check to make sure that we're updating
lock info for the proper lock.

(This explains the bizarre stats on lock #63 in BE-396, thanks Mark!)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@105116 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-02-28 22:23:05 +00:00
Jason Parker
6c3d62c1fa Make pbx_exec pass an empty string into applications, if we get NULL.
This protects against possible segfaults in applications that may try
 to use data before checking length (ast_strdupa'ing it, for example)

(closes issue #12100)
Reported by: foxfire
Patches:
      12100-nullappargs.diff uploaded by qwell (license 4)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@105005 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-02-28 19:20:10 +00:00
Tilghman Lesher
a032456cb8 Compatibility fix for PPC64
(closes issue #12081)
 Reported by: jcollie
 Patches: 
       asterisk-1.4.18-funcdesc.patch uploaded by jcollie (license 412)
 Tested by: jcollie, Corydon76


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@104868 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-02-28 00:05:06 +00:00
Mark Michelson
55b49506fa Two fixes:
1. Make the list of ast_dial_channels a lockable list. This is because in some cases,
   the ast_dial may exist in multiple threads due to asynchronous execution of its application, and
   I found some cases where race conditions could exist.

2. Check in ast_dial_join to be sure that the channel still exists before attempting to lock it, since
   it could have gotten hung up but the is_running_app flag on the ast_dial_channel may not have been
   cleared yet.

(closes issue #12038)
Reported by: jvandal
Patches:
      12038v2.patch uploaded by putnopvut (license 60)
Tested by: jvandal



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@104841 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-02-27 21:49:20 +00:00
Mark Michelson
45079917ec Bump a couple of more buffers up by 2 so that annoying warnings aren't generated
like crazy on every fileexists_core call.



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@104783 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-02-27 20:36:26 +00:00
Tilghman Lesher
11550c7be6 Ensure the session ID can't be 0.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@104704 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-02-27 18:15:10 +00:00
Joshua Colp
451ee5b1d4 Bump up the buffer by 2.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@104665 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-02-27 17:41:40 +00:00
Joshua Colp
97869f4771 Use the lock (which already existed, it just wasn't used) on the updaters list to protect the contents instead of the overall module list lock.
(closes issue #12080)
Reported by: ChaseVenters


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@104596 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-02-27 17:07:33 +00:00
Kevin P. Fleming
8a9e7e213b fallback to standard English prompts properly when using new prompt directory layout
(closes issue #11831)
Reported by: IgorG
Patches:
      fallbacken.v1.diff uploaded by IgorG (license 20) (modified by me to improve code and conform rest of function to coding guidelines)



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@104593 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-02-27 16:53:06 +00:00
Russell Bryant
ac15754e9a Improve the lock tracking code a bit so that a bunch of old locks that threads
failed to lock don't sit around in the history.  When a lock is first locked,
this checks to see if the last lock in the list was one that was failed to be
locked.  If it is, then that was a lock that we're no longer sitting in a trylock
loop trying to lock, so just remove it.
(inspired by issue #11712)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@104102 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-02-25 23:19:05 +00:00
Jason Parker
e1fb43d32a Allow the use of #include and #exec in situations where the max include depth was only 1.
Specifically, this fixes using #include and #exec in extconfig.conf.

This was basically caused because the config file itself raises the include level to 1.

I opted not to raise the include limit, because recursion here could cause very bizarre behavior.

Pointed out, and tested by jmls

(closes issue #12064)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@104092 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-02-25 20:49:42 +00:00
Kevin P. Fleming
d105ba22fa reduce the likelihood that HTTP Manager session ids will consist of primarily '1' bits
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@104015 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-02-21 14:33:51 +00:00
Tilghman Lesher
494aeb94ac Compat fix for Solaris
(closes issue #12022)
 Reported by: asgaroth
 Patches: 
       20080219__bug12022.diff.txt uploaded by Corydon76 (license 14)
 Tested by: asgaroth


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@103845 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-02-20 17:53:00 +00:00
Joshua Colp
0433ee65ae 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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@103801 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-02-18 23:56:48 +00:00
Mark Michelson
1726d5ef4e 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.

(closes issue #12021)
Reported by: jakep
Tested by: putnopvut



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@103786 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-02-18 20:52:09 +00:00
Tilghman Lesher
4306df31b1 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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@103780 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-02-18 17:31:52 +00:00
Joshua Colp
ba72af8c11 Backport fix from issue #9325.
(closes issue #11980)
Reported by: rbrunka


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@103768 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-02-18 16:11:51 +00:00
Russell Bryant
468e53a6de 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".


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@103728 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-02-15 19:50:11 +00:00
Russell Bryant
97bf3c5ace 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)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@103726 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-02-15 18:33:29 +00:00
Jason Parker
335e583040 revert accidental change from last commit. oops
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@103504 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-02-12 22:24:03 +00:00
Jason Parker
3bc94a27ca Remove condition that was impossible.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@103503 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-02-12 22:22:54 +00:00
Joshua Colp
82db5adb94 Add missing header file and ASTERISK_FILE_VERSION usage.
(closes issue #11936)
Reported by: snuffy


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@102653 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-02-06 15:43:38 +00:00
Tilghman Lesher
0dafcac660 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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@102323 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-02-04 21:06:09 +00:00
Tilghman Lesher
df1dc7741d Compatibility fix for OpenWRT (reported by Brian Capouch via the mailing list)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@101772 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-02-01 15:55:58 +00:00
Russell Bryant
e4ee2274a1 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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@101601 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-31 23:10:06 +00:00
Steve Murphy
595ab7340d closes issue #11845; that's the one where there's a 1004 byte cdr leak with every AMI Redirect to a zap channel
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@101480 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-31 19:30:37 +00:00
Joshua Colp
7b31f51cf9 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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@101222 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-30 15:41:04 +00:00
Russell Bryant
f8c69c7d92 Fix the last couple of issues related to building from a path that contains spaces.
(closes issue #11834)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@100932 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-29 17:43:41 +00:00
Tilghman Lesher
44cdbc7d00 WaitExten didn't handle AbsoluteTimeout properly (went to 't' instead of 'T')
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@100675 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-28 21:02:02 +00:00
Russell Bryant
ef78f25e8a 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.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@100581 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-28 17:15:41 +00:00
Tilghman Lesher
7060a6888d 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`


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@100465 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-27 21:59:53 +00:00
Russell Bryant
8f27d3ce7c Update main Asterisk copyright info to 2008
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@100164 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-24 17:22:09 +00:00
Jason Parker
9bc4c3e533 Fix compilation on Solaris.
(closes issue #11832)
Patches:
      bug-11832.diff uploaded by snuffy (license 35)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@100138 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-24 16:41:29 +00:00
Tilghman Lesher
d9f3861f72 Just confirmed that all current platforms need this header file
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@99718 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-23 00:56:06 +00:00
Tilghman Lesher
fa20a738d7 Fix the defines for OS X (and Solaris, too)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@99643 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-22 20:34:55 +00:00