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 void AcceptL ()
IMPORT_C void AcceptL (const TDesC8 &, TUint32 , CDesC8Array *, HBufC8 *, HBufC8 *)
CMceInSession * NewL ( RReadStream &, CMceManager &, TUint32 , TBool )
CMceInSession * NewL ()
IMPORT_C void RejectL ()
IMPORT_C void RejectL (const TDesC8 &, TUint32 , CDesC8Array *, HBufC8 *, HBufC8 *)
IMPORT_C void RespondL (const TDesC8 &, TUint32 , CDesC8Array *, HBufC8 *, HBufC8 *)
IMPORT_C void RingL ( CDesC8Array *, HBufC8 *, HBufC8 *)
TBool StreamInitializeCondition ( CMceMediaStream &)
Protected Member Functions
void ConstructL (const TDesC8 &, const TDesC8 &)
void InitializeInSessionL ( 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,
TUint32 aProfileId
)

C++ default constructor.

Parameters

CMceManager * aManager Reference to session manager.
TUint32 aProfileId Id of the sip profile used for the session.

~CMceInSession()

IMPORT_C ~CMceInSession ( )

Destructor

Member Functions Documentation

AcceptL()

IMPORT_C void AcceptL ( )
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 void AcceptL ( const TDesC8 & aReason,
TUint32 aCode,
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 & aReason Reason phrase
TUint32 aCode Reason code
CDesC8Array * aHeaders = 0 SIP headers to be added. Ownership is transferred.
HBufC8 * aContentType = 0 Type of content. Ownership is transferred.
HBufC8 * aContent = 0 Content to be added in body. Ownership is transferred.

ConstructL(const TDesC8 &, const TDesC8 &)

void ConstructL ( const TDesC8 & aOriginator,
const TDesC8 & aRecipient
) [protected]

second-phase constructor

Parameters

const TDesC8 & aOriginator The originator
const TDesC8 & aRecipient The recipient

InitializeInSessionL(MMceComSerializationContext &, TBool)

void InitializeInSessionL ( MMceComSerializationContext & aSerCtx,
TBool aUpdateSession
) [protected]

Two-phased constructor.

Parameters

MMceComSerializationContext & aSerCtx Context containing read stream
TBool aUpdateSession Boolean defining whether new session is created becuase of updating

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

CMceInSession * NewL ( RReadStream & aReadStream,
CMceManager & aManager,
TUint32 aProfileId,
TBool aUpdateSession = EFalse
) [static]

Two-phased constructor.

Parameters

RReadStream & aReadStream Read stream used.
CMceManager & aManager Reference to session manager.
TUint32 aProfileId Id of the sip profile used for the session.
TBool aUpdateSession = EFalse Boolean defining whether new session is created becuase of updating

NewL()

CMceInSession * NewL ( ) [static]

Two-phased constructor. For temporay use only.

RejectL()

IMPORT_C void RejectL ( )
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 void RejectL ( const TDesC8 & aReason,
TUint32 aCode,
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 & aReason Reason phrase
TUint32 aCode Reason code
CDesC8Array * aHeaders = 0 SIP headers to be added. Ownership is transferred.
HBufC8 * aContentType = 0 Type of content. Ownership is transferred.
HBufC8 * aContent = 0 Content to be added in body. Ownership is transferred.

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

IMPORT_C void RespondL ( const TDesC8 & aReason,
TUint32 aCode,
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 void RingL ( 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 = 0 SIP headers to be added. Ownership is transferred.
HBufC8 * aContentType = 0 Type of content. Ownership is transferred.
HBufC8 * aContent = 0 Content 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 & aMediaStream media stream