Exemple #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
Exemple #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
Exemple #3
0
    def get_pbx_account_balance(user):
        """
		Get current user account balance
		:param user: user instance
		:return: {float} current balance
		"""
        host = settings.API_URLS['api']['host']
        api_version = settings.API_URLS['api']['api_version']
        method = settings.API_URLS['api']['balance']

        url = '{host}{api_version}{method}'.format(host=host,
                                                   api_version=api_version,
                                                   method=method)

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

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

        logger = LogService()
        logger.error(Code.GET_BALANCE_ERR,
                     data=json.loads(content),
                     status_code=response.status_code)
        return None
Exemple #4
0
    def get_common_stat(params, user):
        """
		Get statistics from api
		:param params: ApiParameters instance
		:param user: User instance
		:return: json type
		"""
        method = settings.API_URLS['api']['common_stat']
        api_response = requests.get(
            params.get_request_string(method),
            headers={
                'Authorization':
                '%s:%s' %
                (user.userprofile.user_key,
                 CommonService.get_sign(params, method, params.api_version,
                                        user.userprofile.secret_key))
            })
        if api_response.ok:
            return ServiceResponse(
                api_response.ok,
                [Call(s) for s in json.loads(api_response.content)['stats']])
        return ServiceResponse(api_response.ok,
                               status_code=api_response.status_code)
Exemple #5
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
	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
	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
	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
	def get_pbx_account_balance(user):
		"""
		Get current user account balance
		:param user: user instance
		:return: {float} current balance
		"""
		host = settings.API_URLS['api']['host']
		api_version = settings.API_URLS['api']['api_version']
		method = settings.API_URLS['api']['balance']

		url = '{host}{api_version}{method}'.format(host=host, api_version=api_version, method=method)

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

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

		logger = LogService()
		logger.error(Code.GET_BALANCE_ERR, data=json.loads(content), status_code=response.status_code)
		return None
	def get_pbx_stat(params, user):
		"""
		Get ats statistics from api
		:param params: CallParameters instance
		:param user: User instance
		:return: json type
		"""
		method = settings.API_URLS['api']['pbx_stat']

		api_response = requests.get(params.get_request_string(method), headers={'Authorization': '%s:%s' % (user.userprofile.user_key, CommonService.get_sign(params, method, params.api_version, user.userprofile.secret_key))})
		if api_response.ok:
			return ServiceResponse(api_response.ok, [CallPBX(s) for s in json.loads(api_response.content)['stats']])
		return ServiceResponse(api_response.ok, status_code=api_response.status_code)