Esempio n. 1
0
        private void OnFirstLine(string firstLine)
        {
            if (_logger.IsDebugEnabled)
                _logger.Debug("OnFirstLine called. firstLine:'{0}'", firstLine);

            if (firstLine.EndsWith(SipConstants.SipTwoZeroString))
            {
                if (_logger.IsDebugEnabled)
                    _logger.Debug("Firstline is expected to be a SipRequestLine. Try parsing...");

                var requestLine = new SipRequestLineParser().Parse(firstLine);
                _message = _messageFactory.CreateRequest(requestLine);

                if (_logger.IsDebugEnabled)
                    _logger.Debug("RequestLine parsed. Continuing SipRequest parsing...");
            }
            else if (firstLine.StartsWith(SipConstants.SipTwoZeroString))
            {
                if (_logger.IsDebugEnabled)
                    _logger.Debug("Firstline is expected to be a SipStatusLine. Try parsing...");

                var statusLine = new SipStatusLineParser().Parse(firstLine);
                _message = _messageFactory.CreateResponse(statusLine);

                if (_logger.IsDebugEnabled)
                    _logger.Debug("SipStatusLine parsed. Continuing SipResponse parsing..");
            }
            else
            {
                if (_logger.IsDebugEnabled)
                    _logger.Debug("Firstline format could not be recognized.");

                throw new ParseException(ExceptionMessage.InvalidFirstLineFormat);
            }
        }
        public void Parse_ValidFormats_ExpectNotToFail()
        {
            String[] strings =
            {
                 "SIP/2.0 407 Proxy Authentication Required",
                 "SIP/2.0 1 2"
            };

            foreach (string s in strings)
            {
                var h = new SipStatusLineParser().Parse(s);
            }
        }
Esempio n. 3
0
        public void Parse_ValidFormats_ExpectNotToFail()
        {
            String[] strings =
            {
                "SIP/2.0 407 Proxy Authentication Required",
                "SIP/2.0 1 2"
            };

            foreach (string s in strings)
            {
                var h = new SipStatusLineParser().Parse(s);
            }
        }
Esempio n. 4
0
        private void OnFirstLine(string firstLine)
        {
            if (_logger.IsDebugEnabled)
            {
                _logger.Debug("OnFirstLine called. firstLine:'{0}'", firstLine);
            }

            if (firstLine.EndsWith(SipConstants.SipTwoZeroString))
            {
                if (_logger.IsDebugEnabled)
                {
                    _logger.Debug("Firstline is expected to be a SipRequestLine. Try parsing...");
                }

                var requestLine = new SipRequestLineParser().Parse(firstLine);
                _message = _messageFactory.CreateRequest(requestLine);

                if (_logger.IsDebugEnabled)
                {
                    _logger.Debug("RequestLine parsed. Continuing SipRequest parsing...");
                }
            }
            else if (firstLine.StartsWith(SipConstants.SipTwoZeroString))
            {
                if (_logger.IsDebugEnabled)
                {
                    _logger.Debug("Firstline is expected to be a SipStatusLine. Try parsing...");
                }

                var statusLine = new SipStatusLineParser().Parse(firstLine);
                _message = _messageFactory.CreateResponse(statusLine);

                if (_logger.IsDebugEnabled)
                {
                    _logger.Debug("SipStatusLine parsed. Continuing SipResponse parsing..");
                }
            }
            else
            {
                if (_logger.IsDebugEnabled)
                {
                    _logger.Debug("Firstline format could not be recognized.");
                }

                throw new ParseException(ExceptionMessage.InvalidFirstLineFormat);
            }
        }
Esempio n. 5
0
        private SipMessage ProcessFirstLine(string firstLine)
        {
            if (firstLine.EndsWith(SipConstants.SipTwoZeroString))
            {
                var            message     = new SipRequest();
                SipRequestLine requestLine = new SipRequestLineParser().Parse(firstLine);
                message.RequestLine = requestLine;
                return(message);
            }
            else if (firstLine.StartsWith(SipConstants.SipTwoZeroString))
            {
                var message    = new SipResponse();
                var statusLine = new SipStatusLineParser().Parse(firstLine);
                message.StatusLine = statusLine;
                return(message);
            }

            throw new SipParseException(ExceptionMessage.InvalidFirstLineFormat);
        }
Esempio n. 6
0
        private SipMessage ProcessFirstLine(string firstLine)
        {
            if (firstLine.EndsWith(SipConstants.SipTwoZeroString))
            {
                var message = new SipRequest();
                SipRequestLine requestLine = new SipRequestLineParser().Parse(firstLine);
                message.RequestLine = requestLine;
                return message;
            }
            else if (firstLine.StartsWith(SipConstants.SipTwoZeroString))
            {
                var message = new SipResponse();
                var statusLine = new SipStatusLineParser().Parse(firstLine);
                message.StatusLine = statusLine;
                return message;
            }

            throw new SipParseException(ExceptionMessage.InvalidFirstLineFormat);
        }
Esempio n. 7
0
        public bool ParseFirstLine()
        {
            _reader.Consume('\r', '\n');

            if (!_reader.Contains('\n'))
                throw new ParseException("Invalid firstline.");

            var firstLine = _reader.ReadFoldedLine();

            if (firstLine.EndsWith(SipConstants.SipTwoZeroString))
            {
                SipRequestLine requestLine = new SipRequestLineParser().Parse(firstLine);
                _listener.OnRequest(requestLine);
            }
            else if (firstLine.StartsWith(SipConstants.SipTwoZeroString))
            {
                var message = new SipResponse();
                var statusLine = new SipStatusLineParser().Parse(firstLine);
                _listener.OnResponse(statusLine);
            }
            else
            {
                throw new ParseException(ExceptionMessage.InvalidFirstLineFormat);
            }

            _parserMethod = GetHeaderName;

            return true;
        }