Asistente de voz con IA con Python, PJSIP y VoIPstudio (Parte 1)
- Tim Meredith
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:
- Aplicación Python
- PJSIP (bindings de PJSUA2)
- Trunk SIP de VoIPstudio
- Despliegue en máquina local
Cuando se cumple una condición de alarma:
- El script de Python se registra en VoIPstudio mediante credenciales SIP.
- Inicia una llamada SIP saliente.
- Al contestar, reproduce un archivo de alerta .wav pregrabado.
- 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:
- SCADA activa la alarma.
- El cliente Python inicia la llamada a través de VoIPstudio.
- La IA genera una alerta hablada dinámica.
- La persona responde verbalmente.
- La IA procesa la entrada de voz.
- 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
- El sistema SCADA activa la alarma.
- La aplicación Python inicia un INVITE SIP a través de VoIPstudio.
- La llamada se enruta al número de destino.
- El motor de IA genera la alerta hablada.
- El audio RTP se transmite en tiempo real.
- La respuesta humana se captura y se procesa.
- La lógica de la llamada continúa según el árbol de decisión de la IA.
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:
- Monitorización de infraestructura de TI: llamadas de escalado que informan de códigos de error precisos a los ingenieros de guardia.
- Sistemas de seguridad inteligentes: llamadas salientes automatizadas a contactos de emergencia cuando las actividades monitorizadas no registran confirmación.
- Sistemas de confirmación de citas: confirmación y reprogramación por voz bidireccional sin operadores humanos.
- Sistemas IVR impulsados por IA: sustitución de árboles DTMF predefinidos por agentes conversacionales.
- Escalado de eventos IoT: alertas de voz activadas por sensores ambientales o superación de umbrales.
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.
Más del blog
¿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!