--- 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 );
}