CollaborationPlatformSettings and Subclasses

This content is no longer actively maintained. It is provided as is, for anyone who may still be using these technologies, with no warranties or claims of accuracy with regard to the most recent product version or service release.

The CollaborationPlatformSettings class is an abstract class from which the ServerPlatformSettings and ClientPlatformSettings classes inherit. The ServerPlatformSettings and ClientPlatformSettings classes are used to create, respectively, server CollaborationPlatform and client CollaborationPlatform instances.

CollaborationPlatformSettings Members

The following are the public members of CollaborationPlatformSettings class.

// Constructor
// Creates a new instance of the CollaborationPlatformSettings class.
public CollaborationPlatformSettings(
    string applicationUserAgent,
    SipTransportType transport);


// Properties
// Gets the portion of the user agent string that identifies the application. 
// This string makes up part of the UserAgent string on the LocalEndpoint.
public string ApplicationUserAgent {get;}

// Gets or sets a value that enables default audio and video platform capabilities. 
public bool EnableDefaultAudioVideoProvider {get; set;}

// Gets the transport type for connecting.
public SipTransportType Transport {get;}

ServerPlatformSettings Members

The following are the public members of ServerPlatformSettings class.

// Constructor
// Initializes the settings to be used for creating a server-model platform.
public ServerPlatformSettings(
    string applicationUserAgent,
    string localHost,
    int port,
    string gruu);

// Initializes the setting to be used for creating a server-model platform with a certificate.
// The certificate should be installed in the local computer’s certificate store.
public ServerPlatformSettings(
    string applicationUserAgent,
    string localHost,
    int port, 
    string gruu,
    X509Certificate2 certificate): base(applicationUserAgent, SipTransportType.Tls);

// Initializes the setting to be used for creating a server-model platform with a certificate.
// The certificate should be installed in the local computer’s certificate store.
public ServerPlatformSettings(
    string applicationUserAgent,
    string localHost,
    int port,
    string gruu,
    string certificateIssuerName,
    byte[] certificateSerialNumber): base(applicationUserAgent, SipTransportType.Tls);


// Properties
// Gets the local host for the settings.
public string LocalHost {get;}

// Gets the issuer’s name of the certificate to be used for TLS.
public string CertificateIssuerName {get;}

// Gets or sets the list of allowed domains.
// See the additional information on this property following this list.
public IEnumerable<string> AllowedDomains {get; set:}

// Gets or sets the IP address on which to listen
public IPAddress ListeningIPAddress {get; set;}

// Gets the primary listening port
public int ListeningPort {get;}

// Gets the GRUU that corresponds to the primary listening port.(Can be null.)
// This GRUU is used for privileged operations or when the
// endpoint does not have a GRUU.
public string Gruu {get;}


// Methods
// Gets the certificate serial number.
public byte[] GetCertificateSerialNumber();

The list of domains in the AllowedDomains property represents the computers that are allowed to make incoming connections when Mutual Transport Layer Security (MTLS) is used. If the AllowedDomains property is not set, incoming connections are not allowed from any computers except from those destinations to which an outgoing connection already has been made. AllowedDomains can be set even while listening and will affect future incoming connections.

The subject or alternate subjects in the certificate are matched against the list of allowed domains. Only computers that have a matching entry in this list are allowed to make incoming connections. The domain check is based on suffix match. For this reason, a period (“.”) must precede the domain name. For example, ".microsoft.com" must be used, rather than "microsoft.com". If there is no leading period, the name is assumed to be a fully qualified domain name (FQDN) and a complete match is performed.

ClientPlatformSettings Members

The following are the public members of ClientPlatformSettings class.

// Constructor
// Creates a new instance of the ClientPlatformSettings class.
public ClientPlatformSettings(
    string applicationUserAgent,
    SipTransportType transport): base(applicationUserAgent, transport);