--- a/mmsharing/mmshavailability/src/musavanetworkavailability.cpp Thu Aug 19 09:51:39 2010 +0300
+++ b/mmsharing/mmshavailability/src/musavanetworkavailability.cpp Tue Aug 31 15:12:07 2010 +0300
@@ -29,6 +29,7 @@
#include <e32base.h>
+const TInt KSipUriArrayGranularity = 1;
CMusAvaNetworkAvailability* CMusAvaNetworkAvailability::NewL(
MMusAvaAvailabilityObserver& aObserver,
@@ -74,8 +75,7 @@
MMusAvaAvailabilityObserver& aObserver,
CMusAvaSettingsImp& aSettings )
:CMusAvaAvailability( aObserver ),
- iSettings( aSettings ),
- iConfcall( EFalse )
+ iSettings( aSettings )
{
}
@@ -101,14 +101,13 @@
{
case NMusSessionInformationApi::ECallConnected:
{
- TBuf<CMusAvaCallEventMonitor::KMusTelNumberMaxLength> telNumber;
- iPhoneStatus->GetTelNumberL( telNumber );
- iSettings.SetTelNumberL( telNumber );
- iSettings.SetCallDirection( iPhoneStatus->CallDirectionL() );
- iSettings.SetCallPrivacy( iPhoneStatus->CallPrivacyL() );
-
- SetState( MMusAvaObserver::EMusAvaStatusAvailable );
- break;
+ TBuf<CMusAvaCallEventMonitor::KMusTelNumberMaxLength> telNumber;
+ TBool isSipUri( EFalse );
+ iPhoneStatus->GetTelNumberL( telNumber, isSipUri );
+ SetRemoteHostL( telNumber, isSipUri );
+ iSettings.SetCallDirection( iPhoneStatus->CallDirectionL() );
+ SetState( MMusAvaObserver::EMusAvaStatusAvailable );
+ break;
}
case NMusSessionInformationApi::ECallHold:
SetState( MMusAvaObserver::EMusAvaStatusCallOnHold );
@@ -148,31 +147,15 @@
// This function is called when a cs call is connected.
// -------------------------------------------------------------------------
//
-void CMusAvaNetworkAvailability::CallConnectedL( const TDesC& aTelNumber )
+void CMusAvaNetworkAvailability::CallConnectedL( const TDesC& aTelNumber,
+ TBool aIsSipUri)
{
MUS_LOG( "mus: [MUSAVA] \
-> CMusAvaNetworkAvailability::CallConnectedL()" )
-
-// try to resolve to contact information of the remote host
- iSettings.SetTelNumberL( aTelNumber );
- iSettings.SetCallDirection( iPhoneStatus->CallDirectionL() );
- iSettings.SetCallPrivacy( iPhoneStatus->CallPrivacyL() );
-
- //isn't the phone sent option successfully
- if ( ( aTelNumber != iSettings.OptionSentTelNumber()
- || iSettings.OptionSentTelNumber() == KNullDesC() )
- && iConfcall )
- {
- MUS_LOG("CMusAvaNetworkAvailability::CallConnectedL EMusAvaStatusInProgress");
- iSettings.ReleaseOptionSentNumber();
- SetState( MMusAvaObserver::EMusAvaStatusInProgress );
- }
- else
- {
- SetState( MMusAvaObserver::EMusAvaStatusAvailable );
- MUS_LOG("CMusAvaNetworkAvailability::CallConnectedL EMusAvaStatusAvailable");
-
- }
+ // try to resolve to contact information of the remote host
+ SetRemoteHostL( aTelNumber, aIsSipUri );
+ iSettings.SetCallDirection( iPhoneStatus->CallDirectionL() );
+ SetState( MMusAvaObserver::EMusAvaStatusAvailable );
MUS_LOG( "mus: [MUSAVA] \
<- CMusAvaNetworkAvailability::CallConnectedL()" )
@@ -189,7 +172,6 @@
MUS_LOG( "mus: [MUSAVA] \
-> CMusAvaNetworkAvailability::ConferenceCallL()" )
//Report line status
- iConfcall = ETrue;
SetState( MMusAvaObserver::EMusAvaStatusConferenceCall );
MUS_LOG( "mus: [MUSAVA] \
<- CMusAvaNetworkAvailability::ConferenceCallL()" )
@@ -200,13 +182,13 @@
// This function is called when a cs call goes hold
// -------------------------------------------------------------------------
//
-void CMusAvaNetworkAvailability::CallHoldL( const TDesC& aTelNumber )
+void CMusAvaNetworkAvailability::CallHoldL( const TDesC& aTelNumber,
+ TBool aIsSipUri)
{
MUS_LOG( "mus: [MUSAVA] -> CMusAvaNetworkAvailability::CallHoldL()" )
//Report line status
- iSettings.SetTelNumberL( aTelNumber );
+ SetRemoteHostL( aTelNumber, aIsSipUri );
iSettings.SetCallDirection( iPhoneStatus->CallDirectionL() );
- iSettings.SetCallPrivacy( iPhoneStatus->CallPrivacyL() );
SetState( MMusAvaObserver::EMusAvaStatusCallOnHold );
MUS_LOG( "mus: [MUSAVA] <- CMusAvaNetworkAvailability::CallHoldL()" )
}
@@ -222,6 +204,11 @@
MUS_LOG( "mus: [MUSAVA] -> CMusAvaNetworkAvailability::NoActiveCallL()" )
iSettings.SetTelNumberL( KNullDesC() );
+ CDesCArrayFlat* sipUris =
+ new ( ELeave ) CDesCArrayFlat( KSipUriArrayGranularity );
+ CleanupStack::PushL( sipUris );
+ iSettings.SetSipAddressesL( sipUris );
+ CleanupStack::Pop( sipUris );
//Report line status
//Availability status
@@ -230,19 +217,28 @@
MUS_LOG( "mus: [MUSAVA] <- CMusAvaNetworkAvailability::NoActiveCallL()" )
}
-// -------------------------------------------------------------------------
-//This function is called when conference call terminted
-//
-// -------------------------------------------------------------------------
-//
-void CMusAvaNetworkAvailability::ConferenceCallLTerminated()
+
+void CMusAvaNetworkAvailability::SetRemoteHostL( const TDesC& aTelNumber,
+ TBool aIsSipUri )
{
- MUS_LOG( "mus: [MUSAVA] -> CMusAvaNetworkAvailability::ConferenceCallLTerminated()" )
- if ( iConfcall )
- {
- iConfcall = EFalse;
- }
- AvailabilitiesAbleToShowIndicator();
+ MUS_LOG1( "mus: [MUSAVA] -> CMusAvaNetworkAvailability::SetRemoteHostL(%d)",
+ aIsSipUri )
+
+ if ( aIsSipUri )
+ {
+ CDesCArrayFlat* sipUris =
+ new ( ELeave ) CDesCArrayFlat( KSipUriArrayGranularity );
+ CleanupStack::PushL( sipUris );
+ sipUris->AppendL( aTelNumber );
+ iSettings.SetSipAddressesL( sipUris );
+ CleanupStack::Pop( sipUris );
+
+ iSettings.SetUriForContactResolvingL( aTelNumber );
+ }
+ else
+ {
+ iSettings.SetTelNumberL( aTelNumber );
+ }
- MUS_LOG( "mus: [MUSAVA] <- CMusAvaNetworkAvailability::ConferenceCallLTerminated()" )
+ MUS_LOG( "mus: [MUSAVA] <- CMusAvaNetworkAvailability::SetRemoteHostL()" )
}