public void HeaderRoundTripTest()
        {
            logger.LogDebug("--> " + System.Reflection.MethodBase.GetCurrentMethod().Name);
            logger.BeginScope(System.Reflection.MethodBase.GetCurrentMethod().Name);

            RTPHeader src = new RTPHeader();

            byte[]    headerBuffer = src.GetHeader(1, 0, 1);
            RTPHeader dst          = new RTPHeader(headerBuffer);

            logger.LogDebug("Versions: " + src.Version + ", " + dst.Version);
            logger.LogDebug("PaddingFlag: " + src.PaddingFlag + ", " + dst.PaddingFlag);
            logger.LogDebug("HeaderExtensionFlag: " + src.HeaderExtensionFlag + ", " + dst.HeaderExtensionFlag);
            logger.LogDebug("CSRCCount: " + src.CSRCCount + ", " + dst.CSRCCount);
            logger.LogDebug("MarkerBit: " + src.MarkerBit + ", " + dst.MarkerBit);
            logger.LogDebug("PayloadType: " + src.PayloadType + ", " + dst.PayloadType);
            logger.LogDebug("SequenceNumber: " + src.SequenceNumber + ", " + dst.SequenceNumber);
            logger.LogDebug("Timestamp: " + src.Timestamp + ", " + dst.Timestamp);
            logger.LogDebug("SyncSource: " + src.SyncSource + ", " + dst.SyncSource);

            logger.LogDebug("Raw Header: " + System.Text.Encoding.ASCII.GetString(headerBuffer, 0, headerBuffer.Length));

            Assert.True(src.Version == dst.Version, "Version was mismatched.");
            Assert.True(src.PaddingFlag == dst.PaddingFlag, "PaddingFlag was mismatched.");
            Assert.True(src.HeaderExtensionFlag == dst.HeaderExtensionFlag, "HeaderExtensionFlag was mismatched.");
            Assert.True(src.CSRCCount == dst.CSRCCount, "CSRCCount was mismatched.");
            Assert.True(src.MarkerBit == dst.MarkerBit, "MarkerBit was mismatched.");
            Assert.True(src.SequenceNumber == dst.SequenceNumber, "PayloadType was mismatched.");
            Assert.True(src.HeaderExtensionFlag == dst.HeaderExtensionFlag, "SequenceNumber was mismatched.");
            Assert.True(src.Timestamp == dst.Timestamp, "Timestamp was mismatched.");
            Assert.True(src.SyncSource == dst.SyncSource, "SyncSource was mismatched.");
        }
示例#2
0
        private byte[] RtpG711Packet(byte[] buffer, ushort seq, uint timestamp)
        {
            RTPHeader header = new RTPHeader
            {
                Version             = 2,
                PaddingFlag         = 0,
                HeaderExtensionFlag = 0,
                CSRCCount           = 0,
                MarkerBit           = 1,
                PayloadType         = 0x88,
                SequenceNumber      = seq,
                Timestamp           = timestamp,
                SyncSource          = 0x0857,
            };

            RTPPacket packet = new RTPPacket
            {
                Header  = header,
                Payload = buffer
            };

            byte[] newBuffer = new byte[12 + buffer.Length];
            Buffer.BlockCopy(header.GetBytes(), 0, newBuffer, 0, 12);
            Buffer.BlockCopy(buffer, 0, newBuffer, 12, buffer.Length);
            return(newBuffer);
        }
        public void HeaderRoundTripTest()
        {
            Console.WriteLine(System.Reflection.MethodBase.GetCurrentMethod().Name);

            RTPHeader src = new RTPHeader();
            byte[] headerBuffer = src.GetHeader(1, 0, 1);
            RTPHeader dst = new RTPHeader(headerBuffer);

            Console.WriteLine("Versions: " + src.Version + ", " + dst.Version);
            Console.WriteLine("PaddingFlag: " + src.PaddingFlag + ", " + dst.PaddingFlag);
            Console.WriteLine("HeaderExtensionFlag: " + src.HeaderExtensionFlag + ", " + dst.HeaderExtensionFlag);
            Console.WriteLine("CSRCCount: " + src.CSRCCount + ", " + dst.CSRCCount);
            Console.WriteLine("MarkerBit: " + src.MarkerBit + ", " + dst.MarkerBit);
            Console.WriteLine("PayloadType: " + src.PayloadType + ", " + dst.PayloadType);
            Console.WriteLine("SequenceNumber: " + src.SequenceNumber + ", " + dst.SequenceNumber);
            Console.WriteLine("Timestamp: " + src.Timestamp + ", " + dst.Timestamp);
            Console.WriteLine("SyncSource: " + src.SyncSource + ", " + dst.SyncSource);

            Console.WriteLine("Raw Header: " + System.Text.Encoding.ASCII.GetString(headerBuffer, 0, headerBuffer.Length));

            Assert.IsTrue(src.Version == dst.Version, "Version was mismatched.");
            Assert.IsTrue(src.PaddingFlag == dst.PaddingFlag, "PaddingFlag was mismatched.");
            Assert.IsTrue(src.HeaderExtensionFlag == dst.HeaderExtensionFlag, "HeaderExtensionFlag was mismatched.");
            Assert.IsTrue(src.CSRCCount == dst.CSRCCount, "CSRCCount was mismatched.");
            Assert.IsTrue(src.MarkerBit == dst.MarkerBit, "MarkerBit was mismatched.");
            Assert.IsTrue(src.SequenceNumber == dst.SequenceNumber, "PayloadType was mismatched.");
            Assert.IsTrue(src.HeaderExtensionFlag == dst.HeaderExtensionFlag, "SequenceNumber was mismatched.");
            Assert.IsTrue(src.Timestamp == dst.Timestamp, "Timestamp was mismatched.");
            Assert.IsTrue(src.SyncSource == dst.SyncSource, "SyncSource was mismatched.");
        }
示例#4
0
        /// <summary>
        /// Event handler for RTP events from the remote call party. Fires
        /// when the event is completed.
        /// </summary>
        /// <param name="rtpEvent">The received RTP event.</param>
        /// <param name="rtpHeader">THe RTP header on the packet that the event was received in.</param>
        private void OnRemoteRtpEvent(RTPEvent rtpEvent, RTPHeader rtpHeader)
        {
            OnRtpEvent?.Invoke(rtpEvent, rtpHeader);

            if (rtpEvent.EndOfEvent)
            {
                OnDtmfTone?.Invoke(rtpEvent.EventID, rtpEvent.Duration);
            }
        }
        public void GetHeaderTest()
        {
            Console.WriteLine(System.Reflection.MethodBase.GetCurrentMethod().Name);

            RTPHeader rtpHeader = new RTPHeader();
            byte[] headerBuffer = rtpHeader.GetHeader(1, 0, 1);

            int byteNum = 1;
            foreach (byte headerByte in headerBuffer)
            {
                Console.WriteLine(byteNum + ": " + headerByte.ToString("x"));
                byteNum++;
            }
        }
示例#6
0
        public void GetHeaderTest()
        {
            Console.WriteLine(System.Reflection.MethodBase.GetCurrentMethod().Name);

            RTPHeader rtpHeader = new RTPHeader();

            byte[] headerBuffer = rtpHeader.GetHeader(1, 0, 1);

            int byteNum = 1;

            foreach (byte headerByte in headerBuffer)
            {
                Console.WriteLine(byteNum + ": " + headerByte.ToString("x"));
                byteNum++;
            }
        }
        public void CustomisedHeaderRoundTripTest()
        {
            logger.LogDebug("--> " + System.Reflection.MethodBase.GetCurrentMethod().Name);
            logger.BeginScope(System.Reflection.MethodBase.GetCurrentMethod().Name);

            RTPHeader src = new RTPHeader();

            src.Version             = 3;
            src.PaddingFlag         = 1;
            src.HeaderExtensionFlag = 1;
            src.MarkerBit           = 1;
            src.CSRCCount           = 3;
            src.PayloadType         = (int)SDPMediaFormatsEnum.PCMA;

            byte[] headerBuffer = src.GetHeader(1, 0, 1);

            RTPHeader dst = new RTPHeader(headerBuffer);

            logger.LogDebug("Versions: " + src.Version + ", " + dst.Version);
            logger.LogDebug("PaddingFlag: " + src.PaddingFlag + ", " + dst.PaddingFlag);
            logger.LogDebug("HeaderExtensionFlag: " + src.HeaderExtensionFlag + ", " + dst.HeaderExtensionFlag);
            logger.LogDebug("CSRCCount: " + src.CSRCCount + ", " + dst.CSRCCount);
            logger.LogDebug("MarkerBit: " + src.MarkerBit + ", " + dst.MarkerBit);
            logger.LogDebug("PayloadType: " + src.PayloadType + ", " + dst.PayloadType);
            logger.LogDebug("SequenceNumber: " + src.SequenceNumber + ", " + dst.SequenceNumber);
            logger.LogDebug("Timestamp: " + src.Timestamp + ", " + dst.Timestamp);
            logger.LogDebug("SyncSource: " + src.SyncSource + ", " + dst.SyncSource);

            string rawHeader = null;

            foreach (byte headerByte in headerBuffer)
            {
                rawHeader += headerByte.ToString("x");
            }

            logger.LogDebug("Raw Header: " + rawHeader);

            Assert.True(src.Version == dst.Version, "Version was mismatched.");
            Assert.True(src.PaddingFlag == dst.PaddingFlag, "PaddingFlag was mismatched.");
            Assert.True(src.HeaderExtensionFlag == dst.HeaderExtensionFlag, "HeaderExtensionFlag was mismatched.");
            Assert.True(src.CSRCCount == dst.CSRCCount, "CSRCCount was mismatched.");
            Assert.True(src.MarkerBit == dst.MarkerBit, "MarkerBit was mismatched.");
            Assert.True(src.SequenceNumber == dst.SequenceNumber, "PayloadType was mismatched.");
            Assert.True(src.HeaderExtensionFlag == dst.HeaderExtensionFlag, "SequenceNumber was mismatched.");
            Assert.True(src.Timestamp == dst.Timestamp, "Timestamp was mismatched.");
            Assert.True(src.SyncSource == dst.SyncSource, "SyncSource was mismatched.");
        }
        public void GetHeaderTest()
        {
            logger.LogDebug("--> " + System.Reflection.MethodBase.GetCurrentMethod().Name);
            logger.BeginScope(System.Reflection.MethodBase.GetCurrentMethod().Name);

            RTPHeader rtpHeader = new RTPHeader();

            byte[] headerBuffer = rtpHeader.GetHeader(1, 0, 1);

            int byteNum = 1;

            foreach (byte headerByte in headerBuffer)
            {
                logger.LogDebug(byteNum + ": " + headerByte.ToString("x"));
                byteNum++;
            }
        }
        public void CustomisedHeaderRoundTripTest()
        {
            Console.WriteLine(System.Reflection.MethodBase.GetCurrentMethod().Name);

            RTPHeader src = new RTPHeader();
            src.Version = 3;
            src.PaddingFlag = 1;
            src.HeaderExtensionFlag = 1;
            src.MarkerBit = 1;
            src.CSRCCount = 3;
            src.PayloadType = (int)RTPPayloadTypesEnum.GSM;

            byte[] headerBuffer = src.GetHeader(1, 0, 1);

            RTPHeader dst = new RTPHeader(headerBuffer);

            Console.WriteLine("Versions: " + src.Version + ", " + dst.Version);
            Console.WriteLine("PaddingFlag: " + src.PaddingFlag + ", " + dst.PaddingFlag);
            Console.WriteLine("HeaderExtensionFlag: " + src.HeaderExtensionFlag + ", " + dst.HeaderExtensionFlag);
            Console.WriteLine("CSRCCount: " + src.CSRCCount + ", " + dst.CSRCCount);
            Console.WriteLine("MarkerBit: " + src.MarkerBit + ", " + dst.MarkerBit);
            Console.WriteLine("PayloadType: " + src.PayloadType + ", " + dst.PayloadType);
            Console.WriteLine("SequenceNumber: " + src.SequenceNumber + ", " + dst.SequenceNumber);
            Console.WriteLine("Timestamp: " + src.Timestamp + ", " + dst.Timestamp);
            Console.WriteLine("SyncSource: " + src.SyncSource + ", " + dst.SyncSource);

            string rawHeader = null;
            foreach (byte headerByte in headerBuffer)
            {
                rawHeader += headerByte.ToString("x");
            }

            Console.WriteLine("Raw Header: " + rawHeader);

            Assert.IsTrue(src.Version == dst.Version, "Version was mismatched.");
            Assert.IsTrue(src.PaddingFlag == dst.PaddingFlag, "PaddingFlag was mismatched.");
            Assert.IsTrue(src.HeaderExtensionFlag == dst.HeaderExtensionFlag, "HeaderExtensionFlag was mismatched.");
            Assert.IsTrue(src.CSRCCount == dst.CSRCCount, "CSRCCount was mismatched.");
            Assert.IsTrue(src.MarkerBit == dst.MarkerBit, "MarkerBit was mismatched.");
            Assert.IsTrue(src.SequenceNumber == dst.SequenceNumber, "PayloadType was mismatched.");
            Assert.IsTrue(src.HeaderExtensionFlag == dst.HeaderExtensionFlag, "SequenceNumber was mismatched.");
            Assert.IsTrue(src.Timestamp == dst.Timestamp, "Timestamp was mismatched.");
            Assert.IsTrue(src.SyncSource == dst.SyncSource, "SyncSource was mismatched.");
        }
示例#10
0
        private byte[] RtpG711Packet(byte[] buffer, ushort seq, uint timestamp)
        {
            RTPPacket packet = new RTPPacket();
            RTPHeader header = new RTPHeader();

            header.Version             = 2;
            header.PaddingFlag         = 0;
            header.HeaderExtensionFlag = 0;
            header.CSRCCount           = 0;
            header.MarkerBit           = 1;
            header.PayloadType         = 0x88;
            header.SequenceNumber      = seq;
            header.HeaderExtensionFlag = 0;
            header.Timestamp           = timestamp;
            header.SyncSource          = 0x0857;
            packet.Header  = header;
            packet.Payload = buffer;
            byte[] newBuffer = new byte[12 + buffer.Length];
            Buffer.BlockCopy(header.GetBytes(), 0, newBuffer, 0, 12);
            Buffer.BlockCopy(buffer, 0, newBuffer, 12, buffer.Length);
            return(newBuffer);
        }