Commit Graph

303 Commits

Author SHA1 Message Date
Steve Murphy
e189ffe5b5 This is the fix for bug 8386, wherein the time-limit args to dial didn't work correctly
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@47910 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-22 02:19:09 +00:00
Kevin P. Fleming
ad0f8df528 backport proper channel_find_locked behavior from 1.4 branch (noted by Steve Davies on asterisk-dev list)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@47802 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-17 19:02:09 +00:00
Steve Murphy
e301bc352f This mod for bug_7506, to make the manager code output the proper event
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@47274 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-07 18:22:01 +00:00
Russell Bryant
0d9ea31f3a Fix a problem that occurred if a user entered a digit that matched a bridge
feature that was configured using multiple digits, and the digit that was
pressed timed out in the feature digit timeout period.  For example, if blind
transfer is configured as '##', and a user presses just '#'.  In this situation,
the call would lock up and no longer pass any frames.
(issue #7977 reported by festr, and issue #7982 reported by michaels and
 valuable input provided by mneuhauser and kuj.  Fixed by me, with testing help
 and peer review from Joshua Colp).

There are a couple of issues involved in this fix:

1) When ast_generic_bridge determines that there has been a timeout, it returned
   AST_BRIDGE_RETRY.  Then, when ast_channel_bridge gets this result, it calls
   ast_generic_bridge over again with the same timestamp for the next event.
   This results in an endless loop of nothing until the call is terminated.
   This is resolved by simply changing ast_generic_bridge to return 
   AST_BRIDGE_COMPLETE when it sees a timeout.

2) I also changed ast_channel_bridge such that if in the process of calculating
   the time until the next event, it knows a timeout has already occured, to
   immediately return AST_BRIDGE_COMPLETE instead of attempting to bridge the
   channels anyway.

3) In the process of testing the previous two changes, I ran into a problem in
   res_features where ast_channel_bridge would return because it determined
   that there was a timeout.  However, ast_bridge_call in res_features would
   then determine by its own calculation that there was still 1 ms before the
   timeout really occurs.  It would then proceed, and since the bridge broke
   out and did *not* return a frame, it interpreted this as the call was over
   and hung up the channels.

   The reason for this was because ast_bridge_call in res_features and
   ast_channel_bridge in channel.c were using different times for their
   calculations.  channel.c uses the start_time on the bridge config, which
   is the time that the feature digit was recieved.  However, res_features
   had another time, 'start', which was set right before calling 
   ast_channel_bridge.  'start' will always be slightly after start_time in the
   bridge config, and sometimes enough to round up to one ms.

   This is fixed by making ast_bridge_call use the same time as 
   ast_channel_bridge for the timeout calculation.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@43778 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-27 16:54:30 +00:00
Joshua Colp
c6e25717b4 Yay another 'round of spy fixes! This fixes a small logic flaw with the cleanup function and a memory allocation issue. (issue #7960 reported by jojo & issue #7999 reported by aster1) Special thanks to csum77 for letting me into a box where this issue was happening.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@43509 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-22 21:53:51 +00:00
Joshua Colp
cc0f191aab Only truly consider the channel in the same format if the format matches the raw format OR if a translation path already exists to translate between them. (issue #7887 reported by softins & issue #7803 reported by alvaro_palma_aste). Thanks goes to stubert for giving me access to a box and showing me a scenario where this occured.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@42600 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-09 20:24:19 +00:00
Joshua Colp
25c493ffdc Swap spies during masquerading
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@42452 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-08 18:50:43 +00:00
Joshua Colp
68de3c0b29 Merge in last round of spy fixes. This should hopefully eliminate all the issues people have been seeing by distinctly separating what each component (core/spy) is responsible for. Core is responsible for adding a spy to a channel, feeding frames to the spy, removing the spy from a channel, and telling the spy to stop. Spy is responsible for reading frames in, and cleaning up after itself.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@42054 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-05 20:02:48 +00:00
Joshua Colp
c42a8d9b99 Finish up the last commit (was worse then originally reported)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@41691 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-01 16:33:00 +00:00
Joshua Colp
a5641b46de Don't treat an unexpected control subclass as voice (issue #7858 reported by PCadach)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@41690 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-01 16:28:08 +00:00
Russell Bryant
034a919e1f Fix a few issues related to the handling of channel variables
- in pbx_builtin_serialize_variables(), the variable list traversal would stop
   on a variables with empty name/values, which is not appropriate
 - When removing the GROUP variables, use AST_LIST_REMOVE_CURRENT instead of
   AST_LIST_REMOVE
 - During masquerading, when copying the variables list from one channel to the
   other, using AST_LIST_INSERT_TAIL is not valid for appending a whole list.
   It leaves the tail pointer of the list invalid.  Introduce a new macro,
   AST_LIST_APPEND_LIST that appends a list properly.
(issue #7802, softins)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@40994 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-24 19:41:26 +00:00
Russell Bryant
2f5c21ded7 revert bogus change to attempt to fix bug 7506 which actually causes half of
the channels not to get "Newchannel" events at all (issue #7745)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@40227 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-17 16:36:21 +00:00
Joshua Colp
1204f825d7 Reset our stream and vstream pointers back to NULL so that any generator that uses them (file based MOH) will not try to close them again. (issue #7668 reported by jmls)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@39056 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-07 00:15:51 +00:00
Russell Bryant
f4c24d5d62 Always generate a Newstate event in ast_setstate() instead of making it a
Newchannel event if the state was AST_STATE_DOWN.  The Newchannel event will
always be generated in ast_request(), so this just causes a duplicated
Newchannel event in some cases.  
(issue #7506, repoted by capouch, fixed by me)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@38982 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-05 09:01:37 +00:00
Russell Bryant
5e3b7eec7d suppress a compiler warning about the usage of a potentially uninitialized variable
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@38903 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-05 05:07:39 +00:00
Kevin P. Fleming
4f3b40fe79 ensure that the 'feature digit timeout' value is taken into account when deciding how long the bridge should run (this fixes a problem report where a digit press that did not invoke a feature is never passed across the bridge)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@38686 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-01 23:07:06 +00:00
Kevin P. Fleming
6afc9c6c8f do a better job avoiding translation path teardown/setup when not needed
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@38347 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-07-27 15:40:03 +00:00
Kevin P. Fleming
0b6aa9cd29 don't do useless translation destroy/build when the channel is already in the correct format
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@38310 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-07-27 02:43:49 +00:00
Kevin P. Fleming
152df40d57 do masquerade-behind-proxy checking with better control over locks
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@37361 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-07-10 21:01:35 +00:00
Matt O'Gorman
84881a0662 patch resolves issue with when to decide if its right time
to native bridge, feature redirect was not being checked.
patch from bug #7296


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@37224 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-07-06 21:41:23 +00:00
Joshua Colp
d1afe5c64f Greatly simply the mixmonitor thread, and move channel reference directly to spy structure so that the core can modify it.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@33724 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-06-12 21:34:38 +00:00
Kevin P. Fleming
84c0989323 handle Zap transfers behind chan_agent properly so the agent doesn't get stuck waiting for the call to hang up
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@31520 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-06-01 20:27:50 +00:00
Kevin P. Fleming
e6254eeb34 don't leak frames when deferring DTMF or dropping duplicate ANSWER frames (issue #7041, slightly different fix, reported/patched by clausf)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@27468 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-05-16 20:05:17 +00:00
Tilghman Lesher
891c6d599e Rolling back change until kpfleming is comfy
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@22113 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-04-21 22:39:10 +00:00
Tilghman Lesher
f2dc4f491d Bug 7004 - release all threads waiting on a condition prior to freeing it
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@22112 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-04-21 22:12:26 +00:00
Kevin P. Fleming
58c3bdc8f1 simplify spy queue flushing logic, and always force a flush when one side gets full, even if the other side is not empty (issue #6457)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@19347 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-04-11 21:35:52 +00:00
Olle Johansson
ac9f562712 Revert earlier change
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@12072 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-03-06 14:23:14 +00:00
Olle Johansson
b3af62dc4f Fix for astmm compilation
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@12036 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-03-06 11:03:46 +00:00
Russell Bryant
799247b4d5 don't hang up the channel if its state is set to UP before we return from ast_call (issue #6569)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@11250 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-02-27 02:50:09 +00:00
Kevin P. Fleming
5fbe407b98 ensure that spy frame queueing is able to deal with translation failing for any reason (issue #6546)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@11058 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-02-25 04:23:48 +00:00
Russell Bryant
e27d844918 now that CDR is a loadable module, don't depend on it elsewhere (issue #6460)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@9581 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-02-11 18:15:00 +00:00
Olle Johansson
dc08bd8501 Issue #6439 - the "timebomb" bug. Patch by Markster over GPRS
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@8632 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-01-25 09:46:43 +00:00
Kevin P. Fleming
05fed23d06 ensure that channel cannot become zombie after we check but before we try to start indications
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@8588 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-01-24 22:32:09 +00:00
Russell Bryant
696922defe fix MixMonitor crash (issue #6321, probably others)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@8437 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-01-22 17:47:13 +00:00
Matt O'Gorman
b0609b29aa Minor typo refrenced in 6191
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@7963 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-01-11 04:38:07 +00:00
Kevin P. Fleming
2f4783a770 eliminate rounding errors that caused call time limits to be inaccurate (issue #5913)
round 'time left' reported during call limit warnings up to sound more accurate


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@7825 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-01-05 23:49:50 +00:00
Kevin P. Fleming
229b778b0b make monitoring more tolerant of peers that deliver frames in bursts
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@7799 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-01-04 23:02:38 +00:00
Kevin P. Fleming
73ef559240 revert incorrect fix for bug #6048 from revision 7709
put in correct (simpler) fix
add doxygen docs for channel spy 'state' values


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@7740 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-01-03 17:24:56 +00:00
Tilghman Lesher
89de6c9df6 Bug 6091 - Fix race condition around uniqueid
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@7677 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2005-12-30 14:54:19 +00:00
BJ Weschke
5a06af4d57 Bug #6003 - Don't free the channel structure until after having sent the manager event.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@7482 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2005-12-15 02:51:54 +00:00
Kevin P. Fleming
0d3fc8d103 ensure channel's scheduling context is freed (issue #5788)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@7268 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2005-12-01 23:34:58 +00:00
Kevin P. Fleming
463ebe8b4b port memory leak fix from rev 7223 in trunk
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@7224 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2005-11-30 03:20:42 +00:00
Kevin P. Fleming
a563eab49a remove extraneous svn:executable properties
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@7221 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2005-11-29 18:24:39 +00:00
Kevin P. Fleming
60ebbb5744 issue #5770
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@7117 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2005-11-16 18:11:28 +00:00
Kevin P. Fleming
c6e7b2a333 issue #5590
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@7068 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2005-11-11 03:48:28 +00:00
Kevin P. Fleming
5f50e4cb93 native bridging changes
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@6944 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2005-11-02 17:20:35 +00:00
Kevin P. Fleming
b05e64ed12 issue #5564
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@6935 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2005-11-01 21:11:57 +00:00
Kevin P. Fleming
cfced0420e use a writeable frame (some channel drivers/transcoders may modify the frame after it has been passed to ast_write())
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@6926 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2005-11-01 18:48:05 +00:00
Kevin P. Fleming
03ceef35ac optionally send silence during recording (issue #5135)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@6925 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2005-11-01 17:22:25 +00:00
Kevin P. Fleming
8fb55e2478 fix various bugs related to list handling of channel variables (issue #5548)
use nolock lists for channel variables, since no locks are needed (these lists are either temporary or protected by the channel's own lock)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@6900 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2005-10-31 15:34:11 +00:00