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());
            }
        }