--- 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_*/