Ejemplo n.º 1
0
        public async Task <UserAgentsResultV2> UserAgents(UserAgentSearchParamsV2 searchParams)
        {
            if (searchParams == null)
            {
                throw new HttpResponseException(HttpStatusCode.BadRequest);
            }

            var searchParamsDto = new UserAgentSearchParamsDto()
            {
                Caller = searchParams.Caller,
                Callee = searchParams.Callee,
                IncludeCodecsInCall = searchParams.IncludeCodecsInCall,
                Filters             = searchParams.Filters
            };

            UserAgentsResultDto uaResult = await _discoveryService.GetUserAgentsAsync(searchParamsDto);

            var result = new UserAgentsResultV2
            {
                Profiles = uaResult.Profiles.Select(p => new ProfileDtoV2()
                {
                    Name = p.Name, Sdp = p.Sdp
                }).ToList(),
                UserAgents = uaResult.UserAgents.Select(ua => new UserAgentDtoV2()
                {
                    SipId       = ua.SipId,
                    ConnectedTo = ua.ConnectedTo,
                    Profiles    = ua.Profiles,
                    MetaData    = ua.MetaData.Select(m => new KeyValuePairDtoV2(m.Key, m.Value)).ToList()
                }).ToList()
            };

            return(result);
        }
Ejemplo n.º 2
0
        public async Task <SrDiscovery> Post()
        {
            log.Debug("Received request for user agents");
            var parameters = (SrDiscoveryParameters)Request.Properties["SRDiscoveryParameters"];

            var searchParams = new UserAgentSearchParamsDto()
            {
                Caller = parameters.Caller,
                Callee = parameters.Callee,
                IncludeCodecsInCall = parameters.IncludeCodecsInCall,
                Filters             = parameters.Filters
            };

            UserAgentsResultDto uaResult;

            using (new TimeMeasurer("Discovery Get user agents"))
            {
                uaResult = await _discoveryService.GetUserAgentsAsync(searchParams);
            }

            if (uaResult == null)
            {
                log.Info("No user agents found returned");
                return(new SrDiscovery());
            }

            log.Debug("Returning {0} useragents and {1} profiles.",
                      uaResult.UserAgents != null ? uaResult.UserAgents.Count : 0,
                      uaResult.Profiles != null ? uaResult.Profiles.Count : 0);

            var profiles = uaResult.Profiles == null ? new List <Profile>()
                : uaResult.Profiles.Select(p => new Profile()
            {
                Name = p.Name, Sdp = p.Sdp
            }).ToList();

            var userAgents = uaResult.UserAgents == null ? new List <UserAgent>() : uaResult.UserAgents.Select(ua => new UserAgent()
            {
                SipId       = ua.SipId,
                ConnectedTo = ua.ConnectedTo,
                ProfileRec  = ua.Profiles.Select(p => new UserAgentProfileRef {
                    Name = p
                }).ToList(),
                MetaData = ua.MetaData.Select(m => new UserAgentMetaData()
                {
                    Key = m.Key, Value = m.Value
                }).ToList()
            }).ToList();

            return(new SrDiscovery()
            {
                UserAgents = userAgents,
                Profiles = profiles
            });
        }
Ejemplo n.º 3
0
        public UserAgentsResultDto UserAgents(UserAgentSearchParamsDto searchParams)
        {
            if (searchParams == null)
            {
                throw new HttpResponseException(HttpStatusCode.BadRequest);
            }

            UserAgentsResultDto uaResult = _discoveryService.GetUserAgents(searchParams.Caller, searchParams.Callee, searchParams.Filters, searchParams.IncludeCodecsInCall);

            return(uaResult);
        }
Ejemplo n.º 4
0
        public async Task <UserAgentsResultDto> GetUserAgentsAsync(UserAgentSearchParamsDto searchParams)
        {
            using (var client = new HttpClient())
            {
                var url = new Uri(ApplicationSettings.CcmHost, "api/discovery/useragents");
                log.Debug("Getting useragents from {0}", url);
                var response = await client.PostAsJsonAsync(url, searchParams).ConfigureAwait(false);

                if (!response.IsSuccessStatusCode)
                {
                    log.Warn("Unable to get discovery data. Response: {0} {1}", response.StatusCode, response.ReasonPhrase);
                    return(null);
                }
                return(await response.Content.ReadAsAsync <UserAgentsResultDto>());
            }
        }
Ejemplo n.º 5
0
        public async Task <SrDiscovery> UserAgents()
        {
            var parameters = (SrDiscoveryParameters)Request.Properties["SRDiscoveryParameters"];

            var searchParams = new UserAgentSearchParamsDto
            {
                Caller = parameters.Caller,
                Callee = parameters.Callee,
                IncludeCodecsInCall = parameters.IncludeCodecsInCall,
                Filters             = parameters.Filters
            };

            log.Trace("Discovery API - requesting 'useragents'", searchParams);

            UserAgentsResultDto uaResult = await _discoveryService.GetUserAgentsAsync(searchParams, Request);

            if (uaResult == null)
            {
                log.Info("No user agents returned for DiscoveryV1");
                return(new SrDiscovery());
            }

            var profiles = uaResult.Profiles?.Select(p => new Profile()
            {
                Name = p.Name, Sdp = p.Sdp
            }).ToList() ?? new List <Profile>();

            var userAgents = uaResult.UserAgents?.Select(ua => new UserAgent()
            {
                SipId       = ua.SipId,
                ConnectedTo = ua.ConnectedTo,
                ProfileRec  = ua.Profiles.Select(p => new UserAgentProfileRef {
                    Name = p
                }).ToList(),
                MetaData = ua.MetaData.Select(m => new UserAgentMetaData()
                {
                    Key = m.Key, Value = m.Value
                }).ToList()
            }).ToList() ?? new List <UserAgent>();

            log.Debug("Discovery V1 Returning {0} useragents and {1} profiles", uaResult.UserAgents?.Count ?? 0, uaResult.Profiles?.Count ?? 0);

            return(new SrDiscovery {
                UserAgents = userAgents, Profiles = profiles
            });
        }
Ejemplo n.º 6
0
        public async Task <UserAgentsResultV2> UserAgents(UserAgentSearchParamsV2 searchParams)
        {
            log.Trace("Discovery V2 API - requesting 'useragents'", searchParams);

            if (searchParams == null)
            {
                log.Debug("Requesting useragents from Discovery V2, but search params is null");
                throw new HttpResponseException(HttpStatusCode.BadRequest);
            }

            var searchParamsDto = new UserAgentSearchParamsDto
            {
                Caller = searchParams.Caller,
                Callee = searchParams.Callee,
                IncludeCodecsInCall = searchParams.IncludeCodecsInCall,
                Filters             = searchParams.Filters
            };

            UserAgentsResultDto uaResult = await _discoveryService.GetUserAgentsAsync(searchParamsDto, Request);

            log.Debug("Returning {0} useragents and {1} profiles (V2).", uaResult.UserAgents?.Count ?? 0, uaResult.Profiles?.Count ?? 0);

            var result = new UserAgentsResultV2
            {
                Profiles = uaResult?.Profiles?.Select(p => new ProfileDtoV2 {
                    Name = p.Name, Sdp = p.Sdp
                }).ToList() ?? new List <ProfileDtoV2>(),
                UserAgents = uaResult?.UserAgents?.Select(ua => new UserAgentDtoV2
                {
                    SipId       = ua.SipId,
                    ConnectedTo = ua.ConnectedTo,
                    Profiles    = ua.Profiles,
                    MetaData    = ua.MetaData?.Select(m => new KeyValuePairDtoV2(m.Key, m.Value)).ToList() ?? new List <KeyValuePairDtoV2>()
                }).ToList() ?? new List <UserAgentDtoV2>()
            };

            return(result);
        }
Ejemplo n.º 7
0
        public async Task <UserAgentsResultDto> GetUserAgentsAsync(UserAgentSearchParamsDto searchParams, HttpRequestMessage originalRequest)
        {
            var url = GetUrl("useragents");

            return(await Send <UserAgentsResultDto>(url, HttpMethod.Post, originalRequest, searchParams));
        }