telephonyserverplugins/ctsydispatchlayer/exportinc/mltsydispatchcallcontrolinterface.h
branchopencode
changeset 24 6638e7f4bd8f
parent 19 1f776524b15c
--- a/telephonyserverplugins/ctsydispatchlayer/exportinc/mltsydispatchcallcontrolinterface.h	Mon May 03 13:37:20 2010 +0300
+++ b/telephonyserverplugins/ctsydispatchlayer/exportinc/mltsydispatchcallcontrolinterface.h	Thu May 06 15:10:38 2010 +0100
@@ -1,938 +1,938 @@
-// Copyright (c) 2008-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:
-// This file contains all the interfaces classes that can be implemented by
-// the Licensee LTSY relating to CallControl related features.
-//
-
-
-
-
-/**
- @file
- @internalAll 
-*/
-
-
-#ifndef MLTSYDISPATCHCALLCONTROLINTERFACE_H_
-#define MLTSYDISPATCHCALLCONTROLINTERFACE_H_
-
-#include <ctsy/ltsy/mltsydispatchinterface.h>
-#include <etelmm.h>
-#include <ctsy/rmmcustomapi.h>
-
-class MLtsyDispatchCallControlAnswer : public MLtsyDispatchInterface
-	{
-public:
-
-	static const TInt KLtsyDispatchCallControlAnswerApiId = KDispatchCallControlFuncUnitId + 1;
-
-	/**
-	 * The CTSY Dispatcher shall invoke this function on receiving the EEtelCallAnswer
-	 * request from the CTSY.
-	 *
-	 * It is a request call that is completed by invoking
-	 * CCtsyDispatcherCallback::CallbackCallControlAnswerComp()
-	 *
-	 * Implementation of this interface should answer the specified incoming call.
-	 *
-	 * @param aCallId The Call ID of the call to answer.
-	 *
-	 * @param aIsIsvCall ETrue if the request to answer the call comes from a
-	 * 3rd party application, EFalse otherwise. This parameter exists in case the
-	 * LTSY wishes to perform special handling of ISV calls.
-	 *
-	 * @return KErrNone on success, otherwise another error code indicating the
-	 * failure.
-	 *
-	 * @see RCall::AnswerIncomingCall()
-	 * @see RCall::AnswerIncomingCallISV()
-	 * @see CTelephony::AnswerIncomingCall()
-	 */
-	virtual TInt HandleAnswerReqL(TInt aCallId, TBool aIsIsvCall) = 0;
-
-	}; // class MLtsyDispatchCallControlAnswer
-
-
-
-class MLtsyDispatchCallControlHold : public MLtsyDispatchInterface
-	{
-public:
-
-	static const TInt KLtsyDispatchCallControlHoldApiId = KDispatchCallControlFuncUnitId + 2;
-
-	/**
-	 * The CTSY Dispatcher shall invoke this function on receiving the EMobileCallHold
-	 * request from the CTSY.
-	 *
-	 * It is a request call that is completed by invoking
-	 * CCtsyDispatcherCallback::CallbackCallControlHoldComp()
-	 *
-	 * Implementation of this interface should hold the specified call.
-	 *
-	 * @param aCallId The Call ID of the call to hold.
-	 *
-	 * @return KErrNone on success, otherwise another error code indicating the
-	 * failure.
-	 *
-	 * @see RMobileCall::Hold()
-	 */
-	virtual TInt HandleHoldReqL(TInt aCallId) = 0;
-
-	}; // class MLtsyDispatchCallControlHold
-
-
-
-class MLtsyDispatchCallControlDialEmergency : public MLtsyDispatchInterface
-	{
-public:
-
-	static const TInt KLtsyDispatchCallControlDialEmergencyApiId = KDispatchCallControlFuncUnitId + 3;
-
-	/**
-	 * The CTSY Dispatcher shall invoke this function on receiving the EMobileCallDialEmergencyCall
-	 * request from the CTSY.
-	 *
-	 * It is a request call that is completed by invoking
-	 * CCtsyDispatcherCallback::CallbackCallControlDialEmergencyComp()
-	 *
-	 * Implementation of this interface should dial an emergency call to the specified
-	 * number.
-	 *
-	 * @param aEmergencyNumber The emergency phone number to dial.  The descriptor
-	 * should be of type RMobileENStore::TEmergencyNumber.
-	 *
-	 * @return KErrNone on success, otherwise another error code indicating the
-	 * failure.
-	 *
-	 * @see RMobileCall::DialEmergencyCall()
-	 */
-	virtual TInt HandleDialEmergencyReqL(const TDes& aEmergencyNumber) = 0;
-
-	}; // class MLtsyDispatchCallControlDialEmergency
-
-
-class MLtsyDispatchCallControlStopDtmfTone : public MLtsyDispatchInterface
-	{
-public:
-
-	static const TInt KLtsyDispatchCallControlStopDtmfToneApiId = KDispatchCallControlFuncUnitId + 4;
-
-	/**
-	 * The CTSY Dispatcher shall invoke this function on receiving the EMobilePhoneStopDTMFTone
-	 * request from the CTSY.
-	 *
-	 * It is a request call that is completed by invoking
-	 * CCtsyDispatcherCallback::CallbackCallControlStopDtmfToneComp()
-	 *
-	 * Implementation of this interface should stop sending the DTMF tone previously
-	 * started by MLtsyDispatchCallControlStartDtmfTone::HandleStartDtmfToneReqL().
-	 *
-	 * @param aCallId Call ID of the connected call the stop request will be sent
-	 * through.
-	 *
-	 * @return KErrNone on success, otherwise another error code indicating the
-	 * failure.
-	 *
-	 * @see RMobileCall::StopDTMFTone()
-	 */
-	virtual TInt HandleStopDtmfToneReqL(TInt aCallId) = 0;
-
-	}; // class MLtsyDispatchCallControlStopDtmfTone
-
-
-
-class MLtsyDispatchCallControlSetActiveAlsLine : public MLtsyDispatchInterface
-	{
-public:
-
-	static const TInt KLtsyDispatchCallControlSetActiveAlsLineApiId = KDispatchCallControlFuncUnitId + 5;
-
-	/**
-	 * The CTSY Dispatcher shall invoke this function on receiving the EMobilePhoneSetALSLine
-	 * request from the CTSY.
-	 *
-	 * It is a request call that is completed by invoking
-	 * CCtsyDispatcherCallback::CallbackCallControlSetActiveAlsLineComp()
-	 *
-	 * Implementation of this interface should set the active ALS line to that
-	 * specified.
-	 *
-	 * @param aAlsLine The new active ALS line.
-	 *
-	 * @return KErrNone on success, otherwise another error code indicating the
-	 * failure.
-	 *
-	 * @see RMobilePhone::SetALSLine()
-	 */
-	virtual TInt HandleSetActiveAlsLineReqL(RMobilePhone::TMobilePhoneALSLine aAlsLine) = 0;
-
-	}; // class MLtsyDispatchCallControlSetActiveAlsLine
-
-
-
-class MLtsyDispatchCallControlSendDtmfTonesCancel : public MLtsyDispatchInterface
-	{
-public:
-
-	static const TInt KLtsyDispatchCallControlSendDtmfTonesCancelApiId = KDispatchCallControlFuncUnitId + 6;
-
-	/**
-	 * The CTSY Dispatcher shall invoke this function on receiving the EMobilePhoneSendDTMFTonesCancel
-	 * request from the CTSY.
-	 *
-	 * It is a request call that is completed by invoking
-	 * CCtsyDispatcherCallback::CallbackCallControlSendDtmfTonesCancelComp()
-	 *
-	 * Implementation of this interface should attempt to cancel the sending of
-	 * a string of DTMF tones which were previously sent by
-	 * MLtsyDispatchCallControlSendDtmfTones::HandleSendDtmfTonesReqL()
-	 *
-	 * @param aCallId The Call ID of the active call that the cancel request relates
-	 * to.
-	 *
-	 * @return KErrNone on success, otherwise another error code indicating the
-	 * failure.
-	 *
-	 * @see RMobilePhone::SendDTMFTones()
-	 */
-	virtual TInt HandleSendDtmfTonesCancelReqL(TInt aCallId) = 0;
-
-	}; // class MLtsyDispatchCallControlSendDtmfTonesCancel
-
-
-
-class MLtsyDispatchCallControlHangUp : public MLtsyDispatchInterface
-	{
-public:
-
-	static const TInt KLtsyDispatchCallControlHangUpApiId = KDispatchCallControlFuncUnitId + 7;
-
-	/**
-	 * The CTSY Dispatcher shall invoke this function on receiving the EEtelCallHangUp
-	 * request from the CTSY.
-	 *
-	 * It is a request call that is completed by invoking
-	 * CCtsyDispatcherCallback::CallbackCallControlHangUpComp()
-	 *
-	 * Implementation of this interface should
-	 * make a request to the modem to hang up the call specified
-	 * in aCallId.  The completion should be called to indicate the result of
-	 * placing the hang up request with the baseband.
-	 *
-	 *  - If aCallId refers to a connected call, the Common TSY will pass
-	 * a hang up cause of KErrGsmReleaseByUser to indicate that the call is
-	 * being released by the user.
-	 *
-	 *  - If aCallId refers to a mobile terminated call which is ringing,
-	 * the Common TSY will pass a hang up cause of KErrGsmBusyUserRequest to
-	 * indicate that the user is rejecting the incoming call.
-	 *
-	 * @param aCallId The Call ID of the call to hang up.
-	 *
-	 * @param aHangupCause The reason for the hang up request.
-	 *
-	 * @return KErrNone on success, otherwise another error code indicating the
-	 * failure.
-	 *
-	 * @see RCall::HangUp()
-	 */
-	virtual TInt HandleHangUpReqL(TInt aCallId, TInt aHangupCause) = 0;
-
-	}; // class MLtsyDispatchCallControlHangUp
-
-
-
-class MLtsyDispatchCallControlResume : public MLtsyDispatchInterface
-	{
-public:
-
-	static const TInt KLtsyDispatchCallControlResumeApiId = KDispatchCallControlFuncUnitId + 8;
-
-	/**
-	 * The CTSY Dispatcher shall invoke this function on receiving the EMobileCallResume
-	 * request from the CTSY.
-	 *
-	 * It is a request call that is completed by invoking
-	 * CCtsyDispatcherCallback::CallbackCallControlResumeComp()
-	 *
-	 * Implementation of this interface should resume the specified call.
-	 * See 3GPP 24.083
-	 *
-	 * @param aCallId The Call ID of the call to resume.
-	 *
-	 * @return KErrNone on success, otherwise another error code indicating the
-	 * failure.
-	 *
-	 * @see RMobileCall::Resume()
-	 */
-	virtual TInt HandleResumeReqL(TInt aCallId) = 0;
-
-	}; // class MLtsyDispatchCallControlResume
-
-
-
-class MLtsyDispatchCallControlSetDynamicHscsdParams : public MLtsyDispatchInterface
-	{
-public:
-
-	static const TInt KLtsyDispatchCallControlSetDynamicHscsdParamsApiId = KDispatchCallControlFuncUnitId + 9;
-
-	/**
-	 * The CTSY Dispatcher shall invoke this function on receiving the EMobileCallSetDynamicHscsdParams
-	 * request from the CTSY.
-	 *
-	 * It is a request call that is completed by invoking
-	 * CCtsyDispatcherCallback::CallbackCallControlSetDynamicHscsdParamsComp()
-	 *
-	 * Implementation of this interface should set the dynamic HSCSD parameters
-	 * of the specified data call.
-	 *
-	 * @param aCallId The call ID of the data call.
-	 *
-	 * @param aHscsdParams The requested dynamic HSCSD parameters.
-	 *
-	 * @return KErrNone on success, otherwise another error code indicating the
-	 * failure.
-	 *
-	 * @see RMobileCall::SetDynamicHscsdParams()
-	 */
-	virtual TInt HandleSetDynamicHscsdParamsReqL(TInt aCallId, const RMobileCall::TMobileHscsdCallParamsV1& aHscsdParams) = 0;
-
-	}; // class MLtsyDispatchCallControlSetDynamicHscsdParams
-
-
-
-class MLtsyDispatchCallControlDialVoice : public MLtsyDispatchInterface
-	{
-public:
-
-	static const TInt KLtsyDispatchCallControlDialVoiceApiId = KDispatchCallControlFuncUnitId + 10;
-
-	/**
-	 * The CTSY Dispatcher shall invoke this function on receiving the EEtelCallDial
-	 * request from the CTSY for dialling a voice call.
-	 *
-	 * It is a request call that is completed by invoking
-	 * CCtsyDispatcherCallback::CallbackCallControlDialVoiceComp()
-	 *
-	 * Implementation of this interface should
-	 * dial the requested voice call and complete the callback to indicate
-	 * that an attempt to dial the call has been made.  The callback function is used
-	 * to indicate the outcome of this attempt to initiate the dialling process.
-	 *
-	 * @param aCallLine The line to use to dial the call. This parameter can have
-	 * one of two possible values RMobilePhone::EAlternateLinePrimary to use the
-	 * primary voice line or RMobilePhone::EAlternateLineAuxiliary to use the
-	 * auxiliary voice line.
-	 *
-	 * @param aDialledParty Details about the dialled party including the phone
-	 * number to dial.
-	 *
-	 * @param aCallParamsV1 The call parameters of the call to dial. If aIsIsvCall
-	 * is set to ETrue, only the RMobileCall::TMobileCallParamsV1::iIdRestrict
-	 * and RMobileCall::TMobileCallParamsV1::iAutoRedial fields are valid.
-	 *
-	 * @param aIsIsvCall Indicates whether the call originated from a third party
-	 * application which would have used the CTelephony class to dial the call.
-	 * This information is provided in case the LTSY wishes to do special handling
-	 * for third party calls, for example, not allow third party applications to
-	 * place emergency calls. See also
-	 * MLtsyDispatchCallControlQueryIsEmergencyNumber::HandleQueryIsEmergencyNumberSyncL()
-	 * See also: CTelephony::DialNewCall() and RMobileCall::DialISV()
-	 *
-	 * @param aCallOrigin The origin of the dial request. e.g. Whether the dial
-	 * came from an Etel client or the SIM or another source.
-	 * 
-	 * @param aPerformFdnCheck whether or not an FDN (Fixed Dialling Number) check should be performed.
-	 *
-	 * @return KErrNone on success; KErrNotSupported if the LTSY does not
-	 * support handling of this request or another error code indicating the
-	 * failure otherwise.
-	 *
-	 * @see RCall::Dial()
-	 * @see RMobileCall::DialISV()
-	 * @see RMobileCall::DialNoFdnCheck()
-	 */
-	virtual TInt HandleDialVoiceReqL(RMobilePhone::TMobilePhoneALSLine aCallLine, const RMobilePhone::TMobileAddress& aDialledParty, const RMobileCall::TMobileCallParamsV1& aCallParamsV1, TBool aIsIsvCall, RMobileCall::TCallParamOrigin aCallOrigin,
-			TBool aPerformFdnCheck) = 0;
-
-	}; // class MLtsyDispatchCallControlDialVoice
-
-
-
-class MLtsyDispatchCallControlTransfer : public MLtsyDispatchInterface
-	{
-public:
-
-	static const TInt KLtsyDispatchCallControlTransferApiId = KDispatchCallControlFuncUnitId + 11;
-
-	/**
-	 * The CTSY Dispatcher shall invoke this function on receiving the EMobileCallTransfer
-	 * request from the CTSY.
-	 *
-	 * It is a request call that is completed by invoking
-	 * CCtsyDispatcherCallback::CallbackCallControlTransferComp()
-	 *
-	 * This request should be completed when the request to transfer the call has
-	 * been placed.
-	 *
-	 * Implementation of this interface should transfer the specified held call.
-	 * Transferring a call can be requested when there is one held call and another
-	 * call either connected or in the ringing state. When the two remote parties
-	 * are transferred to each other, the party requesting this operation (us)
-	 * drops out of the call.
-	 *
-	 * @param aHeldCallId Call ID of the call held call to transfer.
-	 *
-	 * @param aOtherCallId Call ID of the other call to transfer the held call to.
-	 * This call is either an incoming call in the ringing state or a connected call.
-	 *
-	 * @return KErrNone on success, otherwise another error code indicating the
-	 * failure.
-	 *
-	 * @see RMobileCall::Transfer()
-	 */
-	virtual TInt HandleTransferReqL(TInt aHeldCallId, TInt aOtherCallId) = 0;
-
-	}; // class MLtsyDispatchCallControlTransfer
-
-
-
-class MLtsyDispatchCallControlSendDtmfTones : public MLtsyDispatchInterface
-	{
-public:
-
-	static const TInt KLtsyDispatchCallControlSendDtmfTonesApiId = KDispatchCallControlFuncUnitId + 12;
-
-	/**
-	 * The CTSY Dispatcher shall invoke this function on receiving the EMobilePhoneSendDTMFTones
-	 * request from the CTSY.
-	 *
-	 * It is a request call that is completed by invoking
-	 * CCtsyDispatcherCallback::CallbackCallControlSendDtmfTonesComp()
-	 *
-	 * Implementation of this interface should send the specified DTMF string through
-	 * the currently active call.
-	 *
-	 * @param aCallId The Call ID of the call through which the DTMF string will be
-	 * sent.
-	 *
-	 * @param aTones Tones to send through the active call.
-	 *
-	 * @return KErrNone on success, otherwise another error code indicating the
-	 * failure.
-	 *
-	 * @see RMobilePhone::SendDTMFTones()
-	 */
-	virtual TInt HandleSendDtmfTonesReqL(TInt aCallId, const TDesC& aTones) = 0;
-
-	}; // class MLtsyDispatchCallControlSendDtmfTones
-
-
-
-class MLtsyDispatchCallControlGetIdentityServiceStatus : public MLtsyDispatchInterface
-	{
-public:
-
-	static const TInt KLtsyDispatchCallControlGetIdentityServiceStatusApiId = KDispatchCallControlFuncUnitId + 13;
-
-	/**
-	 * The CTSY Dispatcher shall invoke this function on receiving the EMobilePhoneGetIdentityServiceStatus
-	 * request from the CTSY.
-	 *
-	 * It is a request call that is completed by invoking
-	 * CCtsyDispatcherCallback::CallbackCallControlGetIdentityServiceStatusComp()
-	 *
-	 * Implementation of this interface should request for the status of the
-	 * specified identity service such as the Caller ID Presentation Service.
-	 *
-	 * @param aService The service whose status needs to be retrieved.
-	 *
-	 * @return KErrNone on success, otherwise another error code indicating the
-	 * failure.
-	 *
-	 * @see RMobilePhone::GetIdentityServiceStatus()
-	 */
-	virtual TInt HandleGetIdentityServiceStatusReqL(RMobilePhone::TMobilePhoneIdService aService) = 0;
-
-	}; // class MLtsyDispatchCallControlGetIdentityServiceStatus
-
-
-
-class MLtsyDispatchCallControlSwap : public MLtsyDispatchInterface
-	{
-public:
-
-	static const TInt KLtsyDispatchCallControlSwapApiId = KDispatchCallControlFuncUnitId + 14;
-	static const TInt KLtsyDispatchCallControlSingleSwapApiId = KDispatchCallControlFuncUnitId + 29;
-
-	/**
-	 * The CTSY Dispatcher shall invoke this function on receiving the EMobileCallSwap
-	 * request from the CTSY.
-	 *
-	 * It is a request call that is completed by invoking
-	 * CCtsyDispatcherCallback::CallbackCallControlSwapComp()
-	 *
-	 * This request should be completed when the request to swap two calls has
-	 * been placed. One is held and the other connected. The held call becomes connected
-	 * (RMobileCall::EStatusConnected) and the connected call becomes held 
-	 * (RMobileCall::EStatusHold).
-	 *
-	 * Implementation of this interface should request that the Licensee TSY
-	 * swap the specified calls. Swapping is allowed for one or two active calls.
-	 *
-	 * @param aCallId The Call ID of the call to swap.
-	 *
-	 * @return KErrNone on success, otherwise another error code indicating the
-	 * failure.
-	 *
-	 * @see RMobileCall::Swap()
-	 */
-	virtual TInt HandleSwapReqL(TInt aCallId, TInt aSecondCallId) = 0;
-
-	/**
-	 * The CTSY Dispatcher shall invoke this function on receiving the EMobileCallSwap
-	 * request, for a single call, from the CTSY.
-	 *
-	 * It is a request call that is completed by invoking
-	 * CCtsyDispatcherCallback::CallbackCallControlSwapComp()
-	 *
-	 * This request should be completed when the request to swap the single call has
-	 * been placed.
-	 *
-	 * Implementation of this interface should request that the Licensee TSY
-	 * swap the specified call. The state of the call will be swapped from held to connected 
-	 * (or visa versa)
-	 *
-	 * @param aCallId The Call ID of the single call to swap.
-	 *
-	 * @return KErrNone on success, otherwise another error code indicating the
-	 * failure.
-	 *
-	 * @see RMobileCall::Swap()
-	 */
-	virtual TInt HandleSwapReqL(TInt aCallId) = 0;
-
-	}; // class MLtsyDispatchCallControlSwap
-
-
-	
-class MLtsyDispatchCallControlLoanDataPort : public MLtsyDispatchInterface
-	{
-public:
-
-	static const TInt KLtsyDispatchCallControlLoanDataPortApiId = KDispatchCallControlFuncUnitId + 15;
-
-	/**
-	 * The CTSY Dispatcher shall invoke this function on receiving the EEtelCallLoanDataPort
-	 * request from the CTSY.
-	 *
-	 * Implementation of this interface should read the port name from CommDat
-	 * for use in a data call. This API may be adaptation specific.
-	 *
-	 * It is a sync call where the output parameters should be completed before returning
-	 * from this function.
-	 *
-	 * @param aCallId Call ID of the data call requiring the data port.
-	 *
-	 * @param aCommPort Output parameter. The communications port information
-	 * retrieved by a client using the RCall::LoanDataPort() API.
-	 *
-	 * @return KErrNone on success, otherwise another error code indicating the
-	 * failure.
-	 */
-	virtual TInt HandleLoanDataPortSyncL(TInt aCallId, RCall::TCommPort& aCommPort) = 0;
-
-	}; // class MLtsyDispatchCallControlLoanDataPort
-
-
-
-class MLtsyDispatchCallControlRecoverDataPort : public MLtsyDispatchInterface
-	{
-public:
-
-	static const TInt KLtsyDispatchCallControlRecoverDataPortApiId = KDispatchCallControlFuncUnitId + 16;
-
-	/**
-	 * The CTSY Dispatcher shall invoke this function on receiving the EEtelCallRecoverDataPort
-	 * request from the CTSY.
-	 *
-	 * Implementation of this interface should recover the data port loaned by a
-	 * previous call to
-	 * MLtsyDispatchCallControlLoanDataPort::HandleLoanDataPortSyncL()
-	 * and matches a client side call to RCall::RecoverDataPort().
-	 *
-	 * It is a sync call where the data arguments should be completed before returning.
-	 *
-	 * @param aCallId Call ID of the data call requiring the data port.
-	 *
-	 * @param aCommPort The data port to recover.  This contains the details previously
-	 * returned by a call to RCall::LoanDataPort()
-	 *
-	 * @return KErrNone on success, otherwise another error code indicating the
-	 * failure.
-	 */
-	virtual TInt HandleRecoverDataPortSyncL(TInt aCallId, RCall::TCommPort& aCommPort) = 0;
-
-	}; // class MLtsyDispatchCallControlRecoverDataPort
-
-
-
-class MLtsyDispatchCallControlStartDtmfTone : public MLtsyDispatchInterface
-	{
-public:
-
-	static const TInt KLtsyDispatchCallControlStartDtmfToneApiId = KDispatchCallControlFuncUnitId + 17;
-
-	/**
-	 * The CTSY Dispatcher shall invoke this function on receiving the EMobilePhoneStartDTMFTone
-	 * request from the CTSY.
-	 *
-	 * Implementation of this interface should send the specified DTMF tone
-	 * through the currently active call.
-	 *
-	 * @param aCallId Call ID of the connected call through which the DTMF tone
-	 * will be sent.
-	 *
-	 * @param aTone The tone character to send through the call.
-	 *
-	 * @return KErrNone on success, otherwise another error code indicating the
-	 * failure.
-	 *
-	 * @see RMobilePhone::StartDTMFTone()
-	 */
-	virtual TInt HandleStartDtmfToneReqL(TInt aCallId, const TChar& aTone) = 0;
-
-	}; // class MLtsyDispatchCallControlStartDtmfTone
-
-
-
-
-class MLtsyDispatchCallControlGetActiveAlsLine : public MLtsyDispatchInterface
-	{
-public:
-	static const TInt KLtsyDispatchCallControlGetActiveAlsLineApiId = KDispatchCallControlFuncUnitId + 18;
-
-public:
-
-	/**
-	 * The CTSY Dispatcher shall invoke this function on receiving the EMobilePhoneGetActiveAlsLine
-	 * request from the CTSY.
-	 *
-	 * It is a request call that is completed by invoking
-	 * CCtsyDispatcherCallback::CallbackCallControlGetActiveAlsLineComp()
-	 *
-	 * Implementation of this interface should retrieve the currently selected ALS line.
-	 *
-	 * @return KErrNone on success, otherwise another error code indicating the
-	 * failure.
-	 *
-	 * @see RMobilePhone::GetALSLine()
-	 */
-	virtual TInt HandleGetActiveAlsLineReqL() = 0;
-
-	}; // class MLtsyDispatchCallControlGetActiveAlsLine
-
-
-class MLtsyDispatchCallControlDialData : public MLtsyDispatchInterface
-	{
-public:
-	static const TInt KLtsyDispatchCallControlDialDataApiId = KDispatchCallControlFuncUnitId + 19;
-public:
-
-	/**
-	 * The CTSY Dispatcher shall invoke this function on receiving the EEtelCallDial
-	 * request from the CTSY when a data call is requested.
-	 *
-	 * It is a request call that is completed by invoking
-	 * CCtsyDispatcherCallback::CallbackCallControlDialDataComp()
-	 *
-	 * Implementation of this interface should dial the data call to the
-	 * specified destination. The callback should be completed when the dial
-	 * request has been sent to the baseband and should indicate
-	 * that an attempt to dial the call has been made.  The callback function is used
-	 * to indicate the outcome of this attempt to initiate the dialling process.
-	 *
-	 * @param aLine The line to use to dial the call.
-	 *
-	 * @param aDialledParty Details about the dialled party including the phone
-	 * number to dial.
-	 *
-	 * @param aCallParamsV1 The call parameters of the call to dial.
-	 * 
-	 * @param aPerformFdnCheck whether or not an FDN (Fixed Dialling Number) check should be performed.
-	 *
-	 * @return KErrNone on success; KErrNotSupported if the LTSY does not
-	 * support handling of this request or another error code indicating the
-	 * failure otherwise.
-	 *
-	 * @see RCall::Dial()
-	 */
-	virtual TInt HandleDialDataReqL(const RMobilePhone::TMobileAddress& aDialledParty, const RMobileCall::TMobileDataCallParamsV1& aCallParamsV1,
-			TBool aPerformFdnCheck) = 0;
-
-	}; // class MLtsyDispatchCallControlDialData
-
-
-class MLtsyDispatchCallControlQueryIsEmergencyNumber : public MLtsyDispatchInterface
-	{
-public:
-	static const TInt KLtsyDispatchCallControlQueryIsEmergencyNumberApiId = KDispatchCallControlFuncUnitId + 20;
-public:
-
-	/**
-	 * The CTSY Dispatcher shall invoke this function on receiving the
-	 * ECustomCheckEmergencyNumberIPC request from the CTSY.
-	 *
-	 * It is a sync call where the output data arguments should be completed
-	 * before returning.
-	 *
-	 * Implementation of this interface should check whether the specified
-	 * number is an emergency number and return the result back to the caller
-	 * via the output parameter.
-	 *
-	 * @param aNumber Input parameter. The phone number being queried to see
-	 * if it is an emergency number or not.
-	 *
-	 * @param aIsEmergencyNumber Output parameter used to indicate whether the
-	 * aNumber parameter is an emergency number. ETrue if it is, EFalse otherwise.
-	 *
-	 * @return KErrNone if the LTSY was successful in determining whether the
-	 * queried number is an emergency one; KErrNotSupported if the LTSY does not
-	 * support handling of this request or another error code indicating the
-	 * failure otherwise.
-	 */
-	virtual TInt HandleQueryIsEmergencyNumberSyncL(const TDesC& aNumber, TBool& aIsEmergencyNumber) = 0;
-
-	}; // class MLtsyDispatchCallControlQueryIsEmergencyNumber
-
-
-class MLtsyDispatchCallControlGetAlsPpSupport : public MLtsyDispatchInterface
-	{
-public:
-
-	static const TInt KLtsyDispatchCallControlGetAlsPpSupportApiId = KDispatchCallControlFuncUnitId + 21;
-
-	/**
-	 * The CTSY Dispatcher shall invoke this function on receiving the ECustomCheckAlsPpSupportIPC
-	 * request from the CTSY.
-	 *
-	 * It is a request call that is completed by invoking
-	 * CCtsyDispatcherCallback::CallbackCallControlGetAlsPpSupportComp()
-	 *
-	 * Implementation of this interface should return check if the product profile support ALS.
-	 *
-	 * @return KErrNone on success, otherwise another error code indicating the
-	 * failure.
-	 *
-	 * @see RMmCustomAPI::CheckAlsPpSupport()
-	 */
-	virtual TInt HandleGetAlsPpSupportL() = 0;
-
-	}; // class MLtsyDispatchCallControlGetAlsPpSupport
-
-
-class MLtsyDispatchCallControlGetAlsBlockedStatus : public MLtsyDispatchInterface
-	{
-public:
-
-	static const TInt KLtsyDispatchCallControlGetAlsBlockedStatusApiId = KDispatchCallControlFuncUnitId + 22;
-
-	/**
-	 * The CTSY Dispatcher shall invoke this function on receiving the ECustomGetAlsBlockedIPC
-	 * request from the CTSY.
-	 *
-	 * It is a request call that is completed by invoking
-	 * CCtsyDispatcherCallback::CallbackCallControlGetAlsBlockedStatusComp()
-	 *
-	 * Implementation of this interface should return the blocked status of the ALS service.
-	 *
-	 * @return KErrNone on success, otherwise another error code indicating the
-	 * failure.
-	 *
-	 * @see RMmCustomAPI::GetAlsBlocked()
-	 */
-	virtual TInt HandleGetAlsBlockedStatusL() = 0;
-
-	}; // class MLtsyDispatchCallControlGetAlsBlockedStatus
-
-
-class MLtsyDispatchCallControlSetAlsBlocked : public MLtsyDispatchInterface
-	{
-public:
-
-	static const TInt KLtsyDispatchCallControlSetAlsBlockedApiId = KDispatchCallControlFuncUnitId + 23;
-
-	/**
-	 * The CTSY Dispatcher shall invoke this function on receiving the ECustomSetAlsBlockedIPC
-	 * request from the CTSY.
-	 *
-	 * It is a request call that is completed by invoking
-	 * CCtsyDispatcherCallback::CallbackCallControlSetAlsBlockedComp()
-	 *
-	 * Implementation of this interface should set the ALS blocked status.
-	 *
-     * @param aBlocked RMmCustomAPI::EDeactivateBlock when the ALS block needs to be deactivated,
-     *                 RMmCustomAPI::EActivateBlock when the ALS block needs to be activated.
-     *
-	 * @return KErrNone on success, otherwise another error code indicating the
-	 * failure.
-	 *
-	 * @see RMmCustomAPI::SetAlsBlocked()
-	 */
-	virtual TInt HandleSetAlsBlockedL(RMmCustomAPI::TSetAlsBlock aBlocked) = 0;
-
-	}; // class MLtsyDispatchCallControlSetAlsBlocked
-
-
-class MLtsyDispatchCallControlGetLifeTime : public MLtsyDispatchInterface
-	{
-public:
-
-	static const TInt KLtsyDispatchCallControlGetLifeTimeApiId = KDispatchCallControlFuncUnitId + 24;
-
-	/**
-	 * The CTSY Dispatcher shall invoke this function on receiving the ECustomGetLifeTimeIPC
-	 * request from the CTSY.
-	 *
-	 * It is a request call that is completed by invoking one of the 
-	 * CCtsyDispatcherCallback::CallbackCallControlGetLifeTimeComp()
-	 *
-	 * Implementation of this interface should return the lifetime of the phone. The lifetime
-     * information includes the manufacturing date of the phone and/or the total amount of air time used
-     * from the manufacturing date until the call to this method. Calling this method does not reset any data. 
-	 *
-	 * @return KErrNone on success, otherwise another error code indicating the
-	 * failure.
-	 *
-	 * @see RMmCustomAPI::GetLifeTime()
-	 */
-	virtual TInt HandleGetLifeTimeL() = 0;
-
-	}; // class MLtsyDispatchCallControlGetLifeTimeStatus
-
-
-class MLtsyDispatchCallControlTerminateErrorCall : public MLtsyDispatchInterface
-	{
-public:
-
-	static const TInt KLtsyDispatchCallControlTerminateErrorCallApiId = KDispatchCallControlFuncUnitId + 25;
-
-	/**
-	 * The CTSY Dispatcher shall invoke this function on receiving the ECustomTerminateCallIPC
-	 * request from the CTSY with a valid call id.
-	 *
-	 * It is a request call that is completed by invoking
-	 * CCtsyDispatcherCallback::CallbackCallControlTerminateErrorCallComp()
-	 *
-	 * Implementation of this interface should terminate the call with an error.
-	 *
-	 * @param aCallId The Call ID of the call to terminate.
-     *
-	 * @return KErrNone on success, otherwise another error code indicating the
-	 * failure.
-	 *
-	 * @see RMmCustomAPI::TerminateCall()
-	 */
-	virtual TInt HandleTerminateErrorCallL(TInt aCallId) = 0;
-
-	}; // class MLtsyDispatchCallControlTerminateErrorCall
-
-
-class MLtsyDispatchCallControlTerminateAllCalls : public MLtsyDispatchInterface
-	{
-public:
-
-	static const TInt KLtsyDispatchCallControlTerminateAllCallsApiId = KDispatchCallControlFuncUnitId + 26;
-
-	/**
-	 * The CTSY Dispatcher shall invoke this function on receiving the ECustomTerminateCallIPC
-	 * request from the CTSY with an invalid call id.
-	 *
-	 * It is a request call that is completed by invoking
-	 * CCtsyDispatcherCallback::CallbackCallControlTerminateAllCallsComp()
-	 *
-	 * Implementation of this interface should terminate all the active, connecting and held calls.
-	 *
-	 * @return KErrNone on success, otherwise another error code indicating the
-	 * failure.
-	 *
-	 * @see RMmCustomAPI::TerminateCall()
-	 */
-	virtual TInt HandleTerminateAllCallsL() = 0;
-
-	}; // class MLtsyDispatchCallControlTerminateAllCalls
-
-
-class MLtsyDispatchCallControlGetCallForwardingIndicator : public MLtsyDispatchInterface
-	{
-public:
-
-	static const TInt KLtsyDispatchCallControlGetCallForwardingIndicatorApiId = KDispatchCallControlFuncUnitId + 27;
-
-	/**
-	 * The CTSY Dispatcher shall invoke this function on receiving the ECustomGetIccCallForwardingStatusIPC
-	 * request from the CTSY.
-	 *
-	 * It is a request call that is completed by invoking one of the 
-	 * CCtsyDispatcherCallback::CallbackCallControlGetCallForwardingIndicatorComp()
-	 *
-	 * Implementation of this interface should return the call forwarding indicator from the network.
-	 *
-	 * @return KErrNone on success, otherwise another error code indicating the
-	 * failure.
-	 *
-	 * @see RMmCustomAPI::GetIccCallForwardingIndicatorStatus()
-	 */
-	virtual TInt HandleGetCallForwardingIndicatorL() = 0;
-
-	}; // class MLtsyDispatchCallControlGetCallForwardingIndicator
-
-class MLtsyDispatchCallControlUpdateLifeTimer : public MLtsyDispatchInterface
-	{
-public:
-	static const TInt KLtsyDispatchCallControlUpdateLifeTimerApiId = KDispatchCallControlFuncUnitId + 28;
-public:
-
-	/**
-	 * The CTSY Dispatcher shall invoke this function on receiving the
-	 * ECtsyUpdateLifeTimeReq request from the CTSY.
-	 *
-	 * It is a request call that is completed by invoking
-	 * CCtsyDispatcherCallback::CallbackCallControlUpdateLifeTimerComp()
-	 *
-	 * Implementation of this interface can accumulate the number of seconds that
-	 * have elapsed since a call started. By initialising a variable in the LTSY when a 
-	 * call is dialed, then adding the value contained in aDuration to this variable 
-	 * it is possible to track the duration of a call.
-	 * 
-	 * HandleUpdateLifeTimerReqL is usually invoked every 10 seconds.
-	 *
-	 * @param aDuration The number of seconds that have elapsed since the last time
-	 * this interface was invoked (or since the start of the call if the first invocation).
-	 *
-	 * @return KErrNone if the LTSY was successful; KErrNotSupported if the LTSY does not
-	 * support handling of this request or another error code indicating the
-	 * failure otherwise.
-	 */
-	virtual TInt HandleUpdateLifeTimerReqL(TUint32 aDuration) = 0;
-
-	}; // class MLtsyDispatchCallControlUpdateLifeTimer
-
-	
-// Note: A static constant has been defined in MLtsyDispatchCallControlSwap (abbove) with the highest Id 
-// in this file... "KLtsyDispatchCallControlSingleSwapApiId = KDispatchCallControlFuncUnitId + 29"
-// If adding a new Id it must be greater than KDispatchCallControlFuncUnitId + 29.
-
-#endif /*MLTSYDISPATCHCALLCONTROLINTERFACE_H_*/
+// Copyright (c) 2008-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:
+// This file contains all the interfaces classes that can be implemented by
+// the Licensee LTSY relating to CallControl related features.
+//
+
+
+
+
+/**
+ @file
+ @internalAll 
+*/
+
+
+#ifndef MLTSYDISPATCHCALLCONTROLINTERFACE_H_
+#define MLTSYDISPATCHCALLCONTROLINTERFACE_H_
+
+#include <ctsy/ltsy/mltsydispatchinterface.h>
+#include <etelmm.h>
+#include <ctsy/rmmcustomapi.h>
+
+class MLtsyDispatchCallControlAnswer : public MLtsyDispatchInterface
+	{
+public:
+
+	static const TInt KLtsyDispatchCallControlAnswerApiId = KDispatchCallControlFuncUnitId + 1;
+
+	/**
+	 * The CTSY Dispatcher shall invoke this function on receiving the EEtelCallAnswer
+	 * request from the CTSY.
+	 *
+	 * It is a request call that is completed by invoking
+	 * CCtsyDispatcherCallback::CallbackCallControlAnswerComp()
+	 *
+	 * Implementation of this interface should answer the specified incoming call.
+	 *
+	 * @param aCallId The Call ID of the call to answer.
+	 *
+	 * @param aIsIsvCall ETrue if the request to answer the call comes from a
+	 * 3rd party application, EFalse otherwise. This parameter exists in case the
+	 * LTSY wishes to perform special handling of ISV calls.
+	 *
+	 * @return KErrNone on success, otherwise another error code indicating the
+	 * failure.
+	 *
+	 * @see RCall::AnswerIncomingCall()
+	 * @see RCall::AnswerIncomingCallISV()
+	 * @see CTelephony::AnswerIncomingCall()
+	 */
+	virtual TInt HandleAnswerReqL(TInt aCallId, TBool aIsIsvCall) = 0;
+
+	}; // class MLtsyDispatchCallControlAnswer
+
+
+
+class MLtsyDispatchCallControlHold : public MLtsyDispatchInterface
+	{
+public:
+
+	static const TInt KLtsyDispatchCallControlHoldApiId = KDispatchCallControlFuncUnitId + 2;
+
+	/**
+	 * The CTSY Dispatcher shall invoke this function on receiving the EMobileCallHold
+	 * request from the CTSY.
+	 *
+	 * It is a request call that is completed by invoking
+	 * CCtsyDispatcherCallback::CallbackCallControlHoldComp()
+	 *
+	 * Implementation of this interface should hold the specified call.
+	 *
+	 * @param aCallId The Call ID of the call to hold.
+	 *
+	 * @return KErrNone on success, otherwise another error code indicating the
+	 * failure.
+	 *
+	 * @see RMobileCall::Hold()
+	 */
+	virtual TInt HandleHoldReqL(TInt aCallId) = 0;
+
+	}; // class MLtsyDispatchCallControlHold
+
+
+
+class MLtsyDispatchCallControlDialEmergency : public MLtsyDispatchInterface
+	{
+public:
+
+	static const TInt KLtsyDispatchCallControlDialEmergencyApiId = KDispatchCallControlFuncUnitId + 3;
+
+	/**
+	 * The CTSY Dispatcher shall invoke this function on receiving the EMobileCallDialEmergencyCall
+	 * request from the CTSY.
+	 *
+	 * It is a request call that is completed by invoking
+	 * CCtsyDispatcherCallback::CallbackCallControlDialEmergencyComp()
+	 *
+	 * Implementation of this interface should dial an emergency call to the specified
+	 * number.
+	 *
+	 * @param aEmergencyNumber The emergency phone number to dial.  The descriptor
+	 * should be of type RMobileENStore::TEmergencyNumber.
+	 *
+	 * @return KErrNone on success, otherwise another error code indicating the
+	 * failure.
+	 *
+	 * @see RMobileCall::DialEmergencyCall()
+	 */
+	virtual TInt HandleDialEmergencyReqL(const TDes& aEmergencyNumber) = 0;
+
+	}; // class MLtsyDispatchCallControlDialEmergency
+
+
+class MLtsyDispatchCallControlStopDtmfTone : public MLtsyDispatchInterface
+	{
+public:
+
+	static const TInt KLtsyDispatchCallControlStopDtmfToneApiId = KDispatchCallControlFuncUnitId + 4;
+
+	/**
+	 * The CTSY Dispatcher shall invoke this function on receiving the EMobilePhoneStopDTMFTone
+	 * request from the CTSY.
+	 *
+	 * It is a request call that is completed by invoking
+	 * CCtsyDispatcherCallback::CallbackCallControlStopDtmfToneComp()
+	 *
+	 * Implementation of this interface should stop sending the DTMF tone previously
+	 * started by MLtsyDispatchCallControlStartDtmfTone::HandleStartDtmfToneReqL().
+	 *
+	 * @param aCallId Call ID of the connected call the stop request will be sent
+	 * through.
+	 *
+	 * @return KErrNone on success, otherwise another error code indicating the
+	 * failure.
+	 *
+	 * @see RMobileCall::StopDTMFTone()
+	 */
+	virtual TInt HandleStopDtmfToneReqL(TInt aCallId) = 0;
+
+	}; // class MLtsyDispatchCallControlStopDtmfTone
+
+
+
+class MLtsyDispatchCallControlSetActiveAlsLine : public MLtsyDispatchInterface
+	{
+public:
+
+	static const TInt KLtsyDispatchCallControlSetActiveAlsLineApiId = KDispatchCallControlFuncUnitId + 5;
+
+	/**
+	 * The CTSY Dispatcher shall invoke this function on receiving the EMobilePhoneSetALSLine
+	 * request from the CTSY.
+	 *
+	 * It is a request call that is completed by invoking
+	 * CCtsyDispatcherCallback::CallbackCallControlSetActiveAlsLineComp()
+	 *
+	 * Implementation of this interface should set the active ALS line to that
+	 * specified.
+	 *
+	 * @param aAlsLine The new active ALS line.
+	 *
+	 * @return KErrNone on success, otherwise another error code indicating the
+	 * failure.
+	 *
+	 * @see RMobilePhone::SetALSLine()
+	 */
+	virtual TInt HandleSetActiveAlsLineReqL(RMobilePhone::TMobilePhoneALSLine aAlsLine) = 0;
+
+	}; // class MLtsyDispatchCallControlSetActiveAlsLine
+
+
+
+class MLtsyDispatchCallControlSendDtmfTonesCancel : public MLtsyDispatchInterface
+	{
+public:
+
+	static const TInt KLtsyDispatchCallControlSendDtmfTonesCancelApiId = KDispatchCallControlFuncUnitId + 6;
+
+	/**
+	 * The CTSY Dispatcher shall invoke this function on receiving the EMobilePhoneSendDTMFTonesCancel
+	 * request from the CTSY.
+	 *
+	 * It is a request call that is completed by invoking
+	 * CCtsyDispatcherCallback::CallbackCallControlSendDtmfTonesCancelComp()
+	 *
+	 * Implementation of this interface should attempt to cancel the sending of
+	 * a string of DTMF tones which were previously sent by
+	 * MLtsyDispatchCallControlSendDtmfTones::HandleSendDtmfTonesReqL()
+	 *
+	 * @param aCallId The Call ID of the active call that the cancel request relates
+	 * to.
+	 *
+	 * @return KErrNone on success, otherwise another error code indicating the
+	 * failure.
+	 *
+	 * @see RMobilePhone::SendDTMFTones()
+	 */
+	virtual TInt HandleSendDtmfTonesCancelReqL(TInt aCallId) = 0;
+
+	}; // class MLtsyDispatchCallControlSendDtmfTonesCancel
+
+
+
+class MLtsyDispatchCallControlHangUp : public MLtsyDispatchInterface
+	{
+public:
+
+	static const TInt KLtsyDispatchCallControlHangUpApiId = KDispatchCallControlFuncUnitId + 7;
+
+	/**
+	 * The CTSY Dispatcher shall invoke this function on receiving the EEtelCallHangUp
+	 * request from the CTSY.
+	 *
+	 * It is a request call that is completed by invoking
+	 * CCtsyDispatcherCallback::CallbackCallControlHangUpComp()
+	 *
+	 * Implementation of this interface should
+	 * make a request to the modem to hang up the call specified
+	 * in aCallId.  The completion should be called to indicate the result of
+	 * placing the hang up request with the baseband.
+	 *
+	 *  - If aCallId refers to a connected call, the Common TSY will pass
+	 * a hang up cause of KErrGsmReleaseByUser to indicate that the call is
+	 * being released by the user.
+	 *
+	 *  - If aCallId refers to a mobile terminated call which is ringing,
+	 * the Common TSY will pass a hang up cause of KErrGsmBusyUserRequest to
+	 * indicate that the user is rejecting the incoming call.
+	 *
+	 * @param aCallId The Call ID of the call to hang up.
+	 *
+	 * @param aHangupCause The reason for the hang up request.
+	 *
+	 * @return KErrNone on success, otherwise another error code indicating the
+	 * failure.
+	 *
+	 * @see RCall::HangUp()
+	 */
+	virtual TInt HandleHangUpReqL(TInt aCallId, TInt aHangupCause) = 0;
+
+	}; // class MLtsyDispatchCallControlHangUp
+
+
+
+class MLtsyDispatchCallControlResume : public MLtsyDispatchInterface
+	{
+public:
+
+	static const TInt KLtsyDispatchCallControlResumeApiId = KDispatchCallControlFuncUnitId + 8;
+
+	/**
+	 * The CTSY Dispatcher shall invoke this function on receiving the EMobileCallResume
+	 * request from the CTSY.
+	 *
+	 * It is a request call that is completed by invoking
+	 * CCtsyDispatcherCallback::CallbackCallControlResumeComp()
+	 *
+	 * Implementation of this interface should resume the specified call.
+	 * See 3GPP 24.083
+	 *
+	 * @param aCallId The Call ID of the call to resume.
+	 *
+	 * @return KErrNone on success, otherwise another error code indicating the
+	 * failure.
+	 *
+	 * @see RMobileCall::Resume()
+	 */
+	virtual TInt HandleResumeReqL(TInt aCallId) = 0;
+
+	}; // class MLtsyDispatchCallControlResume
+
+
+
+class MLtsyDispatchCallControlSetDynamicHscsdParams : public MLtsyDispatchInterface
+	{
+public:
+
+	static const TInt KLtsyDispatchCallControlSetDynamicHscsdParamsApiId = KDispatchCallControlFuncUnitId + 9;
+
+	/**
+	 * The CTSY Dispatcher shall invoke this function on receiving the EMobileCallSetDynamicHscsdParams
+	 * request from the CTSY.
+	 *
+	 * It is a request call that is completed by invoking
+	 * CCtsyDispatcherCallback::CallbackCallControlSetDynamicHscsdParamsComp()
+	 *
+	 * Implementation of this interface should set the dynamic HSCSD parameters
+	 * of the specified data call.
+	 *
+	 * @param aCallId The call ID of the data call.
+	 *
+	 * @param aHscsdParams The requested dynamic HSCSD parameters.
+	 *
+	 * @return KErrNone on success, otherwise another error code indicating the
+	 * failure.
+	 *
+	 * @see RMobileCall::SetDynamicHscsdParams()
+	 */
+	virtual TInt HandleSetDynamicHscsdParamsReqL(TInt aCallId, const RMobileCall::TMobileHscsdCallParamsV1& aHscsdParams) = 0;
+
+	}; // class MLtsyDispatchCallControlSetDynamicHscsdParams
+
+
+
+class MLtsyDispatchCallControlDialVoice : public MLtsyDispatchInterface
+	{
+public:
+
+	static const TInt KLtsyDispatchCallControlDialVoiceApiId = KDispatchCallControlFuncUnitId + 10;
+
+	/**
+	 * The CTSY Dispatcher shall invoke this function on receiving the EEtelCallDial
+	 * request from the CTSY for dialling a voice call.
+	 *
+	 * It is a request call that is completed by invoking
+	 * CCtsyDispatcherCallback::CallbackCallControlDialVoiceComp()
+	 *
+	 * Implementation of this interface should
+	 * dial the requested voice call and complete the callback to indicate
+	 * that an attempt to dial the call has been made.  The callback function is used
+	 * to indicate the outcome of this attempt to initiate the dialling process.
+	 *
+	 * @param aCallLine The line to use to dial the call. This parameter can have
+	 * one of two possible values RMobilePhone::EAlternateLinePrimary to use the
+	 * primary voice line or RMobilePhone::EAlternateLineAuxiliary to use the
+	 * auxiliary voice line.
+	 *
+	 * @param aDialledParty Details about the dialled party including the phone
+	 * number to dial.
+	 *
+	 * @param aCallParamsV1 The call parameters of the call to dial. If aIsIsvCall
+	 * is set to ETrue, only the RMobileCall::TMobileCallParamsV1::iIdRestrict
+	 * and RMobileCall::TMobileCallParamsV1::iAutoRedial fields are valid.
+	 *
+	 * @param aIsIsvCall Indicates whether the call originated from a third party
+	 * application which would have used the CTelephony class to dial the call.
+	 * This information is provided in case the LTSY wishes to do special handling
+	 * for third party calls, for example, not allow third party applications to
+	 * place emergency calls. See also
+	 * MLtsyDispatchCallControlQueryIsEmergencyNumber::HandleQueryIsEmergencyNumberSyncL()
+	 * See also: CTelephony::DialNewCall() and RMobileCall::DialISV()
+	 *
+	 * @param aCallOrigin The origin of the dial request. e.g. Whether the dial
+	 * came from an Etel client or the SIM or another source.
+	 * 
+	 * @param aPerformFdnCheck whether or not an FDN (Fixed Dialling Number) check should be performed.
+	 *
+	 * @return KErrNone on success; KErrNotSupported if the LTSY does not
+	 * support handling of this request or another error code indicating the
+	 * failure otherwise.
+	 *
+	 * @see RCall::Dial()
+	 * @see RMobileCall::DialISV()
+	 * @see RMobileCall::DialNoFdnCheck()
+	 */
+	virtual TInt HandleDialVoiceReqL(RMobilePhone::TMobilePhoneALSLine aCallLine, const RMobilePhone::TMobileAddress& aDialledParty, const RMobileCall::TMobileCallParamsV1& aCallParamsV1, TBool aIsIsvCall, RMobileCall::TCallParamOrigin aCallOrigin,
+			TBool aPerformFdnCheck) = 0;
+
+	}; // class MLtsyDispatchCallControlDialVoice
+
+
+
+class MLtsyDispatchCallControlTransfer : public MLtsyDispatchInterface
+	{
+public:
+
+	static const TInt KLtsyDispatchCallControlTransferApiId = KDispatchCallControlFuncUnitId + 11;
+
+	/**
+	 * The CTSY Dispatcher shall invoke this function on receiving the EMobileCallTransfer
+	 * request from the CTSY.
+	 *
+	 * It is a request call that is completed by invoking
+	 * CCtsyDispatcherCallback::CallbackCallControlTransferComp()
+	 *
+	 * This request should be completed when the request to transfer the call has
+	 * been placed.
+	 *
+	 * Implementation of this interface should transfer the specified held call.
+	 * Transferring a call can be requested when there is one held call and another
+	 * call either connected or in the ringing state. When the two remote parties
+	 * are transferred to each other, the party requesting this operation (us)
+	 * drops out of the call.
+	 *
+	 * @param aHeldCallId Call ID of the call held call to transfer.
+	 *
+	 * @param aOtherCallId Call ID of the other call to transfer the held call to.
+	 * This call is either an incoming call in the ringing state or a connected call.
+	 *
+	 * @return KErrNone on success, otherwise another error code indicating the
+	 * failure.
+	 *
+	 * @see RMobileCall::Transfer()
+	 */
+	virtual TInt HandleTransferReqL(TInt aHeldCallId, TInt aOtherCallId) = 0;
+
+	}; // class MLtsyDispatchCallControlTransfer
+
+
+
+class MLtsyDispatchCallControlSendDtmfTones : public MLtsyDispatchInterface
+	{
+public:
+
+	static const TInt KLtsyDispatchCallControlSendDtmfTonesApiId = KDispatchCallControlFuncUnitId + 12;
+
+	/**
+	 * The CTSY Dispatcher shall invoke this function on receiving the EMobilePhoneSendDTMFTones
+	 * request from the CTSY.
+	 *
+	 * It is a request call that is completed by invoking
+	 * CCtsyDispatcherCallback::CallbackCallControlSendDtmfTonesComp()
+	 *
+	 * Implementation of this interface should send the specified DTMF string through
+	 * the currently active call.
+	 *
+	 * @param aCallId The Call ID of the call through which the DTMF string will be
+	 * sent.
+	 *
+	 * @param aTones Tones to send through the active call.
+	 *
+	 * @return KErrNone on success, otherwise another error code indicating the
+	 * failure.
+	 *
+	 * @see RMobilePhone::SendDTMFTones()
+	 */
+	virtual TInt HandleSendDtmfTonesReqL(TInt aCallId, const TDesC& aTones) = 0;
+
+	}; // class MLtsyDispatchCallControlSendDtmfTones
+
+
+
+class MLtsyDispatchCallControlGetIdentityServiceStatus : public MLtsyDispatchInterface
+	{
+public:
+
+	static const TInt KLtsyDispatchCallControlGetIdentityServiceStatusApiId = KDispatchCallControlFuncUnitId + 13;
+
+	/**
+	 * The CTSY Dispatcher shall invoke this function on receiving the EMobilePhoneGetIdentityServiceStatus
+	 * request from the CTSY.
+	 *
+	 * It is a request call that is completed by invoking
+	 * CCtsyDispatcherCallback::CallbackCallControlGetIdentityServiceStatusComp()
+	 *
+	 * Implementation of this interface should request for the status of the
+	 * specified identity service such as the Caller ID Presentation Service.
+	 *
+	 * @param aService The service whose status needs to be retrieved.
+	 *
+	 * @return KErrNone on success, otherwise another error code indicating the
+	 * failure.
+	 *
+	 * @see RMobilePhone::GetIdentityServiceStatus()
+	 */
+	virtual TInt HandleGetIdentityServiceStatusReqL(RMobilePhone::TMobilePhoneIdService aService) = 0;
+
+	}; // class MLtsyDispatchCallControlGetIdentityServiceStatus
+
+
+
+class MLtsyDispatchCallControlSwap : public MLtsyDispatchInterface
+	{
+public:
+
+	static const TInt KLtsyDispatchCallControlSwapApiId = KDispatchCallControlFuncUnitId + 14;
+	static const TInt KLtsyDispatchCallControlSingleSwapApiId = KDispatchCallControlFuncUnitId + 29;
+
+	/**
+	 * The CTSY Dispatcher shall invoke this function on receiving the EMobileCallSwap
+	 * request from the CTSY.
+	 *
+	 * It is a request call that is completed by invoking
+	 * CCtsyDispatcherCallback::CallbackCallControlSwapComp()
+	 *
+	 * This request should be completed when the request to swap two calls has
+	 * been placed. One is held and the other connected. The held call becomes connected
+	 * (RMobileCall::EStatusConnected) and the connected call becomes held 
+	 * (RMobileCall::EStatusHold).
+	 *
+	 * Implementation of this interface should request that the Licensee TSY
+	 * swap the specified calls. Swapping is allowed for one or two active calls.
+	 *
+	 * @param aCallId The Call ID of the call to swap.
+	 *
+	 * @return KErrNone on success, otherwise another error code indicating the
+	 * failure.
+	 *
+	 * @see RMobileCall::Swap()
+	 */
+	virtual TInt HandleSwapReqL(TInt aCallId, TInt aSecondCallId) = 0;
+
+	/**
+	 * The CTSY Dispatcher shall invoke this function on receiving the EMobileCallSwap
+	 * request, for a single call, from the CTSY.
+	 *
+	 * It is a request call that is completed by invoking
+	 * CCtsyDispatcherCallback::CallbackCallControlSwapComp()
+	 *
+	 * This request should be completed when the request to swap the single call has
+	 * been placed.
+	 *
+	 * Implementation of this interface should request that the Licensee TSY
+	 * swap the specified call. The state of the call will be swapped from held to connected 
+	 * (or visa versa)
+	 *
+	 * @param aCallId The Call ID of the single call to swap.
+	 *
+	 * @return KErrNone on success, otherwise another error code indicating the
+	 * failure.
+	 *
+	 * @see RMobileCall::Swap()
+	 */
+	virtual TInt HandleSwapReqL(TInt aCallId) = 0;
+
+	}; // class MLtsyDispatchCallControlSwap
+
+
+	
+class MLtsyDispatchCallControlLoanDataPort : public MLtsyDispatchInterface
+	{
+public:
+
+	static const TInt KLtsyDispatchCallControlLoanDataPortApiId = KDispatchCallControlFuncUnitId + 15;
+
+	/**
+	 * The CTSY Dispatcher shall invoke this function on receiving the EEtelCallLoanDataPort
+	 * request from the CTSY.
+	 *
+	 * Implementation of this interface should read the port name from CommDat
+	 * for use in a data call. This API may be adaptation specific.
+	 *
+	 * It is a sync call where the output parameters should be completed before returning
+	 * from this function.
+	 *
+	 * @param aCallId Call ID of the data call requiring the data port.
+	 *
+	 * @param aCommPort Output parameter. The communications port information
+	 * retrieved by a client using the RCall::LoanDataPort() API.
+	 *
+	 * @return KErrNone on success, otherwise another error code indicating the
+	 * failure.
+	 */
+	virtual TInt HandleLoanDataPortSyncL(TInt aCallId, RCall::TCommPort& aCommPort) = 0;
+
+	}; // class MLtsyDispatchCallControlLoanDataPort
+
+
+
+class MLtsyDispatchCallControlRecoverDataPort : public MLtsyDispatchInterface
+	{
+public:
+
+	static const TInt KLtsyDispatchCallControlRecoverDataPortApiId = KDispatchCallControlFuncUnitId + 16;
+
+	/**
+	 * The CTSY Dispatcher shall invoke this function on receiving the EEtelCallRecoverDataPort
+	 * request from the CTSY.
+	 *
+	 * Implementation of this interface should recover the data port loaned by a
+	 * previous call to
+	 * MLtsyDispatchCallControlLoanDataPort::HandleLoanDataPortSyncL()
+	 * and matches a client side call to RCall::RecoverDataPort().
+	 *
+	 * It is a sync call where the data arguments should be completed before returning.
+	 *
+	 * @param aCallId Call ID of the data call requiring the data port.
+	 *
+	 * @param aCommPort The data port to recover.  This contains the details previously
+	 * returned by a call to RCall::LoanDataPort()
+	 *
+	 * @return KErrNone on success, otherwise another error code indicating the
+	 * failure.
+	 */
+	virtual TInt HandleRecoverDataPortSyncL(TInt aCallId, RCall::TCommPort& aCommPort) = 0;
+
+	}; // class MLtsyDispatchCallControlRecoverDataPort
+
+
+
+class MLtsyDispatchCallControlStartDtmfTone : public MLtsyDispatchInterface
+	{
+public:
+
+	static const TInt KLtsyDispatchCallControlStartDtmfToneApiId = KDispatchCallControlFuncUnitId + 17;
+
+	/**
+	 * The CTSY Dispatcher shall invoke this function on receiving the EMobilePhoneStartDTMFTone
+	 * request from the CTSY.
+	 *
+	 * Implementation of this interface should send the specified DTMF tone
+	 * through the currently active call.
+	 *
+	 * @param aCallId Call ID of the connected call through which the DTMF tone
+	 * will be sent.
+	 *
+	 * @param aTone The tone character to send through the call.
+	 *
+	 * @return KErrNone on success, otherwise another error code indicating the
+	 * failure.
+	 *
+	 * @see RMobilePhone::StartDTMFTone()
+	 */
+	virtual TInt HandleStartDtmfToneReqL(TInt aCallId, const TChar& aTone) = 0;
+
+	}; // class MLtsyDispatchCallControlStartDtmfTone
+
+
+
+
+class MLtsyDispatchCallControlGetActiveAlsLine : public MLtsyDispatchInterface
+	{
+public:
+	static const TInt KLtsyDispatchCallControlGetActiveAlsLineApiId = KDispatchCallControlFuncUnitId + 18;
+
+public:
+
+	/**
+	 * The CTSY Dispatcher shall invoke this function on receiving the EMobilePhoneGetActiveAlsLine
+	 * request from the CTSY.
+	 *
+	 * It is a request call that is completed by invoking
+	 * CCtsyDispatcherCallback::CallbackCallControlGetActiveAlsLineComp()
+	 *
+	 * Implementation of this interface should retrieve the currently selected ALS line.
+	 *
+	 * @return KErrNone on success, otherwise another error code indicating the
+	 * failure.
+	 *
+	 * @see RMobilePhone::GetALSLine()
+	 */
+	virtual TInt HandleGetActiveAlsLineReqL() = 0;
+
+	}; // class MLtsyDispatchCallControlGetActiveAlsLine
+
+
+class MLtsyDispatchCallControlDialData : public MLtsyDispatchInterface
+	{
+public:
+	static const TInt KLtsyDispatchCallControlDialDataApiId = KDispatchCallControlFuncUnitId + 19;
+public:
+
+	/**
+	 * The CTSY Dispatcher shall invoke this function on receiving the EEtelCallDial
+	 * request from the CTSY when a data call is requested.
+	 *
+	 * It is a request call that is completed by invoking
+	 * CCtsyDispatcherCallback::CallbackCallControlDialDataComp()
+	 *
+	 * Implementation of this interface should dial the data call to the
+	 * specified destination. The callback should be completed when the dial
+	 * request has been sent to the baseband and should indicate
+	 * that an attempt to dial the call has been made.  The callback function is used
+	 * to indicate the outcome of this attempt to initiate the dialling process.
+	 *
+	 * @param aLine The line to use to dial the call.
+	 *
+	 * @param aDialledParty Details about the dialled party including the phone
+	 * number to dial.
+	 *
+	 * @param aCallParamsV1 The call parameters of the call to dial.
+	 * 
+	 * @param aPerformFdnCheck whether or not an FDN (Fixed Dialling Number) check should be performed.
+	 *
+	 * @return KErrNone on success; KErrNotSupported if the LTSY does not
+	 * support handling of this request or another error code indicating the
+	 * failure otherwise.
+	 *
+	 * @see RCall::Dial()
+	 */
+	virtual TInt HandleDialDataReqL(const RMobilePhone::TMobileAddress& aDialledParty, const RMobileCall::TMobileDataCallParamsV1& aCallParamsV1,
+			TBool aPerformFdnCheck) = 0;
+
+	}; // class MLtsyDispatchCallControlDialData
+
+
+class MLtsyDispatchCallControlQueryIsEmergencyNumber : public MLtsyDispatchInterface
+	{
+public:
+	static const TInt KLtsyDispatchCallControlQueryIsEmergencyNumberApiId = KDispatchCallControlFuncUnitId + 20;
+public:
+
+	/**
+	 * The CTSY Dispatcher shall invoke this function on receiving the
+	 * ECustomCheckEmergencyNumberIPC request from the CTSY.
+	 *
+	 * It is a sync call where the output data arguments should be completed
+	 * before returning.
+	 *
+	 * Implementation of this interface should check whether the specified
+	 * number is an emergency number and return the result back to the caller
+	 * via the output parameter.
+	 *
+	 * @param aNumber Input parameter. The phone number being queried to see
+	 * if it is an emergency number or not.
+	 *
+	 * @param aIsEmergencyNumber Output parameter used to indicate whether the
+	 * aNumber parameter is an emergency number. ETrue if it is, EFalse otherwise.
+	 *
+	 * @return KErrNone if the LTSY was successful in determining whether the
+	 * queried number is an emergency one; KErrNotSupported if the LTSY does not
+	 * support handling of this request or another error code indicating the
+	 * failure otherwise.
+	 */
+	virtual TInt HandleQueryIsEmergencyNumberSyncL(const TDesC& aNumber, TBool& aIsEmergencyNumber) = 0;
+
+	}; // class MLtsyDispatchCallControlQueryIsEmergencyNumber
+
+
+class MLtsyDispatchCallControlGetAlsPpSupport : public MLtsyDispatchInterface
+	{
+public:
+
+	static const TInt KLtsyDispatchCallControlGetAlsPpSupportApiId = KDispatchCallControlFuncUnitId + 21;
+
+	/**
+	 * The CTSY Dispatcher shall invoke this function on receiving the ECustomCheckAlsPpSupportIPC
+	 * request from the CTSY.
+	 *
+	 * It is a request call that is completed by invoking
+	 * CCtsyDispatcherCallback::CallbackCallControlGetAlsPpSupportComp()
+	 *
+	 * Implementation of this interface should return check if the product profile support ALS.
+	 *
+	 * @return KErrNone on success, otherwise another error code indicating the
+	 * failure.
+	 *
+	 * @see RMmCustomAPI::CheckAlsPpSupport()
+	 */
+	virtual TInt HandleGetAlsPpSupportL() = 0;
+
+	}; // class MLtsyDispatchCallControlGetAlsPpSupport
+
+
+class MLtsyDispatchCallControlGetAlsBlockedStatus : public MLtsyDispatchInterface
+	{
+public:
+
+	static const TInt KLtsyDispatchCallControlGetAlsBlockedStatusApiId = KDispatchCallControlFuncUnitId + 22;
+
+	/**
+	 * The CTSY Dispatcher shall invoke this function on receiving the ECustomGetAlsBlockedIPC
+	 * request from the CTSY.
+	 *
+	 * It is a request call that is completed by invoking
+	 * CCtsyDispatcherCallback::CallbackCallControlGetAlsBlockedStatusComp()
+	 *
+	 * Implementation of this interface should return the blocked status of the ALS service.
+	 *
+	 * @return KErrNone on success, otherwise another error code indicating the
+	 * failure.
+	 *
+	 * @see RMmCustomAPI::GetAlsBlocked()
+	 */
+	virtual TInt HandleGetAlsBlockedStatusL() = 0;
+
+	}; // class MLtsyDispatchCallControlGetAlsBlockedStatus
+
+
+class MLtsyDispatchCallControlSetAlsBlocked : public MLtsyDispatchInterface
+	{
+public:
+
+	static const TInt KLtsyDispatchCallControlSetAlsBlockedApiId = KDispatchCallControlFuncUnitId + 23;
+
+	/**
+	 * The CTSY Dispatcher shall invoke this function on receiving the ECustomSetAlsBlockedIPC
+	 * request from the CTSY.
+	 *
+	 * It is a request call that is completed by invoking
+	 * CCtsyDispatcherCallback::CallbackCallControlSetAlsBlockedComp()
+	 *
+	 * Implementation of this interface should set the ALS blocked status.
+	 *
+     * @param aBlocked RMmCustomAPI::EDeactivateBlock when the ALS block needs to be deactivated,
+     *                 RMmCustomAPI::EActivateBlock when the ALS block needs to be activated.
+     *
+	 * @return KErrNone on success, otherwise another error code indicating the
+	 * failure.
+	 *
+	 * @see RMmCustomAPI::SetAlsBlocked()
+	 */
+	virtual TInt HandleSetAlsBlockedL(RMmCustomAPI::TSetAlsBlock aBlocked) = 0;
+
+	}; // class MLtsyDispatchCallControlSetAlsBlocked
+
+
+class MLtsyDispatchCallControlGetLifeTime : public MLtsyDispatchInterface
+	{
+public:
+
+	static const TInt KLtsyDispatchCallControlGetLifeTimeApiId = KDispatchCallControlFuncUnitId + 24;
+
+	/**
+	 * The CTSY Dispatcher shall invoke this function on receiving the ECustomGetLifeTimeIPC
+	 * request from the CTSY.
+	 *
+	 * It is a request call that is completed by invoking one of the 
+	 * CCtsyDispatcherCallback::CallbackCallControlGetLifeTimeComp()
+	 *
+	 * Implementation of this interface should return the lifetime of the phone. The lifetime
+     * information includes the manufacturing date of the phone and/or the total amount of air time used
+     * from the manufacturing date until the call to this method. Calling this method does not reset any data. 
+	 *
+	 * @return KErrNone on success, otherwise another error code indicating the
+	 * failure.
+	 *
+	 * @see RMmCustomAPI::GetLifeTime()
+	 */
+	virtual TInt HandleGetLifeTimeL() = 0;
+
+	}; // class MLtsyDispatchCallControlGetLifeTimeStatus
+
+
+class MLtsyDispatchCallControlTerminateErrorCall : public MLtsyDispatchInterface
+	{
+public:
+
+	static const TInt KLtsyDispatchCallControlTerminateErrorCallApiId = KDispatchCallControlFuncUnitId + 25;
+
+	/**
+	 * The CTSY Dispatcher shall invoke this function on receiving the ECustomTerminateCallIPC
+	 * request from the CTSY with a valid call id.
+	 *
+	 * It is a request call that is completed by invoking
+	 * CCtsyDispatcherCallback::CallbackCallControlTerminateErrorCallComp()
+	 *
+	 * Implementation of this interface should terminate the call with an error.
+	 *
+	 * @param aCallId The Call ID of the call to terminate.
+     *
+	 * @return KErrNone on success, otherwise another error code indicating the
+	 * failure.
+	 *
+	 * @see RMmCustomAPI::TerminateCall()
+	 */
+	virtual TInt HandleTerminateErrorCallL(TInt aCallId) = 0;
+
+	}; // class MLtsyDispatchCallControlTerminateErrorCall
+
+
+class MLtsyDispatchCallControlTerminateAllCalls : public MLtsyDispatchInterface
+	{
+public:
+
+	static const TInt KLtsyDispatchCallControlTerminateAllCallsApiId = KDispatchCallControlFuncUnitId + 26;
+
+	/**
+	 * The CTSY Dispatcher shall invoke this function on receiving the ECustomTerminateCallIPC
+	 * request from the CTSY with an invalid call id.
+	 *
+	 * It is a request call that is completed by invoking
+	 * CCtsyDispatcherCallback::CallbackCallControlTerminateAllCallsComp()
+	 *
+	 * Implementation of this interface should terminate all the active, connecting and held calls.
+	 *
+	 * @return KErrNone on success, otherwise another error code indicating the
+	 * failure.
+	 *
+	 * @see RMmCustomAPI::TerminateCall()
+	 */
+	virtual TInt HandleTerminateAllCallsL() = 0;
+
+	}; // class MLtsyDispatchCallControlTerminateAllCalls
+
+
+class MLtsyDispatchCallControlGetCallForwardingIndicator : public MLtsyDispatchInterface
+	{
+public:
+
+	static const TInt KLtsyDispatchCallControlGetCallForwardingIndicatorApiId = KDispatchCallControlFuncUnitId + 27;
+
+	/**
+	 * The CTSY Dispatcher shall invoke this function on receiving the ECustomGetIccCallForwardingStatusIPC
+	 * request from the CTSY.
+	 *
+	 * It is a request call that is completed by invoking one of the 
+	 * CCtsyDispatcherCallback::CallbackCallControlGetCallForwardingIndicatorComp()
+	 *
+	 * Implementation of this interface should return the call forwarding indicator from the network.
+	 *
+	 * @return KErrNone on success, otherwise another error code indicating the
+	 * failure.
+	 *
+	 * @see RMmCustomAPI::GetIccCallForwardingIndicatorStatus()
+	 */
+	virtual TInt HandleGetCallForwardingIndicatorL() = 0;
+
+	}; // class MLtsyDispatchCallControlGetCallForwardingIndicator
+
+class MLtsyDispatchCallControlUpdateLifeTimer : public MLtsyDispatchInterface
+	{
+public:
+	static const TInt KLtsyDispatchCallControlUpdateLifeTimerApiId = KDispatchCallControlFuncUnitId + 28;
+public:
+
+	/**
+	 * The CTSY Dispatcher shall invoke this function on receiving the
+	 * ECtsyUpdateLifeTimeReq request from the CTSY.
+	 *
+	 * It is a request call that is completed by invoking
+	 * CCtsyDispatcherCallback::CallbackCallControlUpdateLifeTimerComp()
+	 *
+	 * Implementation of this interface can accumulate the number of seconds that
+	 * have elapsed since a call started. By initialising a variable in the LTSY when a 
+	 * call is dialed, then adding the value contained in aDuration to this variable 
+	 * it is possible to track the duration of a call.
+	 * 
+	 * HandleUpdateLifeTimerReqL is usually invoked every 10 seconds.
+	 *
+	 * @param aDuration The number of seconds that have elapsed since the last time
+	 * this interface was invoked (or since the start of the call if the first invocation).
+	 *
+	 * @return KErrNone if the LTSY was successful; KErrNotSupported if the LTSY does not
+	 * support handling of this request or another error code indicating the
+	 * failure otherwise.
+	 */
+	virtual TInt HandleUpdateLifeTimerReqL(TUint32 aDuration) = 0;
+
+	}; // class MLtsyDispatchCallControlUpdateLifeTimer
+
+	
+// Note: A static constant has been defined in MLtsyDispatchCallControlSwap (abbove) with the highest Id 
+// in this file... "KLtsyDispatchCallControlSingleSwapApiId = KDispatchCallControlFuncUnitId + 29"
+// If adding a new Id it must be greater than KDispatchCallControlFuncUnitId + 29.
+
+#endif /*MLTSYDISPATCHCALLCONTROLINTERFACE_H_*/