Ejemplo n.º 1
0
        private SipResponseWriter GetSipResponseWriter()
        {
            var writer = new SipResponseWriter();

            writer.WriteCustomHeadersEvent += writeSignatureHandler;
            return(writer);
        }
Ejemplo n.º 2
0
        protected override SipMessageWriter GetResponseBegin(SipMessageReader reader)
        {
            var writer = new SipResponseWriter();

            writer.WriteStatusLine(StatusCodes.Unauthorized);
            writer.CopyViaToFromCallIdRecordRouteCSeq(reader, StatusCodes.Unauthorized);

            return(writer);
        }
Ejemplo n.º 3
0
        public void IncomingMessage(IncomingMessage message)
        {
            var result = verifier.Validate(message);

            if (result.Error == GeneralVerifier.Errors.None)
            {
                ProcessIncomingMessage(message);
            }
            else
            {
                var writer = new SipResponseWriter();
                writer.WriteStatusLine(StatusCodes.BadRequest);
                writer.CopyViaToFromCallIdRecordRouteCSeq(message.Reader, StatusCodes.BadRequest);
                writer.WriteXErrorDetails(result.Message, result.HeaderName.ToUtf8Bytes());
                writer.WriteCRLF();

                SendNonTransactionMessage(message.ConnectionAddresses, writer);
            }
        }
Ejemplo n.º 4
0
        private void WriteResponseContent(SipResponseWriter writer, List <OutContent> contents)
        {
            writer.WriteCRLF();
            foreach (var c in contents)
            {
                writer.WriteBoundary();
                writer.WriteContentTransferEncodingBinary();
                writer.WriteContentType(new ByteArrayPart(c.OutContentType), new ByteArrayPart(c.OutContentSubtype));
                writer.WriteCRLF();

                writer.Write(c.GenerateToByteArray());

                writer.WriteCRLF();
                writer.WriteCRLF();
            }

            writer.WriteBoundaryEnd();
            writer.RewriteContentLength();
        }