namespace linker.messenger.tunnel.stun.enums;

/// <summary>
/// This enum specifies STUN message type.
/// </summary>
/// <returns>
/// https://tools.ietf.org/html/rfc5389#section-6
/// </returns>
public enum StunMessageType : ushort
{
	/// <summary>
	/// STUN message is binding request.
	/// </summary>
	BindingRequest = Class.Request | Method.Binding,

	/// <summary>
	/// STUN message is binding request success response.
	/// </summary>
	BindingResponse = Class.SuccessResponse | Method.Binding,

	/// <summary>
	/// STUN message is binding request error response.
	/// </summary>
	BindingErrorResponse = Class.ErrorResponse | Method.Binding,

	/// <summary>
	/// STUN message is "shared secret" request.
	/// </summary>
	SharedSecretRequest = Class.Request | Method.SharedSecret,

	/// <summary>
	/// STUN message is "shared secret" request success response.
	/// </summary>
	SharedSecretResponse = Class.SuccessResponse | Method.SharedSecret,

	/// <summary>
	/// STUN message is "shared secret" request error response.
	/// </summary>
	SharedSecretErrorResponse = Class.ErrorResponse | Method.SharedSecret,
}
