diff -r 630d2f34d719 -r 07a122eea281 cbsref/telephonyrefplugins/atltsy/handler/src/cltsypacketserviceshandler.cpp --- a/cbsref/telephonyrefplugins/atltsy/handler/src/cltsypacketserviceshandler.cpp Tue Aug 31 16:23:08 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,995 +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: -// CLtsyPacketServicesHandler - -#include -#include -#include -#include - -#include "commengine.h" -#include "tsyconfg.h" -#include "cltsypacketserviceshandler.h" -#include "ltsymacros.h" -#include "tsyconfg.h" -#include "mslogger.h" -#include "atgprsattach.h" -#include "atgprsdetach.h" -#include "atgprsntwkregstatus.h" -#include "atgprsconfig.h" -#include "initialisepdpcontext.h" -#include "atgprscontextactivate.h" -#include "activatecontextandgetaddr.h" -#include "atgprscontextdeactivate.h" -#include "atgprscontextdelete.h" -#include "atgprsqosprofile.h" -#include "asynchelperrequest.h" -#include "atgprsntwkregstatuschange.h" - -CLtsyPacketServicesHandler::CLtsyPacketServicesHandler( - CCtsyDispatcherCallback& aCtsyDispatcherCallback, - CGlobalPhonemanager* aGloblePhone) - : iCtsyDispatcherCallback(aCtsyDispatcherCallback), - iGloblePhone(aGloblePhone) - { - } - -CLtsyPacketServicesHandler::~CLtsyPacketServicesHandler() - { - if(iAsyncHelperRequest) - { - delete iAsyncHelperRequest; - iAsyncHelperRequest = NULL; - } - if(iNtwkRegStatusChange) - { - delete iNtwkRegStatusChange; - iNtwkRegStatusChange = NULL; - } - } - -CLtsyPacketServicesHandler* CLtsyPacketServicesHandler::NewLC( - CCtsyDispatcherCallback& aCtsyDispatcherCallback, - CGlobalPhonemanager* aGloblePhone) - { - TSYLOGENTRYEXIT; - CLtsyPacketServicesHandler* self = new (ELeave) CLtsyPacketServicesHandler(aCtsyDispatcherCallback,aGloblePhone); - CleanupStack::PushL(self); - self->ConstructL(); - return self; - } - -CLtsyPacketServicesHandler* CLtsyPacketServicesHandler::NewL(CCtsyDispatcherCallback& aCtsyDispatcherCallback, - CGlobalPhonemanager* aGloblePhone) - { - TSYLOGENTRYEXIT; - CLtsyPacketServicesHandler* self= - CLtsyPacketServicesHandler::NewLC(aCtsyDispatcherCallback,aGloblePhone); - CleanupStack::Pop(self); - return self; - } - -void CLtsyPacketServicesHandler::ConstructL() -/** - * Second phase constructor. - */ - { - TSYLOGENTRYEXIT; - iAsyncHelperRequest = CAsyncHelperRequest::NewL((*iGloblePhone), iCtsyDispatcherCallback); - iInitialisePdpContext = CInitialisePdpContext::NewL(*iGloblePhone, iCtsyDispatcherCallback); - iNtwkRegStatusChange = CATGprsNtwkRegStatusChange::NewL((*iGloblePhone), iCtsyDispatcherCallback); - } // CLtsyPacketServicesHandler::ConstructL - -TBool CLtsyPacketServicesHandler::IsInterfaceSupported(TLtsyDispatchInterfaceApiId aDispatchApiId) -/** - * Returns whether a Dispatch Interface APi is supported or not. - * - * @param aDispatchApiId Id of Dispatch interface being queried - * @return indication whether interface is supported or not - */ - { - switch(aDispatchApiId) - { - // Insert ApiIds when support is provided in LTSY e.g. - case KLtsyDispatchPacketServicesPacketAttachApiId: - return ETrue; - case KLtsyDispatchPacketServicesGetPacketAttachModeApiId: - return ETrue; - case KLtsyDispatchPacketServicesGetPacketNetworkRegistrationStatusApiId: - return ETrue; - case KLtsyDispatchPacketServicesPacketDetachApiId: - return ETrue; - case KLtsyDispatchPacketServicesSetPdpContextConfigApiId: - return ETrue; - case KLtsyDispatchPacketServicesModifyActivePdpContextApiId: - return EFalse; - case KLtsyDispatchPacketServicesInitialisePdpContextApiId: - return ETrue; - case KLtsyDispatchPacketServicesDeletePdpContextApiId: - return ETrue; - case KLtsyDispatchPacketServicesSetPacketAttachModeApiId: - return EFalse; - case KLtsyDispatchPacketServicesNotifyPacketStatusChangeApiId: - return ETrue; - case KLtsyDispatchPacketServicesSetDefaultPdpContextGprsParamsApiId: - return ETrue; - case KLtsyDispatchPacketServicesSetDefaultPdpContextR99R4ParamsApiId: - return ETrue; - case KLtsyDispatchPacketServicesActivatePdpContextApiId: - return ETrue; - case KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId: - return ETrue; - case KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId: - return ETrue; - case KLtsyDispatchPacketServicesSetPdpContextQosR5ApiId: - return ETrue; - case KLtsyDispatchPacketServicesRejectNetworkInitiatedContextActivationRequestApiId: - return ETrue; - case KLtsyDispatchPacketServicesDeactivatePdpContextApiId: - return ETrue; - case KLtsyDispatchPacketServicesAddPacketFilterApiId: - return EFalse; - case KLtsyDispatchPacketServicesGetStatusApiId: - return ETrue; - case KLtsyDispatchPacketServicesGetStaticCapabilitiesApiId: - return EFalse; - case KLtsyDispatchPacketServicesGetMaxNoMonitoredServiceListsApiId: - return EFalse; - case KLtsyDispatchPacketServicesGetMaxNoActiveServicesApiId: - return EFalse; - case KLtsyDispatchPacketServicesInitialiseMbmsContextApiId: - return EFalse; - case KLtsyDispatchPacketServicesGetMbmsNetworkServiceStatusApiId: - return EFalse; - case KLtsyDispatchPacketServicesUpdateMbmsMonitorServiceListApiId: - return EFalse; - case KLtsyDispatchPacketServicesUpdateMbmsSessionListApiId: - return EFalse; - case KLtsyDispatchPacketServicesRemovePacketFilterApiId: - return EFalse; - default: - return EFalse; - } - } - -void CLtsyPacketServicesHandler::IsCallbackIndicatorSupported(TLtsyDispatchIndIdGroup aIdGroup, TUint32& aIndIdBitMask) -/** - * Returns the set of callback indicators that are supported. - * - * @param aIdGroup ID of group that is being queried e.g. aIdGroup=EIndIdGroup1 - * @param aIndIdBitMask [out] argument that should return a bitmask indicating which indicator callbacks are supported. - */ - { - //Create bitmask with bitset for each indicator ID that is supported. E.g. - if(aIdGroup == EIndIdGroup1) - aIndIdBitMask = KLtsyDispatchPacketServicesNotifyQosProfileChangedIndId | - KLtsyDispatchPacketServicesNotifyRatTransferCapsChangeIndId | - KLtsyDispatchPacketServicesNotifyPacketDynamicCapsChangeIndId | - KLtsyDispatchPacketServicesNotifyPdpContextAddedIndId | - KLtsyDispatchPacketServicesNotifyNetworkInitiatedContextActivationRequestIndId | - KLtsyDispatchPacketServicesNotifyPdpContextConfigChangedIndId | - KLtsyDispatchPacketServicesNotifyPdpContextStatusChangeIndId | - KLtsyDispatchPacketServicesNotifyPacketNetworkRegistrationStatusIndId; - else - aIndIdBitMask = 0; //no indicators from other groups supported - } - - -TInt CLtsyPacketServicesHandler::HandlePacketAttachReqL() -/** - * This request is completed by invoking - * CCtsyDispatcherCallback::CallbackPacketServicesPacketAttachComp() - * - * - * @return KErrNone on success, KErrNotSupported if this request is not supported, - * or another error code to indicate the failure otherwise. - */ - { - TSYLOGENTRYEXIT; - LOGTEXTREL(_L8("pkt:attach")); - - TInt ret = KErrNotSupported; - ret = iGloblePhone->CheckGlobalPhoneStatus(); - if(KErrNone == ret) - { - CATGprsAttach* ATGprsAttach = CATGprsAttach::NewL(*iGloblePhone, iCtsyDispatcherCallback); - iGloblePhone->iEventSignalActive = ETrue; - iGloblePhone->SetActiveRequest(ATGprsAttach); - ATGprsAttach->StartRequest(); - } - else - { - LOGTEXTREL2(_L8("pkt:err(%d) in attach"), ret); - } - - return TSYLOGSETEXITERR(ret); - } // CLtsyPacketServicesHandler::HandlePacketAttachReqL - - -TInt CLtsyPacketServicesHandler::HandleGetPacketAttachModeReqL() -/** - * This request is completed by invoking - * CCtsyDispatcherCallback::CallbackPacketServicesGetPacketAttachModeComp() - * - * @return KErrNone on success, KErrNotSupported if this request is not supported, - * or another error code to indicate the failure otherwise. - */ - { - TSYLOGENTRYEXIT; - TInt ret = KErrNone; - iAsyncHelperRequest->SetRequestId(MLtsyDispatchPacketServicesGetPacketAttachMode::KLtsyDispatchPacketServicesGetPacketAttachModeApiId); - - return TSYLOGSETEXITERR(ret); - } // CLtsyPacketServicesHandler::HandleGetPacketAttachModeReqL - - -TInt CLtsyPacketServicesHandler::HandleGetPacketNetworkRegistrationStatusReqL() -/** - * This request is completed by invoking - * CCtsyDispatcherCallback::CallbackPacketServicesGetPacketNetworkRegistrationStatusComp() - * - * @return KErrNone on success, KErrNotSupported if this request is not supported, - * or another error code to indicate the failure otherwise. - */ - { - TSYLOGENTRYEXIT; - - TInt ret = KErrNotSupported; - ret = iGloblePhone->CheckGlobalPhoneStatus(); - if(KErrNone == ret) - { - CATGprsNtwkRegStatus* ATGprsNtwkRegStatus = CATGprsNtwkRegStatus::NewL(*iGloblePhone, - iCtsyDispatcherCallback, - *iNtwkRegStatusChange); - iGloblePhone->iEventSignalActive = ETrue; - iGloblePhone->SetActiveRequest(ATGprsNtwkRegStatus); - ATGprsNtwkRegStatus->StartRequest(); - } - else - { - LOGTEXTREL2(_L8("pkt:err(%d) in GetPacketNetworkRegistrationStatus"), ret); - } - - return TSYLOGSETEXITERR(ret); - } // CLtsyPacketServicesHandler::HandleGetPacketNetworkRegistrationStatusReqL - - -TInt CLtsyPacketServicesHandler::HandlePacketDetachReqL() -/** - * This request is completed by invoking - * CCtsyDispatcherCallback::CallbackPacketServicesPacketDetachComp() - * - * @return KErrNone on success, KErrNotSupported if this request is not supported, - * or another error code to indicate the failure otherwise. - */ - { - TSYLOGENTRYEXIT; - LOGTEXTREL(_L8("pkt:detach")); - - TInt ret = KErrNotSupported; - ret = iGloblePhone->CheckGlobalPhoneStatus(); - if(KErrNone == ret) - { - CATGprsDetach* ATGprsDetach = CATGprsDetach::NewL(*iGloblePhone, iCtsyDispatcherCallback); - iGloblePhone->iEventSignalActive = ETrue; - iGloblePhone->SetActiveRequest(ATGprsDetach); - ATGprsDetach->StartRequest(); - } - else - { - LOGTEXTREL2(_L8("pkt:err(%d) in detach"), ret); - } - - return TSYLOGSETEXITERR(ret); - } // CLtsyPacketServicesHandler::HandlePacketDetachReqL - - -TInt CLtsyPacketServicesHandler::HandleSetPdpContextConfigReqL(const TDesC& aContextId, - const TDesC8& aAccessPointName, - const RPacketContext::TProtocolType aPdpType, - const TDesC8& aPdpAddress, - const TDesC8& aPcoBuffer) -/** - * This request is completed by invoking - * CCtsyDispatcherCallback::CallbackPacketServicesSetPdpContextConfigComp() - * - * @param contextId The context name, the descriptor should be TBuf<10> - * @param iAccessPointName The access name which identifies the GGSN to be used - * @param iPdpType The protocol type - * @param iPdpAddress The PDP address for this context - * @param aPcoBuffer The pco buffer - * - * The purpose of the protocol configuration options (PCO) is to transfer external network protocol options - * associated with a PDP context activation, and transfer additional (protocol) data - * (e.g. configuration parameters, error codes or messages/events) associated with an external protocol - * or an application. - * The protocol configuration options (PCO) is a type 4 information element with a minimum length of 3 - * octets and a maximum length of 253 octets - * In order to generate the PCO buffer a TTlvStruct object is being used. The TTlvStruct wraps the buffers - * inserted to the PCO and identifies the buffers with given IDs. - * - * @return KErrNone on success, KErrNotSupported if this request is not supported, - * or another error code to indicate the failure otherwise. - */ - { - TSYLOGENTRYEXIT; - - LOGTEXTREL2(_L8("pkt:setconfig,APN>%S<"), &aAccessPointName); - TInt ret = KErrNotSupported; - ret = iGloblePhone->CheckGlobalPhoneStatus(); - if(KErrNone == ret) - { - TInt tmp = GetContext(aContextId); - if(tmp >= 0) - { - iGloblePhone->iContextList[tmp]->iDefContextConfigGPRS.iAccessPointName = aAccessPointName; - iGloblePhone->iContextList[tmp]->iDefContextConfigGPRS.iPdpType = aPdpType; - iGloblePhone->iContextList[tmp]->iDefContextConfigGPRS.iPdpAddress = aPdpAddress; - iGloblePhone->iContextList[tmp]->iDefContextConfigGPRS.iProtocolConfigOption.iMiscBuffer = aPcoBuffer; - - - CATGPRSSetConfig* ATGPRSSetConfig = CATGPRSSetConfig::NewL(*iGloblePhone, iCtsyDispatcherCallback); - iGloblePhone->iEventSignalActive = ETrue; - ATGPRSSetConfig->SetContext(iGloblePhone->iContextList[tmp]->iContextID); - iGloblePhone->SetActiveRequest(ATGPRSSetConfig); - ATGPRSSetConfig->StartRequest(); - } - else - { - LOGTEXTREL2(_L8("pkt:err(%d) in setconfig, not found"), tmp); - } - } - else - { - LOGTEXTREL2(_L8("pkt:err(%d) in setconfig"), ret); - } - - return TSYLOGSETEXITERR(ret); - } // CLtsyPacketServicesHandler::HandleSetPdpContextConfigReqL - - -TInt CLtsyPacketServicesHandler::HandleModifyActivePdpContextReqL(const TDesC& /*aContextName*/) -/** - * This request is completed by invoking - * CCtsyDispatcherCallback::CallbackPacketServicesModifyActivePdpContextComp() - * - * @param aContextName Context name for which the modification is intended - * - * @return KErrNone on success, KErrNotSupported if this request is not supported, - * or another error code to indicate the failure otherwise. - */ - { - TSYLOGENTRYEXIT; - - TInt ret = KErrNotSupported; - - return TSYLOGSETEXITERR(ret); - } // CLtsyPacketServicesHandler::HandleModifyActivePdpContextReqL - - -TInt CLtsyPacketServicesHandler::HandleInitialisePdpContextReqL(const TDesC& aPrimaryContextName, const TDesC& /*aSecondaryContextName*/) -/** - * This request is completed by invoking - * CCtsyDispatcherCallback::CallbackPacketServicesInitialisePdpContextComp() - * - * @param aPrimaryContextName Primary context name in the form of a character string, the descriptor should be TBuf<10> - * @param aSecondaryContextName Optional secondary context name in the form of a character string, the descriptor should be TBuf<10> - * - * @return KErrNone on success, KErrNotSupported if this request is not supported, - * or another error code to indicate the failure otherwise. - */ - { - TSYLOGENTRYEXIT; - LOGTEXT2(_L8("aPrimaryContextName >%S<"), &aPrimaryContextName); - LOGTEXTREL2(_L8("pkt:initctxt>%S<"), &aPrimaryContextName); - TInt ret = KErrNone; - TInt cid = 0; - TInt contextCount = iGloblePhone->iContextList.Count(); - if(contextCount > 0) - { - for(TInt i = 0;i < contextCount;i++) - { - if(iGloblePhone->iContextList[i]->iInfo.iName == aPrimaryContextName) - { - LOGTEXTREL2(_L8("pkt:err(%d) in initctxt, already existed"), ret); - return KErrNotSupported; - } - } - } - - cid = GenerateNewContextCid(aPrimaryContextName); - LOGTEXT2(_L8("newcid=%d"),cid); - if(cid > MaxNumberOfContexts()) - { - LOGTEXTREL2(_L8("pkt:err(%d) in initctxt, context number overflow"), ret); - return KErrNotSupported; - } - - TContextInfomation *tmpContext = new TContextInfomation; - tmpContext->iInfo.iName = aPrimaryContextName; - tmpContext->iContextID = cid; - iGloblePhone->iContextList.Append(tmpContext); - LOGTEXT2(_L8("iGloblePhone->iContextList[0]->iContextID=%d"),iGloblePhone->iContextList[0]->iContextID); - - iInitialisePdpContext->SetContext(cid); - iInitialisePdpContext->StartRequest(); - - return TSYLOGSETEXITERR(ret); - } // CLtsyPacketServicesHandler::HandleInitialisePdpContextReqL - - -TInt CLtsyPacketServicesHandler::HandleDeletePdpContextReqL(const TDesC& aContextName) -/** - * This request is completed by invoking - * CCtsyDispatcherCallback::CallbackPacketServicesDeletePdpContextComp() - * - * @param aContextName the context name to be deleted, , the descriptor should be TBuf<10> - * - * @return KErrNone on success, KErrNotSupported if this request is not supported, - * or another error code to indicate the failure otherwise. - */ - { - TSYLOGENTRYEXIT; - LOGTEXTREL2(_L8("pkt:delete aContextName:\t%S"),&aContextName); - - TInt ret = KErrNotSupported; - ret = iGloblePhone->CheckGlobalPhoneStatus(); - if(KErrNone == ret) - { - TInt tmp = -1; - tmp = GetContext(aContextName); - if(tmp >= 0) - { - CATGprsContextDelete* ATGprsContextDelete = CATGprsContextDelete::NewL(*iGloblePhone, iCtsyDispatcherCallback); - iGloblePhone->iEventSignalActive = ETrue; - ATGprsContextDelete->SetContext(iGloblePhone->iContextList[tmp]->iContextID); - iGloblePhone->SetActiveRequest(ATGprsContextDelete); - ATGprsContextDelete->StartRequest(); - } - else - { - LOGTEXTREL2(_L8("pkt:err(%d) in deletectxt, not found"), tmp); - ret = KErrNotFound; - } - } - else - { - LOGTEXTREL2(_L8("pkt:err(%d) in deletectxt"), ret); - } - - return TSYLOGSETEXITERR(ret); - } // CLtsyPacketServicesHandler::HandleDeletePdpContextReqL - - -TInt CLtsyPacketServicesHandler::HandleSetPacketAttachModeReqL(RPacketService::TAttachMode /*aAttachMode*/) -/** - * This request is completed by invoking - * CCtsyDispatcherCallback::CallbackPacketServicesSetPacketAttachModeComp() - * - * @param aAttachMode the attach mode due to be set. - * - * @return KErrNone on success, KErrNotSupported if this request is not supported, - * or another error code to indicate the failure otherwise. - */ - { - TSYLOGENTRYEXIT; - TInt ret = KErrNotSupported; - return TSYLOGSETEXITERR(ret); - } // CLtsyPacketServicesHandler::HandleSetPacketAttachModeReqL - - -TInt CLtsyPacketServicesHandler::HandleNotifyPacketStatusChangeReqL() -/** - * This request is completed by invoking - * CCtsyDispatcherCallback::CallbackPacketServicesNotifyPacketStatusChangeComp() - * - * @return KErrNone on success, KErrNotSupported if this request is not supported, - * or another error code to indicate the failure otherwise. - */ - { - TSYLOGENTRYEXIT; - - TInt ret = KErrNotSupported; - return TSYLOGSETEXITERR(ret); - } // CLtsyPacketServicesHandler::HandleNotifyPacketStatusChangeReqL - - -TInt CLtsyPacketServicesHandler::HandleSetDefaultPdpContextGprsParamsReqL(const RPacketContext::TContextConfigGPRS& aContextConfigGprs) -/** - * This request is completed by invoking - * CCtsyDispatcherCallback::CallbackPacketServicesSetDefaultPdpContextParamsComp() - * - * @param aContextConfigGprs Default GPRS parameters - * @return KErrNone on success, KErrNotSupported if this request is not supported, - * or another error code to indicate the failure otherwise. - */ - { - TSYLOGENTRYEXIT; - TInt ret = 0; - SetDefaultContextConfigGPRS(&aContextConfigGprs); - iAsyncHelperRequest->SetRequestId(KLtsyDispatchPacketServicesSetDefaultPdpContextGprsParamsApiId); - return TSYLOGSETEXITERR(ret); - } // CLtsyPacketServicesHandler::HandleSetDefaultPdpContextGprsParamsReqL - -TInt CLtsyPacketServicesHandler::HandleSetDefaultPdpContextR99R4ParamsReqL(const RPacketContext::TContextConfigR99_R4& /*aContextConfigR99R4*/) -/** - * This request is completed by invoking - * CCtsyDispatcherCallback::CallbackPacketServicesSetDefaultPdpContextParamsComp() - * - * @param aContextConfigR99R4 Default R99/R4 parameters - * - * @return KErrNone on success, KErrNotSupported if this request is not supported, - * or another error code to indicate the failure otherwise. - */ - { - TSYLOGENTRYEXIT; - TInt ret = KErrNotSupported; - return TSYLOGSETEXITERR(ret); - } // CLtsyPacketServicesHandler::HandleSetDefaultPdpContextR99R4ParamsReqL - - - -TInt CLtsyPacketServicesHandler::HandleActivatePdpContextReqL(const TDesC& aContextName) -/** - * This request is completed by invoking - * CCtsyDispatcherCallback::CallbackPacketServicesActivatePdpContextComp() - * - * @param aContextName The context name. - * - * @return KErrNone on success, KErrNotSupported if this request is not supported, - * or another error code to indicate the failure otherwise. - */ - { - TSYLOGENTRYEXIT; - - LOGTEXTREL(_L8("pkt:activatectxt")); - TInt ret = KErrNotSupported; - ret = iGloblePhone->CheckGlobalPhoneStatus(); - if(KErrNone == ret) - { - TInt tmp = GetContext(aContextName); - if(tmp >= 0) - { - CActivatContextAndGetAddr* ActivatContextAndGetAddr = CActivatContextAndGetAddr::NewL(*iGloblePhone, iCtsyDispatcherCallback); - iGloblePhone->iEventSignalActive = ETrue; - ActivatContextAndGetAddr->SetContext(iGloblePhone->iContextList[tmp]->iContextID); - iGloblePhone->SetActiveRequest(ActivatContextAndGetAddr); - ActivatContextAndGetAddr->StartRequest(); - } - } - else - { - LOGTEXTREL2(_L8("pkt:err(%d) in activatectxt"), ret); - } - - return TSYLOGSETEXITERR(ret); - } // CLtsyPacketServicesHandler::HandleActivatePdpContextReqL - - -TInt CLtsyPacketServicesHandler::HandleSetPdpContextQosGprsReqL(const TDesC& aContextName, const RPacketQoS::TQoSGPRSRequested& aQoSConfig) -/** - * This request is completed by invoking - * CCtsyDispatcherCallback::CallbackPacketServicesSetPdpContextQosComp() - * - * @param aContextName the name of the context. - * @param aQoSConfig the QoS configuration parameters. - * - * @return KErrNone on success, KErrNotSupported if this request is not supported, - * or another error code to indicate the failure otherwise. - */ - { - TSYLOGENTRYEXIT; - - LOGTEXTREL(_L8("pkt:setctxtQos")); - TInt ret = KErrNotSupported; - ret = iGloblePhone->CheckGlobalPhoneStatus(); - if(KErrNone == ret) - { - TInt tmp = GetContext(aContextName); - if(tmp >= 0) - { - CATGprsSetProfileReq* ATGprsSetProfileReq = CATGprsSetProfileReq::NewL(*iGloblePhone, iCtsyDispatcherCallback); - iGloblePhone->iEventSignalActive = ETrue; - iGloblePhone->iContextList[tmp]->iQoSConfig = aQoSConfig; - ATGprsSetProfileReq->SetContext(iGloblePhone->iContextList[tmp]->iContextID); - iGloblePhone->SetActiveRequest(ATGprsSetProfileReq); - ATGprsSetProfileReq->StartRequest(); - } - } - else - { - LOGTEXTREL2(_L8("pkt:err(%d) in setctxtQos"), ret); - } - - return TSYLOGSETEXITERR(ret); - } // CLtsyPacketServicesHandler::HandleSetPdpContextQosGprsReqL - -TInt CLtsyPacketServicesHandler::HandleSetPdpContextQosR99R4ReqL(const TDesC& aContextName, const RPacketQoS::TQoSR99_R4Requested& /*aQoSConfig*/) -/** - * This request is completed by invoking - * CCtsyDispatcherCallback::CallbackPacketServicesSetPdpContextQosComp() - * - * @param aContextName The name of the context. - * @param aQoSConfig The QoS configuration parameters. - * - * @return KErrNone on success, KErrNotSupported if this request is not supported, - * or another error code to indicate the failure otherwise. - */ - { - TSYLOGENTRYEXIT; - - RPacketQoS::TQoSGPRSRequested qosGprsReq; - qosGprsReq.iReqPrecedence = RPacketQoS::EPriorityMediumPrecedence; - qosGprsReq.iMinPrecedence = RPacketQoS::EPriorityMediumPrecedence; - qosGprsReq.iReqDelay = RPacketQoS::EUnspecifiedDelayClass; - qosGprsReq.iMinDelay = RPacketQoS::EUnspecifiedDelayClass; - qosGprsReq.iReqReliability = RPacketQoS::EUnspecifiedReliabilityClass; - qosGprsReq.iMinReliability = RPacketQoS::EUnspecifiedReliabilityClass; - qosGprsReq.iReqPeakThroughput = RPacketQoS::EUnspecifiedPeakThroughput; - qosGprsReq.iMinPeakThroughput = RPacketQoS::EUnspecifiedPeakThroughput; - qosGprsReq.iReqMeanThroughput = RPacketQoS::EMeanThroughputBestEffort; - qosGprsReq.iMinMeanThroughput = RPacketQoS::EMeanThroughputBestEffort; - - return HandleSetPdpContextQosGprsReqL(aContextName, qosGprsReq); - } // CLtsyPacketServicesHandler::HandleSetPdpContextQosR99R4ReqL - -TInt CLtsyPacketServicesHandler::HandleSetPdpContextQosR5ReqL(const TDesC& aContextName, const RPacketQoS::TQoSR5Requested& /*aQoSConfig*/) -/** - * This request is completed by invoking - * CCtsyDispatcherCallback::CallbackPacketServicesSetPdpContextQosComp() - * - * @param aContextName The name of the context. - * @param aQoSConfig The QoS configuration parameters. - * - * @return KErrNone on success, KErrNotSupported if this request is not supported, - * or another error code to indicate the failure otherwise. - */ - { - TSYLOGENTRYEXIT; - - RPacketQoS::TQoSGPRSRequested qosGprsReq; - qosGprsReq.iReqPrecedence = RPacketQoS::EPriorityMediumPrecedence; - qosGprsReq.iMinPrecedence = RPacketQoS::EPriorityMediumPrecedence; - qosGprsReq.iReqDelay = RPacketQoS::EUnspecifiedDelayClass; - qosGprsReq.iMinDelay = RPacketQoS::EUnspecifiedDelayClass; - qosGprsReq.iReqReliability = RPacketQoS::EUnspecifiedReliabilityClass; - qosGprsReq.iMinReliability = RPacketQoS::EUnspecifiedReliabilityClass; - qosGprsReq.iReqPeakThroughput = RPacketQoS::EUnspecifiedPeakThroughput; - qosGprsReq.iMinPeakThroughput = RPacketQoS::EUnspecifiedPeakThroughput; - qosGprsReq.iReqMeanThroughput = RPacketQoS::EMeanThroughputBestEffort; - qosGprsReq.iMinMeanThroughput = RPacketQoS::EMeanThroughputBestEffort; - - return HandleSetPdpContextQosGprsReqL(aContextName, qosGprsReq); - } // CLtsyPacketServicesHandler::HandleSetPdpContextQosR5ReqL - - - -TInt CLtsyPacketServicesHandler::HandleRejectNetworkInitiatedContextActivationRequestReqL() -/** - * This request is completed by invoking - * CCtsyDispatcherCallback::CallbackPacketServicesRejectNetworkInitiatedContextActivationRequestComp() - * - * - * @return KErrNone on success, KErrNotSupported if this request is not supported, - * or another error code to indicate the failure otherwise. - */ - { - TSYLOGENTRYEXIT; - - TInt ret = KErrNotSupported; - - - return TSYLOGSETEXITERR(ret); - } // CLtsyPacketServicesHandler::HandleRejectNetworkInitiatedContextActivationRequestReqL - - -TInt CLtsyPacketServicesHandler::HandleDeactivatePdpContextReqL(const TDesC& aContextName) -/** - * This request is completed by invoking - * CCtsyDispatcherCallback::CallbackPacketServicesDeactivatePdpContextComp() - * - * @param aContextName The context name that is to be deactivated. - * - * @return KErrNone on success, KErrNotSupported if this request is not supported, - * or another error code to indicate the failure otherwise. - */ - { - TSYLOGENTRYEXIT; - LOGTEXTREL2(_L8("pkt:deact ctxt>%S<"),&aContextName); - TInt ret = KErrNotSupported; - - ret = iGloblePhone->CheckGlobalPhoneStatus(); - if(KErrNone == ret) - { - TInt tmp = GetContext(aContextName); - if(tmp >= 0) - { - CATGprsContextDeactivate* ATGprsContextDeactivate = CATGprsContextDeactivate::NewL(*iGloblePhone, iCtsyDispatcherCallback); - iGloblePhone->iEventSignalActive = ETrue; - ATGprsContextDeactivate->SetContext(iGloblePhone->iContextList[tmp]->iContextID); - iGloblePhone->SetActiveRequest(ATGprsContextDeactivate); - ATGprsContextDeactivate->StartRequest(); - ret = KErrNone; - } - else - { - LOGTEXTREL2(_L8("pkt:err(%d) in deact ctxt, not found"), tmp); - ret = KErrNotFound; - } - } - else - { - LOGTEXTREL2(_L8("pkt:err(%d) in deact ctxt"), ret); - } - - return TSYLOGSETEXITERR(ret); - } // CLtsyPacketServicesHandler::HandleDeactivatePdpContextReqL - -TInt CLtsyPacketServicesHandler::HandleAddPacketFilterSyncL(const TDesC& /*aContextName*/, CArrayFixFlat& /*aContextFilter*/) -/** - * This request is completed by invoking - * CCtsyDispatcherCallback::CallbackPacketServicesSetPdpContextConfigComp - * - * @param aContextName The name of the context. - * @param aContextFilter An array contains up to eight filters to be used - * for configuring the secondary context. - * - * @return KErrNone on success, KErrNotSupported if this request is not supported, - * or another error code to indicate the failure otherwise. - */ - { - TSYLOGENTRYEXIT; - - TInt ret = KErrNotSupported; - - return TSYLOGSETEXITERR(ret); - } // CLtsyPacketServicesHandler::HandleAddPacketFilterSyncL - - -TInt CLtsyPacketServicesHandler::HandleGetStatusReqL() -/** - * This request is completed by invoking - * CCtsyDispatcherCallback::CallbackPacketServicesGetStatus() - * - * @return KErrNone on success, KErrNotSupported if this request is not supported, - * or another error code to indicate the failure otherwise. - */ - { - TSYLOGENTRYEXIT; - TInt ret = 0; - iAsyncHelperRequest->SetRequestId(KLtsyDispatchPacketServicesGetStatusApiId); - - return TSYLOGSETEXITERR(ret); - } // CLtsyPacketServicesHandler::HandleGetStatusReqL - -TInt CLtsyPacketServicesHandler::HandleGetStaticCapabilitiesReqL() -/** - * This request is completed by invoking - * CCtsyDispatcherCallback::CallbackPacketServicesGetStaticCapabilitiesComp() - * - * @return KErrNone on success, KErrNotSupported if this request is not supported, - * or another error code to indicate the failure otherwise. - */ - { - TSYLOGENTRYEXIT; - TInt ret = 0; - iAsyncHelperRequest->SetRequestId(KLtsyDispatchPacketServicesGetStaticCapabilitiesApiId); - return TSYLOGSETEXITERR(ret); - } // CLtsyPacketServicesHandler::HandleGetStaticCapabilitiesReqL - -TInt CLtsyPacketServicesHandler::HandleGetMaxNoMonitoredServiceListsReqL() -/** - * This request is completed by invoking - * CCtsyDispatcherCallback::CallbackPacketServicesGetMaxNoMonitoredServiceListsComp() - * - * @return KErrNone on success, KErrNotSupported if this request is not supported, - * or another error code to indicate the failure otherwise. - */ - { - TSYLOGENTRYEXIT; - - TInt ret = 0; - iAsyncHelperRequest->SetRequestId(KLtsyDispatchPacketServicesGetMaxNoMonitoredServiceListsApiId); - return TSYLOGSETEXITERR(ret); - } // CLtsyPacketServicesHandler::HandleGetMaxNoMonitoredServiceListsReqL - -TInt CLtsyPacketServicesHandler::HandleGetMaxNoActiveServicesReqL() -/** - * This request is completed by invoking - * CCtsyDispatcherCallback::CallbackPacketServicesGetMaxNoActiveServicesComp() - * - * @return KErrNone on success, KErrNotSupported if this request is not supported, - * or another error code to indicate the failure otherwise. - */ - { - TSYLOGENTRYEXIT; - TInt ret = 0; - iAsyncHelperRequest->SetRequestId(KLtsyDispatchPacketServicesGetMaxNoActiveServicesApiId); - - return TSYLOGSETEXITERR(ret); - } // CLtsyPacketServicesHandler::HandleGetMaxNoActiveServicesReqL - -TInt CLtsyPacketServicesHandler::HandleInitialiseMbmsContextReqL(const TDesC& /*aContextName*/) -/** - * This request is completed by invoking - * CCtsyDispatcherCallback::CallbackPacketServicesInitialiseMbmsContextComp() - * - * @param aContextName The context name in the form of a character string - * the maximum length of the descriptor should not exceed KMaxInfoName. - * - * @return KErrNone on success, KErrNotSupported if this request is not supported, - * or another error code to indicate the failure otherwise. - */ - { - TSYLOGENTRYEXIT; - - TInt ret = KErrNotSupported; - - return TSYLOGSETEXITERR(ret); - } // CLtsyPacketServicesHandler::HandleInitialiseMbmsContextReqL - -TInt CLtsyPacketServicesHandler::HandleGetMbmsNetworkServiceStatusReqL(TBool /*aAttemptAttach*/) -/** - * This request is completed by invoking - * CCtsyDispatcherCallback::CallbackPacketServicesGetMbmsNetworkServiceStatusComp() - * - * @param aAttemptAttach If a GMM attached is to be perfomed. - * - * @return KErrNone on success, KErrNotSupported if this request is not supported, - * or another error code to indicate the failure otherwise. - */ - { - TSYLOGENTRYEXIT; - - TInt ret = KErrNotSupported; - - return TSYLOGSETEXITERR(ret); - } // CLtsyPacketServicesHandler::HandleGetMbmsNetworkServiceStatusReqL - -TInt CLtsyPacketServicesHandler::HandleUpdateMbmsMonitorServiceListsReqL(TMbmsAction /*aAction*/, const CPcktMbmsMonitoredServiceList& /*aServiceList*/, const CPcktMbmsMonitoredServiceList& /*aChangeList*/) -/** - * It is a request call that is completed by invoking - * CCtsyDispatcherCallback::CallbackPacketServicesUpdateMbmsMonitorServiceListComp() - * - * @param aAction The MBMS action (add, remove or remove all). - * @param aServiceList The current MBMS monitor service availability list as held by the CTSY. - * @param aChangeList The list of entries to be changed as per the action. (e.g. the action = Add, - * the change list will contain entries to be added to the MBMS monitor service availability list) - * - * @return KErrNone on success, otherwise another error code indicating the - * failure. - */ - { - TSYLOGENTRYEXIT; - - TInt ret = KErrNotSupported; - - return TSYLOGSETEXITERR(ret); - } // CLtsyPacketServicesHandler::HandleUpdateMbmsMonitorServiceListsReqL - - -TInt CLtsyPacketServicesHandler::HandleUpdateMbmsSessionListReqL(const TDesC& /*aContextName*/, TMbmsAction /*aAction*/, TMbmsSessionId /*aSessionId*/, const TMbmsSessionIdList& /*aServiceList*/) -/** - * It is a request call that is completed by invoking - * CCtsyDispatcherCallback::CallbackPacketServicesUpdateMbmsSessionListComp() - * - * @param aContextName The MBMS context name in the form of a character string. - * @param aAction The action to be performed (add, remove or remove all). - * @param aSessionId The MBMS session identifier which needs to be received or removed. - * @param aServiceList The MBMS services table as held by the CTSY. - * - * @return KErrNone on success, otherwise another error code indicating the - * failure. - */ - { - TSYLOGENTRYEXIT; - - TInt ret = KErrNotSupported; - - return TSYLOGSETEXITERR(ret); - } // CLtsyPacketServicesHandler::HandleUpdateMbmsSessionListReqL - - -TInt CLtsyPacketServicesHandler::HandleRemovePacketFilterSyncL(const TDesC& /*aContextName*/, TInt /*aFilterId*/) -/** - * This request is completed by invoking - * CCtsyDispatcherCallback::CallbackPacketServicesSetPdpContextConfigComp - * - * @param aContextName The name of the context. - * @param aFilterId The filter Id to be removed. - * - * @return KErrNone on success, KErrNotSupported if this request is not supported, - * or another error code to indicate the failure otherwise. - */ - { - TSYLOGENTRYEXIT; - - TInt ret = KErrNotSupported; - - return TSYLOGSETEXITERR(ret); - } // CLtsyPacketServicesHandler::HandleRemovePacketFilterSyncL - -TInt CLtsyPacketServicesHandler::MaxNumberOfContexts() -/** - * This function returns the maximum number of contexts that the phone supports. - */ - { - return iGloblePhone->iPhoneStatus.iGprsMaxNumContexts; - } -TInt CLtsyPacketServicesHandler::GetContext(const TDesC& aName) -/** - * This function returns a specific context - * @param aCount context to Retrieve in linked list. - */ - { - TInt index = -1; - TInt count = iGloblePhone->iContextList.Count(); - for(TInt i = 0; i < count; i++) - { - if(0 ==(iGloblePhone->iContextList[i]->iInfo.iName.Compare(aName))) - { - index = i; - } - } - - LOGTEXT3(_L8("[Ltsy Pkt] iContext->ContextName() >%S<, index=%d"), &aName, index); - return index; - } - -TInt CLtsyPacketServicesHandler::GenerateNewContextCid(const TDesC& /*aName*/) -/** - * This function generates a unique context name and the first not taken cid number. - * There is a 1 to 1 mapping between this Cid and the one in the phone. - * In order to do this we need to check all existing Cids, since they may not - * be in conical order and there can be holes in the list(3,1,4,6,5) we need - * to loop around and find the lowest that we can use to create a name and a new - * Cid. - * @param aName New name that is generated. - * @param aCid New context id. - */ - { - TInt lowestAvailableCid = 1; - TInt count = iGloblePhone->iContextList.Count(); - if(count != 0 ) - { - // There can be gaps between the Cids that the tsy has, so get the - // Cid number between them, if any. This nested for loop will find - // the lowest available cid there is. - for(TInt k = 0; k < count;k++) - { - for(TInt i = 0; i < count;i++) - { - if(iGloblePhone->iContextList[i]->iContextID == lowestAvailableCid) - ++lowestAvailableCid; - } - } - } - return lowestAvailableCid; - } - -void CLtsyPacketServicesHandler::SetDefaultContextConfigGPRS(const RPacketContext::TContextConfigGPRS* aContextConfig) -/** - * This function sets the default context configuration. - * - * @param aContextConfigV01 Set default context configuration. - */ - { - iDefContextConfigGPRS.iPdpType = aContextConfig->iPdpType; - iDefContextConfigGPRS.iAccessPointName.Copy(aContextConfig->iAccessPointName); - iDefContextConfigGPRS.iPdpAddress.Copy(aContextConfig->iPdpAddress); - iDefContextConfigGPRS.iPdpCompression = aContextConfig->iPdpCompression; - iDefContextConfigGPRS.iAnonymousAccessReqd = aContextConfig->iAnonymousAccessReqd; - } -// -// End of file