S60 3rd Edition SDK for Symbian OS
Example Applications Guide

CSIPExSIPServerOfferingState Class Reference

#include <SIPExSIPServerOfferingState.h>

Inheritance diagram for CSIPExSIPServerOfferingState:

CSIPExSIPStateBase List of all members.

Public Member Functions

virtual IMPORT_C ~CSIPExSIPServerOfferingState ()
void LinkStates (CSIPExSIPStateBase &aServerEstablishingState, CSIPExSIPStateBase &aTerminatedState)
void ByeReceivedL (CSIPExSIPEngine &aEngine, CSIPServerTransaction &aTransaction)
void CancelReceivedL (CSIPExSIPEngine &aEngine, CSIPClientTransaction &aTransaction)
void AcceptInviteL (CSIPExSIPEngine &aEngine)
void DeclineInviteL (CSIPExSIPEngine &aEngine)

Static Public Member Functions

static IMPORT_C CSIPExSIPServerOfferingState * NewL ()

Private Member Functions

 CSIPExSIPServerOfferingState ()

Private Attributes

CSIPExSIPStateBase * iServerEstablishingState
CSIPExSIPStateBase * iTerminatedState

Detailed Description

Reacts to events that are possible in "ClientOffering" state.

Definition at line 30 of file SIPExSIPServerOfferingState.h.


Constructor & Destructor Documentation

EXPORT_C CSIPExSIPServerOfferingState::~CSIPExSIPServerOfferingState (   )  [virtual]
 

Destructor

Definition at line 39 of file SIPExSIPServerOfferingState.cpp.

00040         {
00041         }

CSIPExSIPServerOfferingState::CSIPExSIPServerOfferingState (   )  [private]
 

C++ default constructor.

Definition at line 30 of file SIPExSIPServerOfferingState.cpp.

00031         {
00032         }


Member Function Documentation

EXPORT_C CSIPExSIPServerOfferingState * CSIPExSIPServerOfferingState::NewL (   )  [static]
 

Two-phased constructor.

Definition at line 48 of file SIPExSIPServerOfferingState.cpp.

References CSIPExSIPServerOfferingState().

00049         {
00050         CSIPExSIPServerOfferingState* self =
00051                 new (ELeave) CSIPExSIPServerOfferingState();
00052         return self;
00053         }

void CSIPExSIPServerOfferingState::LinkStates (  CSIPExSIPStateBase &  aServerEstablishingState,
CSIPExSIPStateBase &  aTerminatedState
) 
 

Links the states

Parameters:
aServerEstablishingState INVITE has been received and accepted, waiting for ACK.
aTerminatedState Peer has declined the invite, SIP Session is terminated.

Definition at line 60 of file SIPExSIPServerOfferingState.cpp.

References iServerEstablishingState, and iTerminatedState.

00063         {
00064         iServerEstablishingState = &aServerEstablishingState;
00065         iTerminatedState = &aTerminatedState;
00066         }

void CSIPExSIPServerOfferingState::ByeReceivedL (  CSIPExSIPEngine &  aEngine,
CSIPServerTransaction &  aTransaction
)  [virtual]
 

ByeReceivedL BYE has been received.

Parameters:
aEngine Reference to Engine object.
aTransaction Contains response elements.

Reimplemented from CSIPExSIPStateBase.

Definition at line 72 of file SIPExSIPServerOfferingState.cpp.

References iTerminatedState, CSIPExSIPEngine::Observer(), MSIPExSIPEngineObserver::SessionEnded(), and CSIPExSIPEngine::SetCurrentState().

00075         {
00076         // Create and send response
00077     CSIPResponseElements* elem = 
00078         CSIPResponseElements::NewLC( 
00079             200, SIPStrings::StringF( SipStrConsts::EPhraseOk ) );
00080     aTransaction.SendResponseL( elem );
00081     CleanupStack::Pop( elem );
00082 
00083         // Inform observer
00084         aEngine.Observer()->SessionEnded();
00085         
00086         // Set state
00087         aEngine.SetCurrentState( iTerminatedState );
00088         }

void CSIPExSIPServerOfferingState::CancelReceivedL (  CSIPExSIPEngine &  aEngine,
CSIPClientTransaction &  aTransaction
)  [virtual]
 

CancelReceivedL CANCEL has been received.

Parameters:
aEngine Reference to Engine object.
aTransaction Contains response elements.

Reimplemented from CSIPExSIPStateBase.

Definition at line 94 of file SIPExSIPServerOfferingState.cpp.

References iTerminatedState, CSIPExSIPEngine::Observer(), MSIPExSIPEngineObserver::SessionEnded(), and CSIPExSIPEngine::SetCurrentState().

00097         {
00098         aEngine.Observer()->SessionEnded();
00099         aEngine.SetCurrentState( iTerminatedState );
00100         }

void CSIPExSIPServerOfferingState::AcceptInviteL (  CSIPExSIPEngine &  aEngine  )  [virtual]
 

AcceptInviteL Send 200 (OK) as response to an INVITE received from peer.

Parameters:
aEngine Reference to Engine object.

Reimplemented from CSIPExSIPStateBase.

Definition at line 106 of file SIPExSIPServerOfferingState.cpp.

References iServerEstablishingState, CSIPExSIPEngine::Observer(), CSIPExSIPEngine::SdpBodyL(), CSIPExSIPEngine::SdpDocumentLC(), CSIPExSIPEngine::ServerTx(), CSIPExSIPEngine::SetCurrentState(), and MSIPExSIPEngineObserver::WriteLog().

00107         {
00108         _LIT8( KMediaType, "application" );
00109         _LIT8( KMediaSubType, "sdp" );
00110         _LIT8( KLogEntry, "200 OK sent" );
00111 
00112         // Get the current transaction
00113         CSIPServerTransaction& tx = aEngine.ServerTx();
00114         // Create the Response Elements object
00115     CSIPResponseElements* respElem =
00116         CSIPResponseElements::NewLC( 
00117             200, SIPStrings::StringF( SipStrConsts::EPhraseOk ) );
00118     
00119     // Set the message body - we need to communicate our IP Address
00120     CSIPMessageElements& msgElem = respElem->MessageElements();
00121 
00122         CSdpDocument* sdpDocument = aEngine.SdpDocumentLC();
00123         HBufC8* sdpBody = aEngine.SdpBodyL( sdpDocument );
00124         CleanupStack::PushL( sdpBody );
00125 
00126         CSIPContentTypeHeader* ct =
00127                 CSIPContentTypeHeader::NewLC( KMediaType, KMediaSubType );
00128         msgElem.SetContentL( sdpBody, ct );
00129 
00130         // Use the transaction to send 200 (OK)
00131         tx.SendResponseL( respElem );
00132 
00133         CleanupStack::Pop( ct );
00134         CleanupStack::Pop( sdpBody );
00135         CleanupStack::PopAndDestroy( sdpDocument );
00136         CleanupStack::Pop( respElem );
00137 
00138         aEngine.SetCurrentState( iServerEstablishingState );
00139         aEngine.Observer()->WriteLog( KLogEntry );
00140         }

void CSIPExSIPServerOfferingState::DeclineInviteL (  CSIPExSIPEngine &  aEngine  )  [virtual]
 

DeclineInviteL Send 486 (Busy Here) as response to an INVITE received from peer.

Parameters:
aEngine Reference to Engine object.

Reimplemented from CSIPExSIPStateBase.

Definition at line 148 of file SIPExSIPServerOfferingState.cpp.

References iTerminatedState, CSIPExSIPEngine::Observer(), CSIPExSIPEngine::ServerTx(), MSIPExSIPEngineObserver::SessionEnded(), and CSIPExSIPEngine::SetCurrentState().

00149         {
00150         // Get the current transaction
00151         CSIPServerTransaction& tx = aEngine.ServerTx();
00152         // Create the Response Elements object
00153     CSIPResponseElements* elem =
00154         CSIPResponseElements::NewLC( 486, 
00155             SIPStrings::StringF( SipStrConsts::EPhraseBusyHere ) );
00156 
00157         // Use the transaction to send 486 (Busy Here)
00158         tx.SendResponseL( elem );
00159 
00160         CleanupStack::Pop( elem );
00161         aEngine.Observer()->SessionEnded();
00162         aEngine.SetCurrentState( iTerminatedState );
00163         }


© Nokia 2006

Back to top