/// <summary> /// Converts SIP_Uri to valid SIP-URI string. /// </summary> /// <returns>Returns SIP-URI string.</returns> public override string ToString() { // Syntax: sip:/sips: username@host *[;parameter] [?header *[&header]] StringBuilder retVal = new StringBuilder(); if (IsSecure) { retVal.Append("sips:"); } else { retVal.Append("sip:"); } if (User != null) { retVal.Append(User + "@"); } retVal.Append(Host); if (Port > -1) { retVal.Append(":" + Port); } // Add URI parameters. foreach (SIP_Parameter parameter in m_pParameters) { /* * If value is token value is not quoted(quoted-string). * If value contains `tspecials', value should be represented as quoted-string. * If value is empty string, only parameter name is added. */ if (parameter.Value != null) { if (MIME_Reader.IsToken(parameter.Value)) { retVal.Append(";" + parameter.Name + "=" + parameter.Value); } else { retVal.Append(";" + parameter.Name + "=" + TextUtils.QuoteString(parameter.Value)); } } else { retVal.Append(";" + parameter.Name); } } if (Header != null) { retVal.Append("?" + Header); } return(retVal.ToString()); }
/// <summary> /// Gets if the specified value is "token". /// </summary> /// <param name="value">Value to check.</param> /// <returns>Returns true if specified valu is token, otherwise false.</returns> /// <exception cref="ArgumentNullException">Is raised when <b>value</b> is null reference.</exception> public static bool IsToken(string value) { if (value == null) { throw new ArgumentNullException("value"); } return(MIME_Reader.IsToken(value)); }