1009 TBool CSPCall::IsCallForwarded( ) const |
1009 TBool CSPCall::IsCallForwarded( ) const |
1010 { |
1010 { |
1011 CSPLOGSTRING(CSPREQIN, "CSPCall::IsCallForwarded <"); |
1011 CSPLOGSTRING(CSPREQIN, "CSPCall::IsCallForwarded <"); |
1012 TBool ret( EFalse ); |
1012 TBool ret( EFalse ); |
1013 TInt err( KErrNone ); |
1013 TInt err( KErrNone ); |
1014 RMobileCall::TMobileCallInfoV3 callInfo; |
1014 RMobileCall::TMobileCallInfoV3Pckg pck( iEtelCallInfo ); |
1015 RMobileCall::TMobileCallInfoV3Pckg pck( callInfo ); |
|
1016 err = iCall.GetMobileCallInfo( pck ); |
1015 err = iCall.GetMobileCallInfo( pck ); |
1017 if (err == KErrNone ) |
1016 if (err == KErrNone ) |
1018 { |
1017 { |
1019 ret = callInfo.iForwarded; |
1018 ret = iEtelCallInfo.iForwarded; |
1020 } |
1019 } |
1021 |
1020 |
1022 CSPLOGSTRING2(CSPREQIN, |
1021 CSPLOGSTRING2(CSPREQIN, |
1023 "CSPCall::IsCallForwarded > forwarder: %d", ret ); |
1022 "CSPCall::IsCallForwarded > forwarder: %d", ret ); |
1024 |
1023 |
1388 // If COLP number is different from original dialled number |
1387 // If COLP number is different from original dialled number |
1389 // it is available in connected state of a MO call. |
1388 // it is available in connected state of a MO call. |
1390 // TSY does not send notification so number must be fetched. |
1389 // TSY does not send notification so number must be fetched. |
1391 if ( IsMobileOriginated() ) |
1390 if ( IsMobileOriginated() ) |
1392 { |
1391 { |
1393 RMobileCall::TMobileCallInfoV3 callInfo; |
1392 RMobileCall::TMobileCallInfoV3Pckg callInfoPckg( iEtelCallInfo ); |
1394 RMobileCall::TMobileCallInfoV3Pckg callInfoPckg( callInfo ); |
1393 GetMobileCallInfo( callInfoPckg ); |
1395 |
1394 if ( iEtelCallInfo.iRemoteParty.iRemoteNumber.iTelNumber.Length() ) |
1396 GetMobileCallInfo( callInfoPckg ); |
1395 { |
1397 callInfo = callInfoPckg(); |
|
1398 |
|
1399 if ( callInfo.iRemoteParty.iRemoteNumber.iTelNumber.Length() ) |
|
1400 { |
|
1401 NotifyRemotePartyInfoChanged( KNullDesC(), |
1396 NotifyRemotePartyInfoChanged( KNullDesC(), |
1402 callInfo.iRemoteParty.iRemoteNumber.iTelNumber); |
1397 iEtelCallInfo.iRemoteParty.iRemoteNumber.iTelNumber); |
1403 } |
1398 } |
1404 } |
1399 } |
|
1400 |
1405 } |
1401 } |
1406 |
1402 |
1407 |
1403 |
1408 // --------------------------------------------------------------------------- |
1404 // --------------------------------------------------------------------------- |
1409 // CSPCall::CreateCallHandlersL |
1405 // CSPCall::CreateCallHandlersL |
1764 TInt CSPCall::ExitCodeError() const |
1760 TInt CSPCall::ExitCodeError() const |
1765 { |
1761 { |
1766 CSPLOGSTRING2(CSPINT, "CSPCall::ExitCodeError < this: %x", |
1762 CSPLOGSTRING2(CSPINT, "CSPCall::ExitCodeError < this: %x", |
1767 this ); |
1763 this ); |
1768 TInt callError; |
1764 TInt callError; |
1769 RMobileCall::TMobileCallInfoV3 callInfo; |
1765 RMobileCall::TMobileCallInfoV3Pckg pck( iEtelCallInfo ); |
1770 RMobileCall::TMobileCallInfoV3Pckg pck( callInfo ); |
|
1771 TInt getErr = iCall.GetMobileCallInfo( pck ); |
1766 TInt getErr = iCall.GetMobileCallInfo( pck ); |
1772 // Is there value in higher 16 bits |
1767 // Is there value in higher 16 bits |
1773 if ( KErrNone == getErr && (callInfo.iExitCode & 0xFFFF0000) ) |
1768 if ( KErrNone == getErr && (iEtelCallInfo.iExitCode & 0xFFFF0000) ) |
1774 { |
1769 { |
1775 CSPLOGSTRING2(CSPINT, "CSPCall::ExitCodeError callInfo.iExitCode %d", |
1770 CSPLOGSTRING2(CSPINT, "CSPCall::ExitCodeError callInfo.iExitCode %d", |
1776 callInfo.iExitCode ); |
1771 iEtelCallInfo.iExitCode ); |
1777 callError = ( callInfo.iExitCode >> KTimesToSplitValue ); |
1772 callError = ( iEtelCallInfo.iExitCode >> KTimesToSplitValue ); |
1778 |
1773 |
1779 if ( callError > KErrEtelGsmBase ) |
1774 if ( callError > KErrEtelGsmBase ) |
1780 // Not in valid exteded range |
1775 // Not in valid exteded range |
1781 { |
1776 { |
1782 // Ignore invalid extented code |
1777 // Ignore invalid extented code |
1783 if ( ( callInfo.iExitCode & 0x0000FFFF ) == KErrNone ) |
1778 if ( ( iEtelCallInfo.iExitCode & 0x0000FFFF ) == KErrNone ) |
1784 // core error is zero |
1779 // core error is zero |
1785 { |
1780 { |
1786 callError = KErrNone; |
1781 callError = KErrNone; |
1787 } |
1782 } |
1788 else |
1783 else |
1789 { |
1784 { |
1790 callError = ( ( callInfo.iExitCode & 0x0000FFFF ) |
1785 callError = ( ( iEtelCallInfo.iExitCode & 0x0000FFFF ) |
1791 | 0xFFFF0000 ); |
1786 | 0xFFFF0000 ); |
1792 } |
1787 } |
1793 } |
1788 } |
1794 } |
1789 } |
1795 // Higher and lower 16 bits are zero |
1790 // Higher and lower 16 bits are zero |
1796 else if ( !( callInfo.iExitCode & 0xFFFFFFFF ) ) |
1791 else if ( !( iEtelCallInfo.iExitCode & 0xFFFFFFFF ) ) |
1797 { |
1792 { |
1798 callError = KErrNone; |
1793 callError = KErrNone; |
1799 } |
1794 } |
1800 else |
1795 else |
1801 { |
1796 { |
1802 // No extended error, expand value to full range |
1797 // No extended error, expand value to full range |
1803 callError = ( callInfo.iExitCode | 0xFFFF0000 ); |
1798 callError = ( iEtelCallInfo.iExitCode | 0xFFFF0000 ); |
1804 } |
1799 } |
1805 |
1800 |
1806 CSPLOGSTRING2(CSPINT, "CSPCall::ExitCodeError > err: %d", callError); |
1801 CSPLOGSTRING2(CSPINT, "CSPCall::ExitCodeError > err: %d", callError); |
1807 |
1802 |
1808 return callError; |
1803 return callError; |