Click here to Skip to main content
15,891,375 members
Articles / Programming Languages / C#

SIP Stack with SIP Proxy - (VOIP)

Rate me:
Please Sign up or sign in to vote.
4.86/5 (45 votes)
11 Jun 2007CPOL2 min read 1.6M   28.1K   162  
C# implementation of SIP
using System;

namespace LumiSoft.Net.Dns.Client
{
	/// <summary>
	/// HINFO record.
	/// </summary>
	public class DNS_rr_HINFO : DNS_rr_base
	{
		private string m_CPU = "";
		private string m_OS  = "";

		/// <summary>
		/// Default constructor.
		/// </summary>
		/// <param name="cpu">Host CPU.</param>
		/// <param name="os">Host OS.</param>
		/// <param name="ttl">TTL value.</param>
		public DNS_rr_HINFO(string cpu,string os,int ttl) : base(QTYPE.HINFO,ttl)
		{
			m_CPU = cpu;
			m_OS  = os;
		}


        #region static method Parse

        /// <summary>
        /// Parses resource record from reply data.
        /// </summary>
        /// <param name="reply">DNS server reply data.</param>
        /// <param name="offset">Current offset in reply data.</param>
        /// <param name="rdLength">Resource record data length.</param>
        /// <param name="ttl">Time to live in seconds.</param>
        public static DNS_rr_HINFO Parse(byte[] reply,ref int offset,int rdLength,int ttl)
        {
            /* RFC 1035 3.3.2. HINFO RDATA format

			+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
			/                      CPU                      /
			+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
			/                       OS                      /
			+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
			
			CPU     A <character-string> which specifies the CPU type.

			OS      A <character-string> which specifies the operating
					system type.
					
					Standard values for CPU and OS can be found in [RFC-1010].

			*/

			// CPU
			string cpu = Dns_Client.ReadCharacterString(reply,ref offset);

			// OS
			string os = Dns_Client.ReadCharacterString(reply,ref offset);

			return new DNS_rr_HINFO(cpu,os,ttl);
        }

        #endregion


        #region Properties Implementation

        /// <summary>
		/// Gets host's CPU.
		/// </summary>
		public string CPU
		{
			get{ return m_CPU; }
		}

		/// <summary>
		/// Gets host's OS.
		/// </summary>
		public string OS
		{
			get{ return m_OS; }
		}
        
		#endregion
	}
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Estonia Estonia
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions