コード例 #1
0
        /// <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());
        }
コード例 #2
0
        /// <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));
        }