[Opalvoip-svn] SF.net SVN: opalvoip:[27389] opal/trunk/src/h323/h323.cxx
Brought to you by:
csoutheren,
rjongbloed
From: <rjo...@us...> - 2012-03-30 04:37:24
|
Revision: 27389 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=27389&view=rev Author: rjongbloed Date: 2012-03-30 04:37:17 +0000 (Fri, 30 Mar 2012) Log Message: ----------- Delay OnConnected state in H.323 for slow start media until after we exchange TCS/MSD. Allows correct exchange when SIP -> H.323 Modified Paths: -------------- opal/trunk/src/h323/h323.cxx Modified: opal/trunk/src/h323/h323.cxx =================================================================== --- opal/trunk/src/h323/h323.cxx 2012-03-30 03:57:28 UTC (rev 27388) +++ opal/trunk/src/h323/h323.cxx 2012-03-30 04:37:17 UTC (rev 27389) @@ -1480,8 +1480,6 @@ } } - OnConnectedInternal(); - // If didn't get fast start channels accepted by remote then clear our // proposed channels if (fastStartState != FastStartAcknowledged) { @@ -1489,6 +1487,9 @@ fastStartChannels.RemoveAll(); } else { + // We have fast start, can connect immediately. + OnConnectedInternal(); + // Otherwise start fast started channels if we were waiting for CONNECT for (H323LogicalChannelList::iterator channel = fastStartChannels.begin(); channel != fastStartChannels.end(); ++channel) channel->Start(); @@ -3921,6 +3922,17 @@ OnSelectLogicalChannels(); // Start some media switch (GetPhase()) { + case SetUpPhase : + case ProceedingPhase : + case AlertingPhase : + if ( connectionState == HasExecutedSignalConnect && + FindChannel(H323Capability::DefaultAudioSessionID, true) != NULL && + (FindChannel(H323Capability::DefaultVideoSessionID, true) != NULL || + localCapabilities.FindCapability(H323Capability::e_Video) == NULL || + remoteCapabilities.FindCapability(H323Capability::e_Video) == NULL)) + OnConnectedInternal(); + break; + case ConnectedPhase : SetPhase(EstablishedPhase); OnEstablished(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |