THE UNIFIED PLATFORM BIBLE — ADDENDUM 09
WebaCom · WebaCall — Guardado de medios y videollamadas — Julio 2026
Versión: 1.0
Fecha: 7 de julio de 2026
Autor: Alain Bessette, CFO/Product Owner, ABI Conglomerate
Dominio: GoWeBa.com
Estado: Addendum estratégico oficial — Especificación vinculante
Restricciones: CERO pérdida de datos · CERO force-reset · CERO interrupción de servicio
⚠️ AVISO CRÍTICO
Este addendum tiene la MISMA autoridad que la Parte 1, la Parte 2 y todos los addendums anteriores.
Todas las funciones descritas están desplegadas en producción y guardadas como checkpoints.
No se realizaron modificaciones de esquema incompatibles.
📋 TABLA DE CONTENIDOS
- Resumen
- Fase I-5g — Guardar medios en WebaDrive
- Fase J — WebaCall con Jitsi Meet
- Arquitectura técnica
- Archivos principales modificados
- Hoja de ruta — Evolución hacia Twilio
<a id="overview"></a>
SECCIÓN 1: RESUMEN
Este addendum documenta dos nuevas funciones principales entregadas el 7 de julio de 2026, fortaleciendo el módulo WebaCom (mensajería de equipo):
| Función | Fase | Descripción |
|---|---|---|
| Guardado de medios → WebaDrive | I-5g | Todo contenido compartido en WebaCom (fotos, videos, audio, archivos) se puede guardar en WebaDrive con un clic |
| WebaCall (Jitsi Meet) | J | Llamadas de audio y video integradas en las conversaciones (DM + canales) vía Jitsi Meet |
Principios de diseño
- Cero descarga: Guardar en WebaDrive usa copia S3 intra-bucket (sin descarga/re-subida)
- Determinismo: Las salas Jitsi se generan a partir de un hash SHA-256 del ID de conversación
- Trilingüe: Todas las interfaces soportan francés, inglés y español
- Sin cambios de esquema: Ambas funciones usan campos existentes (
contentType,metadata Json)
<a id="save-to-drive"></a>
SECCIÓN 2: FASE I-5g — GUARDAR MEDIOS EN WEBADRIVE
2.1 Problema resuelto
Los usuarios comparten regularmente fotos, videos, mensajes de voz y archivos en WebaCom. Antes de esta fase, estos medios quedaban confinados en la conversación sin posibilidad de organizarlos en WebaDrive.
2.2 Solución implementada
Un botón "Guardar" aparece en cada tipo de medio compartido en las conversaciones WebaCom. Con un clic, el archivo se copia en una carpeta del sistema "WebaCom" creada automáticamente en el WebaDrive del usuario.
2.3 Funciones detalladas
2.3.1 API Backend
Ruta: POST /api/webacom/media/save-to-drive
- Autenticación requerida
- Creación automática de la carpeta del sistema "WebaCom"
- Copia S3 intra-bucket — sin transferencia de red
- Detección de duplicados
- Creación de registro
FileAssetcon trazabilidad
2.3.2 Interfaz de usuario
El botón de guardar aparece en cuatro tipos de contenido:
| Tipo de contenido | Posición del botón |
|---|---|
| Imágenes | Botón pill debajo del nombre de archivo |
| Archivos | Botón pill debajo del nombre de archivo |
| Videos | Botón pill junto a "Transcribir" |
| Audio | Botón pill junto a "Transcribir" |
3 estados visuales: Guardar → Guardando... → Guardado ✓
<a id="webacall"></a>
SECCIÓN 3: FASE J — WEBACALL CON JITSI MEET
3.1 Problema resuelto
Los miembros de una organización se comunican vía WebaCom pero no tenían forma integrada de iniciar una llamada de voz o video directamente desde una conversación.
3.2 Solución implementada
WebaCall integra Jitsi Meet directamente en WebaCom. Dos botones de llamada (audio + video) aparecen en el encabezado de cada conversación.
3.3 Funciones detalladas
3.3.1 Botones de llamada
| Botón | Icono | Acción |
|---|---|---|
| Llamada de audio | Phone (azul) | Inicia una llamada de audio Jitsi |
| Videollamada | Video (verde) | Inicia una videollamada Jitsi |
- Disponible en DM (1-a-1) y Canales (grupo)
- Soporte inter-organizaciones
- Abre Jitsi Meet en una nueva pestaña
3.3.2 API Backend
Ruta: POST /api/webacom/conversations/[id]/call
- Nombre de sala determinístico:
SHA-256(conversationId)→"GoWeBa-{hash12}" - Crea mensaje con
contentType = 'call'y metadatos completos - URL:
https://meet.jit.si/GoWeBa-{hash12}
3.3.3 Tarjeta de llamada en mensajes
- Icono circular (verde para video / azul para audio)
- Título + "Iniciado por [nombre]"
- Botón "Unirse" con enlace a Jitsi
3.3.4 Capacidades de Jitsi Meet
| Función | Soportado |
|---|---|
| Llamadas 1-a-1 | ✅ |
| Llamadas grupales | ✅ |
| Compartir pantalla | ✅ |
| Cifrado | ✅ |
| Grabación | ❌ (viene con Twilio) |
| Transcripción | ❌ (viene con Twilio) |
<a id="architecture"></a>
SECCIÓN 4: ARQUITECTURA TÉCNICA
- Sin cambios de esquema — Usa
contentType Stringymetadata Jsonexistentes - Todas las APIs requieren autenticación
- Soporte de conversaciones inter-organizaciones
<a id="files"></a>
SECCIÓN 5: ARCHIVOS PRINCIPALES MODIFICADOS
| Archivo | Acción | Descripción |
|---|---|---|
lib/storage.ts | Modificado | copyObjectInS3(), headObject() |
app/api/webacom/media/save-to-drive/route.ts | Nuevo | API guardar en WebaDrive |
app/api/webacom/conversations/[id]/call/route.ts | Nuevo | API iniciar llamada Jitsi |
app/(app)/webacom/webacom-client.tsx | Modificado | Botones guardar + botones llamada + tarjeta llamada |
<a id="roadmap"></a>
SECCIÓN 6: HOJA DE RUTA — EVOLUCIÓN HACIA TWILIO
WebaCall usa actualmente Jitsi Meet (servidores públicos gratuitos). La evolución hacia Twilio añadirá:
- Grabación de llamadas → WebaDrive
- Transcripción automática (reutiliza pipeline I-5a)
- Traducción automática
- Historial completo de llamadas
- Números de teléfono PSTN
GoWeBa ya usa Twilio para telefonía/SMS y SendGrid para emails.
📝 HISTORIAL DE VERSIONES
| Versión | Fecha | Cambios |
|---|---|---|
| 1.0 | 7 de julio de 2026 | Versión inicial — Fase I-5g + Fase J |
Fin del Addendum 09 — WebaCom · WebaCall — Julio 2026