def METHOD_NAME(webhook_url, http_request_type, post_kwargs={}) -> Tuple[bool, str]:
    OUTGOING_WEBHOOK_TIMEOUT = 10
    if http_request_type not in ["POST", "GET"]:
        raise Exception(f"Wrong http_method parameter: {http_request_type}")
    parsed_url = urlparse(webhook_url)
    # ensure the url looks like url
    if parsed_url.scheme not in ["http", "https"]:
        return False, "Malformed url"
    if not parsed_url.netloc:
        return False, "Malformed url"
    if not live_settings.DANGEROUS_WEBHOOKS_ENABLED:
        # Get the ip address of the webhook url and check if it belongs to the private network
        try:
            webhook_url_ip_address = socket.gethostbyname(parsed_url.hostname)
        except socket.gaierror:
            return False, "Cannot resolve name in url"
        if not live_settings.DANGEROUS_WEBHOOKS_ENABLED:
            if ipaddress.ip_address(socket.gethostbyname(webhook_url_ip_address)).is_private:
                return False, "This url is not supported for outgoing webhooks"
    try:
        if http_request_type == "POST":
            r = requests.post(webhook_url, timeout=OUTGOING_WEBHOOK_TIMEOUT, **post_kwargs)
        elif http_request_type == "GET":
            r = requests.get(webhook_url, timeout=OUTGOING_WEBHOOK_TIMEOUT)
        else:
            raise Exception()
        r.raise_for_status()
        return True, "OK 200"
    except requests.exceptions.HTTPError:
        return False, "HTTP error {}".format(r.status_code)
    except requests.exceptions.SSLError:
        return False, "ssl certificate error"
    except requests.exceptions.ConnectionError:
        return False, "Connection error happened. Probably that's because of network or proxy."
    except requests.exceptions.MissingSchema:
        return False, "Url {} is incorrect. http:// or https:// might be missing.".format(webhook_url)
    except requests.exceptions.ChunkedEncodingError:
        return False, "File content or headers might be wrong."
    except requests.exceptions.InvalidURL:
        return False, "Url {} is incorrect".format(webhook_url)
    except requests.exceptions.TooManyRedirects:
        return False, "Multiple redirects happened. That's suspicious!"
    except requests.exceptions.Timeout:
        return False, f"Request timeout {OUTGOING_WEBHOOK_TIMEOUT} secs exceeded."
    except requests.exceptions.RequestException:  # This is the correct syntax
        return False, "Failed to call outgoing webhook"
    except Exception:
        return False, "Failed to call outgoing webhook"