diff -r df4dfb214df5 -r 8c9c07ad8b6b sipvoipprovider/src/svpmosession.cpp --- 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