Soluciones · Para desarrolladores

Un botón de llamada en tu web, atendido por el agente

Un cliente WebRTC permite a un visitante llamar al agente desde el navegador. Tu backend pide a la plataforma una contraseña temporal, se la pasa a la página, y la página inicia la llamada con un script. La clave secreta nunca llega al navegador.

Crear el cliente

En Telefonía › Clientes WebRTC elige el agente y lista los dominios donde se usará el botón, con localhost para pruebas locales. Obtienes el nombre del cliente (wc_…) y una clave secreta (wk_…), que se muestra una sola vez.

1. Tu backend pide una contraseña temporal

La contraseña vale 60 segundos y para una sola llamada.

curl -X POST https://developers.swissai.dev/api/webrtc/token \
  -H "X-Api-Key: wk_tu_clave_secreta" \
  -H "Content-Type: application/json" \
  -d '{"client": "wc_3f9a1c2b7d4e", "identity": "visitor-1842"}'

// 200
{ "wss": "wss://pbx.swissai.dev:8089", "domain": "pbx.swissai.dev",
  "user": "w4c1f09ab37de5521", "pass": "…", "target": "sip:ag_7f3a2b91@pbx.swissai.dev", "expires_in": 60 }

2. La página inicia la llamada

Carga el script y pásale la respuesta tal cual. onState recibe connecting, calling, connected e idle; onError el motivo cuando la llamada no puede empezar.

<button id="call">Llámanos</button>
<script src="https://developers.swissai.dev/js/call.js"></script>
<script>
document.getElementById('call').onclick = async () => {
  const params = await (await fetch('/call-token', { method: 'POST' })).json(); // tu backend
  SwissCall.start(params, { onState: s => console.log(s), onError: m => alert(m) });
};
</script>

Mismo agente, mismas herramientas, también por texto

El agente detrás del botón es el mismo que contesta el teléfono, con su prompt y sus herramientas. Con el mismo nombre de cliente y la misma clave, tu backend también puede enviarle mensajes de texto mediante la API de chat y leer las llamadas y costes del cliente con GetCalls. Ambas llamadas se prueban desde el área de pruebas del panel, con el código para copiar.

Preguntas frecuentes

¿Por qué la contraseña viene de mi backend?

Porque la clave secreta debe quedarse en el servidor. La página solo ve una contraseña válida 60 segundos y para una llamada.

¿Qué navegadores funcionan?

Cualquier navegador moderno con WebRTC y acceso al micrófono, en escritorio y móvil.

¿Las llamadas desde el navegador cuestan lo mismo que las telefónicas?

Sí. Cuentan como minutos del plan como cualquier otra llamada.

Páginas relacionadas

Pruébalo con tus propias llamadas

Crea una cuenta, configura el agente en el panel y llámalo desde el navegador. Prueba gratuita de 30 días con 100 minutos, sin tarjeta.

Empezar gratisHablar con el agente de demostración