public IncomingMessageEx(IncomingMessage source, int transactionId) { TransactionId = transactionId; ConnectionAddresses = source.ConnectionAddresses; Reader = source.Reader; Headers = source.Header; Content = source.Content; }
public Result Validate(IncomingMessage message) { if (message.Reader.SipVersion != 20) return new Result() { Error = Errors.SipVersionNotSupported, }; var absent = message.Reader.ValidateMandatoryHeaders(); if (absent != HeaderNames.None) return new Result() { Error = Errors.MandatoryHeaderAbsent, HeaderName = absent, }; // callcentric does not send to tag in the NOTIFY //if (message.Reader.From.Tag.IsNotEmpty == false) // return new Result() { Error = Errors.ToTagAbsent, }; //var duplicate = message.Reader.ValidateHeadersDuplication(); //if (duplicate != HeaderNames.None) // return new Result() { Error = Errors.HeaderDuplication, HeaderName = duplicate, }; return new Result(); }
private void OnIncomingSipMessage(IncomingMessage message) { IncomingMessage(message); }
public ConnectionAddresses GetConnectionAddresses(Connection connection, int sessionId) { return(new ConnectionAddresses(IncomingMessage.GetTransport(connection), ajaxEndPoint, connection.RemoteEndPoint, sessionId)); }
public void PassResponse(int router, string message, int transactionId) { SipMessageReader reader; ArraySegment<byte> headers; ArraySegment<byte> content = new ArraySegment<byte>(); GetReader(message, out reader, out headers); var im1 = new IncomingMessage(Transports.Tcp, new IPEndPoint(IPAddress.None, 22222), new IPEndPoint(IPAddress.None, 33333), 111111, reader, headers, content); var im2 = new IncomingMessageEx(im1, transactionId); proxy.OnIncomingResponse(producedRequests[router], im2); }
public void PassRequest(string message) { SipMessageReader reader; ArraySegment<byte> headers; ArraySegment<byte> content = new ArraySegment<byte>(); GetReader(message, out reader, out headers); var im1 = new IncomingMessage(Transports.Tcp, GetIPEndPoint(), GetIPEndPoint(), 44444, reader, headers, content); var im2 = new IncomingMessageEx(im1, message.StartsWith("CANCEL") ? serverCancelTransactionId-- : serverTransactionId--); bool found = false; foreach (var accepted in acceptedRequests) { if (accepted.Method == im2.Reader.Method) if (accepted.IsAcceptedRequest(im2.Reader)) { proxy.OnIncomingRequest(accepted, im2); found = true; } } if (found == false) throw new InvalidProgramException("Accepted request not found for: " + message); //var caBytes = im2.ConnectionAddresses.ToLowerHexChars(im2.TransactionId); //return Encoding.UTF8.GetString(caBytes.Array, caBytes.Offset, caBytes.Count); }