telephonyserverplugins/ctsydispatchlayer/src/csupplementaryservicesdispatcher.cpp
changeset 0 3553901f7fa8
child 19 630d2f34d719
equal deleted inserted replaced
-1:000000000000 0:3553901f7fa8
       
     1 // Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
       
     2 // All rights reserved.
       
     3 // This component and the accompanying materials are made available
       
     4 // under the terms of "Eclipse Public License v1.0"
       
     5 // which accompanies this distribution, and is available
       
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     7 //
       
     8 // Initial Contributors:
       
     9 // Nokia Corporation - initial contribution.
       
    10 //
       
    11 // Contributors:
       
    12 //
       
    13 // Description:
       
    14 //
       
    15 
       
    16 #include "csupplementaryservicesdispatcher.h"
       
    17 
       
    18 #include <ctsy/ltsy/mltsydispatchsupplementaryservicesinterface.h>
       
    19 #include <ctsy/pluginapi/mmmessagemanagercallback.h>
       
    20 #include <ctsy/serviceapi/mmtsy_ipcdefs.h>
       
    21 #include <mmlist.h>
       
    22 #include <ctsy/rmmcustomapi.h>
       
    23 
       
    24 
       
    25 #include <ctsy/ltsy/ltsylogger.h>
       
    26 #include "ctsydispatcherpanic.h"
       
    27 #include "tdispatcherholder.h"
       
    28 
       
    29 CSupplementaryServicesDispatcher::CSupplementaryServicesDispatcher(
       
    30 		MLtsyDispatchFactoryV1& aLtsyFactory,
       
    31 		MmMessageManagerCallback& aMessageManagerCallback,
       
    32 		CRequestQueueOneShot& aRequestAsyncOneShot)
       
    33 	: 	iLtsyFactoryV1(aLtsyFactory),
       
    34 		iMessageManagerCallback(aMessageManagerCallback),
       
    35 		iRequestAsyncOneShot(aRequestAsyncOneShot)
       
    36 	{
       
    37 	} // CSupplementaryServicesDispatcher::CSupplementaryServicesDispatcher
       
    38 
       
    39 	  
       
    40 CSupplementaryServicesDispatcher::~CSupplementaryServicesDispatcher()
       
    41 	{
       
    42 	} // CSupplementaryServicesDispatcher::~CSupplementaryServicesDispatcher
       
    43 
       
    44 
       
    45 CSupplementaryServicesDispatcher* CSupplementaryServicesDispatcher::NewLC(
       
    46 	MLtsyDispatchFactoryV1& aLtsyFactory,
       
    47 	MmMessageManagerCallback& aMessageManagerCallback,
       
    48 	CRequestQueueOneShot& aRequestAsyncOneShot)
       
    49 	{
       
    50 	TSYLOGENTRYEXIT;
       
    51 	CSupplementaryServicesDispatcher* self =
       
    52 		new (ELeave) CSupplementaryServicesDispatcher(aLtsyFactory, aMessageManagerCallback, aRequestAsyncOneShot);
       
    53 	CleanupStack::PushL(self);
       
    54 	self->ConstructL();
       
    55 	return self;
       
    56 	} // CSupplementaryServicesDispatcher::NewLC
       
    57 
       
    58 
       
    59 CSupplementaryServicesDispatcher* CSupplementaryServicesDispatcher::NewL(
       
    60 	MLtsyDispatchFactoryV1& aLtsyFactory,
       
    61 	MmMessageManagerCallback& aMessageManagerCallback,
       
    62 	CRequestQueueOneShot& aRequestAsyncOneShot)
       
    63 	{
       
    64 	TSYLOGENTRYEXIT;
       
    65 	CSupplementaryServicesDispatcher* self =
       
    66 		CSupplementaryServicesDispatcher::NewLC(aLtsyFactory, aMessageManagerCallback, aRequestAsyncOneShot);
       
    67 	CleanupStack::Pop (self);
       
    68 	return self;
       
    69 	} // CSupplementaryServicesDispatcher::NewL
       
    70 
       
    71 
       
    72 void CSupplementaryServicesDispatcher::ConstructL()
       
    73 /**
       
    74  * Second phase constructor.
       
    75  */
       
    76 	{
       
    77 	TSYLOGENTRYEXIT;
       
    78 	
       
    79 	// Get the Licensee LTSY interfaces related to SupplementaryServices functionality
       
    80 	// from the factory
       
    81 	
       
    82 	
       
    83 	if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSupplementaryServicesFuncUnitId, MLtsyDispatchSupplementaryServicesSendNetworkServiceRequestNoFdnCheck::KLtsyDispatchSupplementaryServicesSendNetworkServiceRequestNoFdnCheckApiId))
       
    84 		{
       
    85 		TAny* sendNetworkServiceRequestNoFdnCheckInterface = NULL;
       
    86 		iLtsyFactoryV1.GetDispatchHandler(
       
    87 		       	MLtsyDispatchSupplementaryServicesSendNetworkServiceRequestNoFdnCheck::KLtsyDispatchSupplementaryServicesSendNetworkServiceRequestNoFdnCheckApiId,
       
    88 		       	sendNetworkServiceRequestNoFdnCheckInterface);
       
    89 		iLtsyDispatchSupplementaryServicesSendNetworkServiceRequestNoFdnCheck =
       
    90 				static_cast<MLtsyDispatchSupplementaryServicesSendNetworkServiceRequestNoFdnCheck*>(sendNetworkServiceRequestNoFdnCheckInterface);
       
    91         __ASSERT_DEBUG(iLtsyDispatchSupplementaryServicesSendNetworkServiceRequestNoFdnCheck, CtsyDispatcherPanic(EInvalidNullPtr));
       
    92   		}
       
    93 	
       
    94 	if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSupplementaryServicesFuncUnitId, MLtsyDispatchSupplementaryServicesGetCallWaitingStatus::KLtsyDispatchSupplementaryServicesGetCallWaitingStatusApiId))
       
    95 		{
       
    96 		TAny* getCallWaitingStatusInterface = NULL;
       
    97 		iLtsyFactoryV1.GetDispatchHandler(
       
    98 		       	MLtsyDispatchSupplementaryServicesGetCallWaitingStatus::KLtsyDispatchSupplementaryServicesGetCallWaitingStatusApiId,
       
    99 		       	getCallWaitingStatusInterface);
       
   100 		iLtsyDispatchSupplementaryServicesGetCallWaitingStatus =
       
   101 				static_cast<MLtsyDispatchSupplementaryServicesGetCallWaitingStatus*>(getCallWaitingStatusInterface);
       
   102         __ASSERT_DEBUG(iLtsyDispatchSupplementaryServicesGetCallWaitingStatus, CtsyDispatcherPanic(EInvalidNullPtr));
       
   103   		}
       
   104 	
       
   105 	if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSupplementaryServicesFuncUnitId, MLtsyDispatchSupplementaryServicesSendNetworkServiceRequest::KLtsyDispatchSupplementaryServicesSendNetworkServiceRequestApiId))
       
   106 		{
       
   107 		TAny* sendNetworkServiceRequestInterface = NULL;
       
   108 		iLtsyFactoryV1.GetDispatchHandler(
       
   109 		       	MLtsyDispatchSupplementaryServicesSendNetworkServiceRequest::KLtsyDispatchSupplementaryServicesSendNetworkServiceRequestApiId,
       
   110 		       	sendNetworkServiceRequestInterface);
       
   111 		iLtsyDispatchSupplementaryServicesSendNetworkServiceRequest =
       
   112 				static_cast<MLtsyDispatchSupplementaryServicesSendNetworkServiceRequest*>(sendNetworkServiceRequestInterface);
       
   113         __ASSERT_DEBUG(iLtsyDispatchSupplementaryServicesSendNetworkServiceRequest, CtsyDispatcherPanic(EInvalidNullPtr));
       
   114   		}
       
   115 	
       
   116 	if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSupplementaryServicesFuncUnitId, MLtsyDispatchSupplementaryServicesGetCallBarringStatus::KLtsyDispatchSupplementaryServicesGetCallBarringStatusApiId))
       
   117 		{
       
   118 		TAny* getCallBarringStatusInterface = NULL;
       
   119 		iLtsyFactoryV1.GetDispatchHandler(
       
   120 		       	MLtsyDispatchSupplementaryServicesGetCallBarringStatus::KLtsyDispatchSupplementaryServicesGetCallBarringStatusApiId,
       
   121 		       	getCallBarringStatusInterface);
       
   122 		iLtsyDispatchSupplementaryServicesGetCallBarringStatus =
       
   123 				static_cast<MLtsyDispatchSupplementaryServicesGetCallBarringStatus*>(getCallBarringStatusInterface);
       
   124         __ASSERT_DEBUG(iLtsyDispatchSupplementaryServicesGetCallBarringStatus, CtsyDispatcherPanic(EInvalidNullPtr));
       
   125   		}
       
   126 	
       
   127 	if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSupplementaryServicesFuncUnitId, MLtsyDispatchSupplementaryServicesSetCallBarringStatus::KLtsyDispatchSupplementaryServicesSetCallBarringStatusApiId))
       
   128 		{
       
   129 		TAny* setCallBarringStatusInterface = NULL;
       
   130 		iLtsyFactoryV1.GetDispatchHandler(
       
   131 		       	MLtsyDispatchSupplementaryServicesSetCallBarringStatus::KLtsyDispatchSupplementaryServicesSetCallBarringStatusApiId,
       
   132 		       	setCallBarringStatusInterface);
       
   133 		iLtsyDispatchSupplementaryServicesSetCallBarringStatus =
       
   134 				static_cast<MLtsyDispatchSupplementaryServicesSetCallBarringStatus*>(setCallBarringStatusInterface);
       
   135         __ASSERT_DEBUG(iLtsyDispatchSupplementaryServicesSetCallBarringStatus, CtsyDispatcherPanic(EInvalidNullPtr));
       
   136   		}
       
   137 	
       
   138 	if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSupplementaryServicesFuncUnitId, MLtsyDispatchSupplementaryServicesSetCallForwardingStatus::KLtsyDispatchSupplementaryServicesSetCallForwardingStatusApiId))
       
   139 		{
       
   140 		TAny* setCallForwardingStatusInterface = NULL;
       
   141 		iLtsyFactoryV1.GetDispatchHandler(
       
   142 		       	MLtsyDispatchSupplementaryServicesSetCallForwardingStatus::KLtsyDispatchSupplementaryServicesSetCallForwardingStatusApiId,
       
   143 		       	setCallForwardingStatusInterface);
       
   144 		iLtsyDispatchSupplementaryServicesSetCallForwardingStatus =
       
   145 				static_cast<MLtsyDispatchSupplementaryServicesSetCallForwardingStatus*>(setCallForwardingStatusInterface);
       
   146         __ASSERT_DEBUG(iLtsyDispatchSupplementaryServicesSetCallForwardingStatus, CtsyDispatcherPanic(EInvalidNullPtr));
       
   147   		}
       
   148 	
       
   149 	if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSupplementaryServicesFuncUnitId, MLtsyDispatchSupplementaryServicesSetCallWaitingStatus::KLtsyDispatchSupplementaryServicesSetCallWaitingStatusApiId))
       
   150 		{
       
   151 		TAny* setCallWaitingStatusInterface = NULL;
       
   152 		iLtsyFactoryV1.GetDispatchHandler(
       
   153 		       	MLtsyDispatchSupplementaryServicesSetCallWaitingStatus::KLtsyDispatchSupplementaryServicesSetCallWaitingStatusApiId,
       
   154 		       	setCallWaitingStatusInterface);
       
   155 		iLtsyDispatchSupplementaryServicesSetCallWaitingStatus =
       
   156 				static_cast<MLtsyDispatchSupplementaryServicesSetCallWaitingStatus*>(setCallWaitingStatusInterface);
       
   157         __ASSERT_DEBUG(iLtsyDispatchSupplementaryServicesSetCallWaitingStatus, CtsyDispatcherPanic(EInvalidNullPtr));
       
   158   		}
       
   159 	
       
   160 	if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSupplementaryServicesFuncUnitId, MLtsyDispatchSupplementaryServicesSetSsPassword::KLtsyDispatchSupplementaryServicesSetSsPasswordApiId))
       
   161 		{
       
   162 		TAny* setSsPasswordInterface = NULL;
       
   163 		iLtsyFactoryV1.GetDispatchHandler(
       
   164 		       	MLtsyDispatchSupplementaryServicesSetSsPassword::KLtsyDispatchSupplementaryServicesSetSsPasswordApiId,
       
   165 		       	setSsPasswordInterface);
       
   166 		iLtsyDispatchSupplementaryServicesSetSsPassword =
       
   167 				static_cast<MLtsyDispatchSupplementaryServicesSetSsPassword*>(setSsPasswordInterface);
       
   168         __ASSERT_DEBUG(iLtsyDispatchSupplementaryServicesSetSsPassword, CtsyDispatcherPanic(EInvalidNullPtr));
       
   169   		}
       
   170 	
       
   171 	if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSupplementaryServicesFuncUnitId, MLtsyDispatchSupplementaryServicesGetCallForwardingStatus::KLtsyDispatchSupplementaryServicesGetCallForwardingStatusApiId))
       
   172 		{
       
   173 		TAny* getCallForwardingStatusInterface = NULL;
       
   174 		iLtsyFactoryV1.GetDispatchHandler(
       
   175 		       	MLtsyDispatchSupplementaryServicesGetCallForwardingStatus::KLtsyDispatchSupplementaryServicesGetCallForwardingStatusApiId,
       
   176 		       	getCallForwardingStatusInterface);
       
   177 		iLtsyDispatchSupplementaryServicesGetCallForwardingStatus =
       
   178 				static_cast<MLtsyDispatchSupplementaryServicesGetCallForwardingStatus*>(getCallForwardingStatusInterface);
       
   179         __ASSERT_DEBUG(iLtsyDispatchSupplementaryServicesGetCallForwardingStatus, CtsyDispatcherPanic(EInvalidNullPtr));
       
   180   		}
       
   181 	
       
   182 	if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSupplementaryServicesFuncUnitId, MLtsyDispatchSupplementaryServicesSendUssdMessage::KLtsyDispatchSupplementaryServicesSendUssdMessageApiId))
       
   183 		{
       
   184 		TAny* sendUssdMessageInterface = NULL;
       
   185 		iLtsyFactoryV1.GetDispatchHandler(
       
   186 		       	MLtsyDispatchSupplementaryServicesSendUssdMessage::KLtsyDispatchSupplementaryServicesSendUssdMessageApiId,
       
   187 		       	sendUssdMessageInterface);
       
   188 		iLtsyDispatchSupplementaryServicesSendUssdMessage =
       
   189 				static_cast<MLtsyDispatchSupplementaryServicesSendUssdMessage*>(sendUssdMessageInterface);
       
   190         __ASSERT_DEBUG(iLtsyDispatchSupplementaryServicesSendUssdMessage, CtsyDispatcherPanic(EInvalidNullPtr));
       
   191   		}
       
   192 	
       
   193 	if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSupplementaryServicesFuncUnitId, MLtsyDispatchSupplementaryServicesSendUssdMessageNoFdnCheck::KLtsyDispatchSupplementaryServicesSendUssdMessageNoFdnCheckApiId))
       
   194 		{
       
   195 		TAny* sendUssdMessageNoFdnCheckInterface = NULL;
       
   196 		iLtsyFactoryV1.GetDispatchHandler(
       
   197 		       	MLtsyDispatchSupplementaryServicesSendUssdMessageNoFdnCheck::KLtsyDispatchSupplementaryServicesSendUssdMessageNoFdnCheckApiId,
       
   198 		       	sendUssdMessageNoFdnCheckInterface);
       
   199 		iLtsyDispatchSupplementaryServicesSendUssdMessageNoFdnCheck =
       
   200 				static_cast<MLtsyDispatchSupplementaryServicesSendUssdMessageNoFdnCheck*>(sendUssdMessageNoFdnCheckInterface);
       
   201         __ASSERT_DEBUG(iLtsyDispatchSupplementaryServicesSendUssdMessageNoFdnCheck, CtsyDispatcherPanic(EInvalidNullPtr));
       
   202   		}
       
   203 	
       
   204 	if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSupplementaryServicesFuncUnitId, MLtsyDispatchSupplementaryServicesSendUssdRelease::KLtsyDispatchSupplementaryServicesSendUssdReleaseApiId))
       
   205 		{
       
   206 		TAny* sendUssdReleaseInterface = NULL;
       
   207 		iLtsyFactoryV1.GetDispatchHandler(
       
   208 		       	MLtsyDispatchSupplementaryServicesSendUssdRelease::KLtsyDispatchSupplementaryServicesSendUssdReleaseApiId,
       
   209 		       	sendUssdReleaseInterface);
       
   210 		iLtsyDispatchSupplementaryServicesSendUssdRelease =
       
   211 				static_cast<MLtsyDispatchSupplementaryServicesSendUssdRelease*>(sendUssdReleaseInterface);
       
   212         __ASSERT_DEBUG(iLtsyDispatchSupplementaryServicesSendUssdRelease, CtsyDispatcherPanic(EInvalidNullPtr));
       
   213   		}
       
   214 	
       
   215 	if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchSupplementaryServicesFuncUnitId, MLtsyDispatchSupplementaryServicesClearBlacklist::KLtsyDispatchSupplementaryServicesClearBlacklistApiId))
       
   216 		{
       
   217 		TAny* clearBlacklistInterface = NULL;
       
   218 		iLtsyFactoryV1.GetDispatchHandler(
       
   219 		       	MLtsyDispatchSupplementaryServicesClearBlacklist::KLtsyDispatchSupplementaryServicesClearBlacklistApiId,
       
   220 		       	clearBlacklistInterface);
       
   221 		iLtsyDispatchSupplementaryServicesClearBlacklist =
       
   222 				static_cast<MLtsyDispatchSupplementaryServicesClearBlacklist*>(clearBlacklistInterface);
       
   223         __ASSERT_DEBUG(iLtsyDispatchSupplementaryServicesClearBlacklist, CtsyDispatcherPanic(EInvalidNullPtr));
       
   224   		}
       
   225 	
       
   226 	} // CSupplementaryServicesDispatcher::ConstructL
       
   227 
       
   228 void CSupplementaryServicesDispatcher::SetDispatcherHolder(TDispatcherHolder& aDispatcherHolder)
       
   229 /**
       
   230  * Set the dispatcher holder.  
       
   231  * 
       
   232  * @param aDispatcherHolder Reference to dispatcher holder.
       
   233  */
       
   234 	{
       
   235 	TSYLOGENTRYEXIT;
       
   236 	
       
   237 	iDispatcherHolder = &aDispatcherHolder;
       
   238 	} // CSupplementaryServicesDispatcher::SetDispatcherHolder
       
   239 
       
   240 TInt CSupplementaryServicesDispatcher::DispatchSendNetworkServiceRequestNoFdnCheckL(const CMmDataPackage* aDataPackage)
       
   241 /**
       
   242  * Unpack data related to EMobilePhoneSendNetworkServiceRequestNoFdnCheck
       
   243  * and pass request on to Licensee LTSY.
       
   244  *
       
   245  * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
       
   246  * the Licensee LTSY does not support this request.
       
   247  */
       
   248 	{
       
   249 	TSYLOGENTRYEXIT;
       
   250 	TInt ret = KErrNotSupported;
       
   251 
       
   252 	__ASSERT_DEBUG(aDataPackage, CtsyDispatcherPanic(EInvalidNullPtr));
       
   253 
       
   254 	// Call Handle... method in Licensee LTSY
       
   255 	if (iLtsyDispatchSupplementaryServicesSendNetworkServiceRequestNoFdnCheck)
       
   256 		{
       
   257 		const TDesC* request;
       
   258 		aDataPackage->UnPackData(request);
       
   259 		ret = iLtsyDispatchSupplementaryServicesSendNetworkServiceRequestNoFdnCheck->HandleSendNetworkServiceRequestNoFdnCheckReqL(*request);
       
   260 		}
       
   261 
       
   262 	return TSYLOGSETEXITERR(ret);
       
   263 	} // CSupplementaryServicesDispatcher::DispatchSendNetworkServiceRequestNoFdnCheckL
       
   264 
       
   265 TInt CSupplementaryServicesDispatcher::DispatchGetCallWaitingStatusL()
       
   266 /**
       
   267  * Pass EMobilePhoneGetWaitingStatusPhase1 request on to Licensee LTSY.
       
   268  *
       
   269  * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
       
   270  * the Licensee LTSY does not support this request.
       
   271  */
       
   272 	{
       
   273 	TSYLOGENTRYEXIT;
       
   274 	TInt ret = KErrNotSupported;
       
   275 
       
   276 	// Call Handle... method in Licensee LTSY
       
   277 	if (iLtsyDispatchSupplementaryServicesGetCallWaitingStatus)
       
   278 		{
       
   279 		ret = iLtsyDispatchSupplementaryServicesGetCallWaitingStatus->HandleGetCallWaitingStatusReqL();
       
   280 		}
       
   281 
       
   282 	return TSYLOGSETEXITERR(ret);
       
   283 	} // CSupplementaryServicesDispatcher::DispatchGetCallWaitingStatusL
       
   284 
       
   285 TInt CSupplementaryServicesDispatcher::DispatchSendNetworkServiceRequestL(const CMmDataPackage* aDataPackage)
       
   286 /**
       
   287  * Unpack data related to EMobilePhoneSendNetworkServiceRequest
       
   288  * and pass request on to Licensee LTSY.
       
   289  *
       
   290  * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
       
   291  * the Licensee LTSY does not support this request.
       
   292  */
       
   293 	{
       
   294 	TSYLOGENTRYEXIT;
       
   295 	TInt ret = KErrNotSupported;
       
   296 
       
   297 	__ASSERT_DEBUG(aDataPackage, CtsyDispatcherPanic(EInvalidNullPtr));
       
   298 
       
   299 	// Call Handle... method in Licensee LTSY
       
   300 	if (iLtsyDispatchSupplementaryServicesSendNetworkServiceRequest)
       
   301 		{
       
   302 		const TDesC* request;
       
   303 		aDataPackage->UnPackData(request);
       
   304 		ret = iLtsyDispatchSupplementaryServicesSendNetworkServiceRequest->HandleSendNetworkServiceRequestReqL(*request);
       
   305 		}
       
   306 
       
   307 	return TSYLOGSETEXITERR(ret);
       
   308 	} // CSupplementaryServicesDispatcher::DispatchSendNetworkServiceRequestL
       
   309 
       
   310 TInt CSupplementaryServicesDispatcher::DispatchGetCallBarringStatusL(const CMmDataPackage* aDataPackage)
       
   311 /**
       
   312  * Unpack data related to EMobilePhoneGetBarringStatusPhase1
       
   313  * and pass request on to Licensee LTSY.
       
   314  *
       
   315  * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
       
   316  * the Licensee LTSY does not support this request.
       
   317  */
       
   318 	{
       
   319 	TSYLOGENTRYEXIT;
       
   320 	TInt ret = KErrNotSupported;
       
   321 
       
   322     __ASSERT_DEBUG(aDataPackage, CtsyDispatcherPanic(EInvalidNullPtr));
       
   323 
       
   324 	// Call Handle... method in Licensee LTSY
       
   325 	if (iLtsyDispatchSupplementaryServicesGetCallBarringStatus)
       
   326 		{
       
   327 		RMobilePhone::TMobilePhoneCBCondition condition;
       
   328 		aDataPackage->UnPackData(condition);
       
   329 		ret = iLtsyDispatchSupplementaryServicesGetCallBarringStatus->HandleGetCallBarringStatusReqL(condition);
       
   330 		}
       
   331 
       
   332 	return TSYLOGSETEXITERR(ret);
       
   333 	} // CSupplementaryServicesDispatcher::DispatchGetCallBarringStatusL
       
   334 
       
   335 TInt CSupplementaryServicesDispatcher::DispatchSetCallBarringStatusL(const CMmDataPackage* aDataPackage)
       
   336 /**
       
   337  * Unpack data related to EMobilePhoneSetCallBarringStatus
       
   338  * and pass request on to Licensee LTSY.
       
   339  *
       
   340  * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
       
   341  * the Licensee LTSY does not support this request.
       
   342  */
       
   343 	{
       
   344 	TSYLOGENTRYEXIT;
       
   345 	TInt ret = KErrNotSupported;
       
   346 
       
   347     __ASSERT_DEBUG(aDataPackage, CtsyDispatcherPanic(EInvalidNullPtr));
       
   348 
       
   349 	// Call Handle... method in Licensee LTSY
       
   350 	if (iLtsyDispatchSupplementaryServicesSetCallBarringStatus)
       
   351 		{
       
   352 		RMobilePhone::TMobilePhoneCBCondition condition;
       
   353 		RMobilePhone::TMobilePhoneCBChangeV1* info;
       
   354 		aDataPackage->UnPackData(condition, info);
       
   355 		ret = iLtsyDispatchSupplementaryServicesSetCallBarringStatus->HandleSetCallBarringStatusReqL(condition,
       
   356 				info->iAction, info->iServiceGroup, info->iPassword);
       
   357 		}
       
   358 
       
   359 	return TSYLOGSETEXITERR(ret);
       
   360 	} // CSupplementaryServicesDispatcher::DispatchSetCallBarringStatusL
       
   361 
       
   362 TInt CSupplementaryServicesDispatcher::DispatchSetCallForwardingStatusL(const CMmDataPackage* aDataPackage)
       
   363 /**
       
   364  * Unpack data related to EMobilePhoneSetCallForwardingStatus
       
   365  * and pass request on to Licensee LTSY.
       
   366  *
       
   367  * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
       
   368  * the Licensee LTSY does not support this request.
       
   369  */
       
   370 	{
       
   371 	TSYLOGENTRYEXIT;
       
   372 	TInt ret = KErrNotSupported;
       
   373 
       
   374 	__ASSERT_DEBUG(aDataPackage, CtsyDispatcherPanic(EInvalidNullPtr));
       
   375 
       
   376 	// Call Handle... method in Licensee LTSY
       
   377 	if (iLtsyDispatchSupplementaryServicesSetCallForwardingStatus)
       
   378 		{
       
   379 		RMobilePhone::TMobilePhoneCFCondition condition;
       
   380 		RMobilePhone::TMobilePhoneCFChangeV1* info;
       
   381 		aDataPackage->UnPackData(condition, info);
       
   382 		ret = iLtsyDispatchSupplementaryServicesSetCallForwardingStatus->HandleSetCallForwardingStatusReqL(condition,
       
   383 				info->iServiceGroup,info->iAction,
       
   384 				info->iNumber.iTelNumber,info->iTimeout);
       
   385 		}
       
   386 
       
   387 	return TSYLOGSETEXITERR(ret);
       
   388 	} // CSupplementaryServicesDispatcher::DispatchSetCallForwardingStatusL
       
   389 
       
   390 TInt CSupplementaryServicesDispatcher::DispatchSetCallWaitingStatusL(const CMmDataPackage* aDataPackage)
       
   391 /**
       
   392  * Unpack data related to EMobilePhoneSetCallWaitingStatus
       
   393  * and pass request on to Licensee LTSY.
       
   394  *
       
   395  * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
       
   396  * the Licensee LTSY does not support this request.
       
   397  */
       
   398 	{
       
   399 	TSYLOGENTRYEXIT;
       
   400 	TInt ret = KErrNotSupported;
       
   401 
       
   402     __ASSERT_DEBUG(aDataPackage, CtsyDispatcherPanic(EInvalidNullPtr));
       
   403 
       
   404 	// Call Handle... method in Licensee LTSY
       
   405 	if (iLtsyDispatchSupplementaryServicesSetCallWaitingStatus)
       
   406 		{
       
   407 		RMobilePhone::TMobileService service;
       
   408 		RMobilePhone::TMobilePhoneServiceAction action;
       
   409 		aDataPackage->UnPackData(service, action);
       
   410 		ret = iLtsyDispatchSupplementaryServicesSetCallWaitingStatus->HandleSetCallWaitingStatusReqL(service, action);
       
   411 		}
       
   412 
       
   413 	return TSYLOGSETEXITERR(ret);
       
   414 	} // CSupplementaryServicesDispatcher::DispatchSetCallWaitingStatusL
       
   415 
       
   416 TInt CSupplementaryServicesDispatcher::DispatchSetSsPasswordL(const CMmDataPackage* aDataPackage)
       
   417 /**
       
   418  * Unpack data related to EMobilePhoneSetSSPassword
       
   419  * and pass request on to Licensee LTSY.
       
   420  *
       
   421  * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
       
   422  * the Licensee LTSY does not support this request.
       
   423  */
       
   424 	{
       
   425 	TSYLOGENTRYEXIT;
       
   426 	TInt ret = KErrNotSupported;
       
   427 
       
   428 	__ASSERT_DEBUG(aDataPackage, CtsyDispatcherPanic(EInvalidNullPtr));
       
   429 
       
   430 	// Call Handle... method in Licensee LTSY
       
   431 	if (iLtsyDispatchSupplementaryServicesSetSsPassword)
       
   432 		{
       
   433 		RMobilePhone::TMobilePhonePasswordChangeV2* password = NULL;
       
   434 		TUint16* services = NULL;
       
   435 		aDataPackage->UnPackData(&password, &services);
       
   436 			
       
   437 		__ASSERT_DEBUG(password, CtsyDispatcherPanic(EInvalidNullPtr));
       
   438 		__ASSERT_DEBUG(services, CtsyDispatcherPanic(EInvalidNullPtr));
       
   439 		
       
   440 		//may only come down from the CTSY as hardcoded values of 0 or 330
       
   441 		//"Password for Barring Services" = 330 
       
   442 	    //"Common Password for All Appropriate Services" = 0
       
   443 		__ASSERT_DEBUG(*services == 0 || *services == 330, CtsyDispatcherPanic(EInvalidNullPtr));
       
   444 			
       
   445 		MLtsyDispatchSupplementaryServicesSetSsPassword::TServiceType serviceType 
       
   446 			= static_cast<MLtsyDispatchSupplementaryServicesSetSsPassword::TServiceType>(*services);
       
   447 
       
   448 		if(password->iNewPassword != password->iVerifiedPassword)
       
   449 			{
       
   450 			ret = KErrArgument;
       
   451 			}
       
   452 		else
       
   453 			{
       
   454 			ret = iLtsyDispatchSupplementaryServicesSetSsPassword->HandleSetSsPasswordReqL(password->iOldPassword, password->iNewPassword, serviceType);
       
   455 			}
       
   456 		}
       
   457 
       
   458 	return TSYLOGSETEXITERR(ret);
       
   459 	} // CSupplementaryServicesDispatcher::DispatchSetSsPasswordL
       
   460 
       
   461 TInt CSupplementaryServicesDispatcher::DispatchGetCallForwardingStatusL(const CMmDataPackage* aDataPackage)
       
   462 /**
       
   463  * Unpack data related to EMobilePhoneGetCallForwardingStatusPhase1
       
   464  * and pass request on to Licensee LTSY.
       
   465  *
       
   466  * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
       
   467  * the Licensee LTSY does not support this request.
       
   468  */
       
   469 	{
       
   470 	TSYLOGENTRYEXIT;
       
   471 	TInt ret = KErrNotSupported;
       
   472 
       
   473 	__ASSERT_DEBUG(aDataPackage, CtsyDispatcherPanic(EInvalidNullPtr));
       
   474 
       
   475 	// Call Handle... method in Licensee LTSY
       
   476 	if (iLtsyDispatchSupplementaryServicesGetCallForwardingStatus)
       
   477 		{
       
   478 		RMobilePhone::TMobilePhoneCFCondition condition;
       
   479 		RMobilePhone::TMobileService service;
       
   480 		aDataPackage->UnPackData(condition, service);
       
   481 		ret = iLtsyDispatchSupplementaryServicesGetCallForwardingStatus->HandleGetCallForwardingStatusReqL(condition, service);
       
   482 		}
       
   483 
       
   484 	return TSYLOGSETEXITERR(ret);
       
   485 	} // CSupplementaryServicesDispatcher::DispatchGetCallForwardingStatusL
       
   486 
       
   487 TInt CSupplementaryServicesDispatcher::DispatchSendUssdMessageL(const CMmDataPackage* aDataPackage)
       
   488 /**
       
   489  * Unpack data related to EMobileUssdMessagingSendMessage
       
   490  * and pass request on to Licensee LTSY.
       
   491  *
       
   492  * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
       
   493  * the Licensee LTSY does not support this request.
       
   494  */
       
   495 	{
       
   496 	TSYLOGENTRYEXIT;
       
   497 	TInt ret = KErrNotSupported;
       
   498 
       
   499 	__ASSERT_DEBUG(aDataPackage, CtsyDispatcherPanic(EInvalidNullPtr));
       
   500 
       
   501 	// Call Handle... method in Licensee LTSY
       
   502 	if (iLtsyDispatchSupplementaryServicesSendUssdMessage)
       
   503 		{
       
   504 		RMobileUssdMessaging::TMobileUssdAttributesV1Pckg** attributesPckg = NULL;
       
   505 		RMobileUssdMessaging::TGsmUssdMessageData* data = NULL;
       
   506 		aDataPackage->UnPackData(&data, &attributesPckg);
       
   507 			
       
   508 		__ASSERT_DEBUG(attributesPckg, CtsyDispatcherPanic(EInvalidNullPtr));
       
   509 		__ASSERT_DEBUG(data, CtsyDispatcherPanic(EInvalidNullPtr));
       
   510 			
       
   511 		const RMobileUssdMessaging::TMobileUssdAttributesV1& attributes =(**attributesPckg)();			
       
   512 				
       
   513 		ret = iLtsyDispatchSupplementaryServicesSendUssdMessage->HandleSendUssdMessageReqL(*data,
       
   514 				attributes.iDcs,
       
   515 				attributes.iFormat,
       
   516 				attributes.iType);
       
   517 		}
       
   518 
       
   519 	return TSYLOGSETEXITERR(ret);
       
   520 	} // CSupplementaryServicesDispatcher::DispatchSendUssdMessageL
       
   521 
       
   522 TInt CSupplementaryServicesDispatcher::DispatchSendUssdMessageNoFdnCheckL(const CMmDataPackage* aDataPackage)
       
   523 /**
       
   524  * Unpack data related to EMobileUssdMessagingSendMessageNoFdnCheck
       
   525  * and pass request on to Licensee LTSY.
       
   526  *
       
   527  * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
       
   528  * the Licensee LTSY does not support this request.
       
   529  */
       
   530 	{
       
   531 	TSYLOGENTRYEXIT;
       
   532 	TInt ret = KErrNotSupported;
       
   533 
       
   534 	__ASSERT_DEBUG(aDataPackage, CtsyDispatcherPanic(EInvalidNullPtr));
       
   535 
       
   536 	// Call Handle... method in Licensee LTSY
       
   537 	if (iLtsyDispatchSupplementaryServicesSendUssdMessageNoFdnCheck)
       
   538 		{
       
   539 		RMobileUssdMessaging::TMobileUssdAttributesV1Pckg** attributesPckg = NULL;
       
   540 		RMobileUssdMessaging::TGsmUssdMessageData* data = NULL;
       
   541 		aDataPackage->UnPackData(&data, &attributesPckg);
       
   542 			
       
   543 		__ASSERT_DEBUG(attributesPckg, CtsyDispatcherPanic(EInvalidNullPtr));
       
   544 		__ASSERT_DEBUG(data, CtsyDispatcherPanic(EInvalidNullPtr));
       
   545 			
       
   546 		const RMobileUssdMessaging::TMobileUssdAttributesV1& attributes =(**attributesPckg)();			
       
   547 		
       
   548 		ret = iLtsyDispatchSupplementaryServicesSendUssdMessageNoFdnCheck->HandleSendUssdMessageNoFdnCheckReqL(*data,
       
   549 				attributes.iDcs,
       
   550 				attributes.iFormat,
       
   551 				attributes.iType);
       
   552 		}
       
   553 
       
   554 	return TSYLOGSETEXITERR(ret);
       
   555 	} // CSupplementaryServicesDispatcher::DispatchSendUssdMessageNoFdnCheckL
       
   556 
       
   557 TInt CSupplementaryServicesDispatcher::DispatchSendUssdReleaseL()
       
   558 /**
       
   559  * Pass EMobileUssdMessagingSendRelease request on to Licensee LTSY.
       
   560  *
       
   561  * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
       
   562  * the Licensee LTSY does not support this request.
       
   563  */
       
   564 	{
       
   565 	TSYLOGENTRYEXIT;
       
   566 	TInt ret = KErrNotSupported;
       
   567 
       
   568 	// Call Handle... method in Licensee LTSY
       
   569 	if (iLtsyDispatchSupplementaryServicesSendUssdRelease)
       
   570 		{
       
   571 		ret = iLtsyDispatchSupplementaryServicesSendUssdRelease->HandleSendUssdReleaseReqL();
       
   572 		}
       
   573 
       
   574 	return TSYLOGSETEXITERR(ret);
       
   575 	} // CSupplementaryServicesDispatcher::DispatchSendUssdReleaseL
       
   576 
       
   577 TInt CSupplementaryServicesDispatcher::DispatchClearBlacklistL()
       
   578 /**
       
   579  * Pass ECustomClearCallBlackListIPC request on to Licensee LTSY.
       
   580  *
       
   581  * @return Returns error code returned by the Licensee LTSY or KErrNotSupported if
       
   582  * the Licensee LTSY does not support this request.
       
   583  */
       
   584 	{
       
   585 	TSYLOGENTRYEXIT;
       
   586 	TInt ret = KErrNotSupported;
       
   587 
       
   588 	// Call Handle... method in Licensee LTSY
       
   589 	if (iLtsyDispatchSupplementaryServicesClearBlacklist)
       
   590 		{
       
   591 		ret = iLtsyDispatchSupplementaryServicesClearBlacklist->HandleClearBlacklistReqL();
       
   592 		}
       
   593 
       
   594 	return TSYLOGSETEXITERR(ret);
       
   595 	} // CSupplementaryServicesDispatcher::DispatchClearBlacklistL
       
   596 
       
   597 
       
   598 //
       
   599 // Callback handlers follow
       
   600 //
       
   601 
       
   602 
       
   603 
       
   604 void CSupplementaryServicesDispatcher::CallbackNotifyCallBarringStatusChange(TInt aError,
       
   605 		RMobilePhone::TMobilePhoneCBCondition aCallBarringCondition)
       
   606 /**
       
   607  * Callback function to be used by the request to complete 
       
   608  * CCtsyDispatcherCallback::CallbackSupplementaryServicesNotifyCallBarringStatusChangeInd()
       
   609  *
       
   610  * @param aError The error code to be returned to the CTSY Dispatcher.
       
   611  * @param aCallBarringCondition The call barring condition that have changed
       
   612  */
       
   613 	{
       
   614 	TSYLOGENTRYEXITARGS(_L8("aError=%d, aCallBarringCondition=%d"), aError, aCallBarringCondition);
       
   615 
       
   616 	// Pack the data to return to the Common TSY
       
   617 	CMmDataPackage dataPackage;
       
   618 	dataPackage.PackData(&aCallBarringCondition);
       
   619 	
       
   620 	iMessageManagerCallback.Complete(EMobilePhoneNotifyCallBarringStatusChange, &dataPackage, aError);
       
   621 	
       
   622 	} // CSupplementaryServicesDispatcher::CallbackNotifyCallBarringStatusChange
       
   623 
       
   624 void CSupplementaryServicesDispatcher::CallbackReceiveUssdMessage(TInt aError,
       
   625 				const TDesC8& aMessage, TUint8 aDcs, 
       
   626 				RMobileUssdMessaging::TMobileUssdMessageType aType, 
       
   627 				RMobileUssdMessaging::TMobileUssdDataFormat aFormat)
       
   628 /**
       
   629  * Callback function to be used by the request to complete
       
   630  * CCtsyDispatcherCallback::CallbackSupplementaryServicesReceiveUssdMessageInd()
       
   631  *
       
   632  * @param aError The error code to be returned to the CTSY Dispatcher.
       
   633  * @param aMessage The message that was received.
       
   634  * @param aDcs The Data Coding Scheme of the received USSD message.
       
   635  * @param aType The message type (depend on the invoke part of the message:
       
   636  * 									UnstructuredSS-Notify - RMobileUssdMessaging::EUssdMTNotify;
       
   637  * 									UnstructuredSS-Request - RMobileUssdMessaging::EUssdMTRequest;
       
   638  * 									ProcessUnstructuredSS-Request - RMobileUssdMessaging::EUssdMTReply).
       
   639  * @param aFormat The message format.
       
   640  */
       
   641 	{
       
   642 	TSYLOGENTRYEXITARGS(_L8("aError=%d, aDcs=%d, aType=%d, aFormat=%d"), aError, aDcs, aType, aFormat);
       
   643 
       
   644 	// Pack the data to return to the Common TSY
       
   645 	CMmDataPackage dataPackage;
       
   646 	
       
   647     RMobileUssdMessaging::TMobileUssdAttributesV1 ussdAttributes;
       
   648     ussdAttributes.iDcs = aDcs;
       
   649     ussdAttributes.iType = aType;
       
   650     ussdAttributes.iFormat = aFormat;
       
   651     ussdAttributes.iFlags = RMobileUssdMessaging::KUssdDataFormat | RMobileUssdMessaging::KUssdMessageType | RMobileUssdMessaging::KUssdMessageDcs;
       
   652 	
       
   653 	__ASSERT_DEBUG(aMessage.Length() <= RMobileUssdMessaging::KGsmUssdDataSize, CtsyDispatcherPanic(EBadLength));
       
   654 	TPtrC8 gsmUssdMessageData = aMessage.Left(RMobileUssdMessaging::KGsmUssdDataSize);
       
   655 	
       
   656 	dataPackage.PackData(&gsmUssdMessageData, &ussdAttributes);
       
   657 	
       
   658 	iMessageManagerCallback.Complete(EMobileUssdMessagingReceiveMessage, &dataPackage, aError);
       
   659 	
       
   660 	} // CSupplementaryServicesDispatcher::CallbackReceiveUssdMessage
       
   661 
       
   662 void CSupplementaryServicesDispatcher::CallbackNotifyCallWaitingStatusChange(TInt aError,
       
   663 				RMobilePhone::TMobileService aServiceGroup,
       
   664 				RMobilePhone::TMobilePhoneCWStatus aStatus)
       
   665 /**
       
   666  * Callback function to be used by the request to complete
       
   667  * CCtsyDispatcherCallback::CallbackSupplementaryServicesNotifyCallWaitingStatusChangeInd()
       
   668  *
       
   669  * @param aError The error code to be returned to the CTSY Dispatcher.
       
   670  * @param aServiceGroup The relevant service group.
       
   671  * @param aStatus The new call waiting status.
       
   672  */
       
   673 	{
       
   674 	TSYLOGENTRYEXITARGS(_L8("aError=%d, aServiceGroup=%d, aStatus=%d"), aError, aServiceGroup, aStatus);
       
   675 
       
   676 	// Pack the data to return to the Common TSY
       
   677 	CMmDataPackage dataPackage;
       
   678     RMobilePhone::TMobilePhoneCWInfoEntryV1 info;
       
   679     info.iServiceGroup = aServiceGroup;
       
   680     info.iStatus = aStatus;
       
   681     dataPackage.PackData(&info);
       
   682 	
       
   683 	iMessageManagerCallback.Complete(EMobilePhoneNotifyCallWaitingStatusChange, &dataPackage, aError);
       
   684 	
       
   685 	} // CSupplementaryServicesDispatcher::CallbackNotifyCallWaitingStatusChange
       
   686 
       
   687 void CSupplementaryServicesDispatcher::CallbackNotifyCallForwardingStatusChange(TInt aError,
       
   688 		RMobilePhone::TMobilePhoneCFCondition aCallForwardingCondition)
       
   689 /**
       
   690  * Callback function to be used by the request to complete
       
   691  * CCtsyDispatcherCallback::CallbackSupplementaryServicesNotifyCallForwardingStatusChangeInd()
       
   692  *
       
   693  * @param aError The error code to be returned to the CTSY Dispatcher.
       
   694  * @param aCallForwardingCondition The new call forwarding condition. 
       
   695  */
       
   696 	{
       
   697 	TSYLOGENTRYEXITARGS(_L8("aError=%d, aCallForwardingCondition=%d"), aError,aCallForwardingCondition);
       
   698 
       
   699 	// Pack the data to return to the Common TSY
       
   700 	CMmDataPackage dataPackage;
       
   701 	dataPackage.PackData(&aCallForwardingCondition);
       
   702 	
       
   703 	
       
   704 	iMessageManagerCallback.Complete(EMobilePhoneNotifyCallForwardingStatusChange, &dataPackage, aError);
       
   705 	
       
   706 	} // CSupplementaryServicesDispatcher::CallbackNotifyCallForwardingStatusChange
       
   707 
       
   708 void CSupplementaryServicesDispatcher::CallbackNotifyCallForwardingActive(TInt aError,
       
   709 		RMobilePhone::TMobileService aServiceGroup, RMobilePhone::TMobilePhoneCFActive aActiveType)
       
   710 /**
       
   711  * Callback function to be used by the request to complete
       
   712  * CCtsyDispatcherCallback::CallbackSupplementaryServicesNotifyCallForwardingActiveInd()
       
   713  *
       
   714  * @param aError The error code to be returned to the CTSY Dispatcher.
       
   715  * @param aServiceGroup The basic service group the call forwarding is active.
       
   716  * @param aActiveType Specifies whether CF unconditional or one of the conditional CF services is active. 
       
   717  */
       
   718 	{
       
   719 	TSYLOGENTRYEXITARGS(_L8("aError=%d, aService=%d, aActiveType=%d"), aError, aServiceGroup, aActiveType);
       
   720 
       
   721 	// Pack the data to return to the Common TSY
       
   722 	CMmDataPackage dataPackage;
       
   723 	dataPackage.PackData(&aServiceGroup,&aActiveType);
       
   724 	
       
   725 	
       
   726 	iMessageManagerCallback.Complete(EMobilePhoneNotifyCallForwardingActive, &dataPackage, aError);
       
   727 	
       
   728 	} // CSupplementaryServicesDispatcher::CallbackNotifyCallForwardingActive
       
   729 
       
   730 void CSupplementaryServicesDispatcher::CallbackSendNetworkServiceRequestNoFdnCheck(TInt aError)
       
   731 /**
       
   732  * Callback function to be used by the request to complete
       
   733  * CCtsyDispatcherCallback::CallbackSupplementaryServicesSendNetworkServiceRequestNoFdnCheckComp()
       
   734  *
       
   735  * @param aError The error code to be returned to the CTSY Dispatcher.
       
   736  */
       
   737 	{
       
   738 	TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
       
   739 
       
   740 	
       
   741 	iMessageManagerCallback.Complete(EMobilePhoneSendNetworkServiceRequestNoFdnCheck, aError);
       
   742 	
       
   743 	} // CSupplementaryServicesDispatcher::CallbackSendNetworkServiceRequestNoFdnCheck
       
   744 
       
   745 void CSupplementaryServicesDispatcher::CallbackGetCallWaitingStatus(TInt aError,
       
   746 		const CMobilePhoneCWList& aCallWaitingList)
       
   747 /**
       
   748  * Callback function to be used by the request to complete
       
   749  * CCtsyDispatcherCallback::CallbackSupplementaryServicesGetCallWaitingStatusComp()
       
   750  *
       
   751  * @param aError The error code to be returned to the CTSY Dispatcher.
       
   752  * @param aCallWaitingList The list af the call waiting statuses.
       
   753  */
       
   754 	{
       
   755 	TSYLOGENTRYEXITARGS(_L8("aError=%d, aCallWaitingList.Enumerate=%d"), aError, aCallWaitingList.Enumerate());
       
   756 
       
   757 	// Pack the data to return to the Common TSY
       
   758     CMmDataPackage dataPackage;
       
   759     dataPackage.PackData(&const_cast<CMobilePhoneCWList&>(aCallWaitingList));
       
   760 	
       
   761 	iMessageManagerCallback.Complete(EMobilePhoneGetWaitingStatusPhase1, &dataPackage, aError);
       
   762 	
       
   763 	} // CSupplementaryServicesDispatcher::CallbackGetCallWaitingStatus
       
   764 
       
   765 void CSupplementaryServicesDispatcher::CallbackSendNetworkServiceRequest(TInt aError)
       
   766 /**
       
   767  * Callback function to be used by the request to complete
       
   768  * CCtsyDispatcherCallback::CallbackSupplementaryServicesSendNetworkServiceRequestComp()
       
   769  *
       
   770  * @param aError The error code to be returned to the CTSY Dispatcher.
       
   771  */
       
   772 	{
       
   773 	TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
       
   774 	
       
   775 	iMessageManagerCallback.Complete(EMobilePhoneSendNetworkServiceRequest, aError);
       
   776 	
       
   777 	} // CSupplementaryServicesDispatcher::CallbackSendNetworkServiceRequest
       
   778 
       
   779 void CSupplementaryServicesDispatcher::CallbackGetCallBarringStatus(TInt aError,
       
   780 		const CMobilePhoneCBList& aCallBarringList)
       
   781 /**
       
   782  * Callback function to be used by the request to complete
       
   783  * CCtsyDispatcherCallback::CallbackSupplementaryServicesGetCallBarringStatusComp()
       
   784  *
       
   785  * @param aError The error code to be returned to the CTSY Dispatcher.
       
   786  * @param aCallBarringList The call barring list.
       
   787  */
       
   788 	{
       
   789 	TSYLOGENTRYEXITARGS(_L8("aError=%d, aCallBarringList.Enumerate()=%d"), aError, aCallBarringList.Enumerate());
       
   790 
       
   791 	// Pack the data to return to the Common TSY
       
   792 	CMmDataPackage dataPackage;
       
   793 	dataPackage.PackData(&const_cast<CMobilePhoneCBList&>(aCallBarringList));
       
   794 	
       
   795 	iMessageManagerCallback.Complete(EMobilePhoneGetBarringStatusPhase1, &dataPackage, aError);
       
   796 	
       
   797 	} // CSupplementaryServicesDispatcher::CallbackGetCallBarringStatus
       
   798 
       
   799 void CSupplementaryServicesDispatcher::CallbackSetCallBarringStatus(TInt aError)
       
   800 /**
       
   801  * Callback function to be used by the request to complete
       
   802  * CCtsyDispatcherCallback::CallbackSupplementaryServicesSetCallBarringStatusComp()
       
   803  *
       
   804  * @param aError The error code to be returned to the CTSY Dispatcher.
       
   805  */
       
   806 	{
       
   807 	TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
       
   808 
       
   809 	iMessageManagerCallback.Complete(EMobilePhoneSetCallBarringStatus, aError);
       
   810 	
       
   811 	} // CSupplementaryServicesDispatcher::CallbackSetCallBarringStatus
       
   812 
       
   813 void CSupplementaryServicesDispatcher::CallbackSetCallForwardingStatus(TInt aError)
       
   814 /**
       
   815  * Callback function to be used by the request to complete
       
   816  * CCtsyDispatcherCallback::CallbackSupplementaryServicesSetCallForwardingStatusComp()
       
   817  *
       
   818  * @param aError The error code to be returned to the CTSY Dispatcher.
       
   819  */
       
   820 	{
       
   821 	TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
       
   822 
       
   823 	
       
   824 	iMessageManagerCallback.Complete(EMobilePhoneSetCallForwardingStatus, aError);
       
   825 	
       
   826 	} // CSupplementaryServicesDispatcher::CallbackSetCallForwardingStatus
       
   827 
       
   828 void CSupplementaryServicesDispatcher::CallbackSetCallWaitingStatus(TInt aError)
       
   829 /**
       
   830  * Callback function to be used by the request to complete
       
   831  * CCtsyDispatcherCallback::CallbackSupplementaryServicesSetCallWaitingStatusComp()
       
   832  *
       
   833  * @param aError The error code to be returned to the CTSY Dispatcher.
       
   834  */
       
   835 	{
       
   836 	TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
       
   837 
       
   838 	iMessageManagerCallback.Complete(EMobilePhoneSetCallWaitingStatus, aError);
       
   839 	
       
   840 	} // CSupplementaryServicesDispatcher::CallbackSetCallWaitingStatus
       
   841 
       
   842 void CSupplementaryServicesDispatcher::CallbackSetSsPassword(TInt aError)
       
   843 /**
       
   844  * Callback function to be used by the request to complete
       
   845  * CCtsyDispatcherCallback::CallbackSupplementaryServicesSetSsPasswordComp()
       
   846  *
       
   847  * @param aError The error code to be returned to the CTSY Dispatcher.
       
   848  */
       
   849 	{
       
   850 	TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
       
   851 
       
   852 	iMessageManagerCallback.Complete(EMobilePhoneSetSSPassword, aError);
       
   853 	
       
   854 	} // CSupplementaryServicesDispatcher::CallbackSetSsPassword
       
   855 
       
   856 void CSupplementaryServicesDispatcher::CallbackGetCallForwardingStatus(TInt aError,
       
   857 		const CMobilePhoneCFList& aCallForwardingList)
       
   858 /**
       
   859  * Callback function to be used by the request to complete
       
   860  * CCtsyDispatcherCallback::CallbackSupplementaryServicesGetCallForwardingStatusComp()
       
   861  *
       
   862  * @param aError The error code to be returned to the CTSY Dispatcher.
       
   863  * @param aCallForwardingList The list of all the call forwarding definitions.
       
   864  */
       
   865 	{
       
   866 	TSYLOGENTRYEXITARGS(_L8("aError=%d, aCallForwardingList.Enumerate()=%d"), aError, aCallForwardingList.Enumerate());
       
   867 
       
   868 	// Pack the data to return to the Common TSY
       
   869 	CMmDataPackage dataPackage;
       
   870 	dataPackage.PackData(&const_cast<CMobilePhoneCFList&>(aCallForwardingList));
       
   871 	
       
   872 	iMessageManagerCallback.Complete(EMobilePhoneGetCallForwardingStatusPhase1, &dataPackage, aError);
       
   873 	
       
   874 	} // CSupplementaryServicesDispatcher::CallbackGetCallForwardingStatus
       
   875 
       
   876 void CSupplementaryServicesDispatcher::CallbackSendUssdMessage(TInt aError)
       
   877 /**
       
   878  * Callback function to be used by the request to complete
       
   879  * CCtsyDispatcherCallback::CallbackSupplementaryServicesSendUssdMessageComp()
       
   880  *
       
   881  * @param aError The error code to be returned to the CTSY Dispatcher.
       
   882  */
       
   883 	{
       
   884 	TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
       
   885 	
       
   886 	iMessageManagerCallback.Complete(EMobileUssdMessagingSendMessage, aError);
       
   887 	
       
   888 	} // CSupplementaryServicesDispatcher::CallbackSendUssdMessage
       
   889 
       
   890 void CSupplementaryServicesDispatcher::CallbackSendUssdMessageNoFdnCheck(TInt aError)
       
   891 /**
       
   892  * Callback function to be used by the request to complete
       
   893  * CCtsyDispatcherCallback::CallbackSupplementaryServicesSendUssdMessageNoFdnCheckComp()
       
   894  *
       
   895  * @param aError The error code to be returned to the CTSY Dispatcher.
       
   896  */
       
   897 	{
       
   898 	TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
       
   899 	
       
   900 	iMessageManagerCallback.Complete(EMobileUssdMessagingSendMessageNoFdnCheck, aError);
       
   901 	
       
   902 	} // CSupplementaryServicesDispatcher::CallbackSendUssdMessageNoFdnCheck
       
   903 
       
   904 void CSupplementaryServicesDispatcher::CallbackSendUssdRelease(TInt aError, 
       
   905 		TUint8 aOpCode, const TDesC& aAdditionalInfo)
       
   906 /**
       
   907  * Callback function to be used by the request to complete
       
   908  * CCtsyDispatcherCallback::CallbackSupplementaryServicesSendUssdReleaseComp()
       
   909  *
       
   910  * @param aError The error code to be returned to the CTSY Dispatcher.
       
   911  * @param aOpCode The Operation Code.
       
   912  * @param aAdditionalInfo Any additional information.
       
   913  */
       
   914 	{ 
       
   915 	TSYLOGENTRYEXITARGS(_L8("aError=%d, aOpCode=%d"), aError, aOpCode);
       
   916 
       
   917 	CMmDataPackage dataPackage;
       
   918 	RMobilePhone::TMobilePhoneSendSSRequestV3 result;
       
   919 	result.iOpCode = aOpCode;
       
   920 	result.iAdditionalInfo = aAdditionalInfo;
       
   921 	dataPackage.PackData(&result);
       
   922 	
       
   923 	iMessageManagerCallback.Complete(EMobileUssdMessagingSendRelease, &dataPackage, aError);
       
   924 	
       
   925 	} // CSupplementaryServicesDispatcher::CallbackSendUssdRelease
       
   926 
       
   927 void CSupplementaryServicesDispatcher::CallbackClearBlacklist(TInt aError)
       
   928 /**
       
   929  * Callback function to be used by the request to complete
       
   930  * CCtsyDispatcherCallback::CallbackSupplementaryServicesClearBlacklistComp()
       
   931  *
       
   932  * @param aError The error code to be returned to the CTSY Dispatcher.
       
   933  */
       
   934 	{ 
       
   935 	TSYLOGENTRYEXITARGS(_L8("aError=%d"), aError);
       
   936 
       
   937 	iMessageManagerCallback.Complete(ECustomClearCallBlackListIPC, aError);
       
   938 	
       
   939 	} // CSupplementaryServicesDispatcher::CallbackClearBlacklist
       
   940 
       
   941 void CSupplementaryServicesDispatcher::CallbackGetDiagnosticOctets(TInt aError,
       
   942 		TInt aCallId, TUint8 aOctet)
       
   943 /**
       
   944  * Callback function to be used by the request to complete
       
   945  * CCtsyDispatcherCallback::CallbackSupplementaryServicesGetDiagnosticOctetsInd()
       
   946  *
       
   947  * @param aError The error code to be returned to the CTSY Dispatcher.
       
   948  * @param aCallId The Call ID of the call whose cause is set.
       
   949  * @param aOctet The octet to set.
       
   950  */
       
   951 	{
       
   952 	TSYLOGENTRYEXITARGS(_L8("aError=%d, aCallId=%d, aOctet=0x%x"), aError, aCallId, aOctet);
       
   953 
       
   954 	// Pack the data to return to the Common TSY
       
   955 	CMmDataPackage dataPackage;
       
   956 	dataPackage.PackData(&aCallId, &aOctet);
       
   957 	
       
   958 	
       
   959 	iMessageManagerCallback.Complete(ECustomGetDiagnosticOctetsIPC, &dataPackage, aError);
       
   960 	
       
   961 	} // CSupplementaryServicesDispatcher::CallbackGetDiagnosticOctets
       
   962 
       
   963 void CSupplementaryServicesDispatcher::CallbackNotifyNetworkEventForwardMode(TInt aError,
       
   964 		RMmCustomAPI::TSsType aType, RMmCustomAPI::TSsMode aMode, RMmCustomAPI::TSsForwMode aForwardMode)
       
   965 /**
       
   966  * Callback function to be used by the request to complete
       
   967  * CCtsyDispatcherCallback::CallbackSupplementaryServicesNotifyNetworkEventForwardModeInd()
       
   968  *
       
   969  * @param aError KErrNone on success, or another error code indicating the error otherwise.
       
   970  * @param aType The type of service.
       
   971  * @param aMode The mode of the service.
       
   972  * @param aForwardMode The forward mode (SS-Notification).
       
   973  */
       
   974 	{
       
   975 	TSYLOGENTRYEXITARGS(_L8("aError=%d, aType=%d, aMode=%d, aForwardMode=%d") ,
       
   976       aError, aType, aMode, aForwardMode);
       
   977 	// Pack the data to return to the Common TSY
       
   978 	CMmDataPackage dataPackage;
       
   979     RMmCustomAPI::TSsTypeAndMode typeAndMode;
       
   980     typeAndMode.iSsType = aType;
       
   981     typeAndMode.iSsMode = aMode;
       
   982     RMmCustomAPI::TSsInfo ssInfo;
       
   983     ssInfo.iForwMode = aForwardMode;
       
   984 	dataPackage.PackData(&typeAndMode, &ssInfo);
       
   985 	
       
   986 	
       
   987 	iMessageManagerCallback.Complete(ECustomNotifySsNetworkEventIPC, &dataPackage, aError);
       
   988 	
       
   989 	} // CSupplementaryServicesDispatcher::CallbackNotifyNetworkEventForwardMode
       
   990 
       
   991 
       
   992 void CSupplementaryServicesDispatcher::CallbackNotifyNetworkEventCallWaiting(TInt aError,
       
   993 		RMmCustomAPI::TSsMode aMode, TBool aCallIsWaiting)
       
   994 /**
       
   995  * Callback function to be used by the request to complete
       
   996  * CCtsyDispatcherCallback::CallbackSupplementaryServicesNotifyNetworkEventCallWaitingInd()
       
   997  *
       
   998  * @param aError KErrNone on success, or another error code indicating the error otherwise.
       
   999  * @param aMode The mode of the service.
       
  1000  * @param aCallIsWaiting An indicator of the call waiting state of the call (callIsWaiting-Indicator).
       
  1001  */
       
  1002 	{
       
  1003 	TSYLOGENTRYEXITARGS(_L8("aError=%d, aMode=%d, aCallIsWaiting=%d") ,
       
  1004       aError, aMode, aCallIsWaiting);
       
  1005 	// Pack the data to return to the Common TSY
       
  1006 	CMmDataPackage dataPackage;
       
  1007     RMmCustomAPI::TSsTypeAndMode typeAndMode;
       
  1008     typeAndMode.iSsType = RMmCustomAPI::ESsCallWaiting;
       
  1009     typeAndMode.iSsMode = aMode;
       
  1010     RMmCustomAPI::TSsInfo ssInfo;
       
  1011     ssInfo.iCallWait = aCallIsWaiting;
       
  1012 	dataPackage.PackData(&typeAndMode, &ssInfo);
       
  1013 	
       
  1014 	
       
  1015 	iMessageManagerCallback.Complete(ECustomNotifySsNetworkEventIPC, &dataPackage, aError);
       
  1016 	
       
  1017 	} // CSupplementaryServicesDispatcher::CallbackNotifyNetworkEventCallWaiting
       
  1018 
       
  1019 
       
  1020 void CSupplementaryServicesDispatcher::CallbackNotifyNetworkEventHoldMode(TInt aError,
       
  1021 		RMmCustomAPI::TSsType aType, RMmCustomAPI::TSsMode aMode, RMmCustomAPI::TSsHoldMode aHoldMode)
       
  1022 /**
       
  1023  * Callback function to be used by the request to complete
       
  1024  * CCtsyDispatcherCallback::CallbackSupplementaryServicesNotifyNetworkEventHoldModeInd()
       
  1025  *
       
  1026  * @param aError KErrNone on success, or another error code indicating the error otherwise.
       
  1027  * @param aType The type of service.
       
  1028  * @param aMode The mode of the service.
       
  1029  * @param aHoldMode The hold mode (callOnHold-Indicator).
       
  1030  */
       
  1031 	{
       
  1032 	TSYLOGENTRYEXITARGS(_L8("aError=%d, aType=%d, aMode=%d, aHoldMode=%d") ,
       
  1033       aError, aType, aMode, aHoldMode);
       
  1034 	// Pack the data to return to the Common TSY
       
  1035 	CMmDataPackage dataPackage;
       
  1036     RMmCustomAPI::TSsTypeAndMode typeAndMode;
       
  1037     typeAndMode.iSsType = aType;
       
  1038     typeAndMode.iSsMode = aMode;
       
  1039     RMmCustomAPI::TSsInfo ssInfo;
       
  1040     ssInfo.iCallHold = aHoldMode;
       
  1041 	dataPackage.PackData(&typeAndMode, &ssInfo);
       
  1042 	
       
  1043 	
       
  1044 	iMessageManagerCallback.Complete(ECustomNotifySsNetworkEventIPC, &dataPackage, aError);
       
  1045 	
       
  1046 	} // CSupplementaryServicesDispatcher::CallbackNotifyNetworkEventHoldMode
       
  1047 
       
  1048 
       
  1049 void CSupplementaryServicesDispatcher::CallbackNotifyNetworkEventConfrence(TInt aError,
       
  1050 		RMmCustomAPI::TSsType aType, RMmCustomAPI::TSsMode aMode, TBool aConferenceIndicator)
       
  1051 /**
       
  1052  * Callback function to be used by the request to complete
       
  1053  * CCtsyDispatcherCallback::CallbackSupplementaryServicesNotifyNetworkEventConfrenceInd()
       
  1054  *
       
  1055  * @param aError KErrNone on success, or another error code indicating the error otherwise.
       
  1056  * @param aType The type of service.
       
  1057  * @param aMode The mode of the service.
       
  1058  * @param aConferenceIndicator The confrence call indicator (mpty-Indicator).
       
  1059  */
       
  1060 	{
       
  1061 	TSYLOGENTRYEXITARGS(_L8("aError=%d, aType=%d, aMode=%d, aConferenceIndicator=%d") ,
       
  1062       aError, aType, aMode, aConferenceIndicator);
       
  1063 	// Pack the data to return to the Common TSY
       
  1064 	CMmDataPackage dataPackage;
       
  1065     RMmCustomAPI::TSsTypeAndMode typeAndMode;
       
  1066     typeAndMode.iSsType = aType;
       
  1067     typeAndMode.iSsMode = aMode;
       
  1068     RMmCustomAPI::TSsInfo ssInfo;
       
  1069     ssInfo.iConfInd = aConferenceIndicator;
       
  1070 	dataPackage.PackData(&typeAndMode, &ssInfo);
       
  1071 	
       
  1072 	
       
  1073 	iMessageManagerCallback.Complete(ECustomNotifySsNetworkEventIPC, &dataPackage, aError);
       
  1074 	
       
  1075 	} // CSupplementaryServicesDispatcher::CallbackNotifyNetworkEventConfrence
       
  1076 
       
  1077 
       
  1078 void CSupplementaryServicesDispatcher::CallbackNotifyNetworkEventCug(TInt aError,
       
  1079 		RMmCustomAPI::TSsType aType, RMmCustomAPI::TSsMode aMode, TUint16 aCugIndex)
       
  1080 /**
       
  1081  * Callback function to be used by the request to complete
       
  1082  * CCtsyDispatcherCallback::CallbackSupplementaryServicesNotifyNetworkEventCugInd()
       
  1083  *
       
  1084  * @param aError KErrNone on success, or another error code indicating the error otherwise.
       
  1085  * @param aType The type of service.
       
  1086  * @param aMode The mode of the service.
       
  1087  * @param aCugIndex The Index associated with the invoked CUG (cug-Index).
       
  1088  */
       
  1089 	{
       
  1090 	TSYLOGENTRYEXITARGS(_L8("aError=%d, aType=%d, aMode=%d, aCugIndex=%d") ,
       
  1091       aError, aType, aMode, aCugIndex);
       
  1092 	// Pack the data to return to the Common TSY
       
  1093 	CMmDataPackage dataPackage;
       
  1094     RMmCustomAPI::TSsTypeAndMode typeAndMode;
       
  1095     typeAndMode.iSsType = aType;
       
  1096     typeAndMode.iSsMode = aMode;
       
  1097     RMmCustomAPI::TSsInfo ssInfo;
       
  1098     ssInfo.iCugIndex = aCugIndex;
       
  1099 	dataPackage.PackData(&typeAndMode, &ssInfo);
       
  1100 	
       
  1101 	
       
  1102 	iMessageManagerCallback.Complete(ECustomNotifySsNetworkEventIPC, &dataPackage, aError);
       
  1103 	
       
  1104 	} // CSupplementaryServicesDispatcher::CallbackNotifyNetworkEventCug
       
  1105 
       
  1106 
       
  1107 void CSupplementaryServicesDispatcher::CallbackNotifyNetworkEventClirSuppression(TInt aError,
       
  1108 		RMmCustomAPI::TSsMode aMode, TBool aClirSuppressionRejected)
       
  1109 /**
       
  1110  * Callback function to be used by the request to complete
       
  1111  * CCtsyDispatcherCallback::CallbackSupplementaryServicesNotifyNetworkEventClirSuppressionInd()
       
  1112  *
       
  1113  * @param aError KErrNone on success, or another error code indicating the error otherwise.
       
  1114  * @param aMode The mode of the service.
       
  1115  * @param aClirSuppressionRejected An indicator that indicate if the CLIR override has not been performed (clirSuppressionRejected).
       
  1116  */
       
  1117 	{
       
  1118 	TSYLOGENTRYEXITARGS(_L8("aError=%d, aMode=%d, aClirSuppressionRejected=%d") ,
       
  1119       aError, aMode, aClirSuppressionRejected);
       
  1120 	// Pack the data to return to the Common TSY
       
  1121 	CMmDataPackage dataPackage;
       
  1122     RMmCustomAPI::TSsTypeAndMode typeAndMode;
       
  1123     typeAndMode.iSsType = RMmCustomAPI::ESsClir;
       
  1124     typeAndMode.iSsMode = aMode;
       
  1125     RMmCustomAPI::TSsInfo ssInfo;
       
  1126     ssInfo.iClirSuppReject = aClirSuppressionRejected;
       
  1127 	dataPackage.PackData(&typeAndMode, &ssInfo);
       
  1128 	
       
  1129 	
       
  1130 	iMessageManagerCallback.Complete(ECustomNotifySsNetworkEventIPC, &dataPackage, aError);
       
  1131 	
       
  1132 	} // CSupplementaryServicesDispatcher::CallbackNotifyNetworkEventClirSuppression
       
  1133 
       
  1134 
       
  1135 void CSupplementaryServicesDispatcher::CallbackNotifyNetworkEventEctCallState(TInt aError,
       
  1136 		RMmCustomAPI::TSsType aType, RMmCustomAPI::TSsMode aMode, RMmCustomAPI::TSsEctState aEctCallState,
       
  1137         RMmCustomAPI::TSsChoice aEctChoice, const TDesC& aRemotePartyNumber)
       
  1138 /**
       
  1139  * Callback function to be used by the request to complete
       
  1140  * CCtsyDispatcherCallback::CallbackSupplementaryServicesNotifyNetworkEventEctCallStateInd()
       
  1141  *
       
  1142  * @param aError KErrNone on success, or another error code indicating the error otherwise.
       
  1143  * @param aType The type of service.
       
  1144  * @param aMode The mode of the service.
       
  1145  * @param aEctCallState The ECT state (ect-Indicator.ect-CallState).
       
  1146  * @param aEctChoice The ECT presentation (ect-Indicator.rdn).
       
  1147  * @param aRemotePartyNumber The remote party number (ect-Indicator.rdn).
       
  1148  */
       
  1149 	{
       
  1150 	TSYLOGENTRYEXITARGS(_L8("err=%d, type=%d ") ,
       
  1151       aError, aType);
       
  1152 	// Pack the data to return to the Common TSY
       
  1153 	CMmDataPackage dataPackage;
       
  1154     RMmCustomAPI::TSsTypeAndMode typeAndMode;
       
  1155     typeAndMode.iSsType = aType;
       
  1156     typeAndMode.iSsMode = aMode;
       
  1157     RMmCustomAPI::TSsInfo ssInfo;
       
  1158     ssInfo.iEctCallState = aEctCallState;
       
  1159     ssInfo.iChoice = aEctChoice;
       
  1160     ssInfo.iRemoteAddress = aRemotePartyNumber;
       
  1161 	dataPackage.PackData(&typeAndMode, &ssInfo);
       
  1162 	
       
  1163 	
       
  1164 	iMessageManagerCallback.Complete(ECustomNotifySsNetworkEventIPC, &dataPackage, aError);
       
  1165 	
       
  1166 	} // CSupplementaryServicesDispatcher::CallbackNotifyNetworkEventEctCallState
       
  1167 
       
  1168 
       
  1169 void CSupplementaryServicesDispatcher::CallbackNotifyNetworkEvent(TInt aError,
       
  1170 		RMmCustomAPI::TSsType aType, RMmCustomAPI::TSsMode aMode)
       
  1171 /**
       
  1172  * Callback function to be used by the request to complete
       
  1173  * CCtsyDispatcherCallback::CallbackSupplementaryServicesNotifyNetworkEventInd()
       
  1174  *
       
  1175  * @param aError KErrNone on success, or another error code indicating the error otherwise.
       
  1176  * @param aType The type of service.
       
  1177  * @param aMode The mode of the service.
       
  1178  */
       
  1179 	{
       
  1180 	TSYLOGENTRYEXITARGS(_L8("aError=%d, aType=%d, aMode=%d") ,
       
  1181       aError, aType, aMode);
       
  1182 	// Pack the data to return to the Common TSY
       
  1183 	CMmDataPackage dataPackage;
       
  1184     RMmCustomAPI::TSsTypeAndMode typeAndMode;
       
  1185     typeAndMode.iSsType = aType;
       
  1186     typeAndMode.iSsMode = aMode;
       
  1187     RMmCustomAPI::TSsInfo ssInfo;
       
  1188 	dataPackage.PackData(&typeAndMode, &ssInfo);
       
  1189 	
       
  1190 	
       
  1191 	iMessageManagerCallback.Complete(ECustomNotifySsNetworkEventIPC, &dataPackage, aError);
       
  1192 	
       
  1193 	} // CSupplementaryServicesDispatcher::CallbackNotifyNetworkEvent
       
  1194 
       
  1195 void CSupplementaryServicesDispatcher::CallbackNotifyAdditionalInfo(TInt aError,
       
  1196 		TUint8 aOperationCode, const TDesC8& aAdditionalInfo)
       
  1197 /**
       
  1198  * Callback function to be used by the request to complete
       
  1199  * CCtsyDispatcherCallback::CallbackSupplementaryServicesNotifyAdditionalInfoInd()
       
  1200  *
       
  1201  * @param aError KErrNone on success, or another error code indicating the error otherwise.
       
  1202  * @param aOperationCode The operational code.
       
  1203  * @param aAdditionalInfo Any additional information.
       
  1204  */
       
  1205 	{
       
  1206 	TSYLOGENTRYEXITARGS(_L8("aError=%d, aOperationCode=%d"), aError, aOperationCode);
       
  1207 
       
  1208 	// Pack the data to return to the Common TSY
       
  1209 	CMmDataPackage dataPackage;
       
  1210     RMmCustomAPI::TSsAdditionalInfo info;
       
  1211     info.iOperationCode = aOperationCode;
       
  1212     info.iAdditionalInfo = aAdditionalInfo;
       
  1213     RMmCustomAPI::TSsAdditionalInfo* infoPtr = &info;
       
  1214 	dataPackage.PackData(&infoPtr);
       
  1215 	
       
  1216 	
       
  1217 	iMessageManagerCallback.Complete(ECustomSsAdditionalInfoNotificationIPC, &dataPackage, aError);
       
  1218 	
       
  1219 	} // CSupplementaryServicesDispatcher::CallbackNotifyAdditionalInfo
       
  1220 
       
  1221 void CSupplementaryServicesDispatcher::CallbackNotifyRequestComplete(TInt aError,
       
  1222 		 TInt aStatus)
       
  1223 /**
       
  1224  * Callback function to be used by the request to complete
       
  1225  * CCtsyDispatcherCallback::CallbackSupplementaryServicesNotifyRequestCompleteInd()
       
  1226  *
       
  1227  * @param aError KErrNone on success, or another error code indicating the error otherwise.
       
  1228  * @param aStatus The completion status.
       
  1229  */
       
  1230 	{
       
  1231 	TSYLOGENTRYEXITARGS(_L8("aError=%d, aStatus=%d"), aError, aStatus);
       
  1232 
       
  1233 	// Pack the data to return to the Common TSY
       
  1234 	CMmDataPackage dataPackage;
       
  1235 	dataPackage.PackData(&aStatus);
       
  1236 	
       
  1237 	
       
  1238 	iMessageManagerCallback.Complete(ECustomNotifySsRequestCompleteIPC, &dataPackage, aError);
       
  1239 	
       
  1240 	} // CSupplementaryServicesDispatcher::CallbackNotifyRequestComplete
       
  1241 
       
  1242 void CSupplementaryServicesDispatcher::CallbackNotifySendNetworkServiceRequest(TInt aError, RMobilePhone::TMobilePhoneNotifySendSSOperation aOperationCode, const TDesC& aAdditionalInfo)
       
  1243 /**
       
  1244  * Callback function to be used by the request to complete
       
  1245  * CCtsyDispatcherCallback::CallbackSupplementaryServicesNotifySendNetworkServiceRequestInd()
       
  1246  *
       
  1247  * @param The Operation Code for a Send SS Invoke or Return result events, or the Error 
       
  1248  * or Problem Code for a Send SS Return Error or Reject events.
       
  1249  * @param The additional information (parameters) for a Send SS Invoke or Return result or Return Error events.
       
  1250  * This is not used for a Send SS Reject event
       
  1251  * @param aError The error code to be returned to the CTSY Dispatcher.
       
  1252  */
       
  1253 	{
       
  1254 	TSYLOGENTRYEXITARGS(_L8("aError=%d, aOperationCode=%d"), aError, aOperationCode);
       
  1255 	
       
  1256 	__ASSERT_DEBUG(aAdditionalInfo.Length() <= RMobilePhone::KAdditionalInfoSize, CtsyDispatcherPanic(EBadLength));
       
  1257 	
       
  1258 	RMobilePhone::TMobilePhoneSendSSRequestV3 sendSsRequest;
       
  1259 	sendSsRequest.iOpCode = aOperationCode;
       
  1260 	sendSsRequest.iAdditionalInfo = aAdditionalInfo.Left(RMobilePhone::KAdditionalInfoSize);
       
  1261 	
       
  1262 	// Pack the data to return to the Common TSY
       
  1263 	CMmDataPackage data;
       
  1264 	data.PackData(&sendSsRequest);
       
  1265 	
       
  1266 	iMessageManagerCallback.Complete(ECtsyPhoneSendNetworkServiceRequestInd, &data, aError);
       
  1267 	} //CSupplementaryServicesDispatcher::CallbackNotifySendNetworkServiceRequest
       
  1268 
       
  1269 void CSupplementaryServicesDispatcher::CallbackSync(CRequestQueueOneShot::TIpcDataPackage& aIpcDataPackage)
       
  1270 /**
       
  1271  * Part of the MDispatcherCallback interface. Used to complete requests handled
       
  1272  * synchronously by the Licensee LTSY asynchronously back to the Common TSY.
       
  1273  *  
       
  1274  * @param aIpcDataPackage Package encapsulating the request.
       
  1275  * 
       
  1276  * @see MDispatcherCallback::CallbackSync
       
  1277  */
       
  1278 	{
       
  1279 	TSYLOGENTRYEXIT;
       
  1280 	
       
  1281 	switch (aIpcDataPackage.iIpc)
       
  1282 		{
       
  1283 	
       
  1284 	default:
       
  1285 		LOG(_L8("WARNING: CSupplementaryServicesDispatcher::CallbackSync unhandled IPC=%d"), aIpcDataPackage.iIpc);
       
  1286 		__ASSERT_DEBUG(NULL, CtsyDispatcherPanic(EUnhandledCtsyIpc));
       
  1287 		break;		
       
  1288 		} // switch (aIpcDataPackage.iIpc)
       
  1289 	
       
  1290 	} // CSupplementaryServicesDispatcher::CallbackSync
       
  1291 
       
  1292 
       
  1293