public void OnIncomingRequest(AcceptedRequest router, IncomingMessageEx message)
        {
            bool repeat;
            var  mode = router.AuthorizationMode;

            do
            {
                repeat = mode == AuthorizationMode.Custom;

                switch (mode)
                {
                case AuthorizationMode.Custom:
                {
                    mode = OnCustomAuthorization(message);
                }
                break;

                case AuthorizationMode.Disabled:
                {
                    router.OnIncomingRequest(message);
                }
                break;

                case AuthorizationMode.Enabled:
                {
                    SipMessageWriter writer;
                    if (Authentication.IsAuthorized(message.Reader, message.Content, out writer))
                    {
                        router.OnIncomingRequest(message);
                    }
                    else if (writer != null)
                    {
                        SendResponse(message, writer);
                    }
                }
                break;
                }
            }while (repeat);
        }
		public void OnIncomingRequest(AcceptedRequest router, IncomingMessageEx message)
		{
			bool repeat;
			var mode = router.AuthorizationMode;

			do
			{
				repeat = mode == AuthorizationMode.Custom;

				switch (mode)
				{
					case AuthorizationMode.Custom:
						{
							mode = OnCustomAuthorization(message);
						}
						break;

					case AuthorizationMode.Disabled:
						{
							router.OnIncomingRequest(message);
						}
						break;

					case AuthorizationMode.Enabled:
						{
							SipMessageWriter writer;
							if (Authentication.IsAuthorized(message.Reader, message.Content, out writer))
								router.OnIncomingRequest(message);
							else if (writer != null)
								SendResponse(message, writer);
						}
						break;
				}
			}
			while (repeat);
		}