def METHOD_NAME(func_name, data=None, endpoint=IPC_ENDPOINT_NFSESSION):
    """
    Make an IPC call
    :param func_name: function name
    :param data: the data to send, if will be passed a dict will be expanded to kwargs into the target function
    :param endpoint: used to override the endpoint on IPC via HTTP
    :return: the data if provided by the target function
    :raise: can raise exceptions raised from the target function
    """
    # Note: IPC over HTTP - handle a FULL objects serialization (like classes)
    #       IPC over AddonSignals - by default NOT HANDLE objects serialization,
    #         but we have implemented a double data conversion to support a full objects serialization
    #         (as predisposition for AddonConnector) the main problem is Kodi memory leak, see:
    #         https://github.com/xbmc/xbmc/issues/19332
    #         https://github.com/CastagnaIT/script.module.addon.connector
    if G.IPC_OVER_HTTP:
        return make_http_call(endpoint, func_name, data)
    return make_addonsignals_call(func_name, data)