sipvoipprovider/src/svpmosession.cpp
branchRCL_3
changeset 18 8c9c07ad8b6b
parent 11 6134b5029079
--- a/sipvoipprovider/src/svpmosession.cpp	Wed Jun 09 09:31:04 2010 +0300
+++ b/sipvoipprovider/src/svpmosession.cpp	Mon Jun 21 15:29:21 2010 +0300
@@ -117,14 +117,27 @@
     // Add P-Preferred-Identity header if CLIR is on  
     if ( iSVPUtility.IsCLIROnL() )
         {
-        const TDesC8* userAor = NULL;
-        TInt err = profile->GetParameter( KSIPUserAor, userAor );
+        HBufC8* userAor = NULL;
+        const MDesC8Array* aors( NULL ); // Array of registered address of records
+        
+        TInt result = profile->GetParameter( KSIPRegisteredAors, aors );
         
-        if ( !err )
+        if ( !aors || aors->MdcaCount() == KErrNone )
             {
-            iSVPUtility.AddPPreferredIdentityToUserHeadersL( 
-                *aUserHeaders, *userAor );
+            SVPDEBUG1( "CSVPMoSession::CompleteUriL - registered aors array empty" )
+            const TDesC8* userAorStr = NULL;
+            User::LeaveIfError( profile->GetParameter( KSIPUserAor, userAorStr ) );
+            SVPDEBUG2( "CSVPMoSession::CompleteUriL - KSIPUserAor result: %d", result )
+            userAor = userAorStr->AllocLC();
             }
+        else
+            {
+            userAor = aors->MdcaPoint( 0 ).AllocLC();
+            }    
+
+        iSVPUtility.AddPPreferredIdentityToUserHeadersL( 
+            *aUserHeaders, *userAor );
+        CleanupStack::PopAndDestroy(); //userAor
         }
     
     // create Mce out session