public override HttpMessageWriter ProcessPutItem(ByteArrayPart username, ByteArrayPart domain, HttpMessageReader reader, ArraySegment<byte> content)
		{
			var statusCode = StatusCodes.OK;

			int sipIfMatch = simpleModule.InvalidEtag;
			if (reader.Count.IfMatches > 0)
			{
				if (HexEncoding.TryParseHex8(reader.IfMatches[0].Bytes, reader.IfMatches[0].Begin, out sipIfMatch) == false)
					statusCode = StatusCodes.PreconditionFailed;
			}

			if (statusCode == StatusCodes.OK)
			{
				if (simpleModule.Publish(username.ToString() + "@" + domain.ToString(), ref sipIfMatch, 60, content) == false)
					statusCode = StatusCodes.BadRequest;
			}

			HttpMessageWriter response;
			if (statusCode != StatusCodes.OK)
			{
				response = CreateResponse(statusCode);
			}
			else
			{
				response = CreateNotFinishedResponse(statusCode, ContentType.None);

				response.WriteEtag(sipIfMatch);
				response.WriteCRLF();
			}

			return response;
		}
Example #2
0
        public void It_should_trim_sws_at_begin()
        {
            var part1 = new ByteArrayPart("\r\n X");

            part1.TrimStartSws();

            var part2 = new ByteArrayPart(" \r\n X");

            part2.TrimStartSws();

            var part3 = new ByteArrayPart("  \r\n      X");

            part3.TrimStartSws();

            var part4 = new ByteArrayPart("  \r\n ");

            part4.TrimStartSws();

            var part5 = new ByteArrayPart("  \r\n      ");

            part5.TrimStartSws();

            var part6 = new ByteArrayPart("  X");

            part6.TrimStartSws();

            Assert.AreEqual("X", part1.ToString());
            Assert.AreEqual("X", part2.ToString());
            Assert.AreEqual("X", part3.ToString());
            Assert.AreEqual("", part4.ToString());
            Assert.AreEqual("", part5.ToString());
            Assert.AreEqual("X", part6.ToString());
        }
Example #3
0
		public void It_should_trim_sws_at_end()
		{
			var part1 = new ByteArrayPart("X\r\n ");
			part1.TrimEndSws();

			var part2 = new ByteArrayPart("X \r\n ");
			part2.TrimEndSws();

			var part3 = new ByteArrayPart("X  \r\n      ");
			part3.TrimEndSws();

			var part4 = new ByteArrayPart("  \r\n ");
			part4.TrimEndSws();

			var part5 = new ByteArrayPart("  \r\n      ");
			part5.TrimEndSws();

			var part6 = new ByteArrayPart("X  ");
			part6.TrimEndSws();

			var part7 = new ByteArrayPart("");
			part7.TrimEndSws();

			Assert.AreEqual("X", part1.ToString());
			Assert.AreEqual("X", part2.ToString());
			Assert.AreEqual("X", part3.ToString());
			Assert.AreEqual("", part4.ToString());
			Assert.AreEqual("", part5.ToString());
			Assert.AreEqual("X", part6.ToString());
			Assert.AreEqual("", part7.ToString());
		}
Example #4
0
        /// <summary>
        /// Обработчик события evRegisteredAORContact от Location Service.
        /// </summary>
        private void LocationService_ContactAdded(ByteArrayPart aor1, LocationService.Binding contact, SipMessageReader request)
        {
            var  aor = aor1.ToString();
            bool ep  = false;

            for (var i = 0; i < request.Count.SupportedCount; i++)
            {
                if (request.Supported[i].Option.ToString() == @"msrtc-event-categories")
                {
                    ep = true;
                    break;
                }
            }

            enhancedPresence.EndpointRegistered(aor, contact.SipInstance.Length != 0 ? contact.SipInstance.ToString() : contact.AddrSpec.ToString(), ep);
        }
        public override HttpMessageWriter ProcessGetItem(ByteArrayPart username, ByteArrayPart domain)
        {
            var document = simpleModule.GetDocument(username.ToString() + "@" + domain.ToString());

            if (document == null)
            {
                return(base.CreateResponse(StatusCodes.NotFound));
            }
            else
            {
                var response = base.CreateNotFinishedResponse(StatusCodes.OK, ContentType.ApplicationPidfXml);

                document.WriteLenghtAndContent(response);

                return(response);
            }
        }
		public override HttpMessageWriter ProcessGetItem(ByteArrayPart username, ByteArrayPart domain)
		{
			var document = simpleModule.GetDocument(username.ToString() + "@" + domain.ToString());

			if (document == null)
			{
				return base.CreateResponse(StatusCodes.NotFound);
			}
			else
			{
				var response = base.CreateNotFinishedResponse(StatusCodes.OK, ContentType.ApplicationPidfXml);

				document.WriteLenghtAndContent(response);

				return response;
			}
		}
        private string GetPassword(int accountId, ByteArrayPart username)
        {
            var username2 = username.ToString();

            for (int i = 0; i < userz.Count; i++)
            {
                if (userz[i].HasPasswords)
                {
                    var user = userz[i].GetByName(accountId, username2);

                    if (user != null)
                    {
                        return(user.Password);
                    }
                }
            }

            return(null);
        }
        public override HttpMessageWriter ProcessPutItem(ByteArrayPart username, ByteArrayPart domain, HttpMessageReader reader, ArraySegment <byte> content)
        {
            var statusCode = StatusCodes.OK;

            int sipIfMatch = simpleModule.InvalidEtag;

            if (reader.Count.IfMatches > 0)
            {
                if (HexEncoding.TryParseHex8(reader.IfMatches[0].Bytes, reader.IfMatches[0].Begin, out sipIfMatch) == false)
                {
                    statusCode = StatusCodes.PreconditionFailed;
                }
            }

            if (statusCode == StatusCodes.OK)
            {
                if (simpleModule.Publish(username.ToString() + "@" + domain.ToString(), ref sipIfMatch, 60, content) == false)
                {
                    statusCode = StatusCodes.BadRequest;
                }
            }

            HttpMessageWriter response;

            if (statusCode != StatusCodes.OK)
            {
                response = CreateResponse(statusCode);
            }
            else
            {
                response = CreateNotFinishedResponse(statusCode, ContentType.None);

                response.WriteEtag(sipIfMatch);
                response.WriteCRLF();
            }

            return(response);
        }
Example #9
0
 public IEnumerable <LocationService.Binding> GetEnumerableBindings(ByteArrayPart aor)
 {
     return(GetEnumerableBindingsEv(aor.ToString()));
 }
Example #10
0
        //public IEnumerable<LocationService.Binding> GetEnumerableBindings(SipMessageReader reader)
        //{
        //    return GetEnumerableBindings(reader.To.AddrSpec.Value);
        //}

        public IEnumerable <LocationService.Binding> GetEnumerableBindings(ByteArrayPart user, ByteArrayPart domain)
        {
            return(GetEnumerableBindingsEv("sip:" + user.ToString() + "@" + domain.ToString()));
        }
Example #11
0
		//public IEnumerable<LocationService.Binding> GetEnumerableBindings(SipMessageReader reader)
		//{
		//    return GetEnumerableBindings(reader.To.AddrSpec.Value);
		//}

		public IEnumerable<LocationService.Binding> GetEnumerableBindings(ByteArrayPart user, ByteArrayPart domain)
		{
			return GetEnumerableBindingsEv("sip:" + user.ToString() + "@" + domain.ToString());
		}
Example #12
0
		private void LocationService_AorRemoved(ByteArrayPart aor)
		{
			enhancedPresence.UserUnregistered(aor.ToString());
		}
		private string GetPassword(int accountId, ByteArrayPart username)
		{
			var username2 = username.ToString();

			for (int i = 0; i < userz.Count; i++)
			{
				if (userz[i].HasPasswords)
				{
					var user = userz[i].GetByName(accountId, username2);

					if (user != null)
						return user.Password;
				}
			}

			return null;
		}
Example #14
0
 private void LocationService_ContactRemoved(ByteArrayPart aor1, LocationService.Binding binding)
 {
     enhancedPresence.EndpointUnregistered(aor1.ToString(),
                                           binding.SipInstance.IsValid ? binding.SipInstance.ToString() : binding.AddrSpec.ToString());
 }
Example #15
0
 private void LocationService_AorRemoved(ByteArrayPart aor)
 {
     enhancedPresence.UserUnregistered(aor.ToString());
 }
Example #16
0
		public IEnumerable<LocationService.Binding> GetEnumerableBindings(ByteArrayPart aor)
		{
			return GetEnumerableBindingsEv(aor.ToString());
		}
Example #17
0
		public IAccount GetAccount(ByteArrayPart domain)
		{
			return domain.IsInvalid ? null : accounts2.GetValue(domain.ToString());
		}
Example #18
0
		private void LocationService_ContactRemoved(ByteArrayPart aor1, LocationService.Binding binding)
		{
			enhancedPresence.EndpointUnregistered(aor1.ToString(),
				binding.SipInstance.IsValid ? binding.SipInstance.ToString() : binding.AddrSpec.ToString());
		}
Example #19
0
		public bool HasDomain(ByteArrayPart domain)
		{
			return domain.IsValid && accounts2.ContainsKey(domain.ToString());
		}
Example #20
0
 public bool HasDomain(ByteArrayPart domain)
 {
     return(domain.IsValid && accounts2.ContainsKey(domain.ToString()));
 }
Example #21
0
		/// <summary>
		/// Обработчик события evRegisteredAORContact от Location Service.
		/// </summary>
		private void LocationService_ContactAdded(ByteArrayPart aor1, LocationService.Binding contact, SipMessageReader request)
		{
			var aor = aor1.ToString();
			bool ep = false;

			for (var i = 0; i < request.Count.SupportedCount; i++)
			{
				if (request.Supported[i].Option.ToString() == @"msrtc-event-categories")
				{
					ep = true;
					break;
				}
			}

			enhancedPresence.EndpointRegistered(aor, contact.SipInstance.Length != 0 ? contact.SipInstance.ToString() : contact.AddrSpec.ToString(), ep);
		}
Example #22
0
			public bool HasDomain(ByteArrayPart domain)
			{
				return domain.ToString() == "officesip.local";
			}
Example #23
0
 public bool HasDomain(ByteArrayPart domain)
 {
     return(domain.ToString() == "officesip.local");
 }
Example #24
0
 public IAccount GetAccount(ByteArrayPart domain)
 {
     return(domain.IsInvalid ? null : accounts2.GetValue(domain.ToString()));
 }