Asistente de voz con IA con Python, PJSIP y VoIPstudio (Parte 1)

Una ilustración con los logotipos de Python, PJSIP y VoIPstudio y una ilustración de un asistente de voz con IA

Tabla de contenido

Un cliente de VoIPstudio necesitaba que su sistema SCADA llamara automáticamente a los ingenieros cuando se activaran alarmas críticas.

Mediante un cliente SIP de Python de código abierto basado en PJSIP (PJSUA2), conectaron su infraestructura directamente a un trunk SIP de VoIPstudio y comenzaron a realizar llamadas de voz automatizadas activadas por eventos del sistema.

Después ampliaron la solución integrando un motor conversacional de IA local, transformando las llamadas de alarma unidireccionales en interacciones de voz dinámicas y bidireccionales.

La implementación completa del cliente es de código abierto.

Este caso demuestra cómo VoIPstudio proporciona una base SIP basada en estándares y orientada a desarrolladores para aplicaciones de voz programables y con IA.

La evolución de la voz: de las personas a los sistemas

La voz ya no es solo comunicación entre personas.

Los entornos operativos modernos requieren cada vez más escalado de sistema a persona:

  • Alarmas de control industrial
  • Fallos de infraestructura de TI
  • Eventos activados por IoT
  • Umbrales de monitorización
  • Alertas de seguridad

El correo electrónico y los SMS suelen ser insuficientes para incidentes de alta prioridad. La voz sigue siendo el canal de escalado en tiempo real más fiable.

El caso de uso inicial: escalada de alarmas SCADA

El cliente opera un sistema SCADA (Supervisory Control and Data Acquisition) que monitoriza infraestructuras críticas.

Requisito:

Cuando se activa una alarma prioritaria, el sistema debe llamar inmediatamente al ingeniero responsable y emitir una advertencia clara, con los siguientes requisitos empresariales:

  • Sin intervención humana.
  • Sin marcación manual.
  • Sin centralita PBX de hardware.

Descripción general de la arquitectura

La solución se diseñó deliberadamente para ser mínima y basada en estándares:

Cuando se cumple una condición de alarma:

  1. El script de Python se registra en VoIPstudio mediante credenciales SIP.
  2. Inicia una llamada SIP saliente.
  3. Al contestar, reproduce un archivo de alerta .wav pregrabado.
  4. La llamada finaliza cuando termina la reproducción.

Esto no requirió SDK propietarios ni middleware de telefonía, solo SIP.

La base de código abierto: voip-client-python

En el núcleo de esta implementación hay un proyecto de código abierto desarrollado por Luis Miguel.

Repositorio:
https://github.com/luismiguelbp/voip-client-python
Proyecto: voip-client-python

Se trata de un cliente SIP funcional en Python creado con PJSIP / PJSUA2, que demuestra:

  • Registro SIP
  • Inicio y finalización de llamadas
  • Gestión de medios RTP
  • Inyección de reproducción de audio
  • Gestión del ciclo de vida de la llamada basada en eventos

En lugar de ser un ejemplo teórico, es código funcional e inspeccionable que los desarrolladores pueden bifurcar y adaptar.

Ejemplo (lógica simplificada de realización de llamadas)

A continuación se muestra un ejemplo conceptual simplificado basado en cómo se utiliza PJSUA2 en Python:

				
					call = MyCall(account, pj.CallOpParam(True))
call.makeCall("sip:+441234567890@sip.voipstudio.com", pj.CallOpParam(True))
				
			

A partir de ahí, los callbacks de medios permiten inyectar archivos de audio o flujos de audio generados en tiempo real.

De alertas estáticas a conversaciones con IA

El cliente no se limitó a reproducir un archivo .wav estático.

Ampliaron la arquitectura integrando un motor conversacional de IA local que se ejecuta en la misma máquina que el cliente SIP.

El flujo mejorado:

  1. SCADA activa la alarma.
  2. El cliente Python inicia la llamada a través de VoIPstudio.
  3. La IA genera una alerta hablada dinámica.
  4. La persona responde verbalmente.
  5. La IA procesa la entrada de voz.
  6. El sistema continúa la lógica conversacional.

El resultado es una interacción de voz bidireccional sobre un trunk SIP estándar.

En lugar de:

“Alarma crítica de temperatura.”

Ahora el sistema puede decir:

“Se ha activado una alarma de temperatura en el Sitio B. ¿Confirma que asume la responsabilidad? Por favor, diga ‘confirmado’ para aceptar.”

Y luego procesar la respuesta en tiempo real.

No hay dependencia de telefonía con IA en la nube ni una plataforma propietaria de bots de voz. Solo SIP + Python + IA. VoIPstudio solo proporciona la capa de transporte de telefonía.

Descripción general de la arquitectura

A continuación se muestra una representación simplificada de la arquitectura de producción utilizada en este despliegue:

				
					+--------------------+        SIP        +----------------------+
|   Python App       | <----------------> |    VoIPstudio SIP   |
| (voip-client)      |                    |      Infrastructure  |
|                    |                    |  - Authentication    |
|  - Alarm Logic     |                    |  - Call Routing      |
|  - Call Control    |                    |  - PSTN Termination  |
|  - AI Integration  |                    |  - Number Provision  |
+---------+----------+                    +----------+-----------+
          |                                            |
          | RTP Media                                  |
          v                                            v
+--------------------+                      +----------------------+
|  Local AI Engine   |                      |   Public Telephone   |
|                    |                      |      Network         |
|  - STT             |                      |                      |
|  - Conversational  |                      |  Engineer / Operator |
|  - Response Gen    |                      |      Receives Call   |
+--------------------+                      +----------------------+

				
			

Flujo de llamadas

Como la solución se basa en SIP estándar:

  • Puede desplegarse on-premise o en la nube.
  • Los motores de IA pueden sustituirse sin cambiar la infraestructura de telefonía.
  • La lógica de la llamada sigue siendo totalmente programable.

Esta separación entre la inteligencia y el transporte de telefonía es lo que hace que la arquitectura sea escalable.

Más allá de SCADA: dónde se aplica esta arquitectura

El mismo patrón VoIPstudio + Python + IA permite:

NOTA: Aquí, en cada caso, VoIPstudio puede actuar como la base SIP fiable.

Explore el código

Si está creando sistemas de automatización, asistentes de IA, plataformas de monitorización o flujos de trabajo de escalado inteligente, empiece aquí:

Repositorio:
https://github.com/luismiguelbp/voip-client-python
Proyecto: voip-client-python

Revíselo, bifúrquelo, amplíelo y, después, conéctelo a un trunk SIP de VoIPstudio y empiece a experimentar.

¿Listo para habilitar voz en sus aplicaciones?

VoIPstudio ofrece:

  • Conectividad SIP global
  • Trunking flexible
  • Configuración orientada a desarrolladores
  • Terminación PSTN fiable

Inicie una prueba gratuita y empiece a crear sus propias soluciones de voz programables.

La inteligencia es suya. Nosotros proporcionamos la capa de voz.

Leer este post artículo en: English Deutsch Polski Português

¿Quiere mejorar su ¿comunicación empresarial?

Desbloquee la potencia de un centro de llamadas de clase empresarial a precios asequibles: sin hardware, sin demoras, ¡sin sorpresas!

Instalar VoIPstudio en Linux

.deb

1. Descarga el paquete .deb

				
					wget https://repo.ssl7.net/repo/voipstudio/stable/main/binary/VoIPstudio_current_amd64.deb
				
			

2. Instala VoIPstudio

				
					sudo dpkg -i VoIPstudio_current_amd64.deb