CSRTPSession Class Reference
class CSRTPSession : public CBase |
Public Member Functions |
---|
| ~CSRTPSession() |
void | AddStreamToList(CSRTPStream *) |
CSRTPCryptoContext & | GetCryptoContext() |
IMPORT_C CSRTPSession * | NewL(const TInetAddr &) |
IMPORT_C CSRTPSession * | NewL(const TInetAddr &, CSRTPCryptoContext *, MSRTPReKeyingObserver &) |
IMPORT_C CSRTPSession * | NewLC(const TInetAddr &) |
IMPORT_C CSRTPSession * | NewLC(const TInetAddr &, CSRTPCryptoContext *, MSRTPReKeyingObserver &) |
IMPORT_C HBufC8 * | ProtectRTCPL(TUint, const TDesC8 &) |
IMPORT_C HBufC8 * | ProtectRTPL(TUint, const TDesC8 &) |
void | ReKeyNeeded(const CSRTPStream &, TBool) |
IMPORT_C const TInetAddr & | RemoteAddr() |
void | RemoveStreamFromList(CSRTPStream *) |
IMPORT_C void | SetCryptoContextL(CSRTPCryptoContext *) |
IMPORT_C CSRTPStream & | StreamL(TUint, TBool) |
IMPORT_C HBufC8 * | UnprotectRTCPL(TUint, const TDesC8 &) |
IMPORT_C HBufC8 * | UnprotectRTPL(TUint, const TDesC8 &) |
Constructor & Destructor Documentation
CSRTPSession(const TInetAddr &, MSRTPReKeyingObserver &)
CSRTPSession(const TInetAddr &)
CSRTPSession | ( | const TInetAddr & | aDestination | ) | [private] |
~CSRTPSession()
Destructor, remove and delete all the stream in the session
Member Functions Documentation
AddStreamToList(CSRTPStream *)
ConstructL(CSRTPCryptoContext *)
FindLateBindingStreamAndUnprotectRTCPL(TUint, const TDesC8 &)
HBufC8 * | FindLateBindingStreamAndUnprotectRTCPL | ( | TUint | aSSRC, |
| const TDesC8 & | aPacket |
| ) | [private] |
FindLateBindingStreamAndUnprotectRTPL(TUint, const TDesC8 &)
HBufC8 * | FindLateBindingStreamAndUnprotectRTPL | ( | TUint | aSSRC, |
| const TDesC8 & | aPacket |
| ) | [private] |
GetCryptoContext()
Get cryptographic context associated for this session
NewL(const TInetAddr &)
Two-phased constructor. Use this function if each stream will have its own cryptographic context.
- leave
- KErrNone if success, system-wide error code otherwise
Parameters
const TInetAddr & aDestination | The destination address, including the port. |
NewL(const TInetAddr &, CSRTPCryptoContext *, MSRTPReKeyingObserver &)
Two-phased constructor. Use this function if all streams will use the same cryptographic context.
- leave
- KErrNone if success, system-wide error code otherwise
NewLC(const TInetAddr &)
Two-phased constructor. Creates a new
CSRTPSession instance and pushes it to
CleanupStack. Use this function if each stream will have its own cryptographic context.
- leave
- KErrNone if success, system-wide error code otherwise
Parameters
const TInetAddr & aDestination | The destination address, including the port. |
NewLC(const TInetAddr &, CSRTPCryptoContext *, MSRTPReKeyingObserver &)
Two-phased constructor. Creates a new
CSRTPSession instance and pushes it to
CleanupStack. Use this function if all streams will use the same cryptographic context.
- leave
- KErrNone if success, system-wide error code otherwise
ProtectRTCPL(TUint, const TDesC8 &)
Session should find the match stream and protect packet Note that if there are no matching stream, the function leave
Parameters
TUint aSSRC | - [input] SSRC of interest |
const TDesC8 & aPacket | - [input] packet to be protected, the length of descriptor should be the same with the actual data. |
ProtectRTPL(TUint, const TDesC8 &)
Session should find the match stream and protect stream Note that if there are no matching stream, the function leave
Parameters
TUint aSSRC | - [input] SSRC of interest |
const TDesC8 & aPacket | - [input] packet to be protected, the length of descriptor should be the same with the actual data, otherwise encoding will not be correct. |
ReKeyNeeded(const CSRTPStream &, TBool)
Parameters
const CSRTPStream & aStream | the stream which needs to be rekey |
TBool aIsStrmCrypto | True if stream has it's own crypto, false otherwise |
RemoteAddr()
Return the destination address set in NewL
RemoveAllStream()
void | RemoveAllStream | ( | ) | [private] |
RemoveStreamFromList(CSRTPStream *)
Remove given stream from the list of CSRTPStream objects
SetCryptoContextL(CSRTPCryptoContext *)
Set/Update crypto context sharing between streams Crypto context ownersh p is transfered. Note that to update crypto context, the states and the number of packets received will be reset. ROC will not be re-intialized. This can be used only when keys lifetime has not expired. RFC 4568 6.5, 6.4
- leave
- KErrNone if success, system-wide error code otherwise
StreamL(TUint, TBool)
Retrieve CSSRTPStream object associated with given SSRC. Note that if there are any duplicates the first one is returned. Otherwise, Multiple SRTP streams with identical SSRCs and with same stream type (In/Out stream) are not supported.
Parameters
TUint aSSRC | - [input] SSRC of interest |
TBool aIsInStream | |
UnprotectRTCPL(TUint, const TDesC8 &)
SRTPSession find the match stream and unprotect packet Note that if there are no matching stream, the function leaves SRTP must have been recive earlier otherwise the function will leave with KErrNotFound--no SSRC matching stream found Note that the streamIn must have to be created to receive RTCP report if there is only one streamOut.
Parameters
TUint aSSRC | - [input] SSRC of interest |
const TDesC8 & aPacket | - [input] packet to be Unprotected |
UnprotectRTPL(TUint, const TDesC8 &)
SRTPSession find the match stream and unprotect stream Note that if there are no matching stream, the function leave In late binding cases, session will try to find the stream which SSRC is equal to zero and unprotect the packet. If the autenticate for the packet is successful, SSRC will be set to this stream.
Parameters
TUint aSSRC | - [input] SSRC of interest |
const TDesC8 & aPacket | - [input] packet to be Unprotected |
Member Data Documentation
CSRTPCryptoContext * iContext
const TInetAddr & iDestination
MSRTPReKeyingObserver * iObserver
TBool
iSesssionCrypto
TBool
| iSesssionCrypto | [protected] |
TSglQueIter< CSRTPStream > iStreamIter
TSglQueLink
iStreamLink
iStreamLink, Link to list.
TSglQue< CSRTPStream > iStreamList
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.