CMceInSession Class Reference

class CMceInSession : public CMceSession

Class for mobile terminated MCE sessions.

CMceInSession represents incoming invitation to join in a session.

The characteristics of the session are defined by remote terminal. Theses charactereistics are defined using SDP and are turned by MCE server into structure of media streams attached into the session. The user of this class is then responsible to either reject accept the invitation.

Accepting the invitation is executed in two steps. First after receiving the invitation the user must complete the media structure. Streams attached to the session are not complete, but they must be completed by the user. Those componens defined in SDP are put automatically into media structure (like streams and RTP sinks and sources), but other relations must be completed by user. When media structure is complete, UpdateL method is called and session establishement continues with second step.

After all media resources are succesfully negotiated and reserved, session state is changed to Proceeding, and end used can be alarmed about incoming invitation. Typically, at this state 180 Ringing response is sent to network. If end user accepts the invitation, 200 OK is sent to network and session is established.

After the session has been succesfylly established, it can be later updated and must be finally terminated.

This class is never instantiated by user, but the ownership is in any case transferred to it. See class MMceInSessionObserver.

If for any reason instance of this class is deleted while in established state, session is automatically terminated by MCE server.

mceclient.lib

Inherits from

Public Member Functions
CMceInSession(CMceManager *, TUint32)
~CMceInSession()
IMPORT_C voidAcceptL()
IMPORT_C voidAcceptL(const TDesC8 &, TUint32, CDesC8Array *, HBufC8 *, HBufC8 *)
CMceInSession *NewL(RReadStream &, CMceManager &, TUint32, TBool)
CMceInSession *NewL()
IMPORT_C voidRejectL()
IMPORT_C voidRejectL(const TDesC8 &, TUint32, CDesC8Array *, HBufC8 *, HBufC8 *)
IMPORT_C voidRespondL(const TDesC8 &, TUint32, CDesC8Array *, HBufC8 *, HBufC8 *)
IMPORT_C voidRingL(CDesC8Array *, HBufC8 *, HBufC8 *)
TBool StreamInitializeCondition(CMceMediaStream &)
Protected Member Functions
voidConstructL(const TDesC8 &, const TDesC8 &)
voidInitializeInSessionL(MMceComSerializationContext &, TBool)
Inherited Functions
CBase::CBase()
CBase::Delete(CBase *)
CBase::Extension_(TUint,TAny *&,TAny *)
CBase::operator new(TUint)
CBase::operator new(TUint,TAny *)
CBase::operator new(TUint,TLeave)
CBase::operator new(TUint,TLeave,TUint)
CBase::operator new(TUint,TUint)
CBase::~CBase()
CMceSession::AddBundleL(CMceStreamBundle *)
CMceSession::AddStreamL(CMceMediaStream *)
CMceSession::AssociatedEventsL()const
CMceSession::AssociatedRefersL()const
CMceSession::BaseFactory()
CMceSession::Bundles()const
CMceSession::CMceSession(CMceManager *,TUint32)
CMceSession::ConnectionActive()const
CMceSession::ConstructL(TBool)
CMceSession::ControlPathSecurityLevel()const
CMceSession::DialogId()const
CMceSession::DoAddStreamL(CMceMediaStream *)
CMceSession::ErrorOccuredL(TInt)
CMceSession::EventReceivedL(TMceIds &)
CMceSession::EventReceivedL(TMceIds &,CMceMsgBase &)
CMceSession::EventReceivedL(TMceIds &,CMceMsgBase &,HBufC8 *)
CMceSession::ExternalizeFlatL(RWriteStream &)
CMceSession::ExternalizeL(MMceComSerializationContext &)
CMceSession::FCErrorOccurred(TInt)
CMceSession::FCMessageReceived(HBufC8 *)
CMceSession::Factory()
CMceSession::GetModifierL(TMceSessionModifier,TUint &)const
CMceSession::GetSIPParams(CDesC8Array *&,HBufC8 *&,CDesC8Array *&)
CMceSession::ITCSender()const
CMceSession::Id()const
CMceSession::IncomingUpdateL(CMceInSession *,HBufC8 *)
CMceSession::InitializeL(TBool,TBool)
CMceSession::InternalizeFlatL(RReadStream &)
CMceSession::InternalizeL(MMceComSerializationContext &)
CMceSession::IsZombie()
CMceSession::Manager()const
CMceSession::Originator()const
CMceSession::PrepareForITC(TMceIds &)
CMceSession::Profile()const
CMceSession::Recipient()const
CMceSession::RemoveBundleL(CMceStreamBundle &)
CMceSession::RemoveStreamL(CMceMediaStream &)
CMceSession::SIPParamsCleanup(TAny *)
CMceSession::SendITCEventL(TUint8)
CMceSession::SendRequestL(const TDesC8 &,CDesC8Array *,HBufC8 *,HBufC8 *)
CMceSession::SendResponseL(TMceTransactionId,const TDesC8 &,TUint32,CDesC8Array *,HBufC8 *,HBufC8 *)
CMceSession::SerializationId()const
CMceSession::ServiceType()const
CMceSession::SessionSDPLinesL()
CMceSession::SessionTimer()const
CMceSession::SetFCObserver(MMceFcMsgObserver *)
CMceSession::SetModifierL(TMceSessionModifier,TUint)
CMceSession::SetSIPParams(CDesC8Array *,HBufC8 *,CDesC8Array *)
CMceSession::SetServiceTypeL(TUint32)
CMceSession::SetSessionSDPLinesL(CDesC8Array *)
CMceSession::SetZombie(CMceInSession &)
CMceSession::State()const
CMceSession::Streams()const
CMceSession::SynchronizeL(TMceIds &)
CMceSession::TerminateL(CDesC8Array *,HBufC8 *,HBufC8 *)
CMceSession::Type()const
CMceSession::UpdateL(TUint32,CDesC8Array *,HBufC8 *,HBufC8 *,CDesC8Array *)
CMceSession::~CMceSession()
Inherited Enumerations
CMceSession:TControlPathSecurityLevel
CMceSession:TReason
CMceSession:TState
Inherited Attributes
CMceSession::iFCObserver
CMceSession::iFlatData
CMceSession::iManager
CMceSession::iMediaStreams
CMceSession::iProfileId
CMceSession::iReceiver
CMceSession::iSender

Constructor & Destructor Documentation

CMceInSession(CMceManager *, TUint32)

CMceInSession(CMceManager *aManager,
TUint32aProfileId
)

C++ default constructor.

Parameters

CMceManager * aManagerReference to session manager.
TUint32 aProfileIdId of the sip profile used for the session.

~CMceInSession()

IMPORT_C~CMceInSession()

Destructor

Member Functions Documentation

AcceptL()

IMPORT_C voidAcceptL()
Answers to an incoming session. Indicates to server side that the 200(OK) response for the incoming INVITE has to be sent.
Pre-condition
State() == CMceSession::EProceeding
Post-condition
State() == CMceSession::EAnswering

AcceptL(const TDesC8 &, TUint32, CDesC8Array *, HBufC8 *, HBufC8 *)

IMPORT_C voidAcceptL(const TDesC8 &aReason,
TUint32aCode,
CDesC8Array *aHeaders = 0,
HBufC8 *aContentType = 0,
HBufC8 *aContent = 0
)
Answers to an incoming session. Indicates to server side that the given response for the incoming INVITE has to be sent.
Pre-condition
State() == CMceSession::EProceeding && ( 200 <= aCode <= 300 )
Post-condition
State() == CMceSession::EAnswering

Parameters

const TDesC8 & aReasonReason phrase
TUint32 aCodeReason code
CDesC8Array * aHeaders = 0SIP headers to be added. Ownership is transferred.
HBufC8 * aContentType = 0Type of content. Ownership is transferred.
HBufC8 * aContent = 0Content to be added in body. Ownership is transferred.

ConstructL(const TDesC8 &, const TDesC8 &)

voidConstructL(const TDesC8 &aOriginator,
const TDesC8 &aRecipient
)[protected]

second-phase constructor

Parameters

const TDesC8 & aOriginatorThe originator
const TDesC8 & aRecipientThe recipient

InitializeInSessionL(MMceComSerializationContext &, TBool)

voidInitializeInSessionL(MMceComSerializationContext &aSerCtx,
TBoolaUpdateSession
)[protected]

Two-phased constructor.

Parameters

MMceComSerializationContext & aSerCtxContext containing read stream
TBool aUpdateSessionBoolean defining whether new session is created becuase of updating

NewL(RReadStream &, CMceManager &, TUint32, TBool)

CMceInSession *NewL(RReadStream &aReadStream,
CMceManager &aManager,
TUint32aProfileId,
TBoolaUpdateSession = EFalse
)[static]

Two-phased constructor.

Parameters

RReadStream & aReadStreamRead stream used.
CMceManager & aManagerReference to session manager.
TUint32 aProfileIdId of the sip profile used for the session.
TBool aUpdateSession = EFalseBoolean defining whether new session is created becuase of updating

NewL()

CMceInSession *NewL()[static]

Two-phased constructor. For temporay use only.

RejectL()

IMPORT_C voidRejectL()
Rejects the incoming session. Indicates to server side that 603(Decline) response has to be sent.
Pre-condition
State() == CMceSession::EIncoming || State() == CMceSession::EProceeding
Post-condition
State() == CMceSession::ETerminated

RejectL(const TDesC8 &, TUint32, CDesC8Array *, HBufC8 *, HBufC8 *)

IMPORT_C voidRejectL(const TDesC8 &aReason,
TUint32aCode,
CDesC8Array *aHeaders = 0,
HBufC8 *aContentType = 0,
HBufC8 *aContent = 0
)
Rejects the incoming session. Indicates to server side that 603(Decline) response has to be sent.
Pre-condition
( State() == CMceSession::EIncoming || State() == CMceSession::EProceeding ) && ( 300 <= aCode < 700 )
Post-condition
State() == CMceSession::ETerminated

Parameters

const TDesC8 & aReasonReason phrase
TUint32 aCodeReason code
CDesC8Array * aHeaders = 0SIP headers to be added. Ownership is transferred.
HBufC8 * aContentType = 0Type of content. Ownership is transferred.
HBufC8 * aContent = 0Content to be added in body. Ownership is transferred.

RespondL(const TDesC8 &, TUint32, CDesC8Array *, HBufC8 *, HBufC8 *)

IMPORT_C voidRespondL(const TDesC8 &aReason,
TUint32aCode,
CDesC8Array *aHeaders = 0,
HBufC8 *aContentType = 0,
HBufC8 *aContent = 0
)
Sends respond to an incoming session.
Pre-condition
State() == CMceSession::EProceeding && ( 100 <= aCode <= 200 )

Parameters

const TDesC8 & aReason
TUint32 aCode
CDesC8Array * aHeaders = 0
HBufC8 * aContentType = 0
HBufC8 * aContent = 0

RingL(CDesC8Array *, HBufC8 *, HBufC8 *)

IMPORT_C voidRingL(CDesC8Array *aHeaders = 0,
HBufC8 *aContentType = 0,
HBufC8 *aContent = 0
)
Indicates to the server side, that 180(Ringing) response for the incoming INVITE request can be sent. Does not establish session.
Pre-condition
State() == CMceSession::EProceeding

Parameters

CDesC8Array * aHeaders = 0SIP headers to be added. Ownership is transferred.
HBufC8 * aContentType = 0Type of content. Ownership is transferred.
HBufC8 * aContent = 0Content to be added in body. Ownership is transferred.

StreamInitializeCondition(CMceMediaStream &)

TBool StreamInitializeCondition(CMceMediaStream &aMediaStream)const [virtual]

Checks if the stream should be initialized.

Parameters

CMceMediaStream & aMediaStreammedia stream