SipEndpoint Class

Definition

Represents a registration server based endpoint. All messages are routed to this server. The endpoint caches the connection created to communicate with the server.

public ref class SipEndpoint : Microsoft::Rtc::Signaling::RealTimeEndpoint
public class SipEndpoint : Microsoft.Rtc.Signaling.RealTimeEndpoint
type SipEndpoint = class
    inherit RealTimeEndpoint
Public Class SipEndpoint
Inherits RealTimeEndpoint
Inheritance
SipEndpoint

Constructors

SipEndpoint(String, RealTimeConnectionManager, SipEndpointSettings)

Initializes a new instance of the SipEndpoint class.

SipEndpoint(String, SipAuthenticationProtocols, SipTransportType, String)

Creates a new instance of SipEndpoint. This endpoint is server-based. By default, the platform will use port 5060 for TCP and 5061 for TLS. To use a port other than these, the caller should set the port property before trying to register.

SipEndpoint(String, SipAuthenticationProtocols, SipTransportType, String, Int32, Boolean, RealTimeConnectionManager, String)

Creates a new instance of SipEndpoint. This endpoint is server-based.

SipEndpoint(String, SipAuthenticationProtocols, SipTransportType, String, Int32, Boolean, RealTimeConnectionManager, String, IEnumerable<SignalingHeader>)

Creates a new instance of SipEndpoint. This endpoint is server-based.

Fields

DefaultRtcRealm

The default realm used when communicating with the server. This realm is used when adding a NetworkCredential to the CredentialCache.

Properties

AllowedAuthenticationProtocols

Gets the allowed set of authentication protocols to be used for this endpoint.

AllowNoAuthentication

Gets the flag that indicates whether the client allows communicating with a server that does not challenge messages from this client.

ApplicationContext

Gets or sets the application context.

(Inherited from RealTimeEndpoint)
ApplicationUserAgent

Gets or sets the application user agent string. This is appended to the user agent header.

(Inherited from RealTimeEndpoint)
AuthenticationProtocol

Gets the authentication protocol currently in use with the server.

ConnectionManager

Gets or sets the connection manager.

(Inherited from RealTimeEndpoint)
CredentialCache

Gets a credential cache that can be used by the application to supply credentials needed to authenticate the application with servers.

DefaultDomain

Gets the default domain of the endpoint URI.

(Inherited from RealTimeEndpoint)
DesiredSessionTimerInterval

Gets or sets the desired session timer interval of the application. This is used only for the initial Invite or Response.

(Inherited from RealTimeEndpoint)
DisableAutomaticRetryForRetryAfter

Gets or sets whether the endpoint should retry requests for failed responses that contain retry-after header. By default, this is false and hence the platform will retry once more for such requests. If the applications wants to disable this automatic retry behavior, this property can be set to true. Typically, this might be needed for an application whose primary task is to perform back to back operation for two sessions where automatic retry might interfere with the ability to offer quick feedback via the back to back session so that the remote can take corrective measures.

(Inherited from RealTimeEndpoint)
DisableRegisterRefreshForConnectionDrop

Gets or sets the value that controls whether automatic register refresh should be allowed due to connection drop. When the current connection is disconnected for some reason and the endpoint uses either client connection manager or a server connection manager that does not listen, a register refresh attempt is made. By default, this property is set to false (Register Refresh occurs when connection drops). If disabled, connection drop would set the registration state to Unregistered. This flag is ignored when the server connection manager is used and the manager is listening for incoming connections as there is no automatic register refresh attempted.

DisplayName

Gets or sets the user name preferred by the application for the local user. This name will be used as the display name of the user in outgoing messages. This property indicates the display name to use in outgoing messages.

(Inherited from RealTimeEndpoint)
EndpointUri

Gets the URI of the endpoint.

(Inherited from RealTimeEndpoint)
Gruu

Gets the GRUU of the endpoint, if any. Can be null.

(Inherited from RealTimeEndpoint)
Id

Gets the ID for this endpoint. The same URI may be used on different endpoints. The ID is unique across all endpoints having the same URI.

(Inherited from RealTimeEndpoint)
IsEndpointThrottled

Gets or sets the Boolean value indicating if the endpoint should be throttled or not.

IsSessionTimerSupported

Gets or sets the default policy used for the session timer. This value is inherited by incoming/outgoing sessions unless an incoming session requires it. The application can override the policy per session.

(Inherited from RealTimeEndpoint)
MaximumRegisterRedirectionAttempts

Gets or sets the value that controls the number of redirect attempts allowed for registration. The default value is 3. The allowed range is from 0 to 5. The value of 0 disables automatic redirection.

MaximumSessionConnectDuration

Gets or sets the maximum duration in minutes to wait for final response.

(Inherited from RealTimeEndpoint)
MinimumSessionTimerInterval

Gets or sets the minimum session interval. Any session-expires interval less than this value in messages will not be accepted.

(Inherited from RealTimeEndpoint)
OutboundConnectionDefaultAddressFamilyHint

Gets the address family default for making outbound connnections.

(Inherited from RealTimeEndpoint)
OwnerUri

Gets the URI of the owner of the endpoint.

(Inherited from RealTimeEndpoint)
RegisterMethods

Gets or sets the methods supported by this endpoint to be specified in the Register message. By default, this is set to support subscription and signaling sessions. The application should normally set this property before calling the Register method. If this is set after the Register method is completed, it will take effect when a Register refresh occurs.

RegistrationState

Gets the Registration state of endpoint.

ReliableProvisionalResponsePolicy

Gets or sets the default policy for supporting 100rel extension feature. If an application supports this then the remote can ask for this when sending provisional responses which will result in PRACK message geting sent to acknowledge the response. An application should set this to set the policy globally for all sessions created. For outgoing session, ExtensionFeatureSupport.Required is not recommended since it is not meaningful and it likely to be rejected by the remote side with 420 (BadExtension) response.

(Inherited from RealTimeEndpoint)
RouteSetRecoveryMode

Gets the mode used for recovery of the session's route set.

(Inherited from RealTimeEndpoint)
Server

Gets the server currently used by the endpoint.

ServerPort

Gets the port used to connect to the server. This is the port currently used to connect to the server or the port configured by the application if there is no active connection to the server. If the server is unknown, then 0 is returned.

SipInstance

Gets the sipInstance parameter value used in the contact header for Register (used by the server to generate the GRUU).

TransportType

Gets the transport type used for connecting to the server. This is the same as what is specified by the application or the transport used for connecting to an autodiscovered server. In case of autoconfiguration, this property will change only after a successful connection to the server.

Uri

Gets the URI of the identity owning this endpoint.

(Inherited from RealTimeEndpoint)
UserAgent

Gets the user agent string used for messages. This includes the platform's header followed by the header supplied by the application, if any.

(Inherited from RealTimeEndpoint)
Uuid

Gets the universally unique identifier.

Methods

AddFeatureParameter(String)

Adds a feature parameter. See rfc 3840.

(Inherited from RealTimeEndpoint)
AddFeatureParameter(String, String)

Adds a feature parameter. See rfc 3840.

(Inherited from RealTimeEndpoint)
AddSipExtension(String)

Adds an extension to the list of supported extensions for Invite. If an incoming Invite message has a required header that does not exist in this list, it will be automatically rejected with 420. Once an item is added to this list, it cannot be removed. This list does not affect outgoing Invites for which the application is responsible for adding any necessary headers such as "Supported" or "Require" headers for specific SIP extensions.

(Inherited from RealTimeEndpoint)
ApplyRouteSetRecoverySettings(RouteSetRecoverySettings)

Applies the specified route set recovery settings to the endpoint.

(Inherited from RealTimeEndpoint)
BeginRegister(AsyncCallback, Object)

Starts an asynchronous Register operation for the current endpoint.

BeginRegister(IEnumerable<SignalingHeader>, AsyncCallback, Object)

Starts an asynchronous Register operation for the current endpoint.

BeginSendMessage(MessageType, RealTimeAddress, ContentType, Byte[], AsyncCallback, Object)

Sends a message to another endpoint.

(Inherited from RealTimeEndpoint)
BeginSendMessage(MessageType, RealTimeAddress, ContentType, Byte[], IEnumerable<SignalingHeader>, AsyncCallback, Object)

Sends a message.

(Inherited from RealTimeEndpoint)
BeginSendMessage(MessageType, RealTimeAddress, SendMessageOptions, AsyncCallback, Object)

Sends a message.

(Inherited from RealTimeEndpoint)
BeginTerminate(AsyncCallback, Object)

Terminates the endpoint and cleans up active sessions and resources. The endpoint is no longer usable.

(Inherited from RealTimeEndpoint)
BeginUnregister(AsyncCallback, Object)

Starts an asynchronous process to unregister the current endpoint. This method always succeeds.

EndRegister(IAsyncResult)

Completes the asynchronous Register operation.

EndSendMessage(IAsyncResult)

Waits for the pending SendMessage operation to complete.

(Inherited from RealTimeEndpoint)
EndTerminate(IAsyncResult)

Completes the asynchronous Terminate operation.

(Inherited from RealTimeEndpoint)
EndUnregister(IAsyncResult)

Finishes the asynchronous Unregister operation.

GetFeatureParameterValue(String)

Gets the value of the given parameter.

(Inherited from RealTimeEndpoint)
GetSupportedSipExtensions()

Gets the list of extensions supported by this endpoint. By default, this list is populated with extensions understood by the platform. The application can add other extensions it can support. Incoming Invite messages will be automatically rejected with 420 response if it contains a Requires header with option-tag that is not present in this list.

(Inherited from RealTimeEndpoint)
GetTraceCorrelationID()

Gets the trace correlation id for this instance.

(Inherited from RealTimeEndpoint)
Register()

Synchronously registers the current endpoint. This method waits until the Register operation is completed. It is not recommended for a UI thread.

Register(IEnumerable<SignalingHeader>)

Synchronously registers the current endpoint. This method waits until the Register operation is completed. It is not recommended for a UI thread.

RegisterForPageModeMessages()

Register for page mode messages.

(Inherited from RealTimeEndpoint)
RemoveFeatureParameter(String)

Removes a feature parameter matching the name if it exists.

(Inherited from RealTimeEndpoint)
SendMessage(MessageType, RealTimeAddress, ContentType, Byte[])

Synchronously sends a message. The endpoint should be in the Connected state. This method is not recommended for a UI thread.

(Inherited from RealTimeEndpoint)
SendMessage(MessageType, RealTimeAddress, ContentType, Byte[], IEnumerable<SignalingHeader>)

Synchronously sends a message. The session should be in connected state. This method is not recommended for a UI thread.

(Inherited from RealTimeEndpoint)
Terminate()

Terminates the endpoint and cleans up active sessions and resources. The endpoint is no longer usable.

(Inherited from RealTimeEndpoint)
ToString()

Returns the string representation of the object.

(Inherited from RealTimeEndpoint)
Unregister()

Synchronously unregisters the endpoint. It is not recommended for a UI thread.

UnregisterForPageModeMessages()

Unregister for pagemode messages

(Inherited from RealTimeEndpoint)

Events

AuthenticationProtocolChanged

Raised when the protocol used between the client and server changes.

MessageReceived

Raised when a message is received.

(Inherited from RealTimeEndpoint)
RegistrationStateChanged

Raised when the Registration state changes.

ServerChanged

Raised when the server is changed, as when the server is autodiscovered or when redirection occurs.

ServerPortChanged

Raises the server port is changed, as when the server is autodiscovered or when redirection occurs.

SessionReceived

Raised when a new invitation is received.

(Inherited from RealTimeEndpoint)

Extension Methods

AddRegisterResponseDefaultHeaders(RealTimeEndpoint, SipResponse)
BeginSendErrorReport(RealTimeEndpoint, SessionErrorReport, AsyncCallback, Object)
EndSendErrorReport(RealTimeEndpoint, IAsyncResult)
GetSessionErrorReportingSupport(RealTimeEndpoint)
RegisterForRegisterRequests(RealTimeEndpoint, TransactionCreatedEventHandler)
SetSessionErrorReportingSupport(RealTimeEndpoint, Boolean)
UnregisterForRegisterRequests(RealTimeEndpoint, TransactionCreatedEventHandler)
RegisterForUserRegistrationNotification(RealTimeEndpoint, EventHandler<UserRegistrationNotificationEventArgs>)
UnregisterForUserRegistrationNotification(RealTimeEndpoint, EventHandler<UserRegistrationNotificationEventArgs>)

Applies to