⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 etelagsm.h

📁 include emccsoft s60_2x
💻 H
📖 第 1 页 / 共 5 页
字号:
// ETELAGSM.H
//
// Copyright (c) 1997-1999 Symbian Ltd.  All rights reserved.
//
// ETel Advanced Gsm API

#if !defined(__ETELAGSM_H__)
#define __ETELAGSM_H__

#if !defined(__ETEL_H__)
#include <ETEL.h>
#endif

#if !defined(__BASICGSM_H__)
#include <ETelBGsm.h>
#endif

#if !defined(__E32BASE_H__)
#include <e32base.h>
#endif


const TInt KETelExtAdvancedGsm					=2000;
const TInt KETelMixinAdvPhoneOwnNumber			=KETelExtAdvancedGsm+1;
const TInt KETelMixinAdvPhoneNetwork			=KETelExtAdvancedGsm+2;
const TInt KETelMixinAdvPhoneSecurity			=KETelExtAdvancedGsm+3;
const TInt KETelMixinAdvPhoneAoc				=KETelExtAdvancedGsm+4;
const TInt KETelMixinAdvPhoneFdn				=KETelExtAdvancedGsm+5;
const TInt KETelMixinAdvPhoneAirTimeDuration	=KETelExtAdvancedGsm+6;
const TInt KETelMixinAdvPhoneCallForwarding		=KETelExtAdvancedGsm+7;
const TInt KETelMixinAdvPhoneSuppService		=KETelExtAdvancedGsm+8;
const TInt KETelMixinAdvPhoneLineIdentity		=KETelExtAdvancedGsm+9;
const TInt KETelMixinAdvPhoneCaps				=KETelExtAdvancedGsm+10;
const TInt KETelMixinAdvLineStatus				=KETelExtAdvancedGsm+11;
const TInt KETelMixinAdvLineBarring				=KETelExtAdvancedGsm+12;
const TInt KETelMixinAdvLineForwarding			=KETelExtAdvancedGsm+13;
const TInt KETelMixinAdvLineCallWaitingMode		=KETelExtAdvancedGsm+14;
const TInt KETelMixinAdvLineAutoRetry			=KETelExtAdvancedGsm+15;
const TInt KETelMixinAdvCallControl				=KETelExtAdvancedGsm+16;
const TInt KETelMixinAdvCallAoC					=KETelExtAdvancedGsm+17;
const TInt KETelMixinAdvCallCCBS				=KETelExtAdvancedGsm+18;
const TInt KETelMixinAdvCallAlternatingMode		=KETelExtAdvancedGsm+19;
const TInt KETelMixinAdvCallEmergency			=KETelExtAdvancedGsm+20;
const TInt KEtelMixinAdvPhoneCallBarring		=KETelExtAdvancedGsm+21;
const TInt KEtelMixinAdvPhoneCallWaiting		=KETelExtAdvancedGsm+22;
const TInt KEtelMixinAdvCallInformation			=KETelExtAdvancedGsm+23;
const TInt KETelMixinAdvPhoneDTMF				=KETelExtAdvancedGsm+24;
const TInt KETelMixinAdvPhoneNitz				=KETelExtAdvancedGsm+25;
const TInt KETelMixinAdvPhoneAltLineService		=KETelExtAdvancedGsm+26;
const TInt KETelMixinAdvPhoneCCBS				=KETelExtAdvancedGsm+27;
const TInt KETelMixinAdvPhoneAltCall			=KETelExtAdvancedGsm+28;
const TInt KETelMixinAdvPhoneLanguage			=KETelExtAdvancedGsm+29;

//
// Call Groups
//
// Note:
// Requests made on the RCall objects themselves action that call individually, so they map onto a combination of splitting the call
// from the group they occupy and transfer only that call.  Actions placed on the "Call Group" class effect all calls in the relevant group.
//
class CAdvPtrHolder;
class RGsmCallGroup : public RTelSubSessionBase
	{
public:

	IMPORT_C RGsmCallGroup();

	enum TCallGroup
		{
		ECallGroupMain,
		ECallGroupHold,
		ECallGroupWaiting
		};
	
	IMPORT_C TInt Open(RPhone& aPhone,TCallGroup aGroup);
	IMPORT_C void Close();

//
// Enumeration Calls
//
	IMPORT_C TInt EnumerateCalls(TInt& aCalls) const;
	IMPORT_C TInt GetCallInfo(TInt aIndex, TName& aCallName) const;

// Actions
//
//
// Hang Up the "Main" Call Group
//
	IMPORT_C TInt HangUp() const;
	IMPORT_C void HangUp(TRequestStatus& aReqStatus) const;
	IMPORT_C void HangUpCancel() const;

//
// Swap - Swap whole "Hold" call group with "Main" call group.
//
	IMPORT_C TInt Swap() const;
	IMPORT_C void Swap(TRequestStatus& aReqStatus) const;
	IMPORT_C void SwapCancel() const;

//
// Join Call to the Main Call Group
//
	IMPORT_C TInt Join() const;
	IMPORT_C void Join(TRequestStatus& aReqStatus) const;
	IMPORT_C void JoinCancel() const;

//
// Answer and Hold
//
	IMPORT_C TInt PutOnHoldAndAnswer() const;
	IMPORT_C void PutOnHoldAndAnswer(TRequestStatus& aReqStatus) const;
	IMPORT_C void PutOnHoldAndAnswerCancel() const;

//
// Answer and Hang Up
//
	IMPORT_C TInt HangUpAndAnswer() const;
	IMPORT_C void HangUpAndAnswer(TRequestStatus& aReqStatus) const;
	IMPORT_C void HangUpAndAnswerCancel() const;

//
// Notifications
//
	enum TCallGroupingChangeAction
		{
		ECallGroupingChangeAdd,
		ECallGroupingChangeRemove,
		ECallGroupingChangeTerminated,
		ECallGroupingChangeAllCallsTerminated
		};

	struct TCallGroupingChange
		{
		TCallGroupingChangeAction iAction;
		TName iCallName;
		};

	IMPORT_C void NotifyCallGroupingChange(TRequestStatus& aReqStatus, TCallGroupingChange& aCallGroupingChange) const;
	IMPORT_C void NotifyCallGroupingChangeCancel() const;

//
// Call Group Dynamic Capability Information
//
	enum TCallGroupCaps
		{
		KCapsCallGroupHangUp=0x00000001,
		KCapsCallGroupSwap=0x00000002,
		KCapsCallGroupJoin=0x00000004,
		KCapsCallGroupHoldAndAnswer=0x00000008,
		KCapsCallGroupHangUpAndAnswer=0x00000010
		};

	struct TCaps
		{
		TUint iCallGroupCaps;
		};

	IMPORT_C TInt GetCallGroupCaps(TCaps& aCaps) const; 
	IMPORT_C void NotifyCallGroupCaps(TRequestStatus& aReqStatus, TCaps& aCaps) const;
	IMPORT_C void NotifyCallGroupCapsCancel() const;

private:
	CAdvPtrHolder* iAdvPtrHolder;
protected:
	IMPORT_C virtual void ConstructL();
	IMPORT_C virtual void Destruct();
	};

//
// Call control
//

class MAdvGsmCallControl
	{
public:
//
// Call Status
//
	enum TGsmStatus
		{
		EGsmStatusUnknown,
		EGsmStatusIdle,
		EGsmStatusDialing,
		EGsmStatusRinging,
		EGsmStatusAnswering,
		EGsmStatusConnecting,
		EGsmStatusConnected,
		EGsmStatusDisconnecting,
		EGsmStatusHold,
		EGsmStatusWaitingCcbsRecall,
		EGsmStatusRingingCcbsRecall,
		EGsmStatusWaitingCallModeSwitch
		};

	virtual TInt GetGsmStatus(TGsmStatus& aInfo) const=0;
	virtual void NotifyGsmStatusChange(TRequestStatus& aReqStatus, TGsmStatus& aInfo) const=0;
	virtual void NotifyGsmStatusChangeCancel() const=0;

//
// Call Control Events
//
	enum TCallEvent
		{
		ELocalHold,
		ELocalResume,
		ELocalDeflectCall,
		ERemoteHold,
		ERemoteResume,
		ERemoteTerminated,
		ENoCallEvent
		};

	virtual void EventNotification(TRequestStatus& aReqStatus, TCallEvent& aEvent) const=0;
	virtual void EventNotificationCancel() const=0;

	virtual TInt Hold() const=0;
	virtual void Hold(TRequestStatus& aReqStatus) const=0;
	virtual void HoldCancel() const=0;
	virtual TInt ToggleHold() const=0;
	virtual void ToggleHold(TRequestStatus& aReqStatus) const=0;
	virtual void ToggleHoldCancel() const=0;
	virtual TInt Resume() const=0;
	virtual void Resume(TRequestStatus& aReqStatus) const=0;
	virtual void ResumeCancel() const=0;
	virtual TInt DeflectCall(const TGsmTelNumber& aNumber) const=0;
	virtual void DeflectCall(TRequestStatus& aReqStatus, const TGsmTelNumber& aNumber) const=0;
	virtual void DeflectCallCancel() const=0;
	virtual TInt GoOneToOne() const=0;
	virtual void GoOneToOne(TRequestStatus& aReqStatus) const=0;
	virtual void GoOneToOneCancel() const=0;
	virtual TInt ExplicitCallTransfer() const=0;
	virtual void ExplicitCallTransfer(TRequestStatus& aReqStatus) const=0;
	virtual void ExplicitCallTransferCancel() const=0;

//
// Dynamic Call Control Capability Information
//
	enum TCallControlCaps
		{
		KCapsHoldSupported=0x00001000,		// offset added so that core & 
		KCapsResumeSupported=0x00002000,	// adv call control caps can be 
		KCapsDeflectSupported=0x00004000,	// returned in one TUInt
		KCapsOneToOneSupported=0x00008000,
		KCapsExplicitTransferSupported=0x00010000,
		KCapsToggleSupported=0x00020000,
		KCapsActivateCCBSSupported=0x00040000,
		KCapsDeactivateCCBSSupported=0x00080000
		};

	enum TCallEventCaps
		{
		KCapsLocalHoldSupported=0x00000001,
		KCapsLocalResumeSupported=0x00000002,
		KCapsLocalDeflectCallSupported=0x00000004,
		KCapsLocalExplicitTransferSupported=0x00000008,
		KCapsRemoteHoldSupported=0x00010000,
		KCapsRemoteResumeSupported=0x00020000,
		KCapsRemoteTerminatedSupported=0x00040000
		};

	struct TCallControlCapsFlags
		{
		TUint iCallControlCaps;
		TUint iCallEventCaps;
		};

	virtual TInt GetGsmCallControlCaps(TCallControlCapsFlags& aCaps) const=0;
	virtual void NotifyGsmCallControlCaps(TRequestStatus& aReqStatus, TCallControlCapsFlags& aCaps) const=0;
	virtual void NotifyGsmCallControlCapsCancel() const=0;
	};

//
// Get information about the call
//
class MAdvGsmCallInformation
	{
public:
	enum {KMaxDTMFSize = 50};
	enum {KMaxSSPrefixStringSize = 10};

	// Call information capabilities - can be a combination of static ME caps
	// and dynamic call info
	enum TCallInformationCaps
		{
		KCapsStartTimeSupported=0x00000001,
		KCapsRemotePartyInfoSupported=0x00000002,
		KCapsDialledNumberInfoSupported=0x00000004,
		KCapsCallGroupInfoSupported=0x00000008,
		KCapsLastExitCodeSupported=0x00000010,
		KCapsSSPrefixSupported=0x00000020,
		KCapsCallIdSupported=0x00000040,
		KCapsDTMFSupported=0x00000080
		};

	struct TCallInformationCapsFlags
		{
		TUint iCallInformationCaps;
		};

	enum TCallGroupBelongedTo
		{
		ECallInMainGroup,
		ECallInHoldGroup,
		ECallInWaitingGroup,
		ECallNotInGroup
		};

	enum TDirection
		{
		EMobileOriginated,
		EMobileTerminated
		};

	enum TRemotePartyIdentityStatus
		{
		ERemotePartyIdentityUnknown,
		ERemotePartyIdentityAvailable,
		ERemotePartyIdentitySuppressed
		};

	struct TRemotePartyInfo
		{
		TRemotePartyIdentityStatus iRemoteIdentityStatus;
		TBuf<RGsmPhoneBook::KPhoneBookEntrySize> iName;
		TGsmTelNumber iNumber;
		TDirection iDirection;
		};

	struct TDialledNumberInfo
		{
		TBuf<RGsmPhoneBook::KPhoneBookEntrySize> iName;
		TGsmTelNumber iNumber;
		};

	enum TEncryptionStatus
		{
		EEncrypted,
		EUnencrypted,
		EUnknown
		};

	virtual TInt GetCallId(TInt& aId) const=0;
	virtual void GetCallId(TRequestStatus& aReqStatus, TInt& aId) const=0;
	virtual void GetCallIdCancel() const=0;
	virtual void NotifyCallIdChanged(TRequestStatus& aReqStatus, TInt& aId) const=0;
	virtual void NotifyCallIdChangedCancel() const=0;

	virtual TInt GetCallStartTime(TGsmDateTime& aStartTime) const=0;
	virtual void GetCallStartTime(TRequestStatus& aReqStatus, TGsmDateTime& aStartTime) const=0;
	virtual void GetCallStartTimeCancel() const=0;

	virtual TInt GetRemotePartyInfo(TRemotePartyInfo& aRemotePartyInfo) const=0;
	virtual void GetRemotePartyInfo(TRequestStatus& aReqStatus, TRemotePartyInfo& aRemotePartyInfo) const=0;
	virtual void GetRemotePartyInfoCancel() const=0;
	virtual void NotifyRemotePartyInfoChanged(TRequestStatus& aReqStatus, TRemotePartyInfo& aRemotePartyInfo) const=0;
	virtual void NotifyRemotePartyInfoChangedCancel() const=0;

	virtual TInt GetDialledNumberInfo(TDialledNumberInfo& aDialledInfo) const=0;
	virtual void GetDialledNumberInfo(TRequestStatus& aReqStatus, TDialledNumberInfo& aDialledInfo) const=0;
	virtual void GetDialledNumberInfoCancel() const=0;

	virtual TInt GetCallGroup(TCallGroupBelongedTo& aCallGroup) const=0;
	virtual void GetCallGroup(TRequestStatus& aReqStatus, TCallGroupBelongedTo& aCallGroup) const=0;
	virtual void GetCallGroupCancel() const=0;
	virtual void NotifyCallGroupChanged(TRequestStatus& aReqStatus, TCallGroupBelongedTo& aCallGroup) const=0;
	virtual void NotifyCallGroupChangedCancel() const=0;

	virtual TInt GetLastExitCode(TInt& aLastExitCode) const=0;
	virtual void GetLastExitCode(TRequestStatus& aReqStatus, TInt& aLastExitCode) const=0;
	virtual void GetLastExitCodeCancel() const=0;

	virtual TInt GetSSStringPrefix(TDes& aSSString) const=0;
	virtual void GetSSStringPrefix(TRequestStatus& aReqStatus, TDes& aSSString) const=0;
	virtual void GetSSStringPrefixCancel() const=0;

	virtual TInt GetDTMFInDialString(TDes& aDTMFString) const=0;
	virtual void GetDTMFInDialString(TRequestStatus& aReqStatus, TDes& aDTMFString) const=0;
	virtual void GetDTMFInDialStringCancel() const=0;

	virtual TInt GetEmergencyCallFlag(TBool& aEmergencyCallFlag) const=0;
	virtual TInt GetAutoRetryCallFlag(TBool& aAutoRetryCallFlag) const=0;
	virtual TInt GetForwardedCallFlag(TBool& aForwardedCallFlag) const=0;
	virtual TInt GetCcbsActiveFlag(TBool& aCcbsActive) const=0;

	virtual TInt GetCallInformationCaps(TCallInformationCapsFlags& aCaps) const=0;

	virtual TInt GetEncryptionStatus(TEncryptionStatus& aStatus) const=0;
	virtual void GetEncryptionStatus(TRequestStatus& aReqStatus, TEncryptionStatus& aStatus) const=0;
	virtual void GetEncryptionStatusCancel() const=0;
	virtual void NotifyEncryptionStatusChanged(TRequestStatus& aReqStatus, TEncryptionStatus& aStatus) const=0;
	virtual void NotifyEncryptionStatusChangedCancel() const=0;
	};

//
// Advice of Charge (AoC)
//
class MAdvGsmCallAoC
	{
public:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -