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); }
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); }