Commit Graph

82 Commits

Author SHA1 Message Date
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
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
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
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
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
Steve Murphy
241769b53c From a user complaint on #asterisk, I have forced pbx_spool to explain what reason codes mean, when they are logged
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@79099 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-10 20:53:43 +00:00
Joshua Colp
d76d2c5214 Add additional DTMF log messages to help when debugging issues.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@78275 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-06 21:41:13 +00:00
Russell Bryant
0a2331cf26 file and I both committed changes for issue #10301. Remove a duplicated
assignment to restore the original value of the previous channel.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@77785 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-30 18:55:15 +00:00
Russell Bryant
e533cabf1c (closes issue #10301)
Reported by: fnordian
Patches:
      asterisk-1.4.9-channel.c.patch uploaded by fnordian (license 110)
      Additional changes by me

Fix some problems in channel_find_locked() which can cause an infinite loop.
The reference to the previous channel is set to NULL in some cases.  These changes
ensure that the reference to the previous channel gets restored before needing
it again.

I'm not convinced that the code that is setting it to NULL is really the right
thing to do.  However, I am making these changes to fix the obvious problem
and just leaving an XXX comment that it needs a better explanation that what
is there now.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@77780 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-30 17:29:43 +00:00
Joshua Colp
33abae518a (closes issue #10301)
Reported by: fnordian
Patches:
      asterisk-1.4.9-channel.c.patch uploaded by fnordian (license 110)
Restore previous behavior where if we failed to lock the channel we wanted we would return to exactly the same point as if we had just reentered the function.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@77771 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-30 15:47:52 +00:00
Joshua Colp
8fa7c1e9b0 (closes issue #10302)
Reported by: litnialex
If a DTMF end frame comes from a channel without a begin and it is going to a technology that only accepts end frames (aka INFO) then use the minimum DTMF duration if one is not in the frame already.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@77460 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-26 23:19:04 +00:00
Mark Michelson
ccb0f924af chan->emulate_dtmf_duration is an unsigned int, not a signed int, so use %u instead of %d in the format string
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@77154 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-25 21:52:47 +00:00
Russell Bryant
7f9bf7e970 Use the define that specifies the default length of an artificially created
DTMF digit in the ast_senddigit() function.  The define is set to 100ms by
default, which is the same thing that this function was using.  But, using
the define lets changes take effect in this case, as well as the others where
it was already used.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@76132 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-20 18:22:24 +00:00
Joshua Colp
7152afccd5 Whoops... didn't want this to be returned to 0 each iteration.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@74922 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-12 19:17:59 +00:00
Joshua Colp
26acd893d3 When waiting for a digit ensure that a begin frame was received with it, not just an end frame. (issue #10084 reported by rushowr)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@74888 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-12 17:16:28 +00:00
Joshua Colp
0e80607e17 Merged revisions 73349 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r73349 | file | 2007-07-05 11:19:14 -0300 (Thu, 05 Jul 2007) | 2 lines

Tweak spy locking. (issue #9951 reported by welles)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@73355 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-05 14:21:44 +00:00
Joshua Colp
a3716070d1 Added additional DTMF debug messages for when emulation occurs.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@72888 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-02 14:32:59 +00:00
Joshua Colp
a61fb24363 Merged revisions 72256 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r72256 | file | 2007-06-27 16:23:24 -0400 (Wed, 27 Jun 2007) | 2 lines

I may possibly get shot for doing this... but... defer CDR processing until after the channel has been dealt with. This should eliminate all of the issues with channels going funky (SIP/PRI) when you are posting CDRs to a database that is either slow or unavailable and do not want to enable batching.

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@72257 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-06-27 20:25:24 +00:00
Joshua Colp
60990f0c73 Make the ast_read_noaudio API call behave better under circumstances where DTMF emulation was happening and a generator was setup. (issue #10065 reported by stevefeinstein)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@72148 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-06-27 17:31:50 +00:00
Steve Murphy
c05bb13de9 Merged revisions 70053 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r70053 | murf | 2007-06-19 12:07:59 -0600 (Tue, 19 Jun 2007) | 1 line

This fixes 9246, where channel variables are not available in the 'h' exten, on a 'ZOMBIE' channel. The fix is to consolidate the channel variables during a masquerade, and then copy the merged variables back onto the clone, so the zombie has the same vars that the 'original' has.
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@70062 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-06-19 18:23:23 +00:00
Joshua Colp
b6bd3b483e Merged revisions 69986 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r69986 | file | 2007-06-19 12:21:29 -0400 (Tue, 19 Jun 2007) | 2 lines

Update BRIDGEPEER variable if set to the new channel name when a masquerade happens. (issue #9699 reported by dimas)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@69987 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-06-19 16:24:31 +00:00
Russell Bryant
3fb6ac7fb7 In ast_channel_make_compatible(), just return if the channels' read and write
formats already match up.  There are code paths that call this function on a
pair of channels multiple times.  This made calls fail that were using g729
in some cases.  The reason is that codec_g729a will unregister itself from the
list of available translators will all licenses are in use.  So, the first
time the function got called, the right translation path was allocated.
However, the second time it got called, the code would not find a translation
path to/from g729 and make the call fail, even if the channel actually already
had a g729 translation path allocated.

(SPD-32)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@69010 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-06-12 19:13:41 +00:00
Joshua Colp
080acbfd16 Merged revisions 68682 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r68682 | file | 2007-06-11 10:29:58 -0400 (Mon, 11 Jun 2007) | 2 lines

Improve deadlock handling of the channel list. (issue #8376 reported by one47)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@68683 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-06-11 14:33:12 +00:00
Joshua Colp
ac65d7f143 Fix logic when doing a name based channel search for a structure when you want to start from a specific point in the channel list. (issue #9324 reported by slavon)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@68157 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-06-07 18:39:52 +00:00
Russell Bryant
e7dd69eea8 Merged revisions 67715 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r67715 | russell | 2007-06-06 11:40:51 -0500 (Wed, 06 Jun 2007) | 5 lines

We have some bug reports showing crashes due to a double free of a channel.
Add a sanity check to ast_channel_free() to make sure we don't go on trying
to free a channel that wasn't found in the channel list.
(issue #8850, and others...)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@67716 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-06-06 16:55:59 +00:00
Russell Bryant
9dd7be2f58 Handle a failure in malloc() in ast_safe_string_alloc()
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@67372 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-06-05 17:07:30 +00:00
Russell Bryant
6d6cd29a87 Fix a problem that showed itself by causing Zap channel names to be completely
bogus on my machine.  ast_safe_string_alloc() was broken.  It called 
vsnprintf() on a va_args list twice without re-initializing it.  After the first
usage, va_end() and va_start() must be called again.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@67360 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-06-05 16:56:36 +00:00
Russell Bryant
a4c142d73d if the string field init fails, clean up the stuff that was allocated already
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@66076 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-05-24 22:23:59 +00:00
Russell Bryant
11d6381ec0 Check the result of ast_string_field_init() in ast_channel_alloc()
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@66070 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-05-24 22:07:39 +00:00
Joshua Colp
aff63fba76 Fix scenario where if a phone that simply called Echo() put itself on hold it could never get off hold.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@64240 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-05-14 17:23:51 +00:00
Olle Johansson
7583e21359 Add hangupcause when we lack codecs for transcoding
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@64157 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-05-14 10:39:12 +00:00
Joshua Colp
7deba0a857 Use the DTMF frame on the channel when returning a DTMF frame from AST_FRAME_NULL or AST_FRAME_VOICE.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@63698 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-05-09 19:22:39 +00:00
Russell Bryant
da55121999 Modify ast_senddigit_begin() to use the same assumptions used elsewhere in the
code in that if a channel does not have a send_digit_begin() callback, it only
cares about DTMF END events.  (pointed out by Michael Neuhauser on the
asterisk-dev list)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@63612 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-05-09 16:55:27 +00:00
Russell Bryant
e9fab07122 Only call ast_senddigit_begin() in ast_senddigit() if the channel has a
send_digit_begin() callback.  Checking the END_DTMF_ONLY flag was the
wrong thing to do, because that flag indicates that a *bridged* channel
only wants DTMF END events coming from this channel.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@63608 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-05-09 16:43:50 +00:00
Joshua Colp
99cdfb2542 Merged revisions 63285 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r63285 | file | 2007-05-07 17:39:52 -0400 (Mon, 07 May 2007) | 2 lines

Properly handle what happens during a masquerade in relation to group counting. (issue #9657 reported by ramonpeek)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@63286 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-05-07 21:45:01 +00:00
Russell Bryant
796acdbbdb Fix YADB (Yet Another DTMF Bug) ((C) Russell Bryant, 2007, TM, Patent Pending).
This set of changes came from a debugging session I had with Dwayne Hubbard.
When he called into his home FXO, ran the Echo application, and pressed a
digit, the digit would be echoed back and would never end.  This is fixed,
along with a couple other little improvements.

* When chan_zap is in the middle of playing a digit to a channel, it feeds
  back null frames, not voice frames.  So, I have modified ast_read to check
  the timing on emulated DTMF when it receives null frames, in addition to
  where it was doing this on voice frames.
* Make a tweak to setting the duration on emulated DTMF digits.  If there was
  no duration specified, it set it to be the minimum, instead of the default.
* Instead of timing the emulated digits off of the number of samples in audio
  frames that pass through, just use time values.  Now there is no code in this
  section that assumes 8kHz audio.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@62942 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-05-03 15:23:13 +00:00
Russell Bryant
ff3e3ba129 Merge changes from team/russell/inband_dtmf ...
Fix some issues related to generating inband DTMF.  There are two changes here:

1)   The list of DTMF tones in the senddigit_begin() function explicitly
   specified 100ms of the tone followed by 100ms of silence.  This really
   broke things with the way that Asterisk now wants complete control
   over when the digit begins and ends.  So, regardless of what Asterisk
   really wanted to do, this was going to play out the tone at the length it
   wanted to.  This caused various problems like DTMF translation to inband to
   be extremely unreliable.
     The list of tones has been changed so that the correct DTMF tone is played
   indefinitely until Asterisk tells it to stop.

2) ast_write() had to be modified to let a DTMF_END frame get processed even
   when a generator is present.  This is how the tone will finally get stopped.

(issues #8944, #9250, #9348, maybe others.  Thanks to mdu113 from #8944 for
 the testing and feedback!)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@62789 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-05-02 22:59:09 +00:00
Steve Murphy
55f4eb3e3d a)In chan_zap, set the clid, src fields in channel_alloc call. b)in the channel_alloc func, set the cid_num and name fields from the arglist[blush]. c) don't update the channel app & app data fields if you are in the 'h' extension. d)the load_module func in cdr_radius needs to return DECLINE, SUCCESS.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@62689 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-05-02 17:10:50 +00:00
Joshua Colp
230dc4ad88 Missed an ast_app_group_discard during merge. Thanks blitzrage!
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@62005 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-04-26 03:19:51 +00:00
Joshua Colp
1d4adc0174 Merged revisions 61804 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r61804 | file | 2007-04-25 14:52:50 -0400 (Wed, 25 Apr 2007) | 2 lines

Merge rewritten group counting support. No more storing data on the variable list of the channels. That was bad, mmmk? (issue #7497 reported by sabbathbh)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@61805 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-04-25 19:21:54 +00:00
Russell Bryant
456cad8a47 Improve DTMF handling in ast_read() even more in response to a discussion on
the asterisk-dev mailing list.  I changed the enforced minimum length of a
digit from 100ms to 80ms.  Furthermore, I made it now enforce a gap of 45ms in
between digits.  These values are not configurable in a configuration file
right now, but they can be easily changed near the top of main/channel.c.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@61781 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-04-24 19:00:06 +00:00
Russell Bryant
baab073219 Ensure that digits passing through Asterisk have a reasonable minimum length.
It is currently 100 ms.  If someone thinks this should be different, feel free
to speak up.  (related to issues #8944, #9250, and #9348)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@61763 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-04-23 17:57:32 +00:00
Steve Murphy
7d5a79a0b9 This is a big improvement over the current CDR fixes. It may still need refinement, but this won't have as many folks bothered.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@60989 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-04-09 18:32:07 +00:00
Steve Murphy
798039b4d8 several changes via kpflemings review
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@59522 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-03-30 17:51:17 +00:00
Steve Murphy
9c69e34f62 These mods fix CDR issues from 8221, 8593, 8680, 8743, and perhaps others. Mainly with CDRs generated from transfer situations.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@59486 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-03-30 14:11:59 +00:00
Tilghman Lesher
185d7f5a3a Merged revisions 56684 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r56684 | tilghman | 2007-02-25 08:38:03 -0600 (Sun, 25 Feb 2007) | 3 lines

Issue 9130 - If prev is the last item on the channel list, then evaluating
additional conditions (e.g. name prefix) will cause a NULL dereference.

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@56685 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-02-25 14:46:41 +00:00
Joshua Colp
4565c1483c Merged revisions 56230 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r56230 | file | 2007-02-22 13:44:24 -0500 (Thu, 22 Feb 2007) | 2 lines

Only change the original or clone channel if it's the channel behind the proxy channel, not if it's just a regular bridged channel.

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@56231 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-02-22 18:49:39 +00:00
Joshua Colp
7d029cabf6 Add G722 to ast_best_codec. If anyone disagrees with it's placement, feel free to change it. (issue #9045 reported by gork)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@54290 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-02-14 01:09:40 +00:00
Paul Cadach
3a68e31940 Provide correct DTMF duration
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@53879 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-02-10 09:07:11 +00:00
Russell Bryant
9440d428a0 Merged revisions 51843 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r51843 | russell | 2007-01-23 18:57:28 -0600 (Tue, 23 Jan 2007) | 6 lines

Fix an issue related to synchronization of recordings when using Monitor().
The bug is a miscalculation of the amount to seek the stream for writing to
disk when the number of samples coming in and out of a channel do not match up.
(issue #8298, #8887, report and patch by guillecabeza, patch files created and
 testing done by whoiswes)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@51848 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-24 00:59:58 +00:00