RealTimeServerTlsConnectionManager Class
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Provides advanced connection management for using endpoints. This class provides the same functionality as RealTimeConnectionManager and adds the ability to listen for incoming TLS connections.
public ref class RealTimeServerTlsConnectionManager : Microsoft::Rtc::Signaling::RealTimeServerConnectionManager
public class RealTimeServerTlsConnectionManager : Microsoft.Rtc.Signaling.RealTimeServerConnectionManager
type RealTimeServerTlsConnectionManager = class
inherit RealTimeServerConnectionManager
Public Class RealTimeServerTlsConnectionManager
Inherits RealTimeServerConnectionManager
- Inheritance
Constructors
RealTimeServerTlsConnectionManager(String, Byte[]) |
Initializes this instance with default localhost name and given certificate information. |
RealTimeServerTlsConnectionManager(String, String, Byte[]) |
Initializes this instance with given localhost and certificate information. |
Properties
AllowedDomains |
Gets the list of domains allowed to make incoming connections. |
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) |
EnhancedKeyUsage |
Gets a list of enhancedKeyUsage values that are required to be present in the remote's certificate. |
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) |
NeedMutualTls |
Gets or sets whether a mutual TLS connection is required for outgoing TLS connections. |
OutboundConnectionDefaultAddressFamilyHint |
Gets or sets the address families enabled for making outbound connnections. (Inherited from RealTimeConnectionManager) |
PoolFqdn |
Gets or sets the pool fqdn for this machine. |
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
AddToAllowedDomains(String) |
Adds a new entry into the list of allowed domains. |
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. |
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. |
RemoveFromAllowedDomains(String) |
Removes an existing entry from the allowed domains list. |
SetAllowedDomains(IEnumerable<String>) |
Sets the list of allowed domains. This represents the list of computers that are allowed to make incoming connections when mutual TLS is used. The subject or alternate subjects in the certificate are matched against this list. Only computers that have a matching entry in this list will be allowed to make incoming connections. This can be set even while listening and will affect future incoming connections. The domain check is done based on suffix match. So, it is important to use "." at the beginning for domains. For example, ".microsoft.com" rather than "microsoft.com". If there is no leading ., then it is assumed to be FQDN and a complete match will be performed. |
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. |
SetEnhancedKeyUsage(ICollection<String>) |
Sets the list of allowed keys in the certificate of the remote host. This can be set event while listening and will affect future incoming connections. |
SetLocalCertificate(String, Byte[]) |
Sets the local certificate information. This is used for mutual TLS authentication when needed. If 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. |
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) |