equal
deleted
inserted
replaced
223 while( iBodyBucket.Count() > 0 ) |
223 while( iBodyBucket.Count() > 0 ) |
224 { |
224 { |
225 CMceComSession* body = iBodyBucket[ 0 ]; |
225 CMceComSession* body = iBodyBucket[ 0 ]; |
226 if ( &body->SdpSession() ) |
226 if ( &body->SdpSession() ) |
227 { |
227 { |
|
228 if( body->SdpSession().Context() == Dialog() ) |
|
229 { |
|
230 //fork situation |
|
231 CMceComSession* tmpBody = body; |
|
232 body = iBody; |
|
233 iBody = tmpBody; |
|
234 } |
228 body->SdpSession().AttachContext( NULL ); |
235 body->SdpSession().AttachContext( NULL ); |
229 } |
236 } |
230 CMceComSession::Delete( body, Manager().MediaManager() ); |
237 CMceComSession::Delete( body, Manager().MediaManager() ); |
231 iBodyBucket.Remove( 0 ); |
238 iBodyBucket.Remove( 0 ); |
232 } |
239 } |
1266 iCurrentDialog = iDialog; |
1273 iCurrentDialog = iDialog; |
1267 } |
1274 } |
1268 } |
1275 } |
1269 else |
1276 else |
1270 { |
1277 { |
1271 if ( Response().Type() == SIPStrings::StringF( SipStrConsts::EInvite ) ) |
1278 if ( Response().Type() == SIPStrings::StringF( SipStrConsts::EInvite ) || |
|
1279 Response().Type() == SIPStrings::StringF( SipStrConsts::EPrack ) ) |
1272 { |
1280 { |
1273 // If one of the forked dialogs generated 200 OK response |
1281 // If one of the forked dialogs generated 200 OK response |
1274 // for a session that is not in established state, |
1282 // for a session that is not in established state, |
1275 // replace the actual dialog with that |
1283 // replace the actual dialog with that |
1276 HandleForkedDialogs(); |
1284 HandleForkedDialogs(); |
2610 |
2618 |
2611 TInt CMceSipSession::ForkedDialogsCount() |
2619 TInt CMceSipSession::ForkedDialogsCount() |
2612 { |
2620 { |
2613 return iForkedDialogs.Count(); |
2621 return iForkedDialogs.Count(); |
2614 } |
2622 } |
|
2623 // ----------------------------------------------------------------------------- |
|
2624 // CMceSipSession::ForceUpdateStreamL |
|
2625 // ----------------------------------------------------------------------------- |
|
2626 // |
|
2627 void CMceSipSession::ForceUpdateStreamL() |
|
2628 { |
|
2629 MCESRV_DEBUG("CMceSipSession::ForceUpdateStream, Entry"); |
|
2630 if( iBody->SdpSession().Context() == Dialog() ) |
|
2631 { |
|
2632 Manager().MediaManager().ForceEnableSinkState( ActiveBody() ); |
|
2633 } |
|
2634 else |
|
2635 { |
|
2636 ActiveBody().SdpSession().UpdateSecureStreamL( ActiveBody() ); |
|
2637 Manager().MediaManager().UpDateStreamStateL( *iBody, ActiveBody() ); |
|
2638 } |
|
2639 MCESRV_DEBUG("CMceSipSession::ForceUpdateStream, Exit"); |
|
2640 } |
|
2641 // ----------------------------------------------------------------------------- |
|
2642 // CMceSipSession::ResetCurrentDialog |
|
2643 // ----------------------------------------------------------------------------- |
|
2644 // |
|
2645 void CMceSipSession::ResetCurrentDialog() |
|
2646 { |
|
2647 if( iBodyBucket.Count() == 0 ) |
|
2648 { |
|
2649 iCurrentDialog = iDialog; |
|
2650 } |
|
2651 } |
2615 // End of File |
2652 // End of File |