diff -r 0cae6035b266 -r f91588750b61 realtimenetprots/sipfw/ProfileAgent/IMS_Agent/Src/sipphoneregistrationmonitor.cpp --- a/realtimenetprots/sipfw/ProfileAgent/IMS_Agent/Src/sipphoneregistrationmonitor.cpp Thu Jun 17 22:31:40 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,172 +0,0 @@ -// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -// All rights reserved. -// This component and the accompanying materials are made available -// under the terms of "Eclipse Public License v1.0" -// which accompanies this distribution, and is available -// at the URL "http://www.eclipse.org/legal/epl-v10.html". -// -// Initial Contributors: -// Nokia Corporation - initial contribution. -// -// Contributors: -// -// Description: -// Name : sipphoneregistrationmonitor.cpp -// Part of : SIP Profile Agent / IMS Agent -// Version : %version: 2 % -// - - -#include "sipphoneregistrationmonitor.h" -#include "sipphoneregistrationobserver.h" - -// ----------------------------------------------------------------------------- -// CSipPhoneRegistrationMonitor::NewL -// ----------------------------------------------------------------------------- -// -CSipPhoneRegistrationMonitor* CSipPhoneRegistrationMonitor::NewL( - RTelServer& aTelServer, - const RTelServer::TPhoneInfo& aPhoneInfo, - MSipPhoneRegistrationObserver& aObserver ) - { - CSipPhoneRegistrationMonitor* self - = new( ELeave ) CSipPhoneRegistrationMonitor( aObserver ); - CleanupStack::PushL( self ); - self->ConstructL( aTelServer, aPhoneInfo ); - CleanupStack::Pop( self ); - return self; - } - -// ----------------------------------------------------------------------------- -// CSipPhoneRegistrationMonitor::CSipPhoneRegistrationMonitor -// ----------------------------------------------------------------------------- -// -CSipPhoneRegistrationMonitor::CSipPhoneRegistrationMonitor( - MSipPhoneRegistrationObserver& aObserver ) - : CActive( CActive::EPriorityStandard ), - iObserver( aObserver ), - iRegistrationStatus( RMobilePhone::ERegistrationUnknown ) - { - CActiveScheduler::Add( this ); - } - -// ----------------------------------------------------------------------------- -// CSipPhoneRegistrationMonitor::ConstructL -// ----------------------------------------------------------------------------- -// -#ifdef __WINSCW__ - -void CSipPhoneRegistrationMonitor::ConstructL( - RTelServer& /*aTelServer*/, - const RTelServer::TPhoneInfo& /*aPhoneInfo*/ ) - { - iRegistrationStatus = RMobilePhone::ERegisteredOnHomeNetwork; - } - -#else - -void CSipPhoneRegistrationMonitor::ConstructL( - RTelServer& aTelServer, - const RTelServer::TPhoneInfo& aPhoneInfo ) - { - - User::LeaveIfError( iPhone.Open( aTelServer, aPhoneInfo.iName ) ); - - // Get current status - TRequestStatus status; - iPhone.GetNetworkRegistrationStatus( status, iRegistrationStatus ); - User::WaitForRequest( status ); - User::LeaveIfError( status.Int() ); - - // Start to monitor the status - MonitorStatus(); - } - -#endif - -// ----------------------------------------------------------------------------- -// CSipPhoneRegistrationMonitor::~CSipPhoneRegistrationMonitor -// ----------------------------------------------------------------------------- -// -CSipPhoneRegistrationMonitor::~CSipPhoneRegistrationMonitor() - { - Cancel(); - iPhone.Close(); - } - -// ----------------------------------------------------------------------------- -// CSipPhoneRegistrationMonitor::Status -// ----------------------------------------------------------------------------- -// -CSipPhoneRegistrationMonitor::TStatus -CSipPhoneRegistrationMonitor::Status() const - { - TStatus status = ENotRegistered; - switch ( iRegistrationStatus ) - { - case RMobilePhone::ERegisteredOnHomeNetwork: - status = ERegisteredOnHomeNetwork; - break; - case RMobilePhone::ERegisteredRoaming: - status = ERegisteredRoaming; - break; - default: - break; - } - return status; - } - -// ----------------------------------------------------------------------------- -// CSipPhoneRegistrationMonitor::DoCancel -// ----------------------------------------------------------------------------- -// -void CSipPhoneRegistrationMonitor::DoCancel() - { - iPhone.CancelAsyncRequest( - EMobilePhoneNotifyNetworkRegistrationStatusChange ); - } - -// ----------------------------------------------------------------------------- -// CSipPhoneRegistrationMonitor::RunL -// ----------------------------------------------------------------------------- -// -void CSipPhoneRegistrationMonitor::RunL() - { - TInt err = iStatus.Int(); - - if ( err ) - { - iObserver.PhoneRegistrationStatusError( err ); - } - else - { - MonitorStatus(); - iObserver.PhoneRegistrationStatusChangedL(); - } - } - -// ----------------------------------------------------------------------------- -// CSipPhoneRegistrationMonitor::RunError -// ----------------------------------------------------------------------------- -// -TInt CSipPhoneRegistrationMonitor::RunError(TInt aError) - { - iObserver.PhoneRegistrationStatusError( aError ); - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CSipPhoneRegistrationMonitor::MonitorStatus -// ----------------------------------------------------------------------------- -// -void CSipPhoneRegistrationMonitor::MonitorStatus() - { -#ifndef __WINSCW__ - - // Request further notification from ETel - iPhone.NotifyNetworkRegistrationStatusChange( iStatus, - iRegistrationStatus ); - SetActive(); - -#endif - }