Exemplo n.º 1
0
    def get_pbx_sip(user):
        """
		Get sip number
		:param user: user
		:return: sip
		"""
        method = settings.API_URLS['api']['sip']

        # WARNING: Creates ApiParams with {start} and {end} params. Needs to be refactored
        params = ApiParams()
        url = params.get_request_string(method)

        response = requests.get(
            url,
            headers={
                'Authorization':
                '%s:%s' %
                (user.userprofile.user_key,
                 CommonService.get_sign(params, method, params.api_version,
                                        user.userprofile.secret_key))
            })
        content = response.content

        if response.ok:
            sips = json.loads(content)['sips']
            sip = int(
                filter(lambda s: s['display_name'] == 'SIP', sips)[0]['id'])
            return sip

        logger = LogService()
        logger.error(Code.SIP_GETTING_ERR,
                     data=json.loads(content),
                     status_code=response.status_code)
        return None
Exemplo n.º 2
0
    def get_call_cost(user, to):
        """
		Get the cost of the call
		:param to: target phone number
		:return:
		"""
        method = settings.API_URLS['api']['call_cost']

        # WARNING: Creates ApiParams with {start} and {end} params. Needs to be refactored
        params = ApiParams({'number': to})
        url = params.get_request_string(method)

        response = requests.get(
            url,
            headers={
                'Authorization':
                '%s:%s' %
                (user.userprofile.user_key,
                 CommonService.get_sign(params, method, params.api_version,
                                        user.userprofile.secret_key))
            })
        content = response.content

        if response.ok:
            return json.loads(content)['info']

        logger = LogService()
        logger.error(Code.GET_CALL_COST_ERR,
                     data=json.loads(content),
                     status_code=response.status_code)
        return None
Exemplo n.º 3
0
	def request_callback(user, from_number, to_number):
		"""
		Request the callback
		:param user: user instance
		:param form: prom number
		:param to: to number
		:return:
		"""
		method = settings.API_URLS['api']['request_callback']

		# WARNING: Creates ApiParams with {start} and {end} params. Needs to be refactored
		params = ApiParams({'from': from_number, 'to': to_number})
		url = params.get_request_string(method)

		response = requests.get(url, headers={'Authorization': '%s:%s' % (user.userprofile.user_key, CommonService.get_sign(params, method, params.api_version, user.userprofile.secret_key))})
		content = response.content

		if response.ok:
			callback = DBService.register_callback(user.userprofile, from_number, to_number)
			if callback:
				return json.loads(content)

		logger = LogService()
		logger.error(Code.REQUEST_CALLBACK_ERR, data=json.loads(content), status_code=response.status_code)
		return None
Exemplo n.º 4
0
def get_statistic(request, template):
    """
	Controller to get test calls file
	:param request: HTTP GET request
	:param template: html template
	:return: json format
	"""
    params = ApiParams(request.GET or None)

    update_res = PBXDataService.update_calls_list(params, request.user)
    logger.info(Code.UCLEXE,
                is_success=update_res.is_success,
                status_code=update_res.status_code,
                message=update_res.message,
                data=update_res.data)

    filter_params = CallsFilterParams(request.GET)
    calls = [
        CallRecord(call=call)
        for call in request.user.userprofile.call_set.filter(
            **filter_params.params).exclude(**filter_params.exclude_params).
        filter(filter_params.call_type_query).order_by('date')
    ]
    calls_stat = CallsStat(calls)

    # send_mail.apply_async((MailMessage(settings.INFO_EMAIL, 'Попытка обновления статы', 'mail_stat_updated.html', {'username': request.user.username}, request.user.email),), countdown=60)

    return render_to_response(template, {
        'calls': calls,
        'calls_stat': calls_stat
    },
                              context_instance=RequestContext(request))
Exemplo n.º 5
0
	def get_call_cost(user, to):
		"""
		Get the cost of the call
		:param to: target phone number
		:return:
		"""
		method = settings.API_URLS['api']['call_cost']

		# WARNING: Creates ApiParams with {start} and {end} params. Needs to be refactored
		params = ApiParams({'number': to})
		url = params.get_request_string(method)

		response = requests.get(url, headers={'Authorization': '%s:%s' % (user.userprofile.user_key, CommonService.get_sign(params, method, params.api_version, user.userprofile.secret_key))})
		content = response.content

		if response.ok:
			return json.loads(content)['info']

		logger = LogService()
		logger.error(Code.GET_CALL_COST_ERR, data=json.loads(content), status_code=response.status_code)
		return None
Exemplo n.º 6
0
	def get_pbx_sip(user):
		"""
		Get sip number
		:param user: user
		:return: sip
		"""
		method = settings.API_URLS['api']['sip']

		# WARNING: Creates ApiParams with {start} and {end} params. Needs to be refactored
		params = ApiParams()
		url = params.get_request_string(method)

		response = requests.get(url, headers={'Authorization': '%s:%s' % (user.userprofile.user_key, CommonService.get_sign(params, method, params.api_version, user.userprofile.secret_key))})
		content = response.content

		if response.ok:
			sips = json.loads(content)['sips']
			sip = int(filter(lambda s: s['display_name'] == 'SIP', sips)[0]['id'])
			return sip

		logger = LogService()
		logger.error(Code.SIP_GETTING_ERR, data=json.loads(content), status_code=response.status_code)
		return None
Exemplo n.º 7
0
    def request_callback(user, from_number, to_number):
        """
		Request the callback
		:param user: user instance
		:param form: prom number
		:param to: to number
		:return:
		"""
        method = settings.API_URLS['api']['request_callback']

        # WARNING: Creates ApiParams with {start} and {end} params. Needs to be refactored
        params = ApiParams({'from': from_number, 'to': to_number})
        url = params.get_request_string(method)

        response = requests.get(
            url,
            headers={
                'Authorization':
                '%s:%s' %
                (user.userprofile.user_key,
                 CommonService.get_sign(params, method, params.api_version,
                                        user.userprofile.secret_key))
            })
        content = response.content

        if response.ok:
            callback = DBService.register_callback(user.userprofile,
                                                   from_number, to_number)
            if callback:
                return json.loads(content)

        logger = LogService()
        logger.error(Code.REQUEST_CALLBACK_ERR,
                     data=json.loads(content),
                     status_code=response.status_code)
        return None