Class ManagedConnection
A managed connection.
Inherited Members
Namespace: FM.LiveSwitch
Assembly: FM.LiveSwitch.dll
Syntax
public abstract class ManagedConnection : Dynamic
Constructors
ManagedConnection(Object, String, String, String, String, String, Function1<Message, Future<Message>>, String, AudioStream, VideoStream, DataStream, String)
ManagedConnection constructor.
Declaration
protected ManagedConnection(object sharedLock, string applicationId, string channelId, string userId, string deviceId, string clientId, Function1<Message, Future<Message>> doSend, string type, AudioStream audioStream, VideoStream videoStream, DataStream dataStream, string mediaId)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Object | sharedLock | |
| System.String | applicationId | |
| System.String | channelId | |
| System.String | userId | |
| System.String | deviceId | |
| System.String | clientId | |
| Function1<Message, Future<Message>> | doSend | |
| System.String | type | |
| AudioStream | audioStream | |
| VideoStream | videoStream | |
| DataStream | dataStream | |
| System.String | mediaId |
ManagedConnection(Object, String, String, String, String, String, String, Function1<Message, Future<Message>>, String, AudioStream, VideoStream, DataStream, String, Boolean)
ManagedConnection constructor.
Declaration
protected ManagedConnection(object sharedLock, string connectionId, string applicationId, string channelId, string userId, string deviceId, string clientId, Function1<Message, Future<Message>> doSend, string type, AudioStream audioStream, VideoStream videoStream, DataStream dataStream, string mediaId, bool useWebSocketsForMedia)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Object | sharedLock | |
| System.String | connectionId | |
| System.String | applicationId | |
| System.String | channelId | |
| System.String | userId | |
| System.String | deviceId | |
| System.String | clientId | |
| Function1<Message, Future<Message>> | doSend | |
| System.String | type | |
| AudioStream | audioStream | |
| VideoStream | videoStream | |
| DataStream | dataStream | |
| System.String | mediaId | |
| System.Boolean | useWebSocketsForMedia |
Properties
ApplicationId
Gets the application identifier.
Declaration
public string ApplicationId { get; }
Property Value
| Type | Description |
|---|---|
| System.String |
AudioDirection
Gets the audio direction. Null if disabled.
Declaration
public string AudioDirection { get; }
Property Value
| Type | Description |
|---|---|
| System.String |
AudioStream
Gets the audio stream.
Declaration
public AudioStream AudioStream { get; }
Property Value
| Type | Description |
|---|---|
| AudioStream |
AudioUnmuteDisabled
Gets whether the ability to unmute audio is disabled.
Declaration
public bool AudioUnmuteDisabled { get; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
BundlePolicy
Gets or sets the Bundle Policy.
Declaration
public BundlePolicy BundlePolicy { get; set; }
Property Value
| Type | Description |
|---|---|
| BundlePolicy |
CanonicalName
Gets the connection's canonical name.
Declaration
public string CanonicalName { get; }
Property Value
| Type | Description |
|---|---|
| System.String |
ChannelId
Gets the channel identifier.
Declaration
public string ChannelId { get; }
Property Value
| Type | Description |
|---|---|
| System.String |
ClientId
Gets the client identifier.
Declaration
public string ClientId { get; }
Property Value
| Type | Description |
|---|---|
| System.String |
Config
Gets the current configuration.
Declaration
public ConnectionConfig Config { get; }
Property Value
| Type | Description |
|---|---|
| ConnectionConfig |
CreateDatagramSocket
Gets or sets a method that creates Datagram sockets. Optional. If not set, default OS UDP socket is used.
Declaration
public Function1<DatagramSocketCreateArgs, DatagramSocket> CreateDatagramSocket { get; set; }
Property Value
| Type | Description |
|---|---|
| Function1<DatagramSocketCreateArgs, DatagramSocket> |
CreateStreamSocket
Gets or sets a method that creates Stream sockets. Optional. If not set, default OS TCP socket is used.
Declaration
public Function1<StreamSocketCreateArgs, StreamSocket> CreateStreamSocket { get; set; }
Property Value
| Type | Description |
|---|---|
| Function1<StreamSocketCreateArgs, StreamSocket> |
DataDirection
Gets the data direction. Null if disabled.
Declaration
public string DataDirection { get; }
Property Value
| Type | Description |
|---|---|
| System.String |
DataStream
Gets the data stream.
Declaration
public DataStream DataStream { get; }
Property Value
| Type | Description |
|---|---|
| DataStream |
DeadStreamTimeout
Gets or sets the amount of time (in milliseconds) to wait before declaring the connection dead. When there are no candidate pairs connected, the timer will start. When a candidate pair becomes connected the timer will be reset and stopped. If no candidate pairs become connected before the timeout is reached, the state of the connection will change to failed. Defaults to 15,000.
Declaration
public int DeadStreamTimeout { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
DefaultLocalDtlsCertificate
Gets or sets the default local DTLS certificate.
Declaration
public static DtlsCertificate DefaultLocalDtlsCertificate { get; set; }
Property Value
| Type | Description |
|---|---|
| DtlsCertificate |
DefaultLocalDtlsCertificates
Gets or sets the default local DTLS certificates.
Declaration
public static DtlsCertificate[] DefaultLocalDtlsCertificates { get; set; }
Property Value
| Type | Description |
|---|---|
| DtlsCertificate[] |
DefaultNoMediaServerTimeout
Gets or sets the default timeout, in milliseconds, before we fail the connection attempt
where no Media Servers are available for either ICE servers or SFU/MCU offer processing.
The default value is 120,000 (2 minutes).
Declaration
public static int DefaultNoMediaServerTimeout { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
DefaultStatsEventInterval
Gets or sets the default interval, in milliseconds, between stats events raised locally by OnStats.
The default value is 1,000 (1 second).
Declaration
public static int DefaultStatsEventInterval { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
DefaultStatsInterval
Gets or sets the default interval, in milliseconds, between stats reports sent to the Gateway.
The default value is 10,000 (10 seconds).
Declaration
public static int DefaultStatsInterval { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
DefaultStatsReportInterval
Gets or sets the default interval, in milliseconds, between stats reports sent to the Gateway.
The default value is 10,000 (10 seconds).
Declaration
public static int DefaultStatsReportInterval { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
DeviceId
Gets the device identifier.
Declaration
public string DeviceId { get; }
Property Value
| Type | Description |
|---|---|
| System.String |
DiagnosticsConfig
Gets the Diagnostics Config.
Declaration
public DiagnosticsConfig DiagnosticsConfig { get; }
Property Value
| Type | Description |
|---|---|
| DiagnosticsConfig |
DisableAutomaticIceServers
Gets or sets whether to disable automatic ICE servers (embedded TURN).
Declaration
public bool DisableAutomaticIceServers { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
DtlsCipherSuites
Gets or sets the DTLS cipher suites to use. Defaults to: DtlsCipherSuite.EcdheEcdsaAes128Sha, DtlsCipherSuite.EcdheEcdsaAes128GcmSha256, DtlsCipherSuite.EcdheEcdsaAes128CbcSha256, DtlsCipherSuite.EcdheRsaAes128Sha, DtlsCipherSuite.EcdheRsaAes128GcmSha256, DtlsCipherSuite.EcdheRsaAes128CbcSha256, DtlsCipherSuite.RsaAes128Sha, DtlsCipherSuite.RsaAes128GcmSha256, DtlsCipherSuite.RsaAes128CbcSha256,
Declaration
public DtlsCipherSuite[] DtlsCipherSuites { get; set; }
Property Value
| Type | Description |
|---|---|
| DtlsCipherSuite[] |
DtlsClientVersion
Gets or sets the protocol version to use when in the DTLS client role. Defaults to Dtls10.
Declaration
public DtlsProtocolVersion DtlsClientVersion { get; set; }
Property Value
| Type | Description |
|---|---|
| DtlsProtocolVersion |
DtlsServerMaxVersion
Gets or sets the maximum protocol version to allow when in the DTLS server role. Defaults to Dtls12.
Declaration
public DtlsProtocolVersion DtlsServerMaxVersion { get; set; }
Property Value
| Type | Description |
|---|---|
| DtlsProtocolVersion |
DtlsServerMinVersion
Gets or sets the minimum protocol version to allow when in the DTLS server role. Defaults to Dtls10.
Declaration
public DtlsProtocolVersion DtlsServerMinVersion { get; set; }
Property Value
| Type | Description |
|---|---|
| DtlsProtocolVersion |
Error
Gets the error, if an error exists.
Declaration
public Error Error { get; }
Property Value
| Type | Description |
|---|---|
| Error |
ExternalId
Gets the external connection identifier.
Declaration
public string ExternalId { get; }
Property Value
| Type | Description |
|---|---|
| System.String |
GatheringState
Gets the state of the ice gathering.
Declaration
public IceGatheringState GatheringState { get; }
Property Value
| Type | Description |
|---|---|
| IceGatheringState |
HasAudio
Gets whether this connection has an audio stream.
Declaration
public bool HasAudio { get; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
HasData
Gets whether this connection has a data stream.
Declaration
public bool HasData { get; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
HasVideo
Gets whether this connection has a video stream.
Declaration
public bool HasVideo { get; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
IceAddressTypes
Gets or sets the ICE address types.
Declaration
public AddressType[] IceAddressTypes { get; set; }
Property Value
| Type | Description |
|---|---|
| AddressType[] |
IceConnectionState
Gets the state of the ice connection.
Declaration
public IceConnectionState IceConnectionState { get; }
Property Value
| Type | Description |
|---|---|
| IceConnectionState |
IceGatherPolicy
Gets or sets the ICE gather policy.
Declaration
public IceGatherPolicy IceGatherPolicy { get; set; }
Property Value
| Type | Description |
|---|---|
| IceGatherPolicy |
IcePolicy
Gets or sets policy indicating whether ICE is required (and enabled) or disabled (and not required for this connection).
Declaration
public IcePolicy IcePolicy { get; set; }
Property Value
| Type | Description |
|---|---|
| IcePolicy |
IcePortRange
Gets or sets the ICE port range.
Declaration
public IcePortRange IcePortRange { get; set; }
Property Value
| Type | Description |
|---|---|
| IcePortRange |
IceRole
Gets the ICE role.
Declaration
public IceRole IceRole { get; }
Property Value
| Type | Description |
|---|---|
| IceRole |
IceServer
Gets or sets the ICE server.
Declaration
public IceServer IceServer { get; set; }
Property Value
| Type | Description |
|---|---|
| IceServer |
IceServers
Gets or sets the ICE servers.
Declaration
public IceServer[] IceServers { get; set; }
Property Value
| Type | Description |
|---|---|
| IceServer[] |
Id
Gets the connection identifier.
Declaration
public string Id { get; }
Property Value
| Type | Description |
|---|---|
| System.String |
Info
Gets the connection info.
Declaration
public ConnectionInfo Info { get; }
Property Value
| Type | Description |
|---|---|
| ConnectionInfo |
InternalRtcpDataChannel
Gets Data Channel for inband signalling.
Declaration
protected DataChannel InternalRtcpDataChannel { get; }
Property Value
| Type | Description |
|---|---|
| DataChannel |
KeepAliveInterval
Gets or sets a value indicating how many milliseconds must elapse between STUN keep-alive binding requests. Defaults to 1000.
Declaration
public int KeepAliveInterval { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
LayoutPriority
Gets or sets the LayoutPriority.
Declaration
public int? LayoutPriority { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Nullable<System.Int32> |
LayoutZone
Gets or sets the LayoutZone.
Declaration
public string LayoutZone { get; set; }
Property Value
| Type | Description |
|---|---|
| System.String |
LocalAudioDirection
Gets the local audio direction. Null if disabled.
Declaration
public string LocalAudioDirection { get; }
Property Value
| Type | Description |
|---|---|
| System.String |
LocalAudioDisabled
Gets if local audio is disabled.
Declaration
public bool LocalAudioDisabled { get; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
LocalAudioFormats
Gets or sets the local audio formats.
Declaration
public FormatInfo[] LocalAudioFormats { get; protected set; }
Property Value
| Type | Description |
|---|---|
| FormatInfo[] |
LocalAudioMuted
Gets whether the local audio is muted.
Declaration
public bool LocalAudioMuted { get; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
LocalDataDirection
Gets the local data direction. Null if disabled.
Declaration
public string LocalDataDirection { get; }
Property Value
| Type | Description |
|---|---|
| System.String |
LocalDataDisabled
Gets if local data is disabled.
Declaration
public bool LocalDataDisabled { get; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
LocalDescription
Gets the local description.
Declaration
public SessionDescription LocalDescription { get; }
Property Value
| Type | Description |
|---|---|
| SessionDescription |
LocalDtlsCertificate
Gets or sets the local DTLS certificate.
Declaration
public DtlsCertificate LocalDtlsCertificate { get; set; }
Property Value
| Type | Description |
|---|---|
| DtlsCertificate |
LocalDtlsCertificates
Gets or sets the local DTLS certificates.
Declaration
public DtlsCertificate[] LocalDtlsCertificates { get; set; }
Property Value
| Type | Description |
|---|---|
| DtlsCertificate[] |
LocalVideoDirection
Gets the local video direction. Null if disabled.
Declaration
public string LocalVideoDirection { get; }
Property Value
| Type | Description |
|---|---|
| System.String |
LocalVideoDisabled
Gets if local video is disabled.
Declaration
public bool LocalVideoDisabled { get; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
LocalVideoFormats
Gets or sets the local video formats.
Declaration
public FormatInfo[] LocalVideoFormats { get; protected set; }
Property Value
| Type | Description |
|---|---|
| FormatInfo[] |
LocalVideoMuted
Gets whether the local video is muted.
Declaration
public bool LocalVideoMuted { get; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
MaxNoMediaServerRetryBackoff
Gets or sets the maximum retry backoff timeout, in milliseconds, before we retry a request
after receiving no Media Servers are available for either ICE servers or SFU/MCU offer processing.
The default value is 1500ms.
Declaration
public int MaxNoMediaServerRetryBackoff { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
MediaId
Gets or sets the media identifier.
Declaration
public string MediaId { get; protected set; }
Property Value
| Type | Description |
|---|---|
| System.String |
MediaIntents
Gets media intents reflected by Gateway.
Declaration
protected string[] MediaIntents { get; }
Property Value
| Type | Description |
|---|---|
| System.String[] |
MediaProtocol
Gets or sets the media protocol in use on this connection.
Declaration
public MediaProtocol MediaProtocol { get; }
Property Value
| Type | Description |
|---|---|
| MediaProtocol |
MediaQuality
Gets the current estimated media quality.
The value ranges from 0.0 to 1.0, where 0.0 is the lowest quality and 1.0 is the highest quality.
Declaration
public double MediaQuality { get; }
Property Value
| Type | Description |
|---|---|
| System.Double |
MinNoMediaServerRetryBackoff
Gets or sets the mininum retry backoff timeout, in milliseconds, before we retry a request
after receiving no Media Servers are available for either ICE servers or SFU/MCU offer processing.
The default value is 1000ms.
Declaration
public int MinNoMediaServerRetryBackoff { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
MultiplexPolicy
Gets or sets the multiplex policy.
Declaration
public MultiplexPolicy MultiplexPolicy { get; set; }
Property Value
| Type | Description |
|---|---|
| MultiplexPolicy |
NetworkQuality
Gets the current estimated network quality.
The value ranges from 0.0 to 1.0, where 0.0 is the lowest quality and 1.0 is the highest quality.
Declaration
public double NetworkQuality { get; }
Property Value
| Type | Description |
|---|---|
| System.Double |
NoMediaServerTimeout
Gets or sets the timeout, in milliseconds, before failing a request where no Media Servers are available for either ICE servers or SFU/MCU offer processing.
Declaration
public int NoMediaServerTimeout { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
PrivateIPAddress
Gets or sets the private IP address of this device. If set, this will bypass the local network discovery and use this as the sole host candidate.
Declaration
public string PrivateIPAddress { get; set; }
Property Value
| Type | Description |
|---|---|
| System.String |
PrivateIPAddresses
Gets or sets the private IP address of this device. If set, this will bypass the local network discovery and use this as the sole host candidate.
Declaration
public string[] PrivateIPAddresses { get; set; }
Property Value
| Type | Description |
|---|---|
| System.String[] |
Randomizer
Gets a randomizer for backoff timers
Declaration
protected Randomizer Randomizer { get; }
Property Value
| Type | Description |
|---|---|
| Randomizer |
RecordingEnabled
Gets or sets whether this connection is being recorded.
Declaration
public bool RecordingEnabled { get; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
RemoteAudioDisabled
Gets if remote audio is disabled.
Declaration
public bool RemoteAudioDisabled { get; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
RemoteAudioEncoding
Gets or sets the remote audio encoding.
Declaration
public EncodingInfo RemoteAudioEncoding { get; protected set; }
Property Value
| Type | Description |
|---|---|
| EncodingInfo |
RemoteAudioFormats
Gets or sets the remote audio formats.
Declaration
public FormatInfo[] RemoteAudioFormats { get; protected set; }
Property Value
| Type | Description |
|---|---|
| FormatInfo[] |
RemoteAudioMuted
Gets or sets whether the remote audio is muted.
Declaration
public bool RemoteAudioMuted { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
RemoteClosed
Gets a value indicating whether the connection was closed by the remote host.
Declaration
public bool RemoteClosed { get; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
RemoteConnectionId
Gets or sets the remote connection identifier, if available.
Declaration
public string RemoteConnectionId { get; protected set; }
Property Value
| Type | Description |
|---|---|
| System.String |
RemoteDataDisabled
Gets if remote data is disabled.
Declaration
public bool RemoteDataDisabled { get; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
RemoteDescription
Gets the remote description.
Declaration
public SessionDescription RemoteDescription { get; }
Property Value
| Type | Description |
|---|---|
| SessionDescription |
RemoteMediaId
Gets or sets the remote media identifier, if available.
Declaration
public string RemoteMediaId { get; protected set; }
Property Value
| Type | Description |
|---|---|
| System.String |
RemoteRejected
Gets a value indicating whether the connection was rejected by the remote host.
Declaration
public bool RemoteRejected { get; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
RemoteTag
Gets or sets the remote tag, if applicable.
Declaration
public string RemoteTag { get; protected set; }
Property Value
| Type | Description |
|---|---|
| System.String |
RemoteVideoDisabled
Gets if remote video is disabled.
Declaration
public bool RemoteVideoDisabled { get; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
RemoteVideoEncoding
Gets or sets the remote video encoding.
Declaration
public EncodingInfo RemoteVideoEncoding { get; protected set; }
Property Value
| Type | Description |
|---|---|
| EncodingInfo |
RemoteVideoFormats
Gets or sets the remote video formats.
Declaration
public FormatInfo[] RemoteVideoFormats { get; protected set; }
Property Value
| Type | Description |
|---|---|
| FormatInfo[] |
RemoteVideoMuted
Gets or sets whether the remote video is muted.
Declaration
public bool RemoteVideoMuted { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
RttMonitoringStrategy
Gets or sets the RTT strategy.
Declaration
public Action1<int> RttMonitoringStrategy { get; set; }
Property Value
| Type | Description |
|---|---|
| Action1<System.Int32> |
SignallingState
Gets the state of the signalling.
Declaration
public SignallingState SignallingState { get; }
Property Value
| Type | Description |
|---|---|
| SignallingState |
State
Gets the state of the connection.
Declaration
public ConnectionState State { get; }
Property Value
| Type | Description |
|---|---|
| ConnectionState |
StatsEventInterval
Gets or sets the interval, in milliseconds, between stats events raised locally by OnStats.
The default value is 1000 (1 second).
Declaration
public int StatsEventInterval { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
StatsInterval
Gets or sets the default interval, in milliseconds, between stats reports sent to the Gateway.
The default value is 10,000 (10 seconds).
Declaration
public int StatsInterval { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
StatsReportInterval
Gets or sets the interval, in milliseconds, between stats reports sent to the Gateway.
The default value is 10,000 (10 seconds).
Declaration
public int StatsReportInterval { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
StunBindingRequestLimit
Gets or sets the limit on the the number of Turn Allocate request messages when trying to establish allocation on a Turn server.
Declaration
public int StunBindingRequestLimit { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
StunRequestTimeout
Gets or sets the timeout for individual Stun (and Turn) request messages in ms.
Declaration
public int StunRequestTimeout { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
Tag
Gets or sets the tag.
Declaration
public string Tag { get; set; }
Property Value
| Type | Description |
|---|---|
| System.String |
TcpConnectTimeout
Gets or sets connection timeout for stream sockets in ms.
Declaration
public int TcpConnectTimeout { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
TestReceivedRtpBuffer
Gets or sets a method that can be used to test and optionally modify inbound RTP buffers.
FOR TESTING PURPOSES ONLY. Returning null will cause the buffer to be discarded.
Declaration
public Function1<DataBuffer, DataBuffer> TestReceivedRtpBuffer { get; set; }
Property Value
| Type | Description |
|---|---|
| Function1<DataBuffer, DataBuffer> |
TestRoundTripTime
Gets or sets a fixed round-trip time (in milliseconds) to use in the network transport. FOR TESTING PURPOSES ONLY. Defaults to -1, which indicates that normal round-trip time calculations should be used.
Declaration
public int TestRoundTripTime { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
TestSendingRtpBuffer
Gets or sets a method that can be used to test and optionally modify outbound RTP buffers.
FOR TESTING PURPOSES ONLY. Returning null will cause the buffer to be discarded.
Declaration
public Function1<DataBuffer, DataBuffer> TestSendingRtpBuffer { get; set; }
Property Value
| Type | Description |
|---|---|
| Function1<DataBuffer, DataBuffer> |
TrickleIcePolicy
Gets or sets the trickle-ICE policy.
Declaration
public TrickleIcePolicy TrickleIcePolicy { get; set; }
Property Value
| Type | Description |
|---|---|
| TrickleIcePolicy |
TurnAllocateRequestLimit
Gets or sets the limit on the the number of Turn Allocate request messages when trying to establish allocation on a Turn server.
Declaration
public int TurnAllocateRequestLimit { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
Type
Gets the connection type.
Declaration
public string Type { get; }
Property Value
| Type | Description |
|---|---|
| System.String |
UserId
Gets the user identifier.
Declaration
public string UserId { get; }
Property Value
| Type | Description |
|---|---|
| System.String |
UseWebSocketsForMedia
Gets or sets if we should use WebSockets for sending media.
Declaration
public bool UseWebSocketsForMedia { get; protected set; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
VideoDirection
Gets the video direction. Null if disabled.
Declaration
public string VideoDirection { get; }
Property Value
| Type | Description |
|---|---|
| System.String |
VideoEnabledConnectionUpdateAttempts
Gets or sets the amount of attempts this connection has made to enabled video on a connection. These attempts happen after the connection has been updated to disabled video due to network constraints.
Declaration
public int VideoEnabledConnectionUpdateAttempts { get; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
VideoEnabledUpdateConnectionPolicy
Gets or sets a method that determines when to enable video again on a connection that dynamically disables video. Optional. If not set, default policy will be used. Takes in an interger parameter that represents the amount of attempts already tried. Will return an interger value as a time period in seconds for how long to wait for the next attempt or -1 for no more attempts.
Declaration
public Function1<int, int> VideoEnabledUpdateConnectionPolicy { get; set; }
Property Value
| Type | Description |
|---|---|
| Function1<System.Int32, System.Int32> |
VideoRetentionPolicy
Gets or sets the Video Retention Policy. This will determine how we will handle video on the connection when the connection is of poor quality.
Declaration
public VideoRetentionPolicy VideoRetentionPolicy { get; set; }
Property Value
| Type | Description |
|---|---|
| VideoRetentionPolicy |
VideoStream
Gets the video stream.
Declaration
public VideoStream VideoStream { get; }
Property Value
| Type | Description |
|---|---|
| VideoStream |
VideoUnmuteDisabled
Gets whether the ability to unmute video is disabled.
Declaration
public bool VideoUnmuteDisabled { get; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
WmsAddress
Gets or sets the WMS endpoint address.
Declaration
public string WmsAddress { get; set; }
Property Value
| Type | Description |
|---|---|
| System.String |
WmsConnectionToken
Gets or sets WMS connection token.
Declaration
public string WmsConnectionToken { get; set; }
Property Value
| Type | Description |
|---|---|
| System.String |
Methods
Close()
Closes the connection.
Declaration
public Future<object> Close()
Returns
| Type | Description |
|---|---|
| Future<System.Object> |
DefaultRTTMonitoringStrategy(Int32)
The default RTT strategy.
Declaration
public void DefaultRTTMonitoringStrategy(int rtt)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | rtt | A round trip time measurement |
DetachInternalEventHandlers()
Detaches internal event handlers.
Declaration
protected virtual void DetachInternalEventHandlers()
DoCreateCandidateMessage(Candidate)
Creates a candidate message.
Declaration
protected abstract Message DoCreateCandidateMessage(Candidate candidate)
Parameters
| Type | Name | Description |
|---|---|---|
| Candidate | candidate | The candidate. |
Returns
| Type | Description |
|---|---|
| Message |
DoCreateCloseMessage()
Creates a close message.
Declaration
protected abstract Message DoCreateCloseMessage()
Returns
| Type | Description |
|---|---|
| Message |
DoCreateUpdateMessage(ConnectionConfig)
Creates an update message.
Declaration
protected virtual Message DoCreateUpdateMessage(ConnectionConfig config)
Parameters
| Type | Name | Description |
|---|---|---|
| ConnectionConfig | config | The connection config. |
Returns
| Type | Description |
|---|---|
| Message |
DoCreateUseWebSocketServiceMessage()
Create the message to use WebSockets for media
Declaration
protected virtual Message DoCreateUseWebSocketServiceMessage()
Returns
| Type | Description |
|---|---|
| Message |
DoOpen()
Opens the connection.
Declaration
protected abstract void DoOpen()
DoProcessMessage(Message)
Processes a message.
Declaration
protected abstract void DoProcessMessage(Message message)
Parameters
| Type | Name | Description |
|---|---|---|
| Message | message | The message. |
GetStats()
Gets the current connection stats.
Declaration
public Future<ConnectionStats> GetStats()
Returns
| Type | Description |
|---|---|
| Future<ConnectionStats> |
IsMediaDirectionAllowed(String)
Gets a value indicating whether the given direction is allowed for this connection.
Declaration
protected abstract bool IsMediaDirectionAllowed(string direction)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | direction | The direction. |
Returns
| Type | Description |
|---|---|
| System.Boolean |
MetricMonitorOnStateChange(MetricMonitorStateChangeEventArgs)
Handles metric monitor state changes.
Declaration
protected virtual void MetricMonitorOnStateChange(MetricMonitorStateChangeEventArgs eventArgs)
Parameters
| Type | Name | Description |
|---|---|---|
| MetricMonitorStateChangeEventArgs | eventArgs | The event args for the metric monitor state change |
NoRttMonitoringStrategy(Int32)
The no rtt strategy.
Declaration
public void NoRttMonitoringStrategy(int rtt)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | rtt |
Open()
Opens the connection.
Declaration
public Future<object> Open()
Returns
| Type | Description |
|---|---|
| Future<System.Object> |
ProcessAnswer(Message)
Processes an answer.
Declaration
protected abstract void ProcessAnswer(Message message)
Parameters
| Type | Name | Description |
|---|---|---|
| Message | message | The message. |
ProcessError(Message)
Processes an error message.
Declaration
protected virtual void ProcessError(Message message)
Parameters
| Type | Name | Description |
|---|---|---|
| Message | message | The message. |
ProcessIceServers(Message)
Processes an iceServers message.
Declaration
protected virtual void ProcessIceServers(Message message)
Parameters
| Type | Name | Description |
|---|---|---|
| Message | message | The message. |
ProcessLocalError(Error)
Processes a local failure.
Declaration
protected void ProcessLocalError(Error error)
Parameters
| Type | Name | Description |
|---|---|---|
| Error | error | The error. |
ProcessMediaIntentResponse(Message)
Processes an iceServers message.
Declaration
protected virtual void ProcessMediaIntentResponse(Message message)
Parameters
| Type | Name | Description |
|---|---|---|
| Message | message | The message. |
ProcessRtcpDataChannelSignallingActivation(Message)
Processes inband signalling activation.
Declaration
protected virtual void ProcessRtcpDataChannelSignallingActivation(Message message)
Parameters
| Type | Name | Description |
|---|---|---|
| Message | message |
ProcessSimulcastNotification(Message)
Processes a simulcast notification
Declaration
protected void ProcessSimulcastNotification(Message message)
Parameters
| Type | Name | Description |
|---|---|---|
| Message | message | The simulcast notificaiton message. |
RaiseAudioBitrateNotification(AudioStream, BitrateNotification)
Raises an audio bitrate notification.
Declaration
protected virtual void RaiseAudioBitrateNotification(AudioStream audioStream, BitrateNotification bitrateNotification)
Parameters
| Type | Name | Description |
|---|---|---|
| AudioStream | audioStream | The audio stream. |
| BitrateNotification | bitrateNotification | The bitrate notification. |
RaiseAudioBitrateRequest(AudioStream, BitrateRequest)
Raises an audio bitrate request.
Declaration
protected virtual void RaiseAudioBitrateRequest(AudioStream audioStream, BitrateRequest bitrateRequest)
Parameters
| Type | Name | Description |
|---|---|---|
| AudioStream | audioStream | The audio stream. |
| BitrateRequest | bitrateRequest | The bitrate request. |
RaiseLocalCandidate(Candidate)
Raises a local candidate.
Declaration
protected void RaiseLocalCandidate(Candidate localCandidate)
Parameters
| Type | Name | Description |
|---|---|---|
| Candidate | localCandidate | The local candidate. |
RaiseNoMediaServersAvailable(NoMediaServersAvailableEventArgs)
Raises the OnNoMediaServersAvailable event.
Declaration
protected virtual void RaiseNoMediaServersAvailable(NoMediaServersAvailableEventArgs args)
Parameters
| Type | Name | Description |
|---|---|---|
| NoMediaServersAvailableEventArgs | args |
RaiseNoWebSocketMediaServersAvailable(NoWebSocketMediaServersAvailableEventArgs)
Raises the OnNoWebSocketMediaServersAvailable event.
Declaration
protected virtual void RaiseNoWebSocketMediaServersAvailable(NoWebSocketMediaServersAvailableEventArgs args)
Parameters
| Type | Name | Description |
|---|---|---|
| NoWebSocketMediaServersAvailableEventArgs | args |
RaiseRemoteCandidate(Candidate)
Raises a remote candidate.
Declaration
protected void RaiseRemoteCandidate(Candidate remoteCandidate)
Parameters
| Type | Name | Description |
|---|---|---|
| Candidate | remoteCandidate | The remote candidate. |
RaiseVideoBitrateNotification(VideoStream, BitrateNotification)
Raises a video bitrate notification.
Declaration
protected virtual void RaiseVideoBitrateNotification(VideoStream videoStream, BitrateNotification bitrateNotification)
Parameters
| Type | Name | Description |
|---|---|---|
| VideoStream | videoStream | The video stream. |
| BitrateNotification | bitrateNotification | The bitrate notification. |
RaiseVideoBitrateRequest(VideoStream, BitrateRequest)
Raises a video bitrate request.
Declaration
protected virtual void RaiseVideoBitrateRequest(VideoStream videoStream, BitrateRequest bitrateRequest)
Parameters
| Type | Name | Description |
|---|---|---|
| VideoStream | videoStream | The video stream. |
| BitrateRequest | bitrateRequest | The bitrate request. |
Send(Message)
Sends a message.
Declaration
protected virtual Future<Message> Send(Message message)
Parameters
| Type | Name | Description |
|---|---|---|
| Message | message | The message. |
Returns
| Type | Description |
|---|---|
| Future<Message> |
TrySendRtcpDataChannel(Message)
Sends bitrate messages.
Declaration
protected virtual bool TrySendRtcpDataChannel(Message message)
Parameters
| Type | Name | Description |
|---|---|---|
| Message | message | The message to send. |
Returns
| Type | Description |
|---|---|
| System.Boolean |
Update(ConnectionConfig)
Updates this connection.
Declaration
public Future<object> Update(ConnectionConfig config)
Parameters
| Type | Name | Description |
|---|---|---|
| ConnectionConfig | config | The connection configuration. |
Returns
| Type | Description |
|---|---|
| Future<System.Object> | A future that resolves when the connection has been updated. |
Events
OnAudioUnmuteDisabled
Raised when the ability to unmute audio is disabled.
Declaration
public event Action0 OnAudioUnmuteDisabled
Event Type
| Type | Description |
|---|---|
| Action0 |
OnAudioUnmuteEnabled
Raised when the ability to unmute audio is enabled.
Declaration
public event Action0 OnAudioUnmuteEnabled
Event Type
| Type | Description |
|---|---|
| Action0 |
OnAutomaticIceServers
Raised when automatic ICE servers have been received. Parameters:
- connection - the connection
- automaticIceServers - the automatic ICE severs collection
Declaration
public event Action2<ManagedConnection, IceServerCollection> OnAutomaticIceServers
Event Type
| Type | Description |
|---|---|
| Action2<ManagedConnection, IceServerCollection> |
OnGatheringStateChange
Raised when the ICE gathering state changes. Parameters:
- connection - the connection
Declaration
public event Action1<ManagedConnection> OnGatheringStateChange
Event Type
| Type | Description |
|---|---|
| Action1<ManagedConnection> |
OnIceConnectionStateChange
Raised when the ICE connection state changes. Parameters:
- connection - the connection
Declaration
public event Action1<ManagedConnection> OnIceConnectionStateChange
Event Type
| Type | Description |
|---|---|
| Action1<ManagedConnection> |
OnLocalCandidate
Raised when a local candidate is ready. Parameters:
- connection - the connection
- candidate - the local candidate
Declaration
public event Action2<ManagedConnection, Candidate> OnLocalCandidate
Event Type
| Type | Description |
|---|---|
| Action2<ManagedConnection, Candidate> |
OnLocalDescription
Raised when the local description is ready. Parameters:
- connection - the connection
- description - the local description
Declaration
public event Action2<ManagedConnection, SessionDescription> OnLocalDescription
Event Type
| Type | Description |
|---|---|
| Action2<ManagedConnection, SessionDescription> |
OnMediaQuality
Raised every StatsEventInterval milliseconds with the current estimated media quality.
The value ranges from 0.0 to 1.0, where 0.0 is the lowest quality and 1.0 is the highest quality.
Declaration
public event Action1<double> OnMediaQuality
Event Type
| Type | Description |
|---|---|
| Action1<System.Double> |
OnNetworkQuality
Raised every StatsEventInterval milliseconds with the current estimated network quality.
The value ranges from 0.0 to 1.0, where 0.0 is the lowest quality and 1.0 is the highest quality.
Declaration
public event Action1<double> OnNetworkQuality
Event Type
| Type | Description |
|---|---|
| Action1<System.Double> |
OnNoMediaServersAvailable
Raised when there are no Media Servers available.
Declaration
public event Action2<ManagedConnection, NoMediaServersAvailableEventArgs> OnNoMediaServersAvailable
Event Type
| Type | Description |
|---|---|
| Action2<ManagedConnection, NoMediaServersAvailableEventArgs> |
OnNoWebSocketMediaServersAvailable
Raised when there are no WebSocket Media Servers available.
Declaration
public event Action2<ManagedConnection, NoWebSocketMediaServersAvailableEventArgs> OnNoWebSocketMediaServersAvailable
Event Type
| Type | Description |
|---|---|
| Action2<ManagedConnection, NoWebSocketMediaServersAvailableEventArgs> |
OnRecordingDisabled
Raised when this connection is no longer being recorded.
Declaration
public event Action1<string> OnRecordingDisabled
Event Type
| Type | Description |
|---|---|
| Action1<System.String> |
OnRecordingEnabled
Raised when this connection is being recorded.
Declaration
public event Action1<string> OnRecordingEnabled
Event Type
| Type | Description |
|---|---|
| Action1<System.String> |
OnRemoteAudioEncodingSwitch
Raised when the remote audio encoding is switched by the server.
Declaration
public event Action2<EncodingInfo, EncodingInfo> OnRemoteAudioEncodingSwitch
Event Type
| Type | Description |
|---|---|
| Action2<EncodingInfo, EncodingInfo> |
OnRemoteCandidate
Raised when a remote candidate is ready. Parameters:
- connection - the connection
- candidate - the remote candidate
Declaration
public event Action2<ManagedConnection, Candidate> OnRemoteCandidate
Event Type
| Type | Description |
|---|---|
| Action2<ManagedConnection, Candidate> |
OnRemoteDescription
Raised when the remote description is ready. Parameters:
- connection - the connection
- description - the remote description
Declaration
public event Action2<ManagedConnection, SessionDescription> OnRemoteDescription
Event Type
| Type | Description |
|---|---|
| Action2<ManagedConnection, SessionDescription> |
OnRemoteUpdate
Raised when a remote connection has been updated.
Declaration
public event Action2<ConnectionInfo, ConnectionInfo> OnRemoteUpdate
Event Type
| Type | Description |
|---|---|
| Action2<ConnectionInfo, ConnectionInfo> |
OnRemoteVideoEncodingSwitch
Raised when the remote video encoding is switched by the server.
Declaration
public event Action2<EncodingInfo, EncodingInfo> OnRemoteVideoEncodingSwitch
Event Type
| Type | Description |
|---|---|
| Action2<EncodingInfo, EncodingInfo> |
OnSignallingStateChange
Raised when the signalling state changes. Parameters:
- connection - the connection
Declaration
public event Action1<ManagedConnection> OnSignallingStateChange
Event Type
| Type | Description |
|---|---|
| Action1<ManagedConnection> |
OnStateChange
Raised when the connection state changes. Parameters:
- connection - the connection
Declaration
public event Action1<ManagedConnection> OnStateChange
Event Type
| Type | Description |
|---|---|
| Action1<ManagedConnection> |
OnStats
Raised every StatsEventInterval milliseconds with the current connection stats.
Declaration
public event Action1<ConnectionStats> OnStats
Event Type
| Type | Description |
|---|---|
| Action1<ConnectionStats> |
OnVideoEnabledChange
Raised when a connection has it's video state changed from disabled or enabled. Due to connection constrainsts. Parameters:
- connection - the connection
- videoEnabled - the value indicating true if the video has been enabled or false for disabled.
Declaration
public event Action2<ManagedConnection, bool> OnVideoEnabledChange
Event Type
| Type | Description |
|---|---|
| Action2<ManagedConnection, System.Boolean> |
OnVideoUnmuteDisabled
Raised when the ability to unmute video is disabled.
Declaration
public event Action0 OnVideoUnmuteDisabled
Event Type
| Type | Description |
|---|---|
| Action0 |
OnVideoUnmuteEnabled
Raised when the ability to unmute video is enabled.
Declaration
public event Action0 OnVideoUnmuteEnabled
Event Type
| Type | Description |
|---|---|
| Action0 |