30#ifndef _SRTP_CRYPTOGRAPHIC_CONTEXT_HH
36 SDESItem(
unsigned char tag,
unsigned char const* value);
46 u_int8_t subtype, u_int32_t nameBytes,
47 u_int8_t* appDependentData,
unsigned appDependentDataSize);
49class RTCPMemberDatabase;
57 unsigned char const* cname,
97 TaskFunc* handlerTask,
void* clientData);
106 u_int8_t* appDependentData,
unsigned appDependentDataSize);
123 void* handlerClientData) {
128 void injectReport(u_int8_t
const*
packet,
unsigned packetSize,
struct sockaddr_storage
const& fromAddress);
133 unsigned char const* cname,
141 int tcpSocketNum,
unsigned char tcpStreamChannelId);
154 unsigned numExtraWords = 0);
167 int tcpSocketNum,
unsigned char tcpStreamChannelId);
168 void onReceive(
int typeOfPacket,
int totPacketSize, u_int32_t ssrc);
void ByeWithReasonHandlerFunc(void *clientData, char const *reason)
const unsigned char RTCP_SDES_NOTE
const unsigned char RTCP_SDES_END
const unsigned char RTCP_SDES_PHONE
const unsigned char RTCP_SDES_LOC
void RTCPAppHandlerFunc(void *clientData, u_int8_t subtype, u_int32_t nameBytes, u_int8_t *appDependentData, unsigned appDependentDataSize)
const unsigned char RTCP_PT_SDES
const unsigned char RTCP_PT_RTPFB
const unsigned char RTCP_SDES_CNAME
const unsigned char RTCP_PT_PSFB
const unsigned char RTCP_PT_APP
const unsigned char RTCP_SDES_PRIV
const unsigned char RTCP_PT_SR
const unsigned char RTCP_PT_AVB
const unsigned char RTCP_PT_IDMS
const unsigned char RTCP_PT_XR
const unsigned char RTCP_PT_TOKEN
const unsigned char RTCP_PT_RR
const unsigned char RTCP_SDES_EMAIL
const unsigned char RTCP_PT_BYE
const unsigned char RTCP_SDES_TOOL
const unsigned char RTCP_PT_RSI
const unsigned char RTCP_SDES_NAME
void AuxHandlerFunc(void *clientData, unsigned char *packet, unsigned &packetSize)
void TaskFunc(void *clientData)
char const * name() const
Boolean fIsSSMTransmitter
void reschedule(double nextTime)
void enqueueReportBlock(RTPReceptionStats *receptionStats)
RTCPAppHandlerFunc * fAppHandlerTask
void incomingReportHandler1()
void unsetSpecificRRHandler(struct sockaddr_storage const &fromAddress, Port fromPort)
void injectReport(u_int8_t const *packet, unsigned packetSize, struct sockaddr_storage const &fromAddress)
static RTCPInstance * createNew(UsageEnvironment &env, Groupsock *RTCPgs, unsigned totSessionBW, unsigned char const *cname, RTPSink *sink, RTPSource *source, Boolean isSSMTransmitter=False, SRTPCryptographicContext *crypto=NULL)
void addStreamSocket(int sockNum, unsigned char streamChannelId, TLSState *tlsState)
void setByeWithReasonHandler(ByeWithReasonHandlerFunc *handlerTask, void *clientData, Boolean handleActiveParticipantsOnly=True)
RTCPMemberDatabase * fKnownMembers
void addBYE(char const *reason)
void setByeHandler(TaskFunc *handlerTask, void *clientData, Boolean handleActiveParticipantsOnly=True)
Boolean addReport(Boolean alwaysAdd=False)
TaskFunc * fRRHandlerTask
OutPacketBuffer * fOutBuf
void enqueueCommonReportPrefix(unsigned char packetType, u_int32_t SSRC, unsigned numExtraWords=0)
void setSpecificRRHandler(struct sockaddr_storage const &fromAddress, Port fromPort, TaskFunc *handlerTask, void *clientData)
u_int32_t fLastReceivedSSRC
static Boolean lookupByName(UsageEnvironment &env, char const *instanceName, RTCPInstance *&resultInstance)
virtual void noteArrivingRR(struct sockaddr_storage const &fromAddressAndPort, int tcpSocketNum, unsigned char tcpStreamChannelId)
unsigned fOutgoingReportCount
SRTPCryptographicContext * fCrypto
virtual Boolean isRTCPInstance() const
void sendAppPacket(u_int8_t subtype, char const *name, u_int8_t *appDependentData, unsigned appDependentDataSize)
AddressPortLookupTable * fSpecificRRHandlerTable
void setAppHandler(RTCPAppHandlerFunc *handlerTask, void *clientData)
ByeWithReasonHandlerFunc * fByeWithReasonHandlerTask
static void onExpire(RTCPInstance *instance)
unsigned numMembers() const
void setRRHandler(TaskFunc *handlerTask, void *clientData)
RTPInterface fRTCPInterface
void processIncomingReport(unsigned packetSize, struct sockaddr_storage const &fromAddressAndPort, int tcpSocketNum, unsigned char tcpStreamChannelId)
Boolean fHaveJustSentPacket
void schedule(double nextTime)
void removeSSRC(u_int32_t ssrc, Boolean alsoRemoveStats)
static void incomingReportHandler(RTCPInstance *instance, int)
void setAuxilliaryReadHandler(AuxHandlerFunc *handlerFunc, void *handlerClientData)
void removeLastReceivedSSRC()
void setSRHandler(TaskFunc *handlerTask, void *clientData)
void * fByeHandlerClientData
void onReceive(int typeOfPacket, int totPacketSize, u_int32_t ssrc)
void * fRRHandlerClientData
void * fSRHandlerClientData
void removeStreamSocket(int sockNum, unsigned char streamChannelId)
void enqueueCommonReportSuffix()
unsigned totSessionBW() const
TaskFunc * fSRHandlerTask
RTCPInstance(UsageEnvironment &env, Groupsock *RTPgs, unsigned totSessionBW, unsigned char const *cname, RTPSink *sink, RTPSource *source, Boolean isSSMTransmitter, SRTPCryptographicContext *crypto)
TaskFunc * fByeHandlerTask
unsigned fNumBytesAlreadyRead
unsigned fLastPacketSentSize
Boolean fByeHandleActiveParticipantsOnly
Groupsock * RTCPgs() const
void * fAppHandlerClientData
void sendBYE(char const *reason=NULL)
void setStreamSocket(int sockNum, unsigned char streamChannelId, TLSState *tlsState)
void removeStreamSocket(int sockNum, unsigned char streamChannelId)
void setAuxilliaryReadHandler(AuxHandlerFunc *handlerFunc, void *handlerClientData)
unsigned char fData[2+0xFF]
SDESItem(unsigned char tag, unsigned char const *value)
unsigned totalSize() const
unsigned char const * data() const