Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }