public async Task <ActionResult <string> > GetSignalsForCaller(string to, string from, WebRTCSignalTypesEnum type = WebRTCSignalTypesEnum.any)
        {
            if (string.IsNullOrEmpty(to) || string.IsNullOrEmpty(from))
            {
                return(BadRequest());
            }

            var query = _context.WebRTCSignals.Where(x =>
                                                     x.To.ToLower() == to.ToLower() &&
                                                     x.From.ToLower() == from.ToLower() &&
                                                     x.DeliveredAt == null);

            if (type != WebRTCSignalTypesEnum.any)
            {
                query = query.Where(x => x.SignalType == type.ToString());
            }

            var nextSignal = await query
                             .OrderBy(x => x.Inserted)
                             .FirstOrDefaultAsync();

            if (nextSignal != null)
            {
                nextSignal.DeliveredAt = DateTime.UtcNow.ToString("o");
                await _context.SaveChangesAsync();

                return(nextSignal.Signal);
            }
            else
            {
                return(NoContent());
            }
        }
        private async Task SendToSignalingServer(HttpClient httpClient, string jsonStr, WebRTCSignalTypesEnum sendType)
        {
            var content = new StringContent(jsonStr, Encoding.UTF8, "application/json");
            var res     = await httpClient.PutAsync($"{_restServerUri}/{sendType}/{_ourID}/{_theirID}", content).ConfigureAwait(false);

            logger.LogDebug($"webrtc-rest PUT result for {_restServerUri}/{sendType}/{_ourID}/{_theirID} {res.StatusCode}.");
        }