Desarrollo VoIP+Backend para FreeSWITCH Multi-Cliente
Budget: $30 – $250 USD
Busco desarrollador VoIP + backend para montar una arquitectura con FreeSWITCH multi-cliente integrada a mi backend en NestJS y frontend ReactJS.
Objetivo general
Tener una PBX en FreeSWITCH multi-tenant donde:
Cada cliente (tenant) tenga su propio domain (ej: cliente1.midominio.com).
Desde el backend pueda definir cuántas llamadas simultáneas permite cada cliente (ej: 3, 5, 10 canales).
Todos los usuarios del cliente puedan llamar, pero respetando ese límite de canales.
El frontend ReactJS se conecte vía WebRTC/SIP al servidor usando credenciales efímeras (no fijas).
Stack tecnológico deseado
FreeSWITCH (Ubuntu) configurado para:
Multi-tenant (un dominio por cliente).
Directorio dinámico vía mod_xml_curl (usuarios generados desde el backend).
Registro de usuarios SIP efímeros.
Manejo de límites de canales por tenant.
Backend en NestJS con arquitectura limpia/hexagonal:
API REST y WebSocket/Socket.io para comunicación en tiempo real con el frontend.
Integración con FreeSWITCH (event socket / mod_xml_curl) para crear/borrar usuarios y controlar llamadas.
Gestión de tokens (JWT) para autenticar sesiones de los usuarios.
Uso de MongoDB para almacenar tenants, usuarios, permisos y límites de llamadas.
Frontend de ejemplo en ReactJS:
Un pequeño softphone web de ejemplo (login, marcar número, colgar, ver estado de llamada).
Consumo de la API NestJS (login → recibe token → obtiene credenciales SIP efímeras).
Conexión SIP/WebRTC al FreeSWITCH usando esas credenciales.
Mostrar de forma básica el número de llamadas activas y bloqueo cuando se supera el límite.
Requerimientos del profesional
Experiencia demostrable con FreeSWITCH (idealmente proyectos multi-tenant).
Buen dominio de NestJS, MongoDB, JWT y WebSocket/Socket.io.
Experiencia con ReactJS y softphones WebRTC/SIP es un plus muy importante.
Capacidad de documentar la instalación (Ubuntu) y dejar scripts/configuración reproducibles.
Entregables
Configuración de FreeSWITCH lista en mi VPS (con certificados SSL básicos).
Proyecto NestJS con:
Módulo de tenants, usuarios, límites de llamadas y emisión de tokens.
Integración con FreeSWITCH (mod_xml_curl / event socket) para crear usuarios efímeros.
Ejemplo funcional en ReactJS (softphone simple) usando token + socket.
Documentación corta de instalación y uso (README).
Por favor envía:
Proyectos similares realizados (FreeSWITCH/Asterisk + backend).
Tiempo estimado y propuesta económica.
Objetivo general
Tener una PBX en FreeSWITCH multi-tenant donde:
Cada cliente (tenant) tenga su propio domain (ej: cliente1.midominio.com).
Desde el backend pueda definir cuántas llamadas simultáneas permite cada cliente (ej: 3, 5, 10 canales).
Todos los usuarios del cliente puedan llamar, pero respetando ese límite de canales.
El frontend ReactJS se conecte vía WebRTC/SIP al servidor usando credenciales efímeras (no fijas).
Stack tecnológico deseado
FreeSWITCH (Ubuntu) configurado para:
Multi-tenant (un dominio por cliente).
Directorio dinámico vía mod_xml_curl (usuarios generados desde el backend).
Registro de usuarios SIP efímeros.
Manejo de límites de canales por tenant.
Backend en NestJS con arquitectura limpia/hexagonal:
API REST y WebSocket/Socket.io para comunicación en tiempo real con el frontend.
Integración con FreeSWITCH (event socket / mod_xml_curl) para crear/borrar usuarios y controlar llamadas.
Gestión de tokens (JWT) para autenticar sesiones de los usuarios.
Uso de MongoDB para almacenar tenants, usuarios, permisos y límites de llamadas.
Frontend de ejemplo en ReactJS:
Un pequeño softphone web de ejemplo (login, marcar número, colgar, ver estado de llamada).
Consumo de la API NestJS (login → recibe token → obtiene credenciales SIP efímeras).
Conexión SIP/WebRTC al FreeSWITCH usando esas credenciales.
Mostrar de forma básica el número de llamadas activas y bloqueo cuando se supera el límite.
Requerimientos del profesional
Experiencia demostrable con FreeSWITCH (idealmente proyectos multi-tenant).
Buen dominio de NestJS, MongoDB, JWT y WebSocket/Socket.io.
Experiencia con ReactJS y softphones WebRTC/SIP es un plus muy importante.
Capacidad de documentar la instalación (Ubuntu) y dejar scripts/configuración reproducibles.
Entregables
Configuración de FreeSWITCH lista en mi VPS (con certificados SSL básicos).
Proyecto NestJS con:
Módulo de tenants, usuarios, límites de llamadas y emisión de tokens.
Integración con FreeSWITCH (mod_xml_curl / event socket) para crear usuarios efímeros.
Ejemplo funcional en ReactJS (softphone simple) usando token + socket.
Documentación corta de instalación y uso (README).
Por favor envía:
Proyectos similares realizados (FreeSWITCH/Asterisk + backend).
Tiempo estimado y propuesta económica.