phoneplugins/csplugin/src/cspcall.cpp
branchGCC_SURGE
changeset 51 f39ed5e045e0
parent 30 ebdbd102c78a
parent 45 6b911d05207e
--- 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 );
     }