Show / Hide Table of Contents

Namespace SIPSorcery.Net

Classes

ChecklistEntry

A check list entry represents an ICE candidate pair (local candidate + remote candidate) that is being checked for connectivity. If the overall ICE session does succeed it will be due to one of these checklist entries successfully completing the ICE checks.

CRC32C

DtlsSrtpClient

DtlsSrtpServer

DtlsSrtpTransport

DtlsUtils

H264Depacketiser

Based in https://github.com/BogdanovKirill/RtspClientSharp/blob/master/RtspClientSharp/MediaParsers/H264VideoPayloadParser.cs Distributed under MIT License

@author raf.csoares@kyubinteractive.com

H264Packetiser

HepChunk

HepPacket

This class can produce a serialised Homer Encapsulation Protocol (HEP) packet. The implementation has only been done to accommodate packet types required by this library (at the time of writing the sole type is SIP).

IceServer

If ICE servers (STUN or TURN) are being used with the session this class is used to track the connection state for each server that gets used.

IPAddressHelper

MediaStreamStatusType

MediaStreamTrack

Mjpeg

Mjpeg.Tags

Ntp64Timestamp

RawPacket

ReceptionReport

Maintains the reception statistics for a received RTP stream.

ReceptionReportSample

Represents a point in time sample for a reception report.

RTCAnswerOptions

Options for creating an SDP answer.

RTCCertificate

Represents a certificate used to authenticate WebRTC communications.

RTCCertificate2

Represents a certificate used to authenticate WebRTC communications.

RTCConfiguration

Defines the parameters to configure how a new RTCPeerConnection is created.

RTCDataChannel

A WebRTC data channel is generic transport service that allows peers to exchange generic data in a peer to peer manner.

RTCDataChannelInit

RTCDtlsFingerprint

Represents a fingerprint of a certificate used to authenticate WebRTC communications.

RTCIceCandidate

RTCIceCandidateInit

Represents an ICE candidate and associated properties that link it to the SDP.

RTCIceServer

Used to specify properties for a STUN or TURN server that can be used by an ICE agent.

RTCOfferOptions

RTCPBye

RTCP Goodbye packet as defined in RFC3550. The BYE packet indicates that one or more sources are no longer active.

RTCPCompoundPacket

Represents an RTCP compound packet consisting of 1 or more RTCP packets combined together in a single buffer. According to RFC3550 RTCP transmissions should always have at least 2 RTCP packets (a sender/receiver report and an SDES report). This implementation does not enforce that constraint for received reports but does for sends.

RTCPeerConnection

Represents a WebRTC RTCPeerConnection.

RTCPeerSctpAssociation

RTCPFeedback

RTCPHeader

RTCP Header as defined in RFC3550.

RTCPReceiverReport

RTCPReportTypes

RTCPSDesReport

RTCP Source Description (SDES) report as defined in RFC3550. Only the mandatory CNAME item is supported.

RTCPSenderReport

An RTCP sender report is for use by active RTP senders.

RTCPSession

Represents an RTCP session intended to be used in conjunction with an RTP session. This class needs to get notified of all RTP sends and receives and will take care of RTCP reporting.

RTCSctpTransport

Represents an SCTP transport that uses a DTLS transport.

RTCSessionDescription

RTCSessionDescriptionInit

Initialiser for the RTCSessionDescription instance.

RTPChannel

A communications channel for transmitting and receiving Real-time Protocol (RTP) and Real-time Control Protocol (RTCP) packets. This class performs the socket management functions.

RTPEvent

RTPHeader

RtpIceChannel

An RTP ICE Channel carries out connectivity checks with a remote peer in an attempt to determine the best destination end point to communicate with the remote party.

RtpIceChannel.IceTcpReceiver

RTPPacket

RTPSession

The RTPSession class is the primary point for interacting with the Real-Time Protocol. It manages all the resources required for setting up and then sending and receiving RTP packets. This class IS designed to be inherited by child classes and for child classes to add audio and video processing logic.

RtpSessionConfig

RtpVideoFramer

RtpVP8Header

Representation of the VP8 RTP header as specified in RFC7741 https://tools.ietf.org/html/rfc7741.

RTSPConstants

RTSPEntityHeaders

RTSPHeader

RTSPHeaders

RTSPMessage

RTSPMethods

RTSPRequest

RFC2326 6.1: Request-Line = Method SP Request-URI SP RTSP-Version CRLF

RTSPResponse

RFC2326 7.1: Status-Line = RTSP-Version SP Status-Code SP Reason-Phrase CRLF

RTSPResponseStatusCodes

RTSPTransportHeader

Represents the Transport header used in RTSP requests and responses.

RTSPURL

RFC2326 3.2:

rtsp_URL  =   ( "rtsp:" | "rtspu:" )
            "//" host [ ":" port ] [ abs_path ]
            host      =   <A legal Internet host domain name of IP address (in dotted decimal form), as defined by Section 2.1 of RFC 1123 cite{rfc1123}>
            port      =   *DIGIT
abs_path is defined in RFC2616 (HTTP 1.1) 3.2.1 which refers to RFC2396 (URI Generic Syntax) 
           abs_path      = "/"  path_segments
           path_segments = segment *( "/" segment )
           segment       = *pchar *( ";" param )
           param         = *pchar
           pchar         = unreserved | escaped | ":" | "@" | "&" | "=" | "+" | "$" | ","

SctpAbortChunk

The ABORT chunk is sent to the peer of an association to close the association.The ABORT chunk may contain Cause Parameters to inform the receiver about the reason of the abort.DATA chunks MUST NOT be bundled with ABORT.Control chunks (except for INIT, INIT ACK, and SHUTDOWN COMPLETE) MAY be bundled with an ABORT, but they MUST be placed before the ABORT in the SCTP packet or they will be ignored by the receiver.

SctpAssociation

An SCTP association represents an established connection between two SCTP endpoints. This class also represents the Transmission Control Block (TCB) referred to in RFC4960.

SctpChunk

SctpDataChunk

SctpDataReceiver

Processes incoming data chunks and handles fragmentation and congestion control. This class does NOT handle in order delivery. Different streams on the same association can have different ordering requirements so it's left up to each stream handler to deal with full frames as they see fit.

SctpDataSender

SctpErrorChunk

An endpoint sends this chunk to its peer endpoint to notify it of certain error conditions. It contains one or more error causes. An Operation Error is not considered fatal in and of itself, but may be used with an ABORT chunk to report a fatal condition.

SctpInitChunk

This class is used to represent both an INIT and INIT ACK chunk. The only structural difference between them is the INIT ACK requires the Cookie variable parameter to be set. The INIT chunk is used to initiate an SCTP association between two endpoints. The INIT ACK chunk is used to respond to an incoming INIT chunk from a remote peer.

SctpPacket

An SCTP packet is composed of a common header and chunks. A chunk contains either control information or user data.

SctpPadding

SctpSackChunk

This chunk is sent to the peer endpoint to acknowledge received DATA chunks and to inform the peer endpoint of gaps in the received sub-sequences of DATA chunks as represented by their Transmission Sequence Numbers (TSN).

SctpShutdownChunk

An endpoint in an association MUST use this chunk to initiate a graceful close of the association with its peer.

SctpTlvChunkParameter

Represents the a variable length parameter field for use within a Chunk. All chunk parameters use the same underlying Type-Length-Value (TLV) format but then specialise how the fields are used.

SctpTransport

Contains the common methods that an SCTP transport layer needs to implement. As well as being able to be carried directly in IP packets, SCTP packets can also be wrapped in higher level protocols.

SctpUdpTransport

Represents an SCTP transport that encapsulates SCTP packet in UDP.

SDP

SDPConnectionInformation

SDPMediaAnnouncement

SDPMediaTypes

SDPMessageMediaFormat

SDPSecurityDescription

(SDP) Security Descriptions for Media Streams implementation as basically defined in RFC 4568.

Example 1: Parse crypto attribute

string crypto = "a=crypto:1 AES_256_CM_HMAC_SHA1_80 inline:GTuZoqOsesiK4wfyL7Rsq6uHHwhqVGA+aVuAUnsmWktYacZyJu6/6tUQeUti0Q==";
SDPSecurityDescription localcrypto = SDPSecurityDescription.Parse(crypto);
Example 2: Parse crypto attribute

SDPMediaAnnouncement mediaAudio = new SDPMediaAnnouncement();
//[...]set some SDPMediaAnnouncement properties
SDPSecurityDescription localcrypto = SDPSecurityDescription.CreateNew();
localcrypto.KeyParams.Clear();
localcrypto.KeyParams.Add(SDPSecurityDescription.KeyParameter.CreateNew(SDPSecurityDescription.CryptoSuites.AES_CM_128_HMAC_SHA1_32));
mediaAudio.SecurityDescriptions.Add(localcrypto);
mediaAudio.ToString();

string crypto = "a=crypto:1 AES_256_CM_HMAC_SHA1_80 inline:GTuZoqOsesiK4wfyL7Rsq6uHHwhqVGA+aVuAUnsmWktYacZyJu6/6tUQeUti0Q==";
SDPSecurityDescription desc = SDPSecurityDescription.Parse(crypto);

SDPSecurityDescription.KeyParameter

SDPSecurityDescription.SessionParameter

SDPSsrcAttribute

An attribute used to defined additional properties about a media source and the relationship between them. As specified in RFC5576, https://tools.ietf.org/html/rfc5576.

SecureContext

SrtcpCryptoContext

SrtcpTransformer

SRTCPTransformer implements PacketTransformer. It encapsulate the encryption / decryption logic for SRTCP packets

@author Bing SU (nova.su @gmail.com) @author Werner Dittmann (Werner.Dittmann@t-online.de)

SrtpCipherCTR

SrtpCipherF8

SrtpCipherF8.F8Context

SrtpCryptoContext

SrtpHandler

SrtpPolicy

SrtpPolicy holds the SRTP encryption / authentication policy of a SRTP session.

@author Bing SU (nova.su @gmail.com)

SrtpTransformEngine

SrtpTransformer

STUNAddressAttribute

STUNAddressAttributeBase

STUNAttribute

STUNAttributeConstants

STUNAttributeTypes

STUNChangeRequestAttribute

STUNClient

Methods to resolve the public IP address and port information of the client.

STUNConnectionIdAttribute

STUNConstants

STUNDns

STUNErrorCodeAttribute

STUNHeader

STUNListener

STUNMessage

STUNMessageTypes

STUNServer

STUNUri

STUNXORAddressAttribute

This attribute is the same as the mapped address attribute except the address details are XOR'ed with the STUN magic cookie. THe reason for this is to stop NAT application layer gateways from doing string replacements of private IP addresses and ports.

TimestampPair

UdpReceiver

A basic UDP socket manager. The RTP channel may need both an RTP and Control socket. This class encapsulates the common logic for UDP socket management.

Utility

WebRTCRestSignalingPeer

This class is not a required component for using WebRTC. It is a convenience class provided to perform the signalling via a HTTP REST server.

WebRTCWebSocketClient

This class is NOT a required component for using WebRTC. It is a convenience class provided to assist when using a corresponding WebRTC peer running a web socket server (which is the case for most of the demo applications that go with this library).

WebRTCWebSocketPeer

This class is NOT a required component for using WebRTC. It is a convenience class provided to assist when using a web socket server for the WebRTC signalling.

Structs

DataChannelOpenMessage

Represents a Data Channel Establishment Protocol (DECP) OPEN message. This message is initially sent using the data channel on the stream used for user messages.

H264Packetiser.H264Nal

SctpCauseOnlyError

This structure captures all SCTP errors that don't have an additional parameter.

SctpDataFrame

SctpErrorInvalidStreamIdentifier

Invalid Stream Identifier: Indicates endpoint received a DATA chunk sent to a nonexistent stream.

SctpErrorMissingMandatoryParameter

Indicates that one or more mandatory Type-Length-Value (TLV) format parameters are missing in a received INIT or INIT ACK.

SctpErrorNoUserData

This error cause is returned to the originator of a DATA chunk if a received DATA chunk has no user data.

SctpErrorProtocolViolation

This error cause MAY be included in ABORT chunks that are sent because an SCTP endpoint detects a protocol violation of the peer that is not covered by any of the more specific error causes

SctpErrorRestartAssociationWithNewAddress

An INIT was received on an existing association.But the INIT added addresses to the association that were previously NOT part of the association. The new addresses are listed in the error code.This ERROR is normally sent as part of an ABORT refusing the INIT.

SctpErrorStaleCookieError

Indicates the receipt of a valid State Cookie that has expired.

SctpErrorUnrecognizedChunkType

Indicates that the sender is out of resource. This is usually sent in combination with or within an ABORT.

SctpErrorUnrecognizedParameters

This error cause is returned to the originator of the INIT ACK chunk if the receiver does not recognize one or more optional variable parameters in the INIT ACK chunk.

SctpErrorUnresolvableAddress

Indicates that the sender is not able to resolve the specified address parameter (e.g., type of address is not supported by the sender). This is usually sent in combination with or within an ABORT.

SctpErrorUserInitiatedAbort

This error cause MAY be included in ABORT chunks that are sent because of an upper-layer request.

SctpHeader

SctpStatus

Represents the current status of an SCTP association.

SctpTransportCookie

The opaque cookie structure that will be sent in response to an SCTP INIT packet.

SctpTsnGapBlock

SDPApplicationMediaFormat

SDPAudioVideoMediaFormat

Represents a single media format within a media announcement. Often the whole media format can be represented and described by a single character, e.g. "0" without additional info represents standard "PCMU", "8" represents "PCMA" etc. For other media types that have variable parameters additional attributes can be provided.

SrtpParameters

Interfaces

IDtlsSrtpPeer

IPacketTransformer

IRTCIceCandidate

IRTCPeerConnection

IRTCRtpReceiver

The RTCRtpReceiver interface allows an application to inspect the receipt of a MediaStreamTrack.

IRTCRtpSender

The RTCRtpSender interface allows an application to control how a given MediaStreamTrack is encoded and transmitted to a remote peer. When setParameters is called on an RTCRtpSender object, the encoding is changed appropriately.

ISctpErrorCause

ITransformEngine

Enums

AlertLevelsEnum

AlertTypesEnum

CaptureProtocolTypeEnum

ChecklistEntryState

List of state conditions for a check list entry as the connectivity checks are carried out.

ChunkTypeEnum

DataChannelMessageTypes

DataChannelPayloadProtocols

The assignments for SCTP payload protocol IDs used with WebRTC data channels.

DataChannelTypes

FeedbackProtocol

IceImplementationEnum

The ICE set up roles that a peer can be in. The role determines how the DTLS handshake is performed, i.e. which peer is the client and which is the server.

IceRolesEnum

The ICE set up roles that a peer can be in. The role determines how the DTLS handshake is performed, i.e. which peer is the client and which is the server.

MediaStreamStatusEnum

The types of status that a media stream can have. Note that the stream status can be defined with an attribute at session level or at media element level. If no attribute is defined then the default is "sendrecv". Note that this status applies to RTP streams only. If there is an RTCP stream associated with the RTP it should carry on as normal. See https://tools.ietf.org/html/rfc4566#section-6

PSFBFeedbackTypesEnum

The different types of Feedback Message Types. (RFC4585) https://tools.ietf.org/html/rfc4585#page-35

RTCBundlePolicy

Affects which media tracks are negotiated if the remote end point is not bundle aware.

RTCDataChannelState

RTCIceCandidateType

The RTCIceCandidateType represents the type of the ICE candidate.

RTCIceComponent

RTCIceConnectionState

The states an ICE session transitions through.

RTCIceCredentialType

The types of credentials for an ICE server.

RTCIceGatheringState

The gathering states an ICE session transitions through.

RTCIceProtocol

The transport protocol types for an ICE candidate.

RTCIceTcpCandidateType

The RTCIceTcpCandidateType represents the type of the ICE TCP candidate.

RTCIceTransportPolicy

Determines which ICE candidates can be used for a peer connection.

RTCPeerConnectionState

The states a peer connection transitions through. The difference between the IceConnectionState and the PeerConnectionState is somewhat subtle:

  • IceConnectionState: applies to the connection checks amongst ICE candidates and is set as completed as soon as a local and remote candidate have set their nominated candidate,
  • PeerConnectionState: takes into account the IceConnectionState but also includes the DTLS handshake and actions at the application layer such as a request to close the peer connection.

RTCPFeedbackTypesEnum

The different types of Feedback Message Types. (RFC4585) https://tools.ietf.org/html/rfc4585#page-35

RTCPReportTypesEnum

The different types of RTCP packets as defined in RFC3550.

RTCRtcpMuxPolicy

The RTCP multiplex options for ICE candidates. This option is currently redundant since the single option means RTCP multiplexing MUST be available or the SDP negotiation will fail.

RTCSctpTransportState

RTCSdpType

RTCSignalingState

Signalling states for a WebRTC peer connection.

RTPChannelSocketsEnum

RtpSecureMediaOptionEnum

RTSPHeaderError

RTSPHeaderParserError

RTSPMessageTypesEnum

RTSPMethodsEnum

RTSPRequestParserError

RTSPResponseParserError

RTSPResponseStatusCodesEnum

SctpAssociationState

SctpChunkType

The values of the Chunk Types.

SctpErrorCauseCode

SctpInitChunkParameterType

The optional or variable length Type-Length-Value (TLV) parameters that can be used with INIT and INIT ACK chunks.

SctpUnrecognisedChunkActions

The actions required for unrecognised chunks. The byte value corresponds to the highest order two bits of the chunk type value.

SctpUnrecognisedParameterActions

The actions required for unrecognised parameters. The byte value corresponds to the highest order two bits of the parameter type value.

SDPMediaTypesEnum

SDPSecurityDescription.CryptoSuites

SDPSecurityDescription.SessionParameter.FecTypes

SDPSecurityDescription.SessionParameter.SrtpSessionParams

SetDescriptionResultEnum

STUNAttributeTypesEnum

STUNClassTypesEnum

The class is interpreted from the message type. It does not get explicitly set in the STUN header.

STUNMessageTypesEnum

STUNProtocolsEnum

A list of the transport layer protocols that are supported by STUNand TURN (the network layers supported are IPv4 mad IPv6).

STUNSchemesEnum

WebRTCSignalTypesEnum

Delegates

OnDataChannelMessageDelegate

OnNewRTCDataChannel

OnRTCDataChannelOpened

PacketReceivedDelegate

ProtectRtpPacket

STUNMessageReceived

STUNSendMessageDelegate

STUNServerRequestInTraceDelegate

STUNServerResponseOutTraceDelegate

In This Article
Back to top Generated by DocFX