Timbrazo – WebRTC Click to Call
Timbrazo – WebRTC Click to Call para WordPress: botón flotante que abre una llamada de voz real (WebRTC/SIP) desde el navegador del visitante a tu propio Asterisk/FreePBX. Gratis para uso personal · licencia comercial 49,99 USD/año/sitio.
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/nonoskygt/timbrazo/archive/refs/heads/main.zip📞 Timbrazo — WebRTC Click to Call para WordPress
Botón flotante que abre una llamada de voz real (WebRTC / SIP sobre WebSocket) desde el navegador del visitante directamente a tu propio Asterisk o FreePBX. El visitante no instala nada ni marca ningún número: pulsa el botón, autoriza el micrófono y suena tu extensión.
English: floating call button for WordPress that starts a real in-browser WebRTC/SIP voice call to your own Asterisk/FreePBX. Free for personal use; commercial license USD 49.99/year/site. Docs are in Spanish; the WordPress.org readme is in English.
Características
- Llamada real en el navegador: micrófono y altavoces del visitante, SIP sobre WebSocket con JsSIP 3.13.5 (incluido localmente, sin CDN), audio cifrado DTLS-SRTP.
- Credenciales protegidas: la contraseña SIP nunca se imprime en el HTML público; se entrega bajo demanda por un endpoint con nonce, verificación de origen y rate-limit. Puede vivir en
wp-config.php. - TURN con credenciales efímeras (coturn
use-auth-secret, HMAC generado en el servidor, 5 min de validez). - Modo de respaldo sin WebRTC: WordPress pide a tu script AMI que origine la llamada.
- Estados en tiempo real: verificando micrófono → conectando → registrando → llamando → en llamada (cronómetro) → colgar con un toque. Mensajes de error claros (micrófono denegado, línea ocupada, sin respuesta…).
- Apariencia: 9 colores, posición, texto promocional con efecto máquina de escribir, mostrar/ocultar en móvil y escritorio. Se impone a Elementor, Divi y cualquier tema.
- Accesible e internacionalizado (
aria-live, foco visible,.potincluido). - Licencia dual (claves comerciales firmadas, verificadas offline) y registro de instalaciones en una hoja de Google, con consentimiento explícito (ver más abajo).
- Código documentado: cada archivo explica su papel; arquitectura en
timbrazo-webrtc-click-to-call.php.
Instalación rápida
- Descarga el zip de la última release: https://github.com/nonoskygt/timbrazo/releases/latest
- WordPress → Plugins → Añadir nuevo → Subir plugin → activa.
- Acepta (o no) el registro de la instalación en el aviso que aparece.
- Ajustes → Timbrazo → Servidor Asterisk: URL WebSocket (
wss://voip.ejemplo.com/ws), hostname del servidor, usuario SIP, contraseña y extensión de destino. - (Recomendado) en
wp-config.php:define( 'TIMBRAZO_SIP_PASSWORD', 'contraseña-del-usuario-sip' ); define( 'TIMBRAZO_TURN_SECRET', 'secreto-compartido-de-coturn' ); // opcional - Guarda: el botón aparece en cuanto hay extensión de destino.
Del lado de Asterisk necesitas un transporte WSS, un endpoint con webrtc=yes en un contexto restringido que solo pueda marcar tu extensión, y (recomendado) coturn. Guía paso a paso con archivos listos: docs/ASTERISK.md y docs/COTURN.md.
Licencia
| Personal | Comercial | |
|---|---|---|
| Precio | Gratis | 49,99 USD / año / sitio web |
| Para | Blogs, proyectos personales, sin fin de lucro | Empresas, tiendas, profesionales, agencias |
| "Powered by Timbrazo" | Visible | Se retira |
| Soporte y actualizaciones | Comunidad | Prioritarios |
El código es GPL v2 o posterior (license.txt); los términos de uso de la distribución oficial (clave, marca, soporte) están en license-commercial.txt. El plugin nunca deja de funcionar por falta de licencia.
Licencia comercial
Contacta con el autor en https://nonosky.com indicando el dominio del sitio; recibirás una clave TBZ-C-… firmada digitalmente para ese dominio (y sus subdominios de staging) con un año de validez. Pégala en Ajustes → Timbrazo → Licencia → Activar clave. La clave se verifica en tu propio servidor (firma ECDSA, dominio y caducidad): no se consulta a nadie. Términos: license-commercial.txt.
Qué datos registra el plugin
Solo con tu consentimiento (aviso de un clic al activar, o casilla al activar una clave), Timbrazo envía a la hoja de cálculo de Google del autor (vía Google Apps Script, sin servidor propio) el nombre del evento, un identificador aleatorio de la instalación, la URL y el título del sitio, el correo del administrador, las versiones de plugin/WordPress/PHP, idioma, zona horaria, multisitio, tipo de licencia y el identificador y caducidad de la clave comercial — al registrarte, una vez por semana, al retirar la clave y al desactivar. Nunca credenciales SIP, contenido, datos de visitantes ni la clave completa. El registro exacto se muestra en la pestaña Licencia. Detalles: docs/TELEMETRIA.md · cómo montar la hoja: google/README.md.
Estructura del repositorio
timbrazo-webrtc-click-to-call.php bootstrap + mapa de la arquitectura
includes/ helpers, admin, frontend, ajax, licencia, telemetría
assets/ css, js (script.js + JsSIP), iconos
languages/ plantilla .pot
docs/ Asterisk, coturn, seguridad, telemetría, historia, publicar
google/ Apps Script que recibe el registro en tu hoja de Google + guía
dev/ entorno Docker (WordPress + Asterisk 20) y pruebas E2E
bin/build-zip.sh genera el zip distribuible
bin/timbrazo-keygen.php emite claves comerciales firmadas (clave privada fuera del repo)
Desarrollo y pruebas
Requiere Docker. El entorno levanta WordPress, Asterisk 20 (SIP sobre WebSocket, endpoint WebRTC y extensión 101 que contesta con eco), un simulador de la hoja de Google (sheet-mock) y un Chromium con micrófono simulado que hace una llamada real y verifica REGISTER/INVITE/200 OK, ICE conectado y paquetes RTP en ambos sentidos:
bash dev/run-e2e.sh # llamada WebRTC/SIP de extremo a extremo
bash dev/run-license-e2e.sh # licencia (claves firmadas) + registro en la hoja simulada
node dev/sheet-mock/test-code-gs.js # el Apps Script, simulado fuera de Google
bash bin/build-zip.sh # dist/timbrazo-webrtc-click-to-call-<versión>.zip
Más en dev/README.md. Las evidencias de la última ejecución quedan en dev/e2e/out/.
Seguridad
Lee docs/SEGURIDAD.md. Resumen: en un softphone de navegador la credencial SIP es alcanzable por el cliente legítimo; la defensa real es un contexto de Asterisk restringido que solo permita marcar la extensión de destino. Timbrazo evita la fuga estática en HTML, limita el abuso automatizado y usa TURN efímero.