Пример #1
0
        public void SipHeaderCollection_Basic()
        {
            SipHeaderCollection headers;
            int    p1, p2;
            string s;

            headers = new SipHeaderCollection();
            headers.Add(SipHeader.Via, "SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bK-0000");
            headers.Add(SipHeader.Via, "SIP/2.0/UDP www.lilltek.com;branch=z9hG4bK-1234");
            headers.Add(SipHeader.MaxForwards, SipHelper.MaxForwards);
            headers.Add(SipHeader.To, "Bob <sip:[email protected]>");
            headers.Add(SipHeader.ContentLength, "142");

            Assert.AreEqual("SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bK-0000, SIP/2.0/UDP www.lilltek.com;branch=z9hG4bK-1234",
                            headers[SipHeader.Via].FullText);

            s = headers.ToString();
            Assert.IsTrue(s.EndsWith("\r\n\r\n"));

            // Verify the priority rendering order.

            p1 = s.IndexOf("Via:");
            p2 = s.IndexOf(SipHeader.MaxForwards);
            Assert.IsTrue(p1 < p2);

            p1 = s.IndexOf("Max-Forwards:");
            p2 = s.IndexOf(SipHeader.To);
            Assert.IsTrue(p1 < p2);

            Assert.AreEqual(SipHelper.MaxForwards, headers[SipHeader.MaxForwards].Text);
            Assert.IsNull(headers["XXX"]);
        }
Пример #2
0
        private string Serialize(SipHeaderCollection headers)
        {
            StringBuilder sb = new StringBuilder();

            headers.Serialize(sb);
            return(sb.ToString());
        }
Пример #3
0
        public void SipHeaderCollection_Prepend()
        {
            SipHeaderCollection headers;

            headers = new SipHeaderCollection();
            headers.Prepend("Test", "1");
            Assert.AreEqual("Test: 1\r\n\r\n", headers.ToString());

            headers.Prepend("Test", "2");
            Assert.AreEqual("Test: 2, 1\r\n\r\n", headers.ToString());
        }
Пример #4
0
        public void SipHeaderCollection_CompactNames()
        {
            SipHeaderCollection headers;

            headers = new SipHeaderCollection();
            headers.Add(SipHeader.CallID, "10");
            Assert.IsFalse(headers.HasCompactHeaders);
            Assert.AreEqual("Call-ID: 10\r\n\r\n", Serialize(headers));

            headers = new SipHeaderCollection();
            headers.Add("i", "10");
            Assert.IsTrue(headers.HasCompactHeaders);
            Assert.AreEqual("i: 10\r\n\r\n", Serialize(headers));
            Assert.AreEqual("10", headers["i"].Text);
            Assert.AreEqual("10", headers[SipHeader.CallID].Text);

            headers = new SipHeaderCollection();
            headers[SipHeader.CallID] = new SipHeader(SipHeader.CallID, "10");
            Assert.IsFalse(headers.HasCompactHeaders);
            Assert.AreEqual("Call-ID: 10\r\n\r\n", Serialize(headers));

            headers      = new SipHeaderCollection();
            headers["i"] = new SipHeader("i", "10");
            Assert.IsTrue(headers.HasCompactHeaders);
            Assert.AreEqual("i: 10\r\n\r\n", Serialize(headers));
            Assert.AreEqual("10", headers["i"].Text);
            Assert.AreEqual("10", headers[SipHeader.CallID].Text);

            headers = new SipHeaderCollection();
            headers.Add(SipHeader.CallID, new SipHeader(SipHeader.CallID, "10"));
            Assert.IsFalse(headers.HasCompactHeaders);
            Assert.AreEqual("Call-ID: 10\r\n\r\n", Serialize(headers));

            headers = new SipHeaderCollection();
            headers.Add("i", new SipHeader("i", "10"));
            Assert.IsTrue(headers.HasCompactHeaders);
            Assert.AreEqual("i: 10\r\n\r\n", Serialize(headers));
            Assert.AreEqual("10", headers["i"].Text);
            Assert.AreEqual("10", headers[SipHeader.CallID].Text);
        }