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 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; }
public void Parse() { String[] requestLines = { "REGISTER sip:192.168.0.68 SIP/2.0", "REGISTER sip:company.com SIP/2.0", "INVITE sip:[email protected] SIP/2.0", "INVITE sip:[email protected] SIP/2.0" }; for (int i = 0; i < requestLines.Length; i++ ) { SipRequestLineParser rlp = new SipRequestLineParser(); SipRequestLine rl = rlp.Parse(requestLines[i]); Assert.AreEqual(requestLines[i], rl.FormatToString()); } }
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() { String[] requestLines = { "REGISTER sip:192.168.0.68 SIP/2.0", "REGISTER sip:company.com SIP/2.0", "INVITE sip:[email protected] SIP/2.0", "INVITE sip:[email protected] SIP/2.0" }; for (int i = 0; i < requestLines.Length; i++) { SipRequestLineParser rlp = new SipRequestLineParser(); SipRequestLine rl = rlp.Parse(requestLines[i]); Assert.AreEqual(requestLines[i], rl.FormatToString()); } }
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); }
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); }