Beispiel #1
0
        public void CreateClientInstanceUnitTest()
        {
            logger.LogDebug("--> " + System.Reflection.MethodBase.GetCurrentMethod().Name);
            logger.BeginScope(System.Reflection.MethodBase.GetCurrentMethod().Name);

            (var tlsCert, var pvtKey) = DtlsUtils.CreateSelfSignedTlsCert();
            DtlsSrtpTransport dtlsTransport = new DtlsSrtpTransport(new DtlsSrtpClient(tlsCert, pvtKey));

            Assert.NotNull(dtlsTransport);
        }
        public void GenerateLocalOfferUnitTest()
        {
            logger.LogDebug("--> " + System.Reflection.MethodBase.GetCurrentMethod().Name);
            logger.BeginScope(System.Reflection.MethodBase.GetCurrentMethod().Name);

            RTCPeerConnection pc = new RTCPeerConnection(null);

            pc.IceSession.StartGathering();
            var offer = pc.createOffer(new RTCOfferOptions());

            Assert.NotNull(offer);

            logger.LogDebug(offer.ToString());
        }
        public unsafe void DecodeKeyFrame()
        {
            string hexKeyFrame = "5043009d012a8002e00102c7088585889984880f0201d807f007f4040d6d4a7c9ee0d02c93ed7b7364e70f64e70f64e70c84f70681649f6bdb9b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387b27387900fefc1bddffff15ac3ace2ffc56fffffc56b0eb38bff153dd80";

            byte[] keyFrame = HexStr.ParseHexStr(hexKeyFrame);

            Assert.Equal(573, keyFrame.Length);

            vpx_codec_ctx_t     decoder = new vpx_codec_ctx_t();
            vpx_codec_iface_t   algo    = vp8_dx.vpx_codec_vp8_dx();
            vpx_codec_dec_cfg_t cfg     = new vpx_codec_dec_cfg_t {
                threads = 4
            };
            vpx_codec_err_t res = vpx_decoder.vpx_codec_dec_init(decoder, algo, cfg, 0);

            Assert.Equal(vpx_codec_err_t.VPX_CODEC_OK, res);
            Assert.NotNull(decoder);

            fixed(byte *pKeyFrame = keyFrame)
            {
                var result = vpx_decoder.vpx_codec_decode(decoder, pKeyFrame, (uint)keyFrame.Length, IntPtr.Zero, 0);

                Assert.Equal(vpx_codec_err_t.VPX_CODEC_OK, result);
            }

            IntPtr iter = IntPtr.Zero;
            var    img  = vpx_decoder.vpx_codec_get_frame(decoder, iter);

            Assert.NotNull(img);
            Assert.Equal(640U, img.d_w);
            Assert.Equal(480U, img.d_h);

            byte[] yPlane = new byte[img.stride[0]];
            byte[] uPlane = new byte[img.stride[1]];
            byte[] vPlane = new byte[img.stride[2]];

            Marshal.Copy((IntPtr)img.planes[0], yPlane, 0, yPlane.Length);
            Marshal.Copy((IntPtr)img.planes[1], uPlane, 0, uPlane.Length);
            Marshal.Copy((IntPtr)img.planes[2], vPlane, 0, vPlane.Length);

            logger.LogDebug(HexStr.ToHexStr(yPlane));
            logger.LogDebug(HexStr.ToHexStr(uPlane));
            logger.LogDebug(HexStr.ToHexStr(vPlane));

            string expectedYPlaneHexStr = "0101010101010101010101010101010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101010101010101010101010101010101010101010101010101010101010101";
            string expectedUPlaneHexStr = "02020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202";
            string expectedVPlaneHexStr = "02020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202";

            Assert.Equal(704, yPlane.Length);
            Assert.Equal(352, uPlane.Length);
            Assert.Equal(352, vPlane.Length);
            Assert.Equal(expectedYPlaneHexStr, HexStr.ToHexStr(yPlane));
            Assert.Equal(expectedUPlaneHexStr, HexStr.ToHexStr(uPlane));
            Assert.Equal(expectedVPlaneHexStr, HexStr.ToHexStr(vPlane));
        }
Beispiel #4
0
        private static Task <RTCPeerConnection> CreatePeerConnection()
        {
            RTCConfiguration config = new RTCConfiguration
            {
                iceServers = new List <RTCIceServer> {
                    new RTCIceServer {
                        urls = STUN_URL
                    }
                }
            };
            var pc = new RTCPeerConnection(config);

            //AudioExtrasSource audioSource = new AudioExtrasSource(new AudioEncoder(), new AudioSourceOptions { AudioSource = AudioSourcesEnum.SineWave });
            //audioSource.OnAudioSourceEncodedSample += pc.SendAudio;
            WindowsAudioEndPoint audioSource = new WindowsAudioEndPoint(new AudioEncoder());

            audioSource.OnAudioSourceEncodedSample += pc.SendAudio;

            MediaStreamTrack audioTrack = new MediaStreamTrack(audioSource.GetAudioSourceFormats(), MediaStreamStatusEnum.SendOnly);

            pc.addTrack(audioTrack);

            pc.OnAudioFormatsNegotiated += (audioFormats) => audioSource.SetAudioSourceFormat(audioFormats.First());

            pc.onconnectionstatechange += async(state) =>
            {
                logger.LogDebug($"Peer connection state change to {state}.");

                if (state == RTCPeerConnectionState.connected)
                {
                    await audioSource.StartAudio();
                }
                else if (state == RTCPeerConnectionState.failed)
                {
                    pc.Close("ice disconnection");
                }
                else if (state == RTCPeerConnectionState.closed)
                {
                    await audioSource.CloseAudio();
                }
            };

            // Diagnostics.
            pc.OnReceiveReport += (re, media, rr) => logger.LogDebug($"RTCP Receive for {media} from {re}\n{rr.GetDebugSummary()}");
            pc.OnSendReport    += (media, sr) => logger.LogDebug($"RTCP Send for {media}\n{sr.GetDebugSummary()}");
            pc.GetRtpChannel().OnStunMessageReceived += (msg, ep, isRelay) => logger.LogDebug($"STUN {msg.Header.MessageType} received from {ep}.");
            pc.oniceconnectionstatechange += (state) => logger.LogDebug($"ICE connection state change to {state}.");

            return(Task.FromResult(pc));
        }
Beispiel #5
0
    private Task <RTCPeerConnection> CreatePeerConnection()
    {
        var pc = new RTCPeerConnection();

        // Set up sources and hook up send events to peer connection.
        //AudioExtrasSource audioSrc = new AudioExtrasSource(new AudioEncoder(), new AudioSourceOptions { AudioSource = AudioSourcesEnum.None });
        //audioSrc.OnAudioSourceEncodedSample += pc.SendAudio;
        //var testPatternSource = new VideoTestPatternSource();
        //testPatternSource.SetMaxFrameRate(true);
        //testPatternSource.OnVideoSourceRawSample += VideoEncoderEndPoint.ExternalVideoSourceRawSample;
        //VideoEncoderEndPoint.OnVideoSourceEncodedSample += pc.SendVideo;

        // Add tracks.
        //var audioTrack = new SIPSorcery.Net.MediaStreamTrack(audioSrc.GetAudioSourceFormats(), SIPSorcery.Net.MediaStreamStatusEnum.SendOnly);
        //pc.addTrack(audioTrack);
        var videoTrack = new MediaStreamTrack(VideoEncoderEndPoint.GetVideoSourceFormats(), MediaStreamStatusEnum.RecvOnly);

        pc.addTrack(videoTrack);

        // Handlers to set the codecs to use on the sources once the SDP negotiation is complete.
        pc.OnVideoFormatsNegotiated += (sdpFormat) => VideoEncoderEndPoint.SetVideoSourceFormat(sdpFormat.First());
        //pc.OnAudioFormatsNegotiated += (sdpFormat) => audioSrc.SetAudioSourceFormat(sdpFormat.First());
        pc.OnVideoFrameReceived += VideoEncoderEndPoint.GotVideoFrame;

        pc.OnTimeout += (mediaType) => logger.LogDebug($"Timeout on media {mediaType}.");
        pc.oniceconnectionstatechange += (state) => logger.LogDebug($"ICE connection state changed to {state}.");
        pc.onconnectionstatechange    += (state) =>
        {
            logger.LogDebug($"Peer connection connected changed to {state}.");
            if (state == RTCPeerConnectionState.connected)
            {
                //await audioSrc.StartAudio();
                //await testPatternSource.StartVideo();
            }
            else if (state == RTCPeerConnectionState.closed || state == SIPSorcery.Net.RTCPeerConnectionState.failed)
            {
                //await audioSrc.CloseAudio();
                //await testPatternSource.CloseVideo();
            }
        };

        //pc.GetRtpChannel().OnStunMessageReceived += (msg, ep, isRelay) =>
        //{
        //    bool hasUseCandidate = msg.Attributes.Any(x => x.AttributeType == SIPSorcery.Net.STUNAttributeTypesEnum.UseCandidate);
        //    logger.LogDebug($"STUN {msg.Header.MessageType} received from {ep}, use candidate {hasUseCandidate}.");
        //};

        return(Task.FromResult(pc));
    }
Beispiel #6
0
        public void HasStringUnitTest()
        {
            logger.LogDebug("--> " + System.Reflection.MethodBase.GetCurrentMethod().Name);
            logger.BeginScope(System.Reflection.MethodBase.GetCurrentMethod().Name);

            byte[] sample = Encoding.ASCII.GetBytes("The quick brown fox jumped over...");

            bool hasFox = BufferUtils.HasString(sample, 0, Int32.MaxValue, "fox", null);

            Assert.True(hasFox, "The string was not found in the buffer.");
        }
Beispiel #7
0
        private static async Task <RTCPeerConnection> SendOffer(WebSocketContext context)
        {
            logger.LogDebug($"Web socket client connection from {context.UserEndPoint}, sending offer.");

            var pc = Createpc(context, _ffmpegVideoFormat);

            var offerInit = pc.createOffer(null);
            await pc.setLocalDescription(offerInit);

            logger.LogDebug($"Sending SDP offer to client {context.UserEndPoint}.");

            context.WebSocket.Send(offerInit.sdp);

            return(pc);
        }
Beispiel #8
0
        public void RoundTripDataChannelOpenPacketUnitTest()
        {
            logger.LogDebug("--> " + System.Reflection.MethodBase.GetCurrentMethod().Name);
            logger.BeginScope(System.Reflection.MethodBase.GetCurrentMethod().Name);

            //var dataChanOpen = new DataChannelOpen("label");
            //byte[] pkt = dataChanOpen.getBytes();

            //logger.LogDebug(pkt.HexStr());

            //var rndTripPkt = new DataChannelOpen(new ByteBuffer(pkt));

            //Assert.NotNull(rndTripPkt);
            //Assert.Equal(dataChanOpen.getLabel(), rndTripPkt.getLabel());
        }
        public void RoundtripRTCPByeUnitTest()
        {
            logger.LogDebug("--> " + System.Reflection.MethodBase.GetCurrentMethod().Name);
            logger.BeginScope(System.Reflection.MethodBase.GetCurrentMethod().Name);

            uint ssrc = 23;

            RTCPBye bye = new RTCPBye(ssrc, null);

            byte[] buffer = bye.GetBytes();

            RTCPBye parsedBye = new RTCPBye(buffer);

            Assert.Equal(ssrc, parsedBye.SSRC);
            Assert.Null(parsedBye.Reason);
        }
        public void RoundtripRTCPReceiverResportUnitTest()
        {
            logger.LogDebug("--> " + System.Reflection.MethodBase.GetCurrentMethod().Name);
            logger.BeginScope(System.Reflection.MethodBase.GetCurrentMethod().Name);

            uint ssrc = 1;

            uint rrSsrc           = 5;
            byte fractionLost     = 6;
            int  packetsLost      = 7;
            uint highestSeqNum    = 8;
            uint jitter           = 9;
            uint lastSRTimestamp  = 10;
            uint delaySinceLastSR = 11;

            var rr = new ReceptionReportSample(rrSsrc, fractionLost, packetsLost, highestSeqNum, jitter, lastSRTimestamp, delaySinceLastSR);

            var receiverReport = new RTCPReceiverReport(ssrc, new List <ReceptionReportSample> {
                rr
            });

            byte[] buffer = receiverReport.GetBytes();

            RTCPReceiverReport parsedRR = new RTCPReceiverReport(buffer);

            Assert.Equal(ssrc, parsedRR.SSRC);

            Assert.Equal(rrSsrc, parsedRR.ReceptionReports.First().SSRC);
            Assert.Equal(fractionLost, parsedRR.ReceptionReports.First().FractionLost);
            Assert.Equal(packetsLost, parsedRR.ReceptionReports.First().PacketsLost);
            Assert.Equal(highestSeqNum, parsedRR.ReceptionReports.First().ExtendedHighestSequenceNumber);
            Assert.Equal(jitter, parsedRR.ReceptionReports.First().Jitter);
            Assert.Equal(lastSRTimestamp, parsedRR.ReceptionReports.First().LastSenderReportTimestamp);
            Assert.Equal(delaySinceLastSR, parsedRR.ReceptionReports.First().DelaySinceLastSenderReport);
        }
        private async Task sendEventHubData()
        {
            _logger.LogDebug($"Begin Sending Data to Event Hub");

            List <EventData> eventData = MessageEntity.GetBatch(_config.Value.BatchSize);

            // Create a batch of events
            using EventDataBatch eventBatch = await ehProducerClient.CreateBatchAsync();

            foreach (var item in eventData)
            {
                eventBatch.TryAdd(item);
            }

            // Use the producer client to send the batch of events to the event hub
            await ehProducerClient.SendAsync(eventBatch);



            //this code has to be reviewed as it seems not calculating properly the kpi :)
            if ((double)MessageEntity.CurrentGen % 1000.0 == 0)
            {
                var      now         = DateTime.UtcNow;
                TimeSpan elapsedTime = now - lastMetric;
                lastMetric = now;

                var totals = elapsedTime.TotalSeconds;

                var messSec = 1000.0 / totals;

                //toreview this calculation

                _logger.LogInformation($"{Guid.Empty},Sending {messSec} message / seconds");
            }
        }
        public IJournalSubscription Subscribe(long from, Action <JournalRecord> handler)
        {
            long?checkPoint = null;

            if (from > 0)
            {
                checkPoint = from - 1;
            }

            var ready = false;

            var sub = _connection.SubscribeToStreamFrom(
                stream: _streamName,
                lastCheckpoint: checkPoint,
                settings: new CatchUpSubscriptionSettings(10000, 4096, false, false),
                eventAppeared: (s, re) =>
            {
                _logger.LogDebug("eventAppeared, recordNumber {0}", re.OriginalEventNumber);
                handler.Invoke(re.Event.ToJournalRecord(_serializer));
            },
                liveProcessingStarted: s =>
            {
                ready = true;
                _logger.LogInformation("liveProcessingStarted");
            });

            return(new EventStoreSubscriptionAdapter(_memstateSettings, sub, () => ready));
        }
Beispiel #13
0
        public void SeverityTest()
        {
            var testSink = new TestSink();

            LoggerConfiguration TestSinkMap(LoggerSinkConfiguration loggerSinkConfiguration)
            => loggerSinkConfiguration.Sink(testSink);

            ILogger logger = Logger.GetLoggerFactory(LogEventLevel.Debug, TestSinkMap).CreateLogger("test");

            Assert.NotNull(logger);

            logger.LogInformation("Test message");
            List <LogEvent> emittedEvents = testSink.GetEmittedEvents();

            Assert.Equal("6", emittedEvents[0].Properties["Severity"].ToString());
            testSink.Reset();

            logger.LogDebug("Test message");
            emittedEvents = testSink.GetEmittedEvents();
            Assert.Equal("7", emittedEvents[0].Properties["Severity"].ToString());
            testSink.Reset();

            logger.LogWarning("Test message");
            emittedEvents = testSink.GetEmittedEvents();
            Assert.Equal("4", emittedEvents[0].Properties["Severity"].ToString());
            testSink.Reset();

            logger.LogError("Test message");
            emittedEvents = testSink.GetEmittedEvents();
            Assert.Equal("3", emittedEvents[0].Properties["Severity"].ToString());
        }
        public void Log(MessageLevel level, [CanBeNull] string message, [NotNull, ItemNotNull] params object[] args)
        {
            if (string.IsNullOrWhiteSpace(message))
            {
                return;
            }

            // ReSharper disable once SwitchStatementMissingSomeCases
            switch (level)
            {
            case MessageLevel.Debug:
                _logger.LogTrace(message, args);
                break;

            case MessageLevel.Info:
                _logger.LogDebug(message, args);
                break;

            case MessageLevel.Warning:
                _logger.LogWarning(message, args);
                break;

            case MessageLevel.Error:
                _logger.LogError(message, args);
                break;
            }
        }
Beispiel #15
0
        public static async Task Orchestrator([OrchestrationTrigger] DurableOrchestrationContext context, ILogger log)
        {
            var fileName = context.GetInput <string>();

            var wineCountries = await context.CallActivityAsync <Countries[]>("A_ExtractWineCountries", fileName);

            var tasks = new List <Task <Wine[]> >();

            foreach (Countries wineCountry in wineCountries)
            {
                tasks.Add(context.CallActivityAsync <Wine[]>("A_ExtractWines", wineCountry));
            }

            var wineTasks = await Task.WhenAll(tasks);

            List <Task> uploadWineTasks = new List <Task>();

            foreach (Wine wineTask in wineTasks.SelectMany(x => x))
            {
                uploadWineTasks.Add(context.CallActivityAsync("A_UploadWine", wineTask));
            }

            await Task.WhenAll(uploadWineTasks);

            if (!context.IsReplaying)
            {
                log.LogDebug($"Finished file: {fileName}");
            }
        }
Beispiel #16
0
        /// <summary>
        /// Gets the grant.
        /// </summary>
        /// <param name="key">The key.</param>
        /// <returns></returns>
        public async Task <PersistedGrant> GetAsync(string key)
        {
            using (ISession session = _context.GetDriver().Session())
            {
                Node n = new Node(type: typeof(PersistedGrant));

                PersistedGrant result = await session.AsAsync(s =>
                                                              s.ExecuteQuery <PersistedGrant>($"MATCH (n{n.Labels} {{{nameof(PersistedGrant.Key)}:${nameof(key)}}}) " +
                                                                                              $"RETURN n"
                                                                                              , new { key }).FirstOrDefault());

                _logger.LogDebug("{persistedGrantKey} found in database: {persistedGrantKeyFound}", key, result != null);

                return(result);
            }
        }
        public static Microsoft.Extensions.Logging.ILogger CreateILoggerFromNLog(bool debug = false)
        {
            // NLog build Example for microsoft ILogger find on :
            // https://stackoverflow.com/questions/56534730/nlog-works-in-asp-net-core-app-but-not-in-net-core-xunit-test-project
            var configuration = new NLog.Config.LoggingConfiguration();

            configuration.AddRuleForAllLevels(new NLog.Targets.ConsoleTarget());
            NLog.Web.NLogBuilder.ConfigureNLog(configuration);

            // Create provider to bridge Microsoft.Extensions.Logging
            var provider = new NLog.Extensions.Logging.NLogLoggerProvider();

            // Create logger
            Microsoft.Extensions.Logging.ILogger logger = provider.CreateLogger(typeof(DnsSrvToolsIntergrationTest).FullName);

            if (debug)
            {
                logger.LogDebug("This is a test of the log system : LogDebug.");
                logger.LogTrace("This is a test of the log system : LogTrace.");
                logger.LogInformation("This is a test of the log system : LogInformation.");
                logger.LogWarning("This is a test of the log system : LogWarning.");
                logger.LogError("This is a test of the log system : LogError.");
                logger.LogCritical("This is a test of the log system : LogCritical.");
            }

            return(logger);
        }
Beispiel #18
0
        public static void Run(ILogger logger)
        {
            OnlineClient client = Bootstrap.Client(logger);

            logger.LogInformation("Executing create test object function to API");

            TestObjectCreate create = new TestObjectCreate()
            {
                Name = "hello world",
            };

            Task <OnlineResponse> createTask = client.Execute(create);

            createTask.Wait();
            OnlineResponse createResponse = createTask.Result;
            Result         createResult   = createResponse.Results[0];

            try
            {
                int recordNo = int.Parse(createResult.Data[0].Element("id").Value);

                Console.WriteLine("Created record ID " + recordNo.ToString());
            }
            catch (NullReferenceException e)
            {
                logger.LogDebug("No response in Data. {0}", e);
            }
            finally
            {
                LogManager.Flush();
            }
        }
        public async Task PollForChanges()
        {
            while (!_server.Manager.CancellationToken.IsCancellationRequested)
            {
                if (_server.IsInitialized)
                {
                    try
                    {
                        await UpdateLogEvents();
                    }

                    catch (Exception e)
                    {
                        using (LogContext.PushProperty("Server", _server.ToString()))
                        {
                            _logger.LogError(e, "Failed to update log event for {endpoint}", _server.EndPoint);
                        }
                    }
                }

                await Task.Delay(_reader.UpdateInterval, _server.Manager.CancellationToken);
            }

            _logger.LogDebug("Stopped polling for changes");
        }
Beispiel #20
0
        public UtilityBase(Option option)
        {
            this.Options  = option;
            serilogLogger = new SetupSerilog().Configure(ConfigureLogging).Create();

            var          env           = EnvironmentSetting.DOTNET_ENVIRONMENT;
            IHostBuilder hostBuilder   = Host.CreateDefaultBuilder().UseSerilog();
            var          configBuilder = new ConfigurationBuilder()
                                         .SetBasePath(CurrentDirectory)
                                         .AddJsonFile("appsettings.json", false, true);

            if (!string.IsNullOrEmpty(env.Value))
            {
                configBuilder.AddJsonFile($"appsettings.{env.Value}.json", true, true);
            }
            var configuration = configBuilder.AddEnvironmentVariables().Build();

            host = hostBuilder.ConfigureAppConfiguration(builder => {
                builder.Sources.Clear();
                builder.AddConfiguration(configuration);
            }).ConfigureServices((ctx, svc) => RegisterServices(ctx.Configuration, env, svc)).Build();

            logger = host.Services.GetRequiredService <Microsoft.Extensions.Logging.ILogger>();
            logger.LogDebug("Logging initialized for {type} instance", this.GetType().Name);
            Init(host.Services.GetRequiredService <IConfiguration>(), host.Services);
        }
        public IEnumerable <JournalRecord> GetRecords(long fromRecord = 0)
        {
            var nextRecord = fromRecord;

            _logger.LogInformation("GetRecords from {0}", nextRecord);

            while (true)
            {
                var slice = _connection.ReadStreamEventsForwardAsync(_streamName, nextRecord, _eventsPerSlice, false).Result;

                _logger.LogDebug("{0} events in slice from {0}", slice.Events.Length, slice.FromEventNumber);

                foreach (var @event in slice.Events.Select(e => e.Event))
                {
                    yield return(@event.ToJournalRecord(_serializer));
                }

                if (slice.IsEndOfStream)
                {
                    break;
                }

                nextRecord = slice.NextEventNumber;
            }

            _logger.LogInformation("GetRecords completed");
        }
        public void RTSPRequestWIthStandardHeadersParseTest()
        {
            logger.LogDebug("--> " + System.Reflection.MethodBase.GetCurrentMethod().Name);
            logger.BeginScope(System.Reflection.MethodBase.GetCurrentMethod().Name);

            int    cseq    = 23;
            string session = Guid.NewGuid().ToString();
            string body    = "v=0" + m_CRLF +
                             "o=- 2890844526 2890842807 IN IP4 192.16.24.202" + m_CRLF +
                             "s=RTSP Session" + m_CRLF +
                             "m=audio 3456 RTP/AVP 0" + m_CRLF +
                             "a=control:rtsp://live.example.com/concert/audio" + m_CRLF +
                             "c=IN IP4 224.2.0.1/16";

            RTSPResponse describeResponse = new RTSPResponse(RTSPResponseStatusCodesEnum.OK, null);

            describeResponse.Header = new RTSPHeader(cseq, session);
            describeResponse.Body   = body;

            byte[]      buffer      = Encoding.UTF8.GetBytes(describeResponse.ToString());
            RTSPMessage rtspMessage = RTSPMessage.ParseRTSPMessage(buffer, null, null);

            Assert.Equal(RTSPMessageTypesEnum.Response, rtspMessage.RTSPMessageType);
            Assert.Equal(body, rtspMessage.Body);
        }
        public void JsonRoundtripUnitTest()
        {
            RTCPeerConnection pcSrc = new RTCPeerConnection(null);
            var videoTrackSrc       = new MediaStreamTrack(SDPMediaTypesEnum.video, false, new List <SDPAudioVideoMediaFormat> {
                new SDPAudioVideoMediaFormat(SDPMediaTypesEnum.video, 96, "VP8", 90000)
            });

            pcSrc.addTrack(videoTrackSrc);

            var offer = pcSrc.createOffer(new RTCOfferOptions());

            Assert.NotNull(offer.toJSON());

            logger.LogDebug($"offer: {offer.toJSON()}");

            var parseResult = RTCSessionDescriptionInit.TryParse(offer.toJSON(), out var init);

            Assert.True(parseResult);

            Assert.Equal(RTCSdpType.offer, init.type);
            Assert.NotNull(init.sdp);

            SDP sdp = SDP.ParseSDPDescription(init.sdp);

            Assert.Equal(0, sdp.Version);
        }
Beispiel #24
0
        public ScaniiClientTests()
        {
            var serilogLogger = new LoggerConfiguration()
                                .WriteTo.Console()
                                .MinimumLevel.Is(LogEventLevel.Debug)
                                .CreateLogger();

            var provider = new SerilogLoggerProvider(serilogLogger);

            _logger = provider.CreateLogger("ScaniiClientTests");

            _logger.LogDebug("ctor");


            if (Environment.GetEnvironmentVariable("SCANII_CREDS") != null)
            {
                // ReSharper disable once PossibleNullReferenceException
                var credentials = Environment.GetEnvironmentVariable("SCANII_CREDS").Split(':');
                _key    = credentials[0];
                _secret = credentials[1];
            }

            Debug.Assert(_secret != null, nameof(_secret) + " != null");
            Debug.Assert(_key != null, nameof(_key) + " != null");

            _client = ScaniiClients.CreateDefault(_key, _secret, _logger, new HttpClient());
        }
Beispiel #25
0
 /// <summary>
 /// This method posts debug messages onto CloudWatchLogs.
 /// </summary>
 /// <param name="count">The number of messages that would be posted onto CloudWatchLogs</param>
 public void ILoggerThread(int count)
 {
     for (int i = 0; i < count; i++)
     {
         logger.LogDebug(string.Format("Test logging message {0} Ilogger, Thread Id:{1}", i, Thread.CurrentThread.ManagedThreadId));
     }
 }
        public void RTSPTransportHeaderParseTest()
        {
            logger.LogDebug("--> " + System.Reflection.MethodBase.GetCurrentMethod().Name);
            logger.BeginScope(System.Reflection.MethodBase.GetCurrentMethod().Name);

            string header = "RTP/AVP;unicast;destination=192.168.33.170;source=192.168.33.103;client_port=61132-61133;server_port=6970-6971";

            var transportHeader = RTSPTransportHeader.Parse(header);

            Assert.Equal("RTP/AVP", transportHeader.TransportSpecifier);
            Assert.Equal("unicast", transportHeader.BroadcastType);
            Assert.Equal("192.168.33.170", transportHeader.Destination);
            Assert.Equal("192.168.33.103", transportHeader.Source);
            Assert.Equal("61132-61133", transportHeader.ClientRTPPortRange);
            Assert.Equal("6970-6971", transportHeader.ServerRTPPortRange);
        }
        public void KeySaltBase64Test()
        {
            logger.LogDebug("--> " + System.Reflection.MethodBase.GetCurrentMethod().Name);
            logger.BeginScope(System.Reflection.MethodBase.GetCurrentMethod().Name);

            SDPSecurityDescription.KeyParameter keyParameter = KeyParameterFactory.Create("ĀĀ\0\0\0\0\0\0\0\0\0\0\0\0\0\0", "ĀĀĀ\0\0\0\0\0\0\0\0\0\0\0");
            Assert.NotNull((object)keyParameter);
            Assert.Equal(Encoding.ASCII.GetBytes("ĀĀ\0\0\0\0\0\0\0\0\0\0\0\0\0\0"), keyParameter.Key);
            Assert.Equal(Encoding.ASCII.GetBytes("ĀĀĀ\0\0\0\0\0\0\0\0\0\0\0"), keyParameter.Salt);
            Assert.Equal(0uL, keyParameter.LifeTime);
            Assert.Equal((string)null, keyParameter.LifeTimeString);
            Assert.Equal(0u, keyParameter.MkiValue);
            Assert.Equal(0u, keyParameter.MkiLength);

            Assert.Equal(40, keyParameter.KeySaltBase64.Length);
        }
        public MockTurnServer(IPAddress listenAddress, int port)
        {
            _listenAddress = listenAddress;
            _listenPort    = port;

            NetServices.CreateRtpSocket(false, _listenAddress, 0, out _clientSocket, out _);

            ListeningEndPoint = _clientSocket.LocalEndPoint as IPEndPoint;

            logger.LogDebug($"MockTurnServer listening on {ListeningEndPoint}.");

            _listener = new UdpReceiver(_clientSocket);
            _listener.OnPacketReceived += OnPacketReceived;
            _listener.OnClosed         += (reason) => logger.LogDebug($"MockTurnServer on {ListeningEndPoint} closed.");
            _listener.BeginReceiveFrom();
        }
Beispiel #29
0
        public Task <List <string> > GetAsync()
        {
            _logger.LogDebug("Recieved Value Request.");
            var valueSequence = _busClient.ExecuteSequence(s => s
                                                           .PublishAsync(new ValuesRequested
            {
                NumberOfValues = _random.Next(1, 10)
            })
                                                           .When <ValueCreationFailed>(
                                                               (failed, context) =>
            {
                _logger.LogWarning("Unable to create Values. Exception: {0}", failed.Exception);
                return(Task.CompletedTask);
            }, it => it.AbortsExecution())
                                                           .Complete <ValuesCalculated>()
                                                           );

            return(valueSequence.Task.ContinueWith(tResponse =>
            {
                if (tResponse.IsFaulted)
                {
                    throw new Exception("No response recieved. Is the Console App started?");
                }

                _logger.LogInformation("Successfully created {valueCount} values", tResponse.Result.Values.Count);
                return valueSequence.Aborted
                                        ? new List <string>()
                                        : tResponse.Result.Values;
            }));
        }
Beispiel #30
0
        static void Main()
        {
            Console.WriteLine("SIPSorcery Getting Started Demo");

            Log = AddConsoleLogger();

            _waveFile = new WaveFileWriter("output.mp3", _waveFormat);

            _sipTransport = new SIPTransport();
            _sipTransport.AddSIPChannel(new SIPUDPChannel(new IPEndPoint(IPAddress.Any, SIP_LISTEN_PORT)));

            var userAgent = new SIPUserAgent(_sipTransport, null, true);

            userAgent.ServerCallCancelled += (uas) => Log.LogDebug("Incoming call cancelled by remote party.");
            userAgent.OnCallHungup        += (dialog) => _waveFile?.Close();
            userAgent.OnIncomingCall      += async(ua, req) =>
            {
                WindowsAudioEndPoint winAudioEP       = new WindowsAudioEndPoint(new AudioEncoder());
                VoIPMediaSession     voipMediaSession = new VoIPMediaSession(winAudioEP.ToMediaEndPoints());
                voipMediaSession.AcceptRtpFromAny     = true;
                voipMediaSession.OnRtpPacketReceived += OnRtpPacketReceived;

                var uas = userAgent.AcceptCall(req);
                await userAgent.Answer(uas, voipMediaSession);
            };

            Console.WriteLine("press any key to exit...");
            Console.Read();

            // Clean up.
            _sipTransport.Shutdown();
        }