diff -r 8ef833fbf5aa -r d0d9cc530d21 telephonyserverplugins/common_tsy/commontsy/src/mmgsmwcdma/cmmcallgsmwcdmaext.cpp --- a/telephonyserverplugins/common_tsy/commontsy/src/mmgsmwcdma/cmmcallgsmwcdmaext.cpp Wed Aug 18 10:57:47 2010 +0300 +++ b/telephonyserverplugins/common_tsy/commontsy/src/mmgsmwcdma/cmmcallgsmwcdmaext.cpp Thu Sep 02 21:42:07 2010 +0300 @@ -1812,7 +1812,30 @@ { iMobileCallInfo.iAlternatingCall = mobileCallInfo->iAlternatingCall; } - + + // If a Mobile Originated call, take Alpha ID and Icon ID values from iCallParams, if valid. + if ( iMobileCallInfo.iRemoteParty.iDirection == RMobileCall::EMobileOriginated) + { + // Set the Alpha ID, if not set. + if ( iMobileCallInfo.iAlphaId.Length() <= 0 && + iCallParams.iAlphaId.Length() > 0 && + iCallParams.iAlphaId.Length() <= RMobileCall::KAlphaIdMaxSize ) + { + iMobileCallInfo.iAlphaId.Zero(); + iMobileCallInfo.iAlphaId.Copy(iCallParams.iAlphaId ); + iMobileCallInfo.iValid |= RMobileCall::KCallAlphaId; + } + // Set the Icon ID, if not set. + if ( iMobileCallInfo.iIconId.iIdentifier == 0 && + iMobileCallInfo.iIconId.iQualifier == RMobileCall::EIconQualifierNotSet && + iCallParams.iIconId.iIdentifier > 0 && + iCallParams.iIconId.iQualifier != RMobileCall::EIconQualifierNotSet ) + { + iMobileCallInfo.iIconId.iIdentifier = iCallParams.iIconId.iIdentifier; + iMobileCallInfo.iIconId.iQualifier = iCallParams.iIconId.iQualifier; + iMobileCallInfo.iValid |= RMobileCall::KCallIconId; + } + } // TMobileCallInfoV3 if ( (KETelExtMultimodeV3 == extensionId) || @@ -1844,14 +1867,20 @@ iMobileCallInfo.iCallParamOrigin = mobileCallInfoV7->iCallParamOrigin; } - if(RMobileCall::KCallIconId & mobileCallInfo->iValid) + // Set the Alpha ID if call is not Mobile Originated. + // If MO, the Alpha ID would be set above from iCallParams + if(RMobileCall::KCallIconId & mobileCallInfo->iValid && + iMobileCallInfo.iRemoteParty.iDirection != RMobileCall::EMobileOriginated) { // TIconId iIconId; iMobileCallInfo.iIconId.iIdentifier = mobileCallInfoV7->iIconId.iIdentifier; iMobileCallInfo.iIconId.iQualifier = mobileCallInfoV7->iIconId.iQualifier; } - if(RMobileCall::KCallAlphaId & mobileCallInfo->iValid) + // Set the Icon ID if call is not Mobile Originated. + // If MO, Icon ID would be set above from iCallParams + if(RMobileCall::KCallAlphaId & mobileCallInfo->iValid && + iMobileCallInfo.iRemoteParty.iDirection != RMobileCall::EMobileOriginated) { // TAlphaIdBuf iAlphaId; iMobileCallInfo.iAlphaId.Zero();