function mo2f_collect_attributes($email, $attributes)
{
    if (get_option('mo2f_deviceid_enabled')) {
        $rba_attributes = new Miniorange_Rba_Attributes();
        $rba_response = json_decode($rba_attributes->mo2f_collect_attributes($email, $attributes), true);
        //collect rba attributes
        if (json_last_error() == JSON_ERROR_NONE) {
            if ($rba_response['status'] == 'SUCCESS') {
                //attribute are collected successfully
                $sessionUuid = $rba_response['sessionUuid'];
                $rba_risk_response = json_decode($rba_attributes->mo2f_evaluate_risk($email, $sessionUuid), true);
                // evaluate the rba risk
                if (json_last_error() == JSON_ERROR_NONE) {
                    if ($rba_risk_response['status'] == 'SUCCESS' || $rba_risk_response['status'] == 'WAIT_FOR_INPUT') {
                        $mo2f_rba_status = array();
                        $mo2f_rba_status['status'] = $rba_risk_response['status'];
                        $mo2f_rba_status['sessionUuid'] = $sessionUuid;
                        $mo2f_rba_status['decision_flag'] = true;
                        return $mo2f_rba_status;
                    } else {
                        $mo2f_rba_status = array();
                        $mo2f_rba_status['status'] = $rba_risk_response['status'];
                        $mo2f_rba_status['sessionUuid'] = $sessionUuid;
                        $mo2f_rba_status['decision_flag'] = false;
                        return $mo2f_rba_status;
                    }
                } else {
                    $mo2f_rba_status = array();
                    $mo2f_rba_status['status'] = 'JSON_EVALUATE_ERROR';
                    $mo2f_rba_status['sessionUuid'] = $sessionUuid;
                    $mo2f_rba_status['decision_flag'] = false;
                    return $mo2f_rba_status;
                }
            } else {
                $mo2f_rba_status = array();
                $mo2f_rba_status['status'] = 'ATTR_NOT_COLLECTED';
                $mo2f_rba_status['sessionUuid'] = '';
                $mo2f_rba_status['decision_flag'] = false;
                return $mo2f_rba_status;
            }
        } else {
            $mo2f_rba_status = array();
            $mo2f_rba_status['status'] = 'JSON_ATTR_NOT_COLLECTED';
            $mo2f_rba_status['sessionUuid'] = '';
            $mo2f_rba_status['decision_flag'] = false;
            return $mo2f_rba_status;
        }
    } else {
        $mo2f_rba_status = array();
        $mo2f_rba_status['status'] = 'RBA_NOT_ENABLED';
        $mo2f_rba_status['sessionUuid'] = '';
        $mo2f_rba_status['decision_flag'] = false;
        return $mo2f_rba_status;
    }
}