📄 etelagsm.h
字号:
// 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 + -