> This page is for Applications Protection.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.humansecurity.com/llms.txt.

# Callout Enforcer

This guide describes how to install and configure self-hosted **HUMAN Callout Enforcer**.

### General information

HUMAN Callout Enforcer is a service running on client premises, which communicates with the client's Envoy's ["ext_proc" (External Processing)](https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/ext_proc_filter) filter.\
For every request Envoy sends Request Headers to Callout Enforcer and waits for the Status Response. Status Response could be either "pass" or "block and display Captcha page".

![](/_fern-img/3bab8172eb7e1f4e0a9616161072140913cc83658cbc0868996f9c695885fab0.webp)

### Details about HUMAN Callout Enforcer

1. by default it uses configuration file named `pxconf.json`, located in `/etc` folder
2. by default it listens on `50051` port
3. `perimeterx/px_callout_enforcer:latest` docker image contains HUMAN Callout Enforcer application

### Configure steps for Envoy and HUMAN Callout Enforcer

1. Configure Envoy's ext_proc filter [Details](https://docs.humansecurity.com/applications-and-accounts/docs/envoy-configuration)
2. Add a new "callout" cluster to Envoy configuration [Details](https://docs.humansecurity.com/applications-and-accounts/docs/envoy-configuration)
3. Configure HUMAN Callout Enforcer (`pxconf.json` file) [Details](https://docs.humansecurity.com/applications-and-accounts/docs/enforcer-configuration-1)
4. Pull and run `perimeterx/px_callout_enforcer:latest` docker image (mount `pxconf.json` to `/etc/pxconf.json` file in the container and expose 50051 port) [Details](https://docs.humansecurity.com/applications-and-accounts/docs/docker-image)

### Optional steps

1. Enable SSL/TLS certificate [Details](https://docs.humansecurity.com/applications-and-accounts/docs/advanced-configuration-2)

### Testing

Complete example of both Envoy and HUMAN Callout Enforcer configuration and commands could be found here: [Complete Example](https://docs.humansecurity.com/applications-and-accounts/docs/complete-example)