[asterisk-commits] jpeeler: branch 1.8 r297075 - in /branches/1.8: ./ channels/chan_sip.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Wed Dec 1 11:53:18 CST 2010


Author: jpeeler
Date: Wed Dec  1 11:53:13 2010
New Revision: 297075

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=297075
Log:
Merged revisions 297073 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

................
  r297073 | jpeeler | 2010-12-01 11:52:46 -0600 (Wed, 01 Dec 2010) | 30 lines
  
  Merged revisions 297072 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r297072 | jpeeler | 2010-12-01 11:50:09 -0600 (Wed, 01 Dec 2010) | 23 lines
    
    Fix not stopping MOH when transfered local channel queue member is answered.
    
    The problem here is only present when local channels are used with the MOH
    passthru option as well as no optimization (/nm). I will describe the slightly
    bizarre scenario that was used to test, where phones B and C are queue members:
    
    Phone A dials into a queue with two members using local channels and the above
    options. Phone B answers. Phone A blind transfers phone B into the same queue.
    Phone A hangs up. Phone C answers, but phone B didn't stop playing MOH.
    
    In this scenario, the unhold frame that should have gotten to phone B never
    arrived due to the masquerade from the blind transfer. This is usually fine
    since app_queue manages the starting and stopping of MOH. However, with the
    passthrough option enabled when app_queue attempts to stop MOH it tries to do
    so on the local channel rather than the real channel. The easiest solution
    was to just make sure to send an unhold frame during the transfer since it
    wouldn't make sense to have MOH playing after a transfer anyway. This only
    modifies SIP transfers, but the other transfers did not seem to be a problem.
    If DTMF based transfers were a problem it might be okay to add ast_moh_stop
    to finishup, but I didn't want to have to add that unless required.
    
    ABE-2624
  ........
................

Modified:
    branches/1.8/   (props changed)
    branches/1.8/channels/chan_sip.c

Propchange: branches/1.8/
------------------------------------------------------------------------------
Binary property 'branch-1.6.2-merged' - no diff available.

Modified: branches/1.8/channels/chan_sip.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.8/channels/chan_sip.c?view=diff&rev=297075&r1=297074&r2=297075
==============================================================================
--- branches/1.8/channels/chan_sip.c (original)
+++ branches/1.8/channels/chan_sip.c Wed Dec  1 11:53:13 2010
@@ -22230,6 +22230,9 @@
 
 	/* For blind transfers, move the call to the new extensions. For attended transfers on multiple
 	   servers - generate an INVITE with Replaces. Either way, let the dial plan decided  */
+	/* indicate before masquerade so the indication actually makes it to the real channel
+	   when using local channels with MOH passthru */
+	ast_indicate(current.chan2, AST_CONTROL_UNHOLD);
 	res = ast_async_goto(current.chan2, p->refer->refer_to_context, p->refer->refer_to, 1);
 
 	if (!res) {




More information about the asterisk-commits mailing list