Using the external policy server API with Pexip Infinity

Pexip Infinity's external policy API allows a vast range of call policy decisions to be taken by an external system, based on the data sources that are available to that external system.

When external policy is enabled, rather than using its own database and systems to retrieve service and participant data, Pexip Infinity Conferencing Nodes send the external policy server a service request over a RESTful API and the server should respond by returning the requested data to the Conferencing Node.

You must configure Pexip Infinity with the details of one or more external policy servers to which it can send policy API requests. You do this by configuring policy profiles with the addresses of one or more external policy server URLs and then associating each system location with one of those policy profiles. This means that different locations can use different policy servers for scalability and routing efficiency, if required. When a Conferencing Node needs to obtain data that is supported by external policy (such as service configuration information) it will request information from the policy server associated with the location hosting that node.

Policy flowchart highlighting external policy steps

Within a policy profile you can enable or disable support for each individual request type (avatars, service configuration, participant properties, media location, directory and registration requests). The requests can be subject to basic username and password authentication. For redundancy, you may also use a http load balancer in front of a pool of policy servers.

See Requests and responses when using the Pexip Infinity external policy API for full information about how to use the external policy API.

We recommend that each policy server uses the same underlying decision-making logic or database, so that consistent responses are returned. However, a policy server can apply different rules on a per-location basis, if required, as the requesting location is one of the parameters passed to the policy server in policy requests. Note that if the policy server does not return the expected service information e.g. the policy server cannot be reached, times out or returns invalid or incomplete data, Pexip Infinity will then attempt to obtain the relevant information from its own internal database (i.e. perform its standard behavior as when external policy is not in use).

Configuring policy profiles for external policy

You can configure Pexip Infinity to use both external and local policy depending on your requirements. When both external and local policy are enabled, external policy is applied first to retrieve the configuration data from the external system, and then local policy is applied to that retrieved data (which can then conditionally modify that data). The flow chart (right) shows Pexip Infinity's standard processing logic when policy profiles are used and highlights where external policy is applied.

To configure Pexip Infinity to use the external policy API:

  1. Go to Call control > Policy profiles.
  2. Select Add Policy profile and then configure that profile:

    • In the External policy server section, configure the URL of the policy server and any credentials required to access it.

      We strongly recommend that you use HTTPS (not HTTP) in production environments.

    • Enable the external lookup options for each type of data request (avatars, service configuration, participant properties, media location, directory and registration requests) that you want to submit to your external policy server, and save your changes.
  3. Go to Platform > Locations.
  4. Select each location in turn and specify the Policy profile that the Conferencing Nodes in that location should use when making policy decisions.

For more information on configuring policy profiles and how to combine external policy with local policy, see Configuring policy profiles.