diff -r bab96b7ed1a4 -r f39ed5e045e0 phoneplugins/csplugin/src/cspcall.cpp --- a/phoneplugins/csplugin/src/cspcall.cpp Tue Jun 15 14:14:38 2010 +0100 +++ b/phoneplugins/csplugin/src/cspcall.cpp Thu Jul 22 16:33:21 2010 +0100 @@ -276,6 +276,10 @@ iDontReportTerm = ETrue; NotifyCallStateChanged( MCCPCallObserver::ECCPStateConnected ); + + // Agreement with TSY is that the + // COLP number is available in connected state. + NotifyRemotePartyNumberChanged(); break; } // Indicates that call is disconnecting. (Same as RCall::HangingUp) @@ -1374,6 +1378,34 @@ } // --------------------------------------------------------------------------- +// CSPCall::NotifyRemotePartyNumberChanged +// +// --------------------------------------------------------------------------- +// +void CSPCall::NotifyRemotePartyNumberChanged() + { + CSPLOGSTRING(CSPINT, "CSPCall::NotifyRemotePartyNumberChanged <"); + // If COLP number is different from original dialled number + // it is available in connected state of a MO call. + // TSY does not send notification so number must be fetched. + if ( IsMobileOriginated() ) + { + RMobileCall::TMobileCallInfoV3 callInfo; + RMobileCall::TMobileCallInfoV3Pckg callInfoPckg( callInfo ); + + GetMobileCallInfo( callInfoPckg ); + callInfo = callInfoPckg(); + + if ( callInfo.iRemoteParty.iRemoteNumber.iTelNumber.Length() ) + { + NotifyRemotePartyInfoChanged( KNullDesC(), + callInfo.iRemoteParty.iRemoteNumber.iTelNumber); + } + } + } + + +// --------------------------------------------------------------------------- // CSPCall::CreateCallHandlersL // Create call handlers for call related requests and call monitoring // --------------------------------------------------------------------------- @@ -1801,10 +1833,20 @@ // CSPCall::NotifyRemotePartyInfoChanged // --------------------------------------------------------------------------- // -void CSPCall::NotifyRemotePartyInfoChanged(const TDesC& aRemoteParty) +void CSPCall::NotifyRemotePartyInfoChanged( const TDesC& aRemotePartyName, + const TDesC& aRemotePartyNumber ) { CSPLOGSTRING(CSPREQIN, "CSPCall::NotifyRemotePartyInfoChanged"); - iRemotePartyName = aRemoteParty; + if ( aRemotePartyName.Length() ) + { + iRemotePartyName = aRemotePartyName; + } + + if ( aRemotePartyNumber.Length() ) + { + iRemotePartyNumber = aRemotePartyNumber; + } + NotifyCallEventOccurred( MCCPCallObserver::ECCPNotifyRemotePartyInfoChange ); }