|
S60 3rd Edition SDK for Symbian OS Example Applications Guide |
#include <SIPExSIPClientEstablishingState.h>
Inheritance diagram for CSIPExSIPClientEstablishingState:

Public Member Functions | |
| virtual IMPORT_C | ~CSIPExSIPClientEstablishingState () |
| void | LinkStates (CSIPExSIPStateBase &aIdleState, CSIPExSIPStateBase &aClientOfferingState, CSIPExSIPStateBase &aEstablishedState) |
| void | CancelInviteL (CSIPExSIPEngine &aEngine) |
| void | ResponseReceivedL (CSIPExSIPEngine &aEngine, CSIPClientTransaction &aTransaction) |
Static Public Member Functions | |
| static IMPORT_C CSIPExSIPClientEstablishingState * | NewL () |
Private Member Functions | |
| CSIPExSIPClientEstablishingState () | |
Private Attributes | |
| CSIPExSIPStateBase * | iIdleState |
| CSIPExSIPStateBase * | iClientOfferingState |
| CSIPExSIPStateBase * | iEstablishedState |
Definition at line 32 of file SIPExSIPClientEstablishingState.h.
|
|
Destructor Definition at line 36 of file SIPExSIPClientEstablishingState.cpp.
|
|
|
C++ default constructor. Definition at line 27 of file SIPExSIPClientEstablishingState.cpp.
|
|
|
Two-phased constructor. Definition at line 45 of file SIPExSIPClientEstablishingState.cpp. References CSIPExSIPClientEstablishingState(). 00046 { 00047 CSIPExSIPClientEstablishingState* self = 00048 new (ELeave) CSIPExSIPClientEstablishingState(); 00049 return self; 00050 }
|
|
||||||||||||||||
|
Links the states
Definition at line 57 of file SIPExSIPClientEstablishingState.cpp. References iClientOfferingState, iEstablishedState, and iIdleState. 00061 { 00062 iIdleState = &aIdleState; 00063 iClientOfferingState = &aClientOfferingState; 00064 iEstablishedState = &aEstablishedState; 00065 }
|
|
|
CancelInviteL Cancel an INVITE sent previously.
Reimplemented from CSIPExSIPStateBase. Definition at line 72 of file SIPExSIPClientEstablishingState.cpp. References CSIPExSIPEngine::ClientTx(), iIdleState, MSIPExSIPEngineObserver::InvitationCancelled(), CSIPExSIPEngine::Observer(), and CSIPExSIPEngine::SetCurrentState(). 00073 { 00074 // Get the current Client Transaction 00075 CSIPClientTransaction& clientTA = aEngine.ClientTx(); 00076 00077 // Use it the to send CANCEL request 00078 CSIPClientTransaction* ta = clientTA.CancelL(); 00079 delete ta; 00080 00081 aEngine.SetCurrentState( iIdleState ); 00082 aEngine.Observer()->InvitationCancelled(); 00083 }
|
|
||||||||||||
|
ResponseReceivedL A SIP response has been received from the network.
Reimplemented from CSIPExSIPStateBase. Definition at line 91 of file SIPExSIPClientEstablishingState.cpp. References CSIPExSIPEngine::DialogAssoc(), iClientOfferingState, iEstablishedState, iIdleState, MSIPExSIPEngineObserver::InviteAcceptedByRemote(), MSIPExSIPEngineObserver::InviteDeclinedByRemote(), MSIPExSIPEngineObserver::InviteReceivedByRemote(), CSIPExSIPEngine::IPAddressFromResponseElementsL(), CSIPExSIPEngine::Observer(), and CSIPExSIPEngine::SetCurrentState(). 00094 { 00095 const CSIPResponseElements* respElem = aTransaction.ResponseElements(); 00096 00097 TUint statusCode = respElem->StatusCode(); 00098 00099 if ( statusCode >= 200 && statusCode < 300 ) 00100 { 00101 // Final Response received from network. 00102 // Get the IP Address of the remote party from the Response Elements 00103 const TInetAddr addr = 00104 aEngine.IPAddressFromResponseElementsL( *respElem ); 00105 00106 // Get used iap's id 00107 TUint32 iapId( 0 ); 00108 CSIPConnection* conn = aEngine.DialogAssoc().Dialog().Connection(); 00109 if ( conn ) 00110 { 00111 iapId = conn->IapId(); 00112 } 00113 00114 // Then, send ACK to remote party 00115 CSIPInviteDialogAssoc& dialogAssoc = aEngine.DialogAssoc(); 00116 dialogAssoc.SendAckL( aTransaction ); 00117 00118 00119 // After ACKing, notify observer, giving IP Address and IAP id 00120 // as parameter 00121 aEngine.Observer()->InviteAcceptedByRemote( addr, iapId ); 00122 00123 00124 // Finally, change engine state 00125 aEngine.SetCurrentState( iEstablishedState ); 00126 } 00127 else if ( statusCode >= 100 && statusCode < 200 ) 00128 { 00129 // Provisional Response received from network. 00130 aEngine.Observer()->InviteReceivedByRemote( statusCode ); 00131 aEngine.SetCurrentState( iClientOfferingState ); 00132 } 00133 else 00134 { 00135 aEngine.Observer()->InviteDeclinedByRemote( statusCode ); 00136 aEngine.SetCurrentState( iIdleState ); 00137 } 00138 }
|
|
© Nokia 2006 |