Introduction

Enswitch can hide phone numbers, if required for legal compliance or other purposes. This is done using a database table, and optionally an external web service. Customers are reminded that they should review their provider's conditions for the use and caching of data.

Every time a phone number is going to be displayed to a user Enswitch checks if the number should be hidden. If there is a record for the number in the "secret_numbers" database table then the "hide" column will be used.

If there is no record in the "secret_numbers" table and there is a URL configured in the "Secret numbers source URL" global configuration then a GET request will be made to the web page at the specified URL. The URL string will have the following characters replaced:

  1. %uniqueid will be replaced with a unique identifier, for example the uniqueid of the call
  2. %field will be replaced with the name of the data field, for example the "dtype" of an outbound call
  3. %number will be replaced with the number being checked

The web page must return JSON containing a "hide" field with a value of 0 for don't hide or 1 for hide. The value returned will be stored in the "secret_numbers" table for future reference.

If the "Secret numbers source URL" global configuration is not set then customers should populate the "secret_numbers" table using some other method of their choice, otherwise the number will not be hidden.

The following global configuration items can be set:

  1. Secret numbers debug: Whether or not to log debugging information.
  2. Secret numbers delete after: Number of days to delete entries in the "secret_numbers" table after.
  3. Secret numbers digits to replace: The number of digits to replace on hidden numbers, applied from the end backwards.
  4. Secret numbers replacement character: The character to replace hidden numbers with.
  5. Secret numbers source URL: The URL to query for whether to hide a number or not.

Logging is written to the Enswitch trace file.