RMobileUssdMessaging Class Reference

class RMobileUssdMessaging : public RTelSubSessionBase

Provides client access to USSD functionality provided by TSY.

Inherits from

Public Member Functions
RMobileUssdMessaging()
IMPORT_C voidClose()
IMPORT_C TIntGetCaps(TDes8 &)
IMPORT_C voidNotifyNetworkRelease(TRequestStatus &, TDes8 &)
IMPORT_C voidNotifyNetworkRelease(TRequestStatus &, TDes8 &, TDes8 &)
IMPORT_C TIntOpen(RMobilePhone &)
IMPORT_C voidReceiveMessage(TRequestStatus &, TDes8 &, TDes8 &)
IMPORT_C voidSendMessage(TRequestStatus &, const TDesC8 &, const TDesC8 &)
IMPORT_C voidSendMessageNoFdnCheck(TRequestStatus &, const TDesC8 &, const TDesC8 &)
IMPORT_C voidSendRelease(TRequestStatus &, TDes8 &)
Protected Member Functions
IMPORT_C voidConstructL()
IMPORT_C voidDestruct()
Private Member Functions
RMobileUssdMessaging(const RMobileUssdMessaging &)
Inherited Functions
RSubSessionBase::CloseSubSession(TInt)
RSubSessionBase::CreateAutoCloseSubSession(RSessionBase &,TInt,const TIpcArgs &)
RSubSessionBase::CreateSubSession(const RSessionBase &,TInt)
RSubSessionBase::CreateSubSession(const RSessionBase &,TInt,const TIpcArgs &)
RSubSessionBase::RSubSessionBase()
RSubSessionBase::Send(TInt)const
RSubSessionBase::Send(TInt,const TIpcArgs &)const
RSubSessionBase::SendReceive(TInt)const
RSubSessionBase::SendReceive(TInt,TRequestStatus &)const
RSubSessionBase::SendReceive(TInt,const TIpcArgs &)const
RSubSessionBase::SendReceive(TInt,const TIpcArgs &,TRequestStatus &)const
RSubSessionBase::Session()const
RSubSessionBase::SubSessionHandle()const
RTelSubSessionBase::Blank(const TInt,TReqPriorityType)const
RTelSubSessionBase::Blank(const TInt,TRequestStatus &,TReqPriorityType)const
RTelSubSessionBase::CancelAsyncRequest(TInt)const
RTelSubSessionBase::CancelReq(const TInt,const TInt)const
RTelSubSessionBase::CancelSubSession()const
RTelSubSessionBase::Get(const TInt,TDes16 &,TDes16 &,TReqPriorityType)const
RTelSubSessionBase::Get(const TInt,TDes16 &,TReqPriorityType)const
RTelSubSessionBase::Get(const TInt,TDes8 &,TDes16 &,TReqPriorityType)const
RTelSubSessionBase::Get(const TInt,TDes8 &,TDes8 &,TReqPriorityType)const
RTelSubSessionBase::Get(const TInt,TDes8 &,TReqPriorityType)const
RTelSubSessionBase::Get(const TInt,TRequestStatus &,TDes16 &,TDes16 &,TReqPriorityType)const
RTelSubSessionBase::Get(const TInt,TRequestStatus &,TDes16 &,TReqPriorityType)const
RTelSubSessionBase::Get(const TInt,TRequestStatus &,TDes8 &,TDes16 &,TReqPriorityType)const
RTelSubSessionBase::Get(const TInt,TRequestStatus &,TDes8 &,TDes8 &,TReqPriorityType)const
RTelSubSessionBase::Get(const TInt,TRequestStatus &,TDes8 &,TReqPriorityType)const
RTelSubSessionBase::RTelSubSessionBase()
RTelSubSessionBase::ResetSessionHandle()
RTelSubSessionBase::SessionHandle()const
RTelSubSessionBase::Set(const TInt,TRequestStatus &,const TDesC16 &,TReqPriorityType)const
RTelSubSessionBase::Set(const TInt,TRequestStatus &,const TDesC16 &,const TDesC16 &,TReqPriorityType)const
RTelSubSessionBase::Set(const TInt,TRequestStatus &,const TDesC8 &,TReqPriorityType)const
RTelSubSessionBase::Set(const TInt,TRequestStatus &,const TDesC8 &,const TDesC16 &,TReqPriorityType)const
RTelSubSessionBase::Set(const TInt,TRequestStatus &,const TDesC8 &,const TDesC8 &,TReqPriorityType)const
RTelSubSessionBase::Set(const TInt,const RFile &,TReqPriorityType)const
RTelSubSessionBase::Set(const TInt,const TDesC16 &,TReqPriorityType)const
RTelSubSessionBase::Set(const TInt,const TDesC16 &,const TDesC16 &,TReqPriorityType)const
RTelSubSessionBase::Set(const TInt,const TDesC8 &,TReqPriorityType)const
RTelSubSessionBase::Set(const TInt,const TDesC8 &,const TDesC16 &,TReqPriorityType)const
RTelSubSessionBase::Set(const TInt,const TDesC8 &,const TDesC8 &,TReqPriorityType)const
RTelSubSessionBase::SetAndGet(const TInt,TRequestStatus &,TDes8 &,const TDesC16 &,TReqPriorityType)const
RTelSubSessionBase::SetAndGet(const TInt,TRequestStatus &,const TDesC16 &,TDes16 &,TReqPriorityType)const
RTelSubSessionBase::SetAndGet(const TInt,TRequestStatus &,const TDesC8 &,TDes16 &,TReqPriorityType)const
RTelSubSessionBase::SetAndGet(const TInt,TRequestStatus &,const TDesC8 &,TDes8 &,TReqPriorityType)const
RTelSubSessionBase::SetSessionHandle(RSessionBase &)
RTelSubSessionBase::SubSessionHandle()
Public Member Enumerations
enumanonymous { KGsmUssdDataSize = 160 }
enumTMobileUssdAttributeFlags { KUssdDataFormat = 0x00000001, KUssdMessageType = 0x00000002, KUssdMessageDcs = 0x00000004 }
enumTMobileUssdDataFormat { EFormatUnspecified, EFormatPackedString }
enumTMobileUssdFormatCaps { KCapsPackedString = 0x00000001 }
enumTMobileUssdMessageType {
EUssdUnknown, EUssdMORequest, EUssdMOReply, EUssdMTNotify, EUssdMTRequest, EUssdMTReply, EUssdMOAcknowledgement
}
enumTMobileUssdTypeCaps { KCapsMOUssd = 0x00000001, KCapsMTUssd = 0x00000002 }
Inherited Enumerations
RTelSubSessionBase:TReqPriorityType
Public Member Type Definitions
typedef TBuf8< KGsmUssdDataSize > TGsmUssdMessageData
typedef TPckg< TMobileUssdAttributesV1 > TMobileUssdAttributesV1Pckg
typedef TPckg< TMobileUssdCapsV1 > TMobileUssdCapsV1Pckg
Private Attributes
CUssdMessagingPtrHolder *iUssdMessagingPtrHolder
Inherited Attributes
RTelSubSessionBase::iPtrHolder

Constructor & Destructor Documentation

RMobileUssdMessaging()

IMPORT_CRMobileUssdMessaging()

Constructor.

RMobileUssdMessaging(const RMobileUssdMessaging &)

RMobileUssdMessaging(const RMobileUssdMessaging &)[private]

Parameters

const RMobileUssdMessaging &

Member Functions Documentation

Close()

IMPORT_C voidClose()
This member function closes a USSD Messaging object.
capability
None

ConstructL()

IMPORT_C voidConstructL()[protected]

Destruct()

IMPORT_C voidDestruct()[protected]

Destructor.

GetCaps(TDes8 &)

IMPORT_C TIntGetCaps(TDes8 &aCaps)const

This member function returns a class that reflects the USSD messaging capabilities of the phone.

TMobileUssdCapsV1
capability
None

Parameters

TDes8 & aCapsOn completion, a TMobileUssdCapsV1Pckg with the current USSD messaging capabilities.

NotifyNetworkRelease(TRequestStatus &, TDes8 &)

IMPORT_C voidNotifyNetworkRelease(TRequestStatus &aReqStatus,
TDes8 &aReturnResult
)const

Notifies the client of a MT USSD release message to the mobile device. The notification completes when a release message to terminate the session has been received and successfully acknowledged. NB: This fucntion has been deprecated and it is not recommended for future development work.

capability
None

Parameters

TRequestStatus & aReqStatusReturns the result code after the asynchronous call completes.
TDes8 & aReturnResultA packaged instance of the RMobilePhone::TMobilePhoneSendSSRequestV3 class containing the result of the release.

NotifyNetworkRelease(TRequestStatus &, TDes8 &, TDes8 &)

IMPORT_C voidNotifyNetworkRelease(TRequestStatus &aReqStatus,
TDes8 &aMsgData,
TDes8 &aMsgAttributes
)const

Notifies the client of a MT USSD release message to the mobile device. The notification completes when a release message to terminate the session has been received and successfully acknowledged.

TMobileUssdAttributesV1
capability
None

Parameters

TRequestStatus & aReqStatusReturns the result code after the asynchronous call completes.
TDes8 & aMsgDataA packaged instance of the RMobilePhone::TMobilePhoneSendSSRequestV3 class containing the result of the release.
TDes8 & aMsgAttributesA packaged instance of the TMobileUssdAttributesV1Pckg class containing the message attributes.

Open(RMobilePhone &)

IMPORT_C TIntOpen(RMobilePhone &aPhone)

This member function opens a USSD messaging sub-session. The name of the sub-session opened in the TSY will equal the string defined by the KETelUssdMessaging LIT definition.

capability
None

Parameters

RMobilePhone & aPhoneAn existing RMobilePhone session.

ReceiveMessage(TRequestStatus &, TDes8 &, TDes8 &)

IMPORT_C voidReceiveMessage(TRequestStatus &aReqStatus,
TDes8 &aMsgData,
TDes8 &aMsgAttributes
)const

This member function enables the client to receive the next incoming USSD message from the network. The request will be completed when a new message arrives.

Use RTelSubSessionBase::CancelAsyncRequest(EMobileUssdMessagingReceiveMessage) to cancel a previously placed asynchronous ReceiveMessage() request.

TMobileUssdAttributesV1
capability
ReadDeviceData
capability
NetworkControl

Parameters

TRequestStatus & aReqStatusOn return, KErrNone if successful.
TDes8 & aMsgDataA descriptor large enough to hold the returned USSD message data. For GSM/ WCDMA USSD messages this will be a buffer of 160 bytes and the clients are provided with a typedef called RMobileUssdMessaging::TGsmUssdMessageData.
TDes8 & aMsgAttributesOn completion, the TMobileUssdAttributesV1Pckg with the message attributes.

SendMessage(TRequestStatus &, const TDesC8 &, const TDesC8 &)

IMPORT_C voidSendMessage(TRequestStatus &aReqStatus,
const TDesC8 &aMsgData,
const TDesC8 &aMsgAttributes
)const

This member function sends a USSD message to the network.

See 3GPP spec. 04.90 for more details on expected responses from the network.

Use RTelSubSessionBase::CancelAsyncRequest(EMobileUssdMessagingSendMessage) to cancel a previously placed asynchronous SendMessage() request.

TMobileUssdAttributesV1
capability
NetworkServices
capability
WriteDeviceData
capability
NetworkControl

Parameters

TRequestStatus & aReqStatusOn return, KErrNone if successful.
const TDesC8 & aMsgDataThe message data.
const TDesC8 & aMsgAttributesThe TMobileUssdAttributesV1Pckg with the message attributes.

SendMessageNoFdnCheck(TRequestStatus &, const TDesC8 &, const TDesC8 &)

IMPORT_C voidSendMessageNoFdnCheck(TRequestStatus &aReqStatus,
const TDesC8 &aMsgData,
const TDesC8 &aMsgAttributes
)const

Sends an outgoing USSD to the network.

The number used for sending the SMS is not checked against those in the Fixed Dialling Number list even if the FDN service is enabled.

capability
NetworkServices
capability
NetworkControl
capability
WriteDeviceData

Parameters

TRequestStatus & aReqStatus
const TDesC8 & aMsgDataSupplies the USSD message data to send
const TDesC8 & aMsgAttributesSupplies the attributes of the outgoing USSD

SendRelease(TRequestStatus &, TDes8 &)

IMPORT_C voidSendRelease(TRequestStatus &aReqStatus,
TDes8 &aReturnResult
)const

Sends a USSD release message to the network. This request can terminate an ongoing "dialogue" (send-receive) at any time.

capability
NetworkServices
capability
NetworkControl

Parameters

TRequestStatus & aReqStatusReturns the result code after the asynchronous call completes.
TDes8 & aReturnResultA packaged instance of the RMobilePhone::TMobilePhoneSendSSRequestV3 class containing the result of the release.

Member Enumerations Documentation

Enum anonymous

Enumerators

KGsmUssdDataSize = 160

Enum TMobileUssdAttributeFlags

Defines the USSD Messaging Attributes.

Modes: GSM/WCDMA

TMobileUssdAttributesV1

Enumerators

KUssdDataFormat = 0x00000001

The iFormat field is valid in the attribute class.

KUssdMessageType = 0x00000002

The iType field is valid in the attribute class.

KUssdMessageDcs = 0x00000004

The iDcs field is valid in the attribute class.

Enum TMobileUssdDataFormat

Defines the USSD Data Formats.

Modes: Common

Enumerators

EFormatUnspecified

The message data format is unspecified.

Modes: Common

EFormatPackedString

The message data format complies to a USSD coded as 160 octets as defined for a ussd-String within GSM 04.80 and GSM 03.38.

Modes: GSM/WCDMA

Enum TMobileUssdFormatCaps

Defines the USSD Messaging Format Capabilities.

Modes: GSM/WCDMA

Enumerators

KCapsPackedString = 0x00000001

USSD messages coded as a packed string within 160 octets, as defined for a ussd-String within GSM 04.80 and GSM 03.38.

Modes: GSM/WCDMA

Enum TMobileUssdMessageType

Defines the USSD Message Types.

Modes: GSM/WCDMA

Enumerators

EUssdUnknown

Message is an unknown type.

EUssdMORequest

Message is a mobile originated USSD request. The MS expects the network to send a USSD MT reply.

EUssdMOReply

Message is a reply to a previously received network initiated USSD request. It is a USSD MO reply.

EUssdMTNotify

Message is a one-off network initiated USSD notification. The network expects the MS to send a USSD MO acknowledgement with empty message content.

EUssdMTRequest

Message is a network initiated USSD request. The network expects the MS to send a USSD MO reply.

EUssdMTReply

Message is a network initiated reply to a previously sent MO USSD request.

EUssdMOAcknowledgement

For acknowledging MT USSD notifications (empty message content).

Enum TMobileUssdTypeCaps

Defines the USSD Messaging Type Capabilities.

Modes: GSM/WCDMA

Enumerators

KCapsMOUssd = 0x00000001

Outgoing USSD messages are supported.

Modes: GSM/WCDMA

KCapsMTUssd = 0x00000002

Incoming USSD messages are supported.

Modes: GSM/WCDMA

Member Type Definitions Documentation

Typedef TGsmUssdMessageData

typedef TBuf8< KGsmUssdDataSize >TGsmUssdMessageData

A typedef'd buffer to hold the message data.

Typedef TMobileUssdAttributesV1Pckg

typedef TPckg< TMobileUssdAttributesV1 >TMobileUssdAttributesV1Pckg

A typedef'd packaged TMobileUssdAttributesV1 for passing through a generic API member function.

Typedef TMobileUssdCapsV1Pckg

typedef TPckg< TMobileUssdCapsV1 >TMobileUssdCapsV1Pckg

A typedef'd packaged TMobileUssdCapsV1 for passing through a generic API member function.

Member Data Documentation

CUssdMessagingPtrHolder * iUssdMessagingPtrHolder

CUssdMessagingPtrHolder *iUssdMessagingPtrHolder[private]