Nota de idioma
Esta versión en español es una traducción abreviada: las secciones «1. Device registration & VoIP push tokens (mobile)» y «3. Choose how inbound calls reach the softphone» existen solo en inglés: /en/guides/voice-softphone-browser-calling. Los bloques de código, rutas de endpoints, nombres de campos de API y códigos de error permanecen en inglés.Configurar el softphone de navegador (WebRTC)
El softphone de navegador permite a un agente realizar y atender llamadas PSTN sin salir del navegador — sin teléfono de escritorio, sin app SIP de escritorio. Hay tres maneras de ponerlo delante de un agente, y las tres comparten las mismas credenciales y la misma infraestructura:- El softphone integrado del dashboard — Orbit entrega un softphone listo dentro del dashboard. Es el camino sin código y el punto de partida correcto para la mayoría de los equipos.
- Un softphone embebido basado en LiveKit (
Softphoneen@devotel-orbit/web) — usted monta el softphone dentro de su propio espacio de agente (CRM, muro de contact centre, herramienta interna) con su propia UI. - Un softphone SIP-over-WSS embebido (la vía de registro SIP) — un cliente SIP clásico (p. ej. JsSIP) que se registra directamente contra la puerta de enlace WebRTC-a-SIP de Orbit.
2. Emitir credenciales de softphone
Un navegador de agente necesita una credencial de corta duración antes de poder conectarse. El endpoint de emisión depende del cliente elegido — dashboard, LiveKit embebido o SIP embebido.Softphone dashboard integrado / LiveKit embebido
POST /voice/softphone/token devuelve un token de acceso LiveKit de corta duración más la URL de media a la que conectar:
POST /voice/softphone/dial con { "to": "+15550123", "from": "+15559876" }.
Softphone SIP/WSS embebido
Un cliente SIP se registra directamente por WebSocket.POST /voice/softphone/register cambia su petición API autenticada por una credencial SIP de corta duración:
- Las credenciales viven 60 minutos — re-registre antes de
expiresAto la sesión cae. callerIdNumberdebe ser un número que su organización posee (si no, 403) — así se bloquea el spoofing de CLI saliente.- El nombre de usuario queda ligado a su organización: un nombre robado no puede rejugarse contra otro tenant.
- La emisión de tokens está acotada a owner/admin/developer — no es un endpoint público anónimo.
Revoque una credencial de inmediato con
DELETE /voice/softphone/credentials/:username si un agente se va o un token se filtra.4. Snippet JS completo — micro, push VoIP + fallback de navegador
Aquí tiene un softphone de navegador completo y copiable. Funciona con ambas opciones embebidas (LiveKit y SIP-over-WSS) y maneja la realidad del fallback de navegador:5. Verificación y solución de problemas
Verifique el setup de principio a fin:- Emita una credencial (sección 2), conecte el cliente (sección 4) y busque el evento
connecto SIPregistered. - Realice una llamada saliente a su propio móvil — debería oír timbre y luego audio bidireccional.
- Haga enrutar una llamada entrante a su número y confirme que el softphone timbra y responde.
A dónde ir después
- SDK demo test-call page — realice una llamada saliente de prueba real desde el dashboard (Developer → SDK Live Demo).
- SIP trunk setup — si quiere traer su propio carrier/trunk junto al softphone de navegador.
- Voice queues — las colas ACD por las que pasan las llamadas entrantes antes de que responda un softphone.
- Web SDK — el mapa completo de eventos de
Softphoney las demás superficies SDK.