Jump to: navigation, search

GDPR Compliance

Feature Server release includes the following python script:

  • forgetMe.py—Deletes the voicemail data of a customer when requested.

You can run this python script on the master Feature Server instance to delete the voicemail data.

The customer-related information received from the common Web UI will be transformed into a JSON input file. The forgetMe.py script will fetch the JSON files added to the gdpr-directory option configured in the [gdpr] section of master Feature Server during the last 24 hours and obtain the ANI and caller id. The script will then set the expiration time to 21 days for the voicemails corresponding to the ANI obtained. The voicemails will be deleted after the expiration time.

Forget Me

The forgetMe.py script will parse the input JSON file and obtain the ANI. It will check whether the ANI has any voicemail information associated in the Feature Server Cassandra database. If any data is present, then the respective records will be queried in the column families: mailmessage, message_bytes, and mailboxmessages using its key and the expiration time will be set to 21 days. If no messages are present for an ANI, the operation will be skipped and the appropriate status messages will be written to the log file. The log file is in the format: sipfs-forgetMe-<DDMMYYYY>.log. The output file includes the input file information, and the execution results, success and failures with appropriate error information.


  • Feature Server does not delete the data upon manual script execution. Instead, it will set the expiration time which will make the data inaccessible.
  • The Feature Server script will query the Cassandra database based on the ANI which is received as one of the inputs.
  • The expiration time (TTL) of the Voicemail messages and the metadata of the corresponding ANI will be set to 21 days.
  • Voicemail messages corresponding to an ANI residing in different mailboxes will also be set with the new expiration time.
  • The expiration time will be set for the corresponding records of the column families: mailmessage, mailboxmessages, and message_bytes from sipfs keyspace.
  • The script will be invoked once a day scheduled by automatic triggering within Feature Server.

Sample input JSON file

The following is a sample input JSON file:

            {"name":"John Doe"},
            {"name": "John Q. Doe"},
            {"name":"Dan Akroyd"},
            {"fbid":"Dan Akroyd"}
   "gim-attached-data":{"kvlist":["AcctNum", "SSN"]}

If the retention limit is already set for voicemail messages, then the retention limit of the voicemail will be set as the expiration time, provided the retention limit is less than 21 days.

If the customer makes a second request to delete the voicemails associated with their ANI, then voicemail set with expiration time during the first request will be skipped during execution. The voicemails deposited after the first request alone will be set with the new expiration time.

Sample Output File

| forgetMe.py script run |
<input.json>//actual content
execution start time = 2018-04-19 13:23:22
[debug]ANI '555556161' has voicemail data
[debug]Expiration time set for 555556161 in mailmessage
[debug]Expiration time set for 555556161 in mailboxmessages
[debug]Expiration time set for 555556161 in message_bytes
[debug]ANI '555556162' has no voicemail data 
execution end time = 2018-04-19 13:23:22

Scheduling the forget-me Task

The forgetMe.py script execution should be scheduled once a day from SIP Feature Server. You can schedule the forget-me task as described in Scheduled maintenance tasks.

The "update-mailbox-counters" task should run once a day to overcome the mailbox counter issue caused by running the "forget-me" task.


Comment on this article:

blog comments powered by Disqus
This page was last modified on July 20, 2018, at 02:03.