Borrar grabaciones de llamadas de empresa / grabaciones de llamadas bajo demanda por fecha

En este tutorial, aprenderás a eliminar grabaciones de llamadas en una fecha determinada. Esto le ayudará a minimizar los costes de almacenamiento de grabaciones de llamadas que puede que no necesite. Esto también podría ser útil si desea eliminar grabaciones por motivos de seguridad. La API de grabación de llamadas le permite recuperar todas las grabaciones de llamadas y permite filtrar por duración de la llamada, extensión, caller_id, dirección (entrante o saliente) y más. Por favor, eche un vistazo a la referencia api para ver todos los filtros posibles.

En este ejemplo, buscaremos las grabaciones de los últimos 7 días. Utilizaremos un script python para consultar las grabaciones de llamadas y, para cada grabación, eliminaremos la grabación.

Python es el lenguaje utilizado para construir el siguiente ejemplo; sin embargo, puede utilizar cualquier lenguaje con el que se sienta más cómodo. En este ejemplo se utiliza la siguiente librería Python:

Requisitos previos

Antes de comenzar, deberás tener una cuenta de Vonage Developer. Si no tienes una cuenta de Vonage Developer, usa esto guía para configurar y crear su Account.

Una vez que tenga una Account, tendrá que hacer lo siguiente siguiendo estas guías:

Para este ejemplo, tendrá que Suscribirse a la aplicación API de grabación de llamadas.

Autenticación

Luego de crear una aplicación y suscribirte a la API de grabación de llamadas, deberás iniciar sesión con tus credenciales de Vonage Business Communications. Esta aplicación de ejemplo utiliza la biblioteca de solicitudes para llamar a la función /api/accounts/ API. Eche un vistazo a la Guía para realizar una solicitud API para más detalles.

A continuación, crearemos una función que solicite el archivo /api/accounts API para generar un token de acceso.

Para ejecutar esta función, tendrá que pasar lo siguiente:

  • USERNAME - Nombre de usuario de Vonage Business Communications. Asegúrate de añadir @vbc.prod al nombre de usuario. firstname.lastname@vbc.prod.
  • PASSWORD - Contraseña de Vonage Business Communications.
  • CLIENT_ID - El identificador de cliente de tu aplicación Vonage Developer.
  • SECRET - El secreto de tu aplicación Vonage Developer.

Después de ejecutar esta función, debería ver la siguiente respuesta:

Obtener grabaciones de llamadas

Antes de llamar a la API company_call_recordings, necesitaremos pasar una cadena de fecha que esté en el pasado. Para este ejemplo, crearemos una fecha de 7 días en el pasado

Aquí, obtenemos la fecha actual utilizando datetime.datetime.now()utilice datetime.timedelta() para crear una fecha que sea days en el pasado. Aquí utilizamos 7. A continuación, restaremos la fecha actual de la fecha de hace 7 días, para obtener nuestra fecha. Por último, utilizaremos strftime() para convertir el objeto fecha en una cadena. Hemos establecido la hora en 00:00:00+0000lo que significa que obtendremos la fecha a medianoche UTC. Antes de que podamos pasar la fecha a la API de grabaciones de llamadas, necesitamos urlencode la fecha utilizando urllib.parse.quote_plus().

A continuación, solicitaremos la API de grabación de llamadas y utilizaremos la función access_token devuelto por el get_token() función. Esto devolverá una respuesta JSON de las grabaciones de llamadas. A continuación, pasaremos la fecha encoded_date en esta función

En este caso, llamamos al company_call_recordings/v1/api/ y pasando el siguiente parámetro:

  • account_id - El ID de cuenta de Vonage Business Communications. Puede utilizar self para referirse a la cuenta del usuario autenticado.
  • page - El número de páginas a solicitar.
  • page_size - El tamaño de página solicitado.
  • order - El orden de las grabaciones de llamadas devueltas
  • start:gte - Filtrar registros por fecha de inicio (mayor o igual a)

También podríamos pasar en start:lte que devolvería registros anteriores a la fecha dada.

Una vez que tengamos una lista de grabaciones de llamadas, haremos un bucle para borrar cada grabación. Antes de hacer esto, asegúrate de que tienes una copia de seguridad de las grabaciones. Eche un vistazo a la Guardar grabaciones de llamadas en Amazon S3 para guardar grabaciones en Amazon S3.

Borrar grabaciones de llamadas

En get_company_call_recordings() devuelve una lista de grabaciones de la cuenta. A continuación, crearemos una función para eliminar la grabación por su id de grabación.

Esta función toma la grabación del call_id y borrará la grabación de la llamada. Para este ejemplo, estamos configurando account_id a self.

A continuación, vamos a hacer un bucle con las grabaciones de llamadas del get_company_call_recordings() que escribimos y obtener las grabaciones call_id. Pasaremos en call_id en nuestro delete_call_recording() para borrar la grabación.

Aquí tenemos la grabación id del recordings y, a continuación, pasar ese call_id a la lista delete_call_recording función. Si tiene éxito, la respuesta será una respuesta 204 vacía.

Borrar grabaciones de llamadas a la carta

El borrado de grabaciones de llamadas a la carta será prácticamente igual que el borrado de grabaciones de llamadas, sin embargo, utilizaremos la función call_recordings API.

Como antes, necesitamos listar todas las grabaciones a la carta posteriores a una fecha determinada. En primer lugar, necesitamos obtener una lista de grabaciones de llamadas a la carta utilizando esta función.

En este caso, llamamos al call_recording API y pasando el siguiente parámetro:

  • account_id - El ID de cuenta de Vonage Business Communications. Puede utilizar self para referirse a la cuenta del usuario autenticado.
  • user_id - El identificador de usuario. Puede utilizar self para referirse al usuario autenticado.
  • page - El número de páginas a solicitar.
  • page_size - El tamaño de página solicitado.
  • order - El orden de las grabaciones de llamadas devueltas
  • start:gte - Filtrar registros por fecha de inicio (mayor o igual a)

A continuación, generaremos una fecha 7 días en el pasado y la utilizaremos para el start_date parámetro.

A continuación, escribiremos una función que llame a la función company_call_recordings API para eliminar la grabación mediante call_id.

A continuación, haremos un bucle con las grabaciones y escribiremos una función para eliminar la grabación de llamadas bajo demanda utilizando la función call_id.

Trabajo CRON

El último paso consiste en eliminar las grabaciones de llamadas cada semana mediante una tarea CRON. De esta forma, no tendremos que ejecutar estas funciones manualmente. Un CRON es una forma de ejecutar scripts periódicamente a horas, fechas o intervalos fijos. Puedes crear un trabajo CRON localmente ejecutando primero crontab -e en un sistema basado en OSX/Linux.

Para una máquina Windows:

  • Conectarse con una Account privilegiada, por ejemplo Administrador
  • Vaya a Inicio > Panel de control > Sistema y seguridad > Herramientas administrativas > Programador de tareas
  • En el panel derecho, haga clic en Crear tarea básica

Nuestro trabajo CRON se ejecutará cada 7 días. Este es el aspecto que tendrá la tarea CRON:

* * 7 * * delete_recordings.py >/dev/null 2>&1

En delete_vbc_recordings.py es un script que borrará tanto las grabaciones de llamadas como las grabaciones de llamadas bajo demanda que tengan más de 7 días. Eche un vistazo a https://crontab-generator.org/ para crear su propia tarea CRON.

Conclusión

Aquí, hemos mostrado cómo crear un simple script de trabajo CRON para borrar grabaciones de llamadas VBC y grabaciones de llamadas bajo demanda cada 7 días. Puede echar un vistazo a esto gist para ver el ejemplo de código completo.