RealTimeServerTcpConnectionManager Class

Definition

Provides advanced connection management for using endpoints. This class provides the same functionality as RealTimeConnectionManager and adds the ability to listen for incoming TCP connections.

public ref class RealTimeServerTcpConnectionManager : Microsoft::Rtc::Signaling::RealTimeServerConnectionManager
public class RealTimeServerTcpConnectionManager : Microsoft.Rtc.Signaling.RealTimeServerConnectionManager
type RealTimeServerTcpConnectionManager = class
    inherit RealTimeServerConnectionManager
Public Class RealTimeServerTcpConnectionManager
Inherits RealTimeServerConnectionManager
Inheritance

Constructors

RealTimeServerTcpConnectionManager()

Initializes this instance with default localhost name.

RealTimeServerTcpConnectionManager(String)

Initializes this instance with given localhost.

Properties

ConnectionThrottlingHighMark

Gets or sets the high water mark for all connections. When number of outstanding transactions on a connection exceeds the high water mark, the connection is throttled until it goes below the low water mark. When the connection is throttled, send/receive will fail. Responses, however, can be sent to bring the level down. Outstanding outgoing transactions that are pending will timeout. The connection buffer is not processed until the outstanding transactions count falls below the low water mark. This value cannot be set below the low water mark. By default, this value is int.MaxValue. If both water mark levels are set to int.MaxValue, the connection throttling is disabled.

(Inherited from RealTimeConnectionManager)
ConnectionThrottlingLowMark

Gets or sets the low water mark for all connections. When number of outstanding transactions on a connection exceeds the high water mark, the connection is throttled until it goes below the low water mark. When the connection is throttled, send/receive will fail. Responses, however, can be sent to bring the level down. Outstanding outgoing transactions that are pending will timeout. The connection buffer is not processed until the outstanding transactions count falls below the low water mark. This value cannot be set above the high water mark. By default, this value is int.MaxValue. If both water mark levels are set to int.MaxValue, the connection throttling is disabled.

(Inherited from RealTimeConnectionManager)
CurrentMessageThrottlingCount

Get the current count of incoming messages (Invite, page mode messages, in-dialog messages, etc) that are waiting in internal queues (thread pool queue or session queue) for reporting to the application.

(Inherited from RealTimeServerConnectionManager)
DefaultIncomingConnectionTimeout

Gets or sets the default time-out value for any incoming connections. Any incoming connection that is idle for the duration specified by this value will be disconnected. This value does not affect existing connections.

(Inherited from RealTimeServerConnectionManager)
DefaultMaximumNumberOfConnectionsPerPool

Gets or sets the pool size used for connection pools. This property can be used to globally control the pool size used for new connection pools.

(Inherited from RealTimeServerConnectionManager)
DefaultOutgoingConnectionTimeout

Gets or sets the default outgoing connection timeout value. If the connection is idle for the duration specified by this value, the connection will be disconnected. To disable, the value can be set to TimeSpan.Zero

(Inherited from RealTimeServerConnectionManager)
DnsLoadBalancingDisabled

Gets or sets whether DNS load balancing is disabled. By default, DNS load balancing is enabled.

(Inherited from RealTimeConnectionManager)
EndpointsCount

Gets the number of endpoints currently supported by this manager.

(Inherited from RealTimeConnectionManager)
IsListening

Gets the value indicating whether listening is enabled or not.

(Inherited from RealTimeServerConnectionManager)
ListeningPort

Gets the listening port.

(Inherited from RealTimeServerConnectionManager)
LocalCertificateIssuerName

Gets the issuer of the local certificate used. Can be null.

(Inherited from RealTimeConnectionManager)
LocalHostName

Gets the fully qualified local host name. This is either the local fully-qualified domain name (FQDN), if the certificate is not used, or the host in the certificate, or the value set by the application.

(Inherited from RealTimeConnectionManager)
MessageThrottlingHighMark

Gets or sets the value that controls the high water mark limit for outstanding incoming messages (Invite, page mode messages, in-dialog messages, etc) that are maintained in internal queue including thread pool queue and not seen by the application yet. If the current number of outstanding incoming messages is higher than this value, new incoming messages are automatically rejected until the value goes under the lower water mark. To reduce the value below the current lower water mark, the lower water mark value should be changed first. By default, this value is int.MaxValue. If both low and high water mark values are int.MaxValue, water mark checks are disabled.

(Inherited from RealTimeServerConnectionManager)
MessageThrottlingLowMark

Gets or sets the value that controls the low water mark limit for outstanding incoming messages (Invite, page mode messages, in-dialog messages, etc) that are maintained in internal queue including thread pool queue and not seen by the application yet. If the current number of outstanding incoming messages is lower than this value, new incoming messages are automatically processed again if they processing was stopped due to high water mark. By default, this value is int.MaxValue. If both low and high water mark values are int.MaxValue, water mark checks are disabled.

(Inherited from RealTimeServerConnectionManager)
OutboundConnectionDefaultAddressFamilyHint

Gets or sets the address families enabled for making outbound connnections.

(Inherited from RealTimeConnectionManager)
StrictDispatching

Gets or sets whether incoming messages are routed to the hosted endpoints by this connection manager. By default, this flag is false. This flag is used only when there is only one peer-to-peer endpoint hosted by the connection manager. Normally, incoming messages are routed to the endpoint only when the To header URI and epid (if any) match those of the endpoint. If this flag is set, the message is routed to the single peer-to-peer endpoint ignoring the To header values. In this case, it is the responsibility of the endpoint or application using the endpoint to handle the situation appropriately.

(Inherited from RealTimeConnectionManager)

Methods

BeginStartListening(Int32, AsyncCallback, Object)

Starts listening on default addresses on the specified port.

(Inherited from RealTimeServerConnectionManager)
BeginStartListening(Int32, IEnumerable<IPAddress>, StartListeningOptions, AsyncCallback, Object)

Starts listening on default addresses on the specified port.

(Inherited from RealTimeServerConnectionManager)
BeginStopListening(AsyncCallback, Object)

Starts an operation to stop listening on all addresses.

(Inherited from RealTimeServerConnectionManager)
CanLocalHostBeChangedNow()

Set the local host.

(Inherited from RealTimeServerConnectionManager)
CanShutdownCoreManagerNow()

Get the value to determine if the core manager can be shut down now.

(Inherited from RealTimeServerConnectionManager)
CleanUpConnections()

This method is called to clean up connections.

(Inherited from RealTimeServerConnectionManager)
CoreManagerIncomingTlsNegotiationFailed(IncomingTlsNegotiationFailedEventArgs)

This event callback is invoked when there is tls negotiation failure for incoming connection.

(Inherited from RealTimeServerConnectionManager)
DecrementThrottleCount()

Method to be called after the application is notified of the incoming message (Invite, Message etc) that was in internal queue. This will decrement the current outstanding count.

(Inherited from RealTimeServerConnectionManager)
DisableIpV6Support()

Disables IPV6 support in the network stack to be compatible with previous versions of the stack.

(Inherited from RealTimeServerConnectionManager)
Dispose()

Releases the resources used by the connection manager. The application can call this method to dispose the connection manager when it is no longer needed. Once the resources are released, the connection manager and the associated endpoints are not usable.

(Inherited from RealTimeConnectionManager)
Dispose(Boolean)

Dispose implementation

(Inherited from RealTimeServerConnectionManager)
EndStartListening(IAsyncResult)

Waits for the start listening operation to complete.

(Inherited from RealTimeServerConnectionManager)
EndStopListening(IAsyncResult)

Waits for the stop listening operation to complete.

(Inherited from RealTimeServerConnectionManager)
GetConnectionPools()

Gets the list of connection pools in this connection manager.

(Inherited from RealTimeConnectionManager)
GetDestinationTuple(SipTransportType, String, Int32, AddressFamilyHint, String)

Get the tuple needed to make the connection.

(Inherited from RealTimeConnectionManager)
GetIncomingConnections()

Gets the list of incoming connections.

(Inherited from RealTimeServerConnectionManager)
GetListeningAddresses()
Obsolete.

Gets the collection of listening addresses.

(Inherited from RealTimeServerConnectionManager)
GetLocalCertificateSerialNumber()

Gets the serial number of the local certificate used. Can be null.

(Inherited from RealTimeConnectionManager)
GetOutgoingConnectionCount()

Returns the total number of outgoing connections in the connection pools.

(Inherited from RealTimeServerConnectionManager)
IncomingConnectionConnected(SipConnection, String, X509Certificate2)

Handles incoming connection connected event. This class should not get this event since it is not listening but a subclass can.

(Inherited from RealTimeServerConnectionManager)
IncrementThrottleCount()

Method to be called when the application places an incoming message (Invite, Message etc) in an internal queue. This will increment the current outstanding count.

(Inherited from RealTimeServerConnectionManager)
IsThrottlingInEffect()

Method that determines if the incoming message should be throttled or not. If throttling is in effect, it should be rejected automatically. Otherwise, it can be processed in placed in some queue (thread pool or internal). Once the application is notified, DecrementThrottleCount should be called. If rejected due to throttling, DecrementThrottleCount can be called right away.

(Inherited from RealTimeServerConnectionManager)
ListenForIncomingConnections(IPEndPoint)

This method does the actual S4 listening.

SetDefaultTlsTuple()

Set the default TlsCredentials for the core manager. This might be used by S4 when it needs Tls tuple for outgoing connection and one was not provided to it directly.

(Inherited from RealTimeConnectionManager)
SetLocalCertificate(String, Byte[])

Sets the local certificate information. This is used for mutual TLS authentication when needed. If the mutual TLS is not used, there is no need to set these values. The certificate is retrieved from the certificate store on the local computer.

(Inherited from RealTimeConnectionManager)
StartListening(IPEndPoint)

Starts listening on the specified address and port.

(Inherited from RealTimeServerConnectionManager)
StopListening()

Stops listening for new connections.

(Inherited from RealTimeServerConnectionManager)
StopListeningForIncomingConnections()

This method does the actual S4 stop for listening.

Events

ConnectionAuthorizationRequested

Raised when an incoming or outgoing connection becomes connected.

(Inherited from RealTimeServerConnectionManager)
ConnectionPoolAdded

A connection pool was added.

(Inherited from RealTimeConnectionManager)
ConnectionPoolRemoved

A connection pool was removed.

(Inherited from RealTimeConnectionManager)
IncomingConnectionAdded

Raised when a new incoming connection is added.

(Inherited from RealTimeServerConnectionManager)
IncomingConnectionRemoved

Raised when a new incoming connection is removed.

(Inherited from RealTimeServerConnectionManager)
IncomingTlsNegotiationFailed

Raised when the TLS negotiation fails for an incoming connection. The failure may be due to an invalid local certificate, or remote not trusting the local certificate, or some other reason.

(Inherited from RealTimeServerConnectionManager)
ListeningAborted

Raised when the listening is aborted either due to application calling StopListening or when an internal failure occurs such as failure to accept an incoming connection. The exception in the event argument can be null if the application called StopListening.

(Inherited from RealTimeServerConnectionManager)
ListeningAddressesChanged

Raised when one or more items are added or removed from the list of listening addresses.

(Inherited from RealTimeServerConnectionManager)

Extension Methods

AddInDialogMessageReceivedEvent(RealTimeConnectionManager, EventHandler<InDialogMessageReceivedEventArgs>)
DisconnectIncomingConnections(RealTimeServerConnectionManager)
GetTraceFilterConfiguration(RealTimeConnectionManager)
RegisterConnectionConfigurationRequested(RealTimeConnectionManager, EventHandler<ConnectionConfigurationRequestedEventArgs>)
RemoveInDialogMessageReceivedEvent(RealTimeConnectionManager, EventHandler<InDialogMessageReceivedEventArgs>)
SetConnectionFailoverTimeout(RealTimeConnectionManager, Int32)
SetCustomSipConnection(RealTimeConnectionManager, RealTimeConnectionManagerExtensions+GetCustomSipConnectionDelegate)
SetDiagnosticsMode(RealTimeConnectionManager, ConnectionManagerDiagnosticsMode)
SetKeepAliveUASEnabled(RealTimeConnectionManager, Boolean)
SetLocalProxyRedirectionPolicy(RealTimeConnectionManager, Boolean)
SetOutboundDefaultLocalBinding(RealTimeConnectionManager, IPEndPoint)
SetPoolConfiguration(RealTimeConnectionManager, PoolConfiguration)
SetTerminateDialogOnNoMaxForwards(RealTimeConnectionManager, Boolean)
SetTraceFilterConfiguration(RealTimeConnectionManager, ITraceFilterConfiguration)
SetXmppMode(RealTimeConnectionManager, Boolean)
UnregisterConnectionConfigurationRequested(RealTimeConnectionManager, EventHandler<ConnectionConfigurationRequestedEventArgs>)

Applies to