Commit Graph

225 Commits

Author SHA1 Message Date
Matthew Nicholson
0dab4b2303 Set the caller id on CDRs when it is set on the parent channel.
(closes issue #17569)
Reported by: tbelder
Patches:
      17569.diff uploaded by tbelder (license 618)
Tested by: tbelder


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@289177 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-09-29 15:03:27 +00:00
Brett Bryant
f13325ba10 Fixes an issue with the Newchannel AMI event during the Masquerading process.
Fixes an issue with the Newchannel AMI event during the Masquerading process,
where no Newchannel AMI event was generated for the psuedo channel used during
the masquerading process.

(closes issue #17987)
Reported by: RadicAlish
Patches: 
      newchannel.patch.txt uploaded by RadicAlish (license 1122)
      Tested by: RadicAlish

      Review: https://reviewboard.asterisk.org/r/937/


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@289094 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-09-28 18:10:19 +00:00
Brett Bryant
f9b2036d86 Add a check to fix a rare segmentation fault you'd get if ast_frdup couldn't allocate
memory on the first frame being queued in ast_queue_frame.

(closes issue #17882)
Reported by: seanbright
Tested by: seanbright



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@288005 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-09-21 19:43:46 +00:00
Alec L Davis
4675573b98 ast_channel_masquerade: remove extra else if
(closes issue #17363,#16057)

Reported by: amorsen;davidw,alecdavis
Patches: 
      based on bug16057.diff4.txt uploaded by alecdavis (license 585)
Tested by: ramonpeek, davidw, alecdavis



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@287684 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-09-20 23:15:25 +00:00
Alec L Davis
17d1b17be5 ast_channel_masquerade: Avoid recursive masquerades.
Check all 4 combinations of (original/clonechan) * (masq/masqr).

Initially original->masq and clonechan->masqr were only checked.

It's possible with multiple masq's planned - and not yet executed, that
 the 'original' chan could already have another masq'd into it - thus original->masqr
would be set, that masqr would lost.
Likewise for the clonechan->masq.

(closes issue #16057;#17363)
Reported by: amorsen;davidw,alecdavis
Patches: 
      bug16057.diff4.txt uploaded by alecdavis (license 585)
Tested by: ramonpeek, davidw, alecdavis



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@287682 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-09-20 22:57:48 +00:00
Matthew Nicholson
319b5134a9 Only drop duplicate answer frames if the channel is bridged.
Back in r3710 ast_read() was modified to drop answer frames on channels that were in the UP state.  This modification prevented bridges that were up before the answer from being broken and reestablished by an ANSWER control frame.  That change also prevents pickup of channels called from the ast_dial framework from working properly.  The ast_dial framework expects to see an ANSWER frame after dialing and the pickup code queues one but ast_read() drops it.  This new change only drops ANSWER frames when the channel is bridged, allowing the answer queued by the pickup code to properly pass through ast_read() on to the ast_dial framework.

ABE-2473
(related to issue #2342)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@286679 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-09-14 18:00:01 +00:00
Jason Parker
7f9358db02 Transmit silence when reading DTMF in ast_readstring.
Otherwise, you could get issues with DTMF timeouts causing hangups.

(closes issue #17370)
Reported by: makoto
Patches: 
      channel-readstring-silence-generator.patch uploaded by makoto (license 38)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@285742 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-09-09 20:06:31 +00:00
Terry Wilson
c5278fc111 Send a SRCCHANGE indication when we masquerade
Masquerading a channel means that the src of the audio is potentially
changing, so send a SRCCHANGE so that RTP-based media streams can get
a new SSRC generated to reflect the change. Original patch by addix
(along with lots of testing--thanks!).

(closes issue #17007)
Reported by: addix
Patches: 
      1001-reset-SSRC-original-channel.diff uploaded by addix (license 1006)
      srcchange.diff uploaded by twilson (license 396)
Tested by: addix, twilson

Review: https://reviewboard.asterisk.org/r/862/


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@282430 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-08-16 17:06:37 +00:00
Jeff Peeler
e90fb11e61 Ensure SSRC is changed when media source is changed to resolve audio delay.
This change causes the SSRC to change right before the channels are bridged,
which is what used to happen. It seems that fixes were made to attempt limiting
SSRC changes, targeted mainly at sending DTMF. DTMF is not affecting the SSRC
with this change.

There are two other control frames sent in ast_channel_bridge that probably
should also be changed to AST_CONTROL_SRCCHANGE as well, but I'm going to leave
this change up to the discretion of resolving issue #17007.

For reference - old review implementing new control frame SRCCHANGE:
https://reviewboard.asterisk.org/r/540

(closes issue #17404)
Reported by: sdolloff
Patches: 
      bug17404.patch uploaded by jpeeler (license 325)
Tested by: sdolloff


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@281911 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-08-12 03:00:14 +00:00
David Vossel
27c86f1e9a fixes issue with translator frame not getting freed
A translator frame even if it local storage so the translation path
can be freed.  This issue prevented g729 licenses from being freed up.

(closes issue #17630)
Reported by: manvirr
Patches:
      encoder_fix.diff uploaded by dvossel (license 671)
Tested by: manvirr, dvossel



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@280448 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-07-29 19:04:23 +00:00
David Vossel
0ebd53bba8 remove empty audiohook write list on channel
If a channel has an audiohook write list created on it, that
list stays on the channel until the channel is destroyed.  There
is no reason to keep that list on the channel if it becomes empty.
If it is empty that just means we are doing needless translating
for every ast_read and ast_write.  This patch removes the audiohook
list from the channel once it is detected to be empty on either a
read or write.  If a audiohook is added back to the channel after
this list is destroyed, the list just gets recreated as if it never
existed to begin with.

(closes issue #17630)
Reported by: manvirr

Review: https://reviewboard.asterisk.org/r/799/




git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@279945 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-07-27 20:33:40 +00:00
Mark Michelson
f4f7637e62 Allow PLC to function properly when channels use SLIN for audio.
If a channel involved in a bridge was using SLIN audio, then translation
paths were not guaranteed to be set up properly since in all likelihood
the number of translation steps was only 1.

This patch enforces the transcode_via_slin behavior if transcode_via_slin
or generic_plc is enabled and one of the formats to make compatible is
SLIN.

AST-352



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@278618 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-07-22 14:55:04 +00:00
Matthew Nicholson
cc8a3986cf For pass through DTMF tones, measure the actual duration between the begin and end packets on the wire. If it is detected to be less than AST_MIN_DTMF_DURATION, trigger dtmf emulation.
AST-362


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@277247 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-07-16 17:29:57 +00:00
Jeff Peeler
4fbc487659 In a perfect world, the frame source would never be NULL. In the meantime, don't crash when it is.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@276652 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-07-15 13:48:58 +00:00
Jeff Peeler
cd054ab3b4 Change ast_write to not stop generator when called from ast_prod.
For SIP channels configured with the progressinband option on, the ringback was
being immediately stopped. This problem was due to ast_prod being moved for a
deadlock fix in 259858. Prodding the channel after setting up the generator
triggered the check in ast_write to stop the generator. The fix here should
write the frame the same as was done before the call to ast_prod was moved.

(closes issue #17372)
Reported by: tech_admin


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@275665 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-07-12 16:58:39 +00:00
Russell Bryant
2a18c6627d Don't return a partially initialized datastore.
If memory allocation fails in ast_strdup(), don't return a partially
initialized datastore.  Bad things may happen.

(related to ABE-2415)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@273565 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-07-01 22:09:19 +00:00
Tilghman Lesher
96e6915e83 _Really_ skip the channel... don't just retry for another 200 cycles.
(Closes issue SWP-1652, ABE-2240)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@273057 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-06-29 22:58:58 +00:00
Mark Michelson
7a7326f8e9 Fix potential crash when writing raw SLIN audio on a PLC-enabled channel.
The issue here was that the frame created when adjusting for PLC had no offset
to its audio data. If this frame were translated to another format prior to
being sent out an RTP socket, all went well because the translation code would
put an appropriate offset into the frame. However, if the SLIN audio were not
translated before being sent out the RTP socket, bad things would happen.
Specifically, the ast_rtp_raw_write makes the assumption that the frame has
at least enough of an offset that it can accommodate an RTP header. This was
not the case. As such, data was being written prior to the allocation, likely
corrupting the data the memory allocator had written. Thus when the time came
to free the data, all hell broke loose. ....Well, Asterisk crashed at least.

The fix was just what one would expect. Offset the data in the frame by a reasonable
amount. The method I used is a bit odd since the data in the frame is 16 bit integers
and not bytes. I left a big ol' comment about it. This can be improved on if someone
is interested. I was more interested in getting the crash resolved.



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@269821 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-06-10 19:30:12 +00:00
David Vossel
6105e07933 fixes segfault when using generic plc
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@265365 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-05-24 19:37:55 +00:00
Mark Michelson
b91ff0498e Allow ast_safe_sleep to defer specific frames until after the sleep has concluded.
From reviewboard

Background:
A Digium customer discovered a somewhat odd bug. The setup is that parties A
and B are bridged, and party A places party B on hold. While party B is 
listening to hold music, he mashes a bunch of DTMF. Party A takes party
B off hold while this is happening, but party B continues to hear hold
music. I could reproduce this about 1 in 5 times.

The issue:
When DTMF features are enabled and a user presses keys, the channel that
the DTMF is streamed to is placed in an ast_safe_sleep for 100 ms, the
duration of the emulated tone. If an AST_CONTROL_UNHOLD frame is read
from the channel during the sleep, the frame is dropped. Thus the
unhold indication is never made to the channel that was originally placed
on hold.

The fix:
Originally, I discussed with Kevin possible ways of fixing the specific
problem reported. However, we determined that the same type of problem
could happen in other situations where ast_safe_sleep() is used. Using
autoservice as a model, I modified ast_safe_sleep_conditional() to
defer specific frame types so they can be re-queued once the sleep has
finished. I made a common function for determining if a frame should
be deferred so that there are not two identical switch blocks to
maintain.

Review: https://reviewboard.asterisk.org/r/674/



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@264996 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-05-21 16:28:34 +00:00
Mark Michelson
610c1dc6bf 1.4 version of PLC fix.
Analogous to trunk revision 264452, but without the change
to chan_sip since it is not necessary in this branch.



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@264541 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-05-20 15:59:44 +00:00
Jeff Peeler
93a73ba6a7 Fix internal timing not working with Zaptel
dahdi_compat.h was not being included in channel.c when used with 
Zaptel and wasn't in file.c at all.

(closes issue #15250)
Reported by: mneuhauser
Patches: 
      dahdi_compat.patch uploaded by mneuhauser (license 425)
Tested by: IgorG


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@263112 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-05-13 23:08:13 +00:00
Tilghman Lesher
c842507c3e Add a tiny corner case to the previous commit
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@261094 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-05-04 23:47:08 +00:00
Tilghman Lesher
6acbf688e6 Protect against overflow, when calculating how long to wait for a frame.
(closes issue #17128)
 Reported by: under
 Patches: 
       d.diff uploaded by under (license 914)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@261093 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-05-04 23:36:53 +00:00
David Vossel
2077fcfc6d resolves deadlocks in chan_local
Issue_1.
In the local_hangup() 3 locks must be held at the same time... pvt, pvt->chan,
and pvt->owner.  Proper deadlock avoidance is done when the channel to hangup
is the outbound chan_local channel, but when it is not the outbound channel we
have an issue... We attempt to do deadlock avoidance only on the tech pvt, when
both the tech pvt and the pvt->owner are locked coming into that loop.  By
never giving up the pvt->owner channel deadlock avoidance is not entirely possible.
This patch resolves that by doing deadlock avoidance on both the pvt->owner and the pvt
when trying to get the pvt->chan lock.

Issue_2.
ast_prod() is used in ast_activate_generator() to queue a frame on the channel
and make the channel's read function get called.  This function is used in
ast_activate_generator() while the channel is locked, which mean's the channel
will have a lock both from the generator code and the frame_queue code by the
time it gets to chan_local.c's local_queue_frame code... local_queue_frame
contains some of the same crazy deadlock avoidance that local_hangup requires,
and this recursive lock prevents that deadlock avoidance from happening correctly.
This patch removes ast_prod() from the channel lock so only one lock is held during
the local_queue_frame function.

(closes issue #17185)
Reported by: schmoozecom
Patches:
      issue_17185_v1.diff uploaded by dvossel (license 671)
      issue_17185_v2.diff uploaded by dvossel (license 671)
Tested by: schmoozecom, GameGamer43

Review: https://reviewboard.asterisk.org/r/631/



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@259858 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-04-28 21:16:03 +00:00
Mark Michelson
d4637b864c Let compilation succeed warning-free when DONT_OPTIMIZE is turned off.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@259104 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-04-26 21:44:43 +00:00
Mark Michelson
a06794cf7a Prevent Newchannel manager events for dummy channels.
No Newchannel manager event will be fired for channels that are
allocated to not match a registered technology type. Thus bogus
channels allocated solely for variable substitution or CDR
operations do not result in a Newchannel event.

(closes issue #16957)
Reported by: atis

Review: https://reviewboard.asterisk.org/r/601



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@259018 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-04-26 21:03:08 +00:00
Matthew Nicholson
5375985fa9 Fix broken CDR behavior.
This change allows a CDR record previously marked with disposition ANSWERED to be set as BUSY or NO ANSWER.

Additionally this change partially reverts r235635 and does not set the AST_CDR_FLAG_ORIGINATED flag on CDRs generated from ast_call().  To preserve proper CDR behavior, the AST_CDR_FLAG_DIALED flag is now cleared from all brige CDRs in ast_bridge_call().

(closes issue #16797)
Reported by: VarnishedOtter
Tested by: mnicholson



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@258670 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-04-22 21:49:07 +00:00
Russell Bryant
cd40a4681f Remove extremely verbose debug message.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@256009 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-04-02 23:30:15 +00:00
Jason Parker
8371df4e7b Revert revisions 254046 and 254098.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@254161 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-03-23 22:45:55 +00:00
Jason Parker
16a9a742a4 Allow out-of-tree modules to load, regardless of DEBUG_THREADS/DEBUG_CHANNEL_LOCKS differences.
This can be guaranteed by forcing the ABI to no longer change when these compiler flags are set.
An unfortunate side-effect to this is that there is an ABI change here.  However, there is some
mitigation.  Existing modules *will* fail to load since they would require functions that no
longer exist.

Review: https://reviewboard.asterisk.org/r/508/


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@254046 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-03-23 21:07:54 +00:00
Terry Wilson
529e8af144 Merged revisions 252089 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
  r252089 | twilson | 2010-03-12 16:04:51 -0600 (Fri, 12 Mar 2010) | 20 lines
  
  Only change the RTP ssrc when we see that it has changed
  
  This change basically reverts the change reviewed in
  https://reviewboard.asterisk.org/r/374/ and instead limits the
  updating of the RTP synchronization source to only those times when we
  detect that the other side of the conversation has changed the ssrc.
  
  The problem is that SRCUPDATE control frames are sent many times where
  we don't want a new ssrc, including whenever Asterisk has to send DTMF
  in a normal bridge. This is also not the first time that this mistake
  has been made. The initial implementation of the ast_rtp_new_source
  function also changed the ssrc--and then it was removed because of
  this same issue. Then, we put it back in again to fix a different
  issue. This patch attempts to only change the ssrc when we see that
  the other side of the conversation has changed the ssrc.
  
  It also renames some functions to make their purpose more clear.
  
  Review: https://reviewboard.asterisk.org/r/540/
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@252175 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-03-13 00:30:04 +00:00
David Vossel
ff6dd92e3e lock channel during datastore removal
On channel destruction the channel's datastores are removed and
destroyed.  Since there are public API calls to find and remove
datastores on a channel, a lock should be held whenever datastores are
removed and destroyed.  This resolves a crash caused by a race
condition in app_chanspy.c.

(closes issue #16678)
Reported by: tim_ringenbach
Patches:
      datastore_destroy_race.diff uploaded by tim ringenbach (license 540)
Tested by: dvossel




git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@246545 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-02-12 23:30:17 +00:00
Jason Parker
403eb70599 Fix some silly formatting, and remove unnecessary option_debug checks
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@246460 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-02-12 18:52:28 +00:00
Tilghman Lesher
72af53a885 Revert previous chan_local fix (r236981) and fix instead by destroying expired frames in the queue.
(closes issue #16525)
 Reported by: kobaz
 Patches: 
       20100126__issue16525.diff.txt uploaded by tilghman (license 14)
       20100129__issue16525__1.6.0.diff.txt uploaded by tilghman (license 14)
 Tested by: kobaz, atis

(closes issue #16581)
 Reported by: ZX81

(closes issue #16681)
 Reported by: alexr1



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@244070 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-02-01 17:46:31 +00:00
Jeff Peeler
b024a9452d Remove unnecessary code in ast_read as issue 16058 has been fully solved now.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@243258 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-01-26 18:19:10 +00:00
David Vossel
6c6a857e1c add silence gen to wait apps
asterisk.conf's 'transmit_silence' option existed before
this patch, but was limited to only generating silence
while recording and sending DTMF. Now enabling the
transmit_silence option generates silence during wait
times as well.
  
To achieve this, ast_safe_sleep has been modified to
generate silence anytime no other generators are present
and transmit_silence is enabled. Wait apps not using
ast_safe_sleep now generate silence when transmit_silence
is enabled as well.

(closes issue 0016524)
Reported by: kobaz

(closes issue 0016523)
Reported by: kobaz
Tested by: dvossel
  
Review: https://reviewboard.asterisk.org/r/456/


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@239718 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-01-13 17:16:12 +00:00
Jeff Peeler
8291fb5083 Correct CDR dispositions for BUSY/FAILED
This patch is simple in that it reorders the disposition defines so that the fix
for issue 12946 works properly (the default CDR disposition was changed to
AST_CDR_NOANSWER). Also, the AST_CDR_FLAG_ORIGINATED flag was set in ast_call to
ensure all CDR records are written.

The side effects of CDR changes are scary, so I'm documenting the test cases
performed to attempt to catch any regressions. The following tests were all
performed using 1.4 rev 195881 vs head (235571) + patch:

A calls B
C calls B (busy)
Hangup C
Hangup A

(Both SIP and features)
A calls B
A blind transfers to C
Hangup C

(Both SIP and features)
A calls B
A attended transfers to C
Hangup C

A calls B
A attended transfers to C (SIP)
C blind transfers to A (features)
Hangup A

All of the test scenario CDRs matched.

The following tests were performed just with the patch to ensure proper operation
(with unanswered=yes):

exten =>s,1,Answer
exten =>s,n,ResetCDR(w)
exten =>s,n,ResetCDR(w)

exten =>s,1,ResetCDR(w)
exten =>s,n,ResetCDR(w)

(closes issue #16180)
Reported by: aatef
Patches: 
      bug16180.patch uploaded by jpeeler (license 325)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@235635 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-12-18 22:29:51 +00:00
Russell Bryant
a10f93404d Only do frame payload check for HOLD frames.
This code was added for helping to debug the source of invalid HOLD frames.
However, a side effect of this is that it will incorrectly report errors for
frames that have an integer payload.  Make the check for this block specific
to the HOLD frame case.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@233092 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-12-04 17:12:47 +00:00
Terry Wilson
c2c8cea691 Fix compiling without devmode
(closes issue #16367)
 Reported by: falves11


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@232165 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-12-02 04:05:09 +00:00
Jeff Peeler
8d6faec4b6 log channel name in dev mode as well
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@231926 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-12-01 21:52:39 +00:00
Jeff Peeler
9405b9e2b7 Fix crash with invalid frame data
The crash was happening as a result of a frame containing an invalid data
pointer, but was set with data length of zero. The few times the issue was
reproduced it _seemed_ that the frame was queued properly, that is the data
pointer was set to NULL. I never could reproduce the crash so as a last resort
the crash has been fixed, but a check in __ast_read has been added to give as
much information about the source of problematic frames in the future.

(closes issue #16058)
Reported by: atis


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@231911 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-12-01 21:29:31 +00:00
Tilghman Lesher
85cce5cb4b After a frame duplication failure, unlock the channel before returning.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@231298 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-11-25 22:31:57 +00:00
Leif Madsen
446f9a0e47 Update WARNING message.
Update a WARNING message to give a suggested fix when encountered.

(closes issue #16198)
Reported by: atis
Tested by: atis

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@228896 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-11-09 15:37:43 +00:00
David Vossel
8939eece6a fixes audiohook write crash occuring in chan_spy whisper mode.
After writing to the audiohook list in ast_write(), frames
were being freed incorrectly.  Under certain conditions this
resulted in a double free crash.

(closes issue #16133)
Reported by: wetwired

(closes issue #16045)
Reported by: bluecrow76
Patches:
      issue16045.diff uploaded by dvossel (license 671)
Tested by: bluecrow76, dvossel, habile


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@228692 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-11-06 22:33:27 +00:00
Matthew Nicholson
99a8ffb52c Signal timeouts by returning AST_CONTROL_RINGING when originating calls.
(closes issue #15104)
Reported by: nblasgen
Patches:
      manager-timeout1.diff uploaded by mnicholson (license 96)
Tested by: nblasgen, mnicholson



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@223225 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-10-09 18:20:11 +00:00
Tilghman Lesher
727d91d733 Avoid a potential NULL dereference.
(closes issue #15865)
 Reported by: kobaz
 Patches: 
       20090915__issue15865.diff.txt uploaded by tilghman (license 14)
 Tested by: kobaz


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@221200 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-09-30 16:55:21 +00:00
Matthew Nicholson
ea3f81a68f Prevent a potential race condition and crash when hanging up a channel by removing the channel from the channel list before begining channel tear down.
This fix may potentially cause problems with CDR backends that access the channel a CDR is associated with via the channel list.  This fix makes the channel unavabile at the time when the CDR backend is invoked.  This has been documented in include/asterisk/cdr.h.

(closes issue #15316)
Reported by: vmarrone
Tested by: mnicholson

Review: https://reviewboard.asterisk.org/r/362/


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@219136 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-09-17 14:58:39 +00:00
Tilghman Lesher
fafa668b04 Modify comment to be a bit more accurate.
We have kept this comment around long enough, that it's pretty clear that we're
keeping the code, because changing the code would require a pretty fundamental
architectural shift.  We've also taken criticism in some quarters, because it
was believed that it was referring to the code being nasty.  No, the code isn't
nasty, just the operation itself is rather odd.  Fixed for eternity (probably
not).


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@214701 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-08-28 20:13:32 +00:00
David Vossel
899272c2cc ast_write() ignores ast_audiohook_write() results
In ast_write(), if a channel has a list of audiohooks, those
lists are written to and the resulting frame is what ast_write()
should continue with.  The problem was the returned audiohook frame
was not being handled at all, and the original frame passed
into it did not contain the mixed audio, so essentially audio
was being lost.  One result of this was chan_spy's whisper
mode no longer worked.  To complicate the issue, frames
passed into ast_write may either be a single frame, or a list
of frames.  So, as the list of frames is processed in the
audiohook_write, the returned frames had to be added to a new
list.

(closes issue #15660)
Reported by: corruptor
Tested by: dvossel



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@214194 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-08-26 16:36:42 +00:00