Hosting/VOICE/Documentación
ForHosting VOICE

Documentación

Una sola página, cuatro carriles. Empiece aquí, entréguele los dos del medio a quien contesta el teléfono y a quien dirige, y mándele el último a quien escribe el código.

Para empezar

Su central en cinco minutos

Todo lo de aquí abajo ya existe en su cuenta. Nada necesita un instalador, la visita de un técnico ni un aparato que haya que comprar.

  • Ya tiene números y extensiones. Se crean con su cuenta, junto con las credenciales que necesita cada aparato. Una extensión es una persona o un puesto; un número es lo que marca la gente de fuera.
  • Apunte un número a algún sitio. En la pestaña de Números dice qué debe hacer una llamada que entre por ahí: timbrar una extensión, timbrar un grupo, abrir un menú, entrar en una cola o seguir su horario.
  • Contéstela desde el navegador. Abra la pestaña Teléfono, dé permiso al micrófono y esa pestaña es un aparato que funciona. Llame a la prueba de eco marcando *43 y se oirá a usted mismo de vuelta.
  • Y después ponga su horario y su buzón. Esos dos son los que impiden que una llamada se pierda a las siete de la tarde, y son las dos cosas que más suelen faltarle a una central recién estrenada.

¿Con prisa? Hay cinco plantillas de arranque —un consultorio, un bufete, un taller, una tienda y una casa— que crean el horario, la ruta de entrada y el buzón de fuera de horario en una sola petición. Nunca pisan algo que usted ya haya configurado.

Cómo se entra al panelpor la API

El panel vive en su página de VOICE y sólo aparece con una sesión. Esa sesión la emite su área de cliente; aquí no se teclea nada.

PasoQué hace
1Usted inicia sesión en su área de cliente, en elportaldelcliente.com.
2Elige «Administrar mi central» en el menú de su cuenta. Eso le pide a VOICE una sesión en su nombre y lo lleva a su página de VOICE con la credencial en el fragmento de la dirección.
3El panel sustituye a la página comercial. La credencial se borra de la barra de direcciones antes de pintar nada, y caduca sola.

Para quien construya ese botón, éste es el contrato entero:

POST /inquilinos/:inquilino/sesiones     # ámbito sistema: sólo el portal puede emitirla
{ "minutos": 15 }
→ { "clave": "pbx_ses_…", "caduca": "…", "ambito": "sesion", "minutos_max": 60 }

/central-telefonica#t=<clave>&exp=<ISO>&v=<inquilino>

La credencial viaja en el fragmento y no en la consulta a propósito: un fragmento no se manda nunca a un servidor, así que no acaba en una cabecera Referer, ni en un registro de accesos, ni en un intermediario del camino. Caduca en minutos, tiene techo, y no puede fabricar una clave permanente.

Para quien contesta el teléfono

El panel, pestaña a pestañapor la API

16 secciones, las mismas 16 en los ocho idiomas. Todo lo que hay aquí existe también en la API.

PestañaQué hace
ResumenCómo va su central ahora mismo: llamadas de hoy, atendidas, en curso, su pico y qué tan alcanzables han estado sus aparatos.
Mis númerosSus números, y qué hace cada uno cuando timbra.
MenúsMenús de voz: marque 1 para ventas, y dentro de ventas otro menú.
ExtensionesPersonas y aparatos, con reglas por persona: sígueme, desvíos, no molestar, qué se le permite marcar y el portero.
TeléfonoEl teléfono en sí: marcar, contestar, transferir, aparcar y ver quién está en llamada.
ColasColas con posición, espera medida, devolución de llamada, quién está de turno y quién atiende qué.
SalasSalas de conferencia con clave, y quién está dentro en este momento.
BuzónMensajes con su transcripción, saludos, clave, papelera y el tope de tamaño.
DirectorioEl directorio por nombre al que llega quien deletrea en el teclado.
RecepciónLa operadora, las llamadas aparcadas en tiempo real, las ventanas de mantenimiento y la tabla de códigos.
FiltrosLista negra, filtro de llamadas anónimas, avisos de quien insiste demasiado y todo lo relativo a quién puede alcanzarlo.
HorariosHorario comercial, feriados y el interruptor de día y noche.
MúsicaLa música en espera y las pistas que suena cada flujo.
LlamadasCada llamada con su número, su duración, su ruta y su grabación.
LíneasLíneas simultáneas: lo que tiene garantizado, lo que está tomando prestado y su pico.
ConsumoLo que consumió este mes, día por día.

El teléfono dentro del navegadorllamada real

Una pestaña es un aparato. Sin instalar nada, sin comprar un teléfono de escritorio y sin portar ningún número: es una extensión de su propia central, registrada desde el navegador.

  • Es una extensión de verdad. El navegador se registra contra su central igual que un teléfono de escritorio, y el audio va cifrado. Quien llame a su número puede llegar a la pestaña, y la pestaña puede llamar hacia fuera.
  • La pestaña tiene que estar abierta. Una pestaña cerrada es un teléfono desenchufado. Ése es el límite honesto de un teléfono en el navegador, y la razón de que acompañe a un aparato de escritorio en vez de sustituirlo en todos lados.
  • Ve quién está en llamada.llamada real Las luces de sus compañeros se actualizan en vivo —libre, timbrando, hablando—, así que sabe si hay a quién pasarle la llamada antes de intentar pasársela.
  • Puede mover una llamada viva a otro aparato.aún sin ejercitar «Me tengo que ir y estoy hablando»: la llamada se pasa a su celular sin colgar. Es un botón y no un código de teclado a propósito — quien mueve una llamada tiene una pantalla delante.
  • Transferir, aparcar y grabar son los mismos códigos que en cualquier aparato. Se marcan, no se pulsan, así que lo que aprende en el navegador le sirve en el teléfono de escritorio y en su celular.

El teléfono del navegador no graba nunca en su computadora. Grabar ocurre dentro de la central, que es donde se aplican las reglas de a quién se puede grabar y a quién hay que avisarle — vea «Grabar, y la ley».

Códigos que se marcan desde el teléfono

Se respetan los de siempre allí donde hay convención (*72 desviar, *78 no molestar, *97 el buzón, *8 capturar, *69 quién acaba de llamar). Ése es todo el sentido de un código de teclado: la función ya está en el panel, y el código es lo que hace que alguien que lleva veinte años marcando *72 se crea el panel.

Se marcan con el teléfono libre

CódigoQué haceVerificado
*43Prueba de eco. Graba lo que usted dice y se lo devuelve, y sabe decir «no me llegó nada».aún sin ejercitar
*44Lo mismo, pero con retardo: delata las palabras que se están perdiendo.aún sin ejercitar
*45Prueba de teclado. Dice cada tecla según la va marcando.aún sin ejercitar
*46El estado de su línea: registro, códec, dirección y latencia.aún sin ejercitar
*60La hora y la fecha, dichas bien.banco de pruebas
*62Su consumo del mes (llamadas y minutos; el importe, sólo cuando el cobro esté encendido).por la API
*69Quién lo llamó por última vez, dicho en voz alta y contando las perdidas — después marque 1 para devolverla.aún sin ejercitar
*72Desvío incondicional. Le lee el número de vuelta.por la API
*73Quita todos los desvíos.por la API
*74Desvío en paralelo: timbran su extensión y el número a la vez.por la API
*75Desvío cuando usted está ocupado.por la API
*76Desvío cuando usted no contesta.por la API
*78No molestar, activado y confirmado en voz alta.por la API
*79No molestar, quitado.por la API
*80Entra de turno en todas sus colas.por la API
*81Sale de turno en todas sus colas.por la API
*90Bloquea un número (con sólo # bloquea el de la última llamada recibida).aún sin ejercitar
*91Desbloquea.aún sin ejercitar
*97Su buzón, con su clave.banco de pruebas
*98Graba su saludo.banco de pruebas
*99Graba su nombre — lo usan el directorio y la sala de conferencia.banco de pruebas
*8Captura la llamada que está timbrando en el puesto de al lado.por la API
*66Modo: normal · almuerzo · cerrado · feriado · automático.por la API
*411El directorio por nombre.banco de pruebas
*57Abre un expediente de llamada malintencionada sobre la que acaba de recibir. La grabación deja de caducar y se conservan la hora, la ruta y el audio para una denuncia. No bloquea a quien llama: eso lo decide usted.aún sin ejercitar
*85Avíseme cuando esa extensión se desocupe.aún sin ejercitar
*86Cancela ese aviso.aún sin ejercitar
*82Escucha una llamada de su propia empresa. No lo oye ninguna de las dos partes.aún sin ejercitar
*83Susurra: lo oye sólo su compañero, no el cliente.aún sin ejercitar
*84Entra en la llamada: lo oyen los dos.aún sin ejercitar
*88Las llamadas que nadie devolvió, dichas en voz alta — después marque 1 para devolver la más antigua.aún sin ejercitar
*47La central se explica sola: le recita sus propios códigos, 9 para el siguiente y 0 para salir.aún sin ejercitar
70NRecoge la llamada aparcada en la plaza N.por la API

Se marcan durante una conversación

CódigoQué haceVerificado
*1Graba esta llamada, ahora. Se les avisa a las dos partes.por la API
*7Aparcarla: quien llama queda con música y se dice en voz alta el número de plaza.por la API
##<ext>#Transferencia ciega: se la pasa y usted cuelga.llamada real
#<ext>#Transferir sin elegir tipo. La central averigua si hay alguien y, si no lo hay, la pasa a ciega.aún sin ejercitar
*2<ext>#Transferencia atendida: primero habla usted con su compañero.aún sin ejercitar

Mientras consulta, en una transferencia atendida

CódigoQué haceVerificado
*1Completa la transferencia.aún sin ejercitar
*0Cancela y vuelve con quien llamó.aún sin ejercitar
*3Los pone a los tres en la misma llamada.aún sin ejercitar

Dentro de una sala de conferencia

CódigoQué haceVerificado
*6Cualquiera: silencia y abre su micrófono.por la API
*7Cualquiera: cuántas personas hay en la sala.por la API
*9Cualquiera: salir.por la API
*1Organizador: cierra la sala sin cambiar la clave.por la API
*2Organizador: la vuelve a abrir.por la API
*3Organizador: empieza o para la grabación.por la API

Algunos códigos significan dos cosas y no chocan: *1 en una conversación normal es «grabar ahora», mientras consulta es «completar la transferencia», y dentro de una sala es «cerrar la sala». Son estados distintos del mismo teléfono, atendidos por código distinto.

Antes de fiarse de un teléfono nuevo: Los teléfonos de escritorio y los adaptadores procesan sus propios códigos de estrella y no los mandan nunca. Si marca un código y oye silencio y luego el tono, se lo comió el aparato y la central no vio nada. Pídanos que revisemos un modelo nuevo contra la lista de hoy antes de repartirlo.

El buzón desde cualquier teléfonobanco de pruebas

Marque *97, teclee su clave y tiene el buzón entero: sin aplicación y sin navegador. Está pensado para el dueño que llama desde un celular prestado.

Menú principal

TeclaQué hace
1Mensajes nuevos.
2Mensajes guardados.
4Saludos y su nombre grabado.
5Cambiar su clave.
0Salir a la operadora.
9Colgar.

Mientras suena un mensaje

TeclaQué hace
1Repetirlo.
2Guardarlo.
3Borrarlo. Después marque 8 antes de cinco segundos para deshacerlo.
4Devolverle la llamada a esa persona.
6El siguiente, dejando éste como nuevo.
7Reenviárselo a un compañero con una nota suya grabada delante.

Menú de saludos

TeclaQué hace
1Grabar el saludo principal.
2Grabar su nombre.
3Poner un saludo de vacaciones.
4Quitarlo.

Atender la llamada

Un grupo de timbrado dice «que suene en varios sitios». Todo lo de esta lista hace algo que un grupo no puede hacer.

  • Colas.por la API Una cola sabe cuánta gente hay delante y cuánto se suele tardar, así que puede decirlo. La espera se mide con sus propias llamadas recientes, nunca se inventa — con menos de tres muestras no dice nada. Sin nadie de turno, no se hace esperar a nadie.
  • Devolución de llamada desde la cola.por la API Se ofrece pasado un rato de espera, y no se ofrece si la llamada va a entrar enseguida. La petición sobrevive a un reinicio, porque quien la pide cuelga, y la devolución entra por delante de la fila, que es lo que se le prometió.
  • Salas de conferencia.por la API Una sala con su número y dos claves: una para entrar y otra para organizarla. Nadie necesita cuenta en ningún sitio. Las entradas y salidas se anuncian con el nombre que grabó cada quien.
  • El directorio por nombre.banco de pruebas Quien llama deletrea un nombre en el teclado y se le pasa. Se indexa cada palabra del nombre por separado, porque aquí dos apellidos son lo normal y buscar sólo por el primero encuentra a media empresa. Los acentos y la eñe se normalizan, así que «Muñoz» se encuentra marcando 686.
  • El cero para la operadora.por la API Probablemente la expectativa más universal que existe sobre un teléfono: poder llegar a una persona. El cero baja en cascada de su operadora al buzón general y a decirlo en voz alta — nunca un cuelgue mudo.
  • Aparcar y capturar.por la API Aparque una llamada y espera con música en una plaza numerada mientras usted camina a otro puesto. Cualquiera la recoge marcando esa plaza. Capturar el teléfono que timbra a su lado es *8.

Para quien dirige

Canales: garantía, préstamo y devoluciónpor la API

Es la parte del producto que un techo duro no sabe hacer, y conviene entenderla antes de elegir plan.

  • Garantizadas. Las llamadas simultáneas que vende su plan. Caben siempre, esté como esté la central, y nadie se las puede quitar.
  • Prestadas. Por encima de su garantía usa lo que la central tenga libre. La mayoría de los días estará aquí, y no cuesta nada de más.
  • La reserva. Un colchón de canales que no se le presta a nadie, para que todo el mundo pueda llegar a su propia garantía en cualquier momento.
  • La devolución. Cuando la central va apretada, una llamada prestada puede devolverse para proteger la garantía de otro. Sólo afecta a las cuentas que lo activaron, nunca a una llamada dentro de su garantía, nunca a una llamada de emergencia, y nunca en silencio — la central habla antes de soltar.
  • No se puede sobrevender. La suma de todas las garantías más la reserva tiene que caber. El aprovisionamiento lo comprueba y rechaza un plan que no quepa, que es lo que hace que la palabra «garantizada» signifique algo.
  • Y se ve cuándo mordió. La congestión se informa por episodios con su hora, no como un total del mes. «Doce rechazos en treinta días» se lee como ruido; «el martes pasado, entre diez y once, cinco personas oyeron ocupado» es algo sobre lo que se puede decidir.

Qué pasa cuando algo se rompe

Una central se juzga el día que se va la luz, no el día que todo funciona.

  • Más de una salida. La central llega al mundo de fuera por varias conexiones independientes y elige entre ellas sola. Usted no configura esto ni lo ve ocurrir.
  • «Funciona» se mide contra lo que hay que medir. Una conexión sólo entra en el reparto si llega a internet Y a la red telefónica. Comprobar sólo lo primero es como una central se queda sin línea con todas las luces en verde.
  • Se recupera sola de un corte de luz. Cuando vuelve la luz, la central y los equipos de red arrancan a la vez y no siempre en el orden bueno. En vez de confiar en ese orden, la central compara sin parar lo que tiene con lo que debería tener y se repara — con un techo de cuántas veces puede reintentarlo, para que una avería de verdad se escale en lugar de quedarse en bucle.
  • No corta una llamada para arreglarse. Cualquier reparación que fuera a interrumpir conversaciones espera a que no haya ninguna.

Las grabaciones y los mensajes del buzón se guardan fuera de la central, así que sobreviven a la propia máquina.

Planes y minutos

5 planes, de $100 a $300 al año, con un número por licencia. El minuto entrante a un número de Costa Rica es de $0.00.

PlanSimultáneas, hastaDe ellas garantizadasExtensionesRetención (días)Al año
VOICE I3133$100
VOICE II4244$150
VOICE III6366$200
VOICE IV8488$250
VOICE V105Sin límite28$300

Minutos

DestinoPor minuto
Llamadas entrantes$0.00
Costa Rica · fijo$0.03
Costa Rica · celular$0.08
Centroamérica$0.45
Caribe$0.55
Resto del mundo$2.30

Precios en dólares, impuestos incluidos. El operador mide los celulares por segundo. Cada licencia incluye 1 número; los números adicionales comparten central, flujos y panel.

Grabar, y la leypor la API

Un audio grabado es la voz de otras personas. Lo gobierna la Ley 8968, y el diseño sale de ahí y no de lo que resultaría cómodo.

  • Usted decide qué se graba.por la API Todo, o sólo ciertas extensiones, o sólo las llamadas que entren por cierto número. O nada, que es una respuesta legítima.
  • La retención viene con su plan. Las grabaciones se purgan solas cuando les toca. La única excepción es una grabación atada a un expediente de llamada malintencionada, que deja de caducar hasta que usted cierre el expediente — y cerrarlo devuelve un plazo normal, nunca un «bórrela ya».
  • Compartir una no es dar acceso. Un enlace firmado reproduce una sola grabación, caduca solo y se puede revocar. La persona a quien se lo manda no ve nunca su cuenta.
  • Cada escucha queda anotada. Quién reprodujo qué grabación y cuándo. Es la voz de otra persona: saber quién la ha oído es parte de tenerla.
  • Se pueden clasificar. Cliente, prospecto o interno. No hay valor por defecto a propósito: sin clasificar es honesto, y una etiqueta que puso la máquina no se distingue después de una que puso una persona.

Siempre se les avisa a las dos partes. Pedirle a la central que grabe devuelve también la obligación de anunciarlo: las dos cosas no se pueden separar, porque separarlas es como alguien acaba grabado sin saberlo. En una sala de conferencia el aviso se le hace a cada persona al entrar.

Límites, protección y deshacer

Lo que decide cuánto llega a doler un mal día: una credencial robada, un error en el enrutamiento, un número que no deja de llamar.

  • Un tope de gasto, diario y mensual.banco de pruebas Es lo que impide que una credencial robada cueste dinero. Alcanzado el tope, las llamadas se paran.
  • Qué puede marcar cada extensión.por la API Sólo internas, nacional, celular o todo. El teléfono de la bodega no tiene por qué poder llamar a un número premium. Las llamadas de emergencia no pasan nunca por aquí.
  • El precio antes de marcar.por la API Pregunte cuánto costaría un número y la respuesta la calcula la misma maquinaria que va a cursar la llamada de verdad, no una lista de tarifas que podría no ser la que se aplique.
  • Una alarma de fraude que mira el comportamiento.aún sin ejercitar Una velocidad rara, un país al que nunca ha llamado, una hora a la que no trabaja nadie. Avisa y no corta: un falso positivo aquí no es una alerta molesta, es una llamada que no se hizo. Le hacen falta dos señales antes de decir nada, porque una alarma que salta a diario se aprende a ignorar.
  • Se señala a quien insiste demasiado.aún sin ejercitar El mismo número cinco veces en dos minutos no es un cliente insistente: es un marcador automático. De fábrica sólo avisa; bloquear automáticamente es una casilla suya, porque un falso positivo cuesta un cliente que ya no puede llamar nunca.
  • Un expediente para una llamada malintencionada.aún sin ejercitar La hora, la ruta y el audio, guardados juntos para una denuncia. Abrir uno no bloquea a quien llama: cada llamada nueva es una prueba más, y eso lo decide usted y no nosotros.
  • Qué tan alcanzables han estado sus aparatos.por la API No nuestro tiempo en pie: el suyo. Y siempre enseña qué parte del periodo se llegó a medir de verdad, porque un porcentaje que se come en silencio las horas que nadie miró se equivoca siempre hacia el lado cómodo.
  • Qué cambió, quién lo cambió y cómo se deshace.por la API «Ayer funcionaba» es una pregunta con respuesta. Cada cambio de configuración queda anotado y se puede revertir, y revertir comprueba que nadie más haya tocado esos campos mientras tanto en vez de pisarlos en silencio.

Lo que está apagado, y por qué

Un manual que sólo cuenta lo que funciona le obliga a descubrir el resto por su cuenta, y siempre se descubre en el peor momento. Esta lista se genera desde la propia central, así que no puede describir como apagado algo que ya se encendió.

Qué hacePor qué
El buzón al correoEl audio adjunto, sin tener que llamar al buzón. Necesita una credencial de correo para el buzón, y esa credencial todavía no existe.
El cobro automático por minutoLa medición funciona y cada llamada se mide; lo que no está encendido es el descuento contra un saldo prepago. Mientras tanto, los minutos se facturan.
Dirección de respaldo para los aparatosPara que los teléfonos conmuten solos entre las dos entradas de la central. Necesita una credencial del dominio con permiso de escritura; la que tenemos sólo lee.
El fax entranteDetectar el tono y avisarle está construido, y está apagado a propósito: la detección de fax escucha todas las llamadas que entran, y un falso positivo tumbaría una llamada de voz real. Sigue apagado hasta que haya un fax de verdad con el que medirlo.

Para quien integra

La APIpor la API

El panel es un cliente más de esta API. Todo lo que usted cambia a mano se puede cambiar por programa, con una clave que es de su cuenta.

curl -H "authorization: Bearer <clave>" \
  https://api.voice.forhosting.com/inquilinos/<cuenta>/numeros

Ámbitos

ÁmbitoQué hace
sistemaAprovisionamiento, por encima de las cuentas. No se le va a entregar una de éstas.
inquilinoSu cuenta, lectura y escritura. Ésta es la clave con la que se integra.
lecturaSu cuenta, sólo GET. Para paneles que no deberían poder cambiar nada.
sesionEl mismo alcance que su clave de cuenta, pero caduca en minutos. Es la que usa el panel, para que un navegador no lleve nunca una credencial permanente.
dispositivoUn solo aparato de una sola extensión, y caduca en minutos. Es la que lleva la app del teléfono: sólo alcanza lo que un teléfono necesita, y sólo de su propia extensión.

Cuando algo sale mal

CódigoQué hace
400La petición está mal formada, o un valor no es de los que aceptamos. El mensaje dice cuál.
401Sin clave, con una clave desconocida, o con una sesión que ya caducó.
403La clave es buena pero no puede hacer eso: datos de otra cuenta, una ruta de aprovisionamiento, o una escritura con una clave de sólo lectura.
404Eso no existe en su cuenta.
405Esa ruta existe, ese método no. Se distingue del 404 a propósito: ahorra una hora.
503 · 504No se pudo alcanzar la central, o no contestó a tiempo. Nunca se contesta como «no tiene nada»: no poder mirar no es lo mismo que no haber nada.

Todo lo que el API puede contestar cuando dice que no

Son las cadenas exactas que el API devuelve en el campo error, leídas del propio fuente de la central. Salen en español y aquí se muestran tal cual a propósito: lo que usted tiene que reconocer es lo que llega, no una traducción. Un … marca el hueco donde se inserta un dato.

Todo error lleva un código estable. Decida por codigo, no por el mensaje. Siempre está: lo que no declara uno específico recibe el de su clase, derivado del HTTP. La prosa de error es para que la lea una persona y puede reescribirse; el código, no.

{ "error": "…", "codigo": "de_otra_cuenta" }
CódigoHTTPCuándo lo recibe
mala_peticion400La petición está mal formada, o un valor no es de los que aceptamos. El mensaje dice cuál.
no_autorizado401Sin clave, con una desconocida, o con una sesión caducada.
prohibido403La clave es buena pero no puede hacer esto.
no_existe404No hay nada sobre lo que actuar.
metodo_no_permitido405La ruta existe, ese verbo no. Se distingue de una ruta inexistente a propósito: ahorra una hora.
conflicto409El estado de la cuenta no lo permite ahora mismo.
ambito_insuficienteSu clave no alcanza esa ruta. El aprovisionamiento es del portal, no suyo.
canales_por_troncalEl reparto de canales que llegó en el alta no se puede aceptar, y no se guarda ni una parte. El detalle dice qué falla. Es del aprovisionamiento, no de su cuenta.
central_no_disponibleNo se puede llegar a la central ahora mismo. Reintente con espera creciente: su petición no tiene nada malo.
central_sin_respuestaLa central no contestó a tiempo. Mismo trato que el anterior, y la misma precaución: la escritura pudo llegar o no.
clase_de_servicioEse valor no es uno de los permisos de llamada que puede tener una extensión.
clave_sin_cuentaLa clave no está atada a ninguna cuenta.
de_otra_cuentaEs de otra cuenta — o no existe en la suya. Los dos casos comparten código a propósito: distinguirlos revelaría si existe.
falta_credencialNo mandó ninguna clave.
garantia_no_cabeNo queda capacidad garantizada para lo que se pide. No es una avería: es lo que impide vender dos veces el mismo canal. El mensaje dice cuánto queda.
no_editableEse dato lo cambia su proveedor, no se toca desde aquí.
no_existeNo hay nada sobre lo que actuar.
protocolo_incorrectoEsa ruta sólo habla WebSocket y usted la pidió por HTTP normal.
solo_lecturaSu clave es de solo lectura y esto escribiría.
ya_existeYa hay algo con ese nombre o ese número. Reintente con otro, no con la misma carga.
CódigoCuántasMensaje
400163
  • 'extension_id' y 'numero' son excluyentes
  • 'hasta' tiene que ser posterior a 'desde' (o al momento de abrirlo)
  • 'numero' no parece un número
  • 'segmentos' lleva caracteres que no acepto
  • alert_info: máximo 200 caracteres
  • alert_info: no puede llevar saltos de línea
  • ambito: …
  • antelacion_horas: número de horas
  • avisar_el es posterior a la cita: no se puede recordar algo que ya pasó
  • bloque de más de 10.000: cárgalo en trozos
  • cada miembro necesita extension_id o externo
  • canales_garantizados y canales_max van los dos como mapa por troncal, o los dos como número: no se mezclan
  • canales_troncal no se escribe directo: mande canales_garantizados y canales_max como mapa por troncal
  • capacidad: falta 'tipo_cap' (p. ej. 'text.summarize')
  • categoria: …
  • categoría: …
  • clase_servicio: …
  • condicion: el caso … no dice qué variable mira
  • condicion: el caso … va a '…', que no es un destino
  • condicion: hace falta al menos un caso en 'casos'
  • consulta: 'url' debe empezar por http:// o https://
  • consulta: espera.aviso_cada_s no baja de 5 segundos
  • contesta: hace falta decir quién atiende ({tipo, id})
  • cuando: fecha ISO de la cita
  • demasiadas piezas (máx. 24)
  • desde/hasta con formato 'HH:MM'
  • destino externo: número inválido
  • destino: …
  • dia: 0 (domingo) a 6 (sábado)
  • el alias debe tener al menos 3 dígitos
  • el aviso de buzón admite hasta 5 teléfonos
  • el bloque debe tener números de la misma longitud
  • el destino '…' necesita el id de un paso
  • el destino '…' necesita un id
  • el destino es de otro inquilino
  • el destino es el mismo número que se está retirando: quien oiga esto acaba de marcarlo
  • el disco no tiene ninguna pista activa con audio
  • el final del bloque es menor que el inicio
  • el guion necesita un nombre
  • el mapa de canales está vacío
  • el modo de aviso es 'tras' (uno detrás de otro) o 'a_la_vez'
  • el motor de llamadas no está listo
  • el número interno debe tener 3 o 4 dígitos
  • el número … está '…', no asignado
  • el precio (…) está por debajo del coste (…)
  • el ámbito 'dispositivo' necesita extensión y dispositivo
  • el ámbito '…' necesita inquilino
  • el … no es de esta cuenta
  • el … no está asignado a este inquilino
  • entrada.verificar: 'url' debe empezar por http:// o https://
  • entrada: exito.dest_tipo debe ser uno de …
  • entrada: falta 'exito.dest_tipo' (a dónde va cuando la entrada es válida)
  • entrada: falta 'texto' (lo que se le pide a quien llama)
  • entrada: max no pasa de 32 dígitos
  • es un feriado nacional: crea una excepción con cerrado:false
  • es un mantenimiento global: lo cierra quien opera la central
  • esa extensión es de otro inquilino
  • esa llamada no es de este inquilino
  • ese apunte no cambió ninguna columna: no hay nada que deshacer
  • ese dispositivo no es de esa extensión, o esa extensión no es de esta cuenta
  • ese guion lo usan …: …
  • ese turno lo usan: …
  • estado: 'activo' o 'suspendido'
  • estado: …
  • estos campos los cambia su proveedor: …
  • estrategia: rotativo|todos|menos_usada|orden
  • estrategia: …
  • evento desconocido: …. Válidos: …
  • extensión inexistente o de otro inquilino
  • falta 'extension_id' o 'miembro_id'
  • falta 'extension_id' o 'numero'
  • falta 'inquilino'
  • falta 'motivo'
  • falta 'nombre'
  • falta 'numero'
  • falta 'q'
  • falta 'segmentos' o 'decir'
  • falta 'teclas' (los dígitos marcados)
  • falta 'texto'
  • falta 'titulo'
  • falta 'valor'
  • falta dispositivo_id: a qué aparato se mueve
  • falta el nombre
  • falta el número nuevo (destino)
  • falta extension_id
  • falta inquilino, extensión o quién lo pide
  • fecha: 'AAAA-MM-DD' (una vez) o '--MM-DD' (todos los años)
  • hace falta audio_clave o texto
  • hace falta extension_id o externo
  • hace falta la llamada o el número
  • hace falta miembro_id o extension_id
  • hay varias troncales nacionales con la misma prioridad y ninguna es la de por defecto:
  • hay … ruta(s) apuntando a este disco (…): cámbialas primero
  • horario inexistente o de otro inquilino
  • instalacion: el identificador de la instalación de la app, de 8 a 128 caracteres (letras, dígitos, . _ : -)
  • la búsqueda necesita al menos 2 caracteres
  • la clave de la sala y la del organizador no pueden ser la misma
  • la extensión que contesta no es de este inquilino
  • la extensión «…» es de otro inquilino
  • la extensión «…» no existe
  • la extensión … no existe
  • la garantía (…) no puede pasar del techo (…)
  • la garantía de este inquilino está repartida en … troncales:
  • la pausa «…» debe ir de 1 a 30 segundos
  • la tecla … no estaba definida
  • la troncal '…' no existe o no está activa
  • los días van de 0 (domingo) a 6 (sábado)
  • mapa de canales por troncal inválido
  • minutos: un número mayor que cero
  • modo: …
  • modo: … o null para volver al automático
  • modo_presion: firme|elastica|cede
  • nada que cambiar: campos aceptados = categoria, notas, troncal_id
  • no caben … canales garantizados en …: quedan …
  • no caben … canales garantizados: quedan … libres
  • no está archivada: no hay audio que analizar
  • no hay motor de audio
  • no pude originar la prueba: …
  • no se puede esperar a uno mismo
  • no sé marcar '…'
  • numero: 1..99
  • numero: hace falta el número que se quiere marcar
  • numero: hace falta un número marcable
  • número de sígueme inválido: …
  • número externo inválido
  • número externo inválido: …
  • número inválido: …
  • número no válido para devolver la llamada
  • número vacío
  • orden: …
  • paises debe ser una lista de prefijos
  • para '…' el rango es …-… (o usa 4 dígitos)
  • para ambito '…' hace falta ambito_id
  • patrón inválido
  • patrón inválido: …
  • plan desconocido: …
  • plantilla: …
  • rol: visitante|agente|sistema
  • se espera 'filas': el CDR del operador
  • se esperaba una lista de contactos
  • sólo el ámbito 'dispositivo' se ata a una extensión y a un dispositivo
  • sólo las consultas tienen secreto
  • sólo los ámbitos 'sesion' y 'dispositivo' admiten 'minutos'
  • tecla inválida: …
  • tipo: …
  • transporte: …
  • un IVR sin saludo deja al llamante en silencio: pon saludo_texto o saludo_audio
  • una troncal sin host no puede activarse
  • url debe empezar por http:// o https://
  • url inválida
  • «…» no es una frase que un guion pueda sustituir
  • «…» no es una hora válida
  • «…» no es una hora: se escribe HH:MM
  • «…» no parece un teléfono
  • «…» no vale como habilidad: letras, números, guion o guion bajo
  • «…» no vale: sólo dígitos, asterisco, almohadilla o una pausa tipo P2
  • … es un paso de tipo '…', no '…'
  • …: '…' no es posterior a '…'
  • …: de 4 a 8 dígitos
  • …: demasiado fácil de adivinar
  • …: falta 'respaldo.dest_tipo'. Un paso sin respaldo cuelga al que llama
  • …: número inválido
  • …: respaldo.dest_tipo debe ser uno de …
4011
  • falta la clave de API
40311
  • clave de chat inválida
  • enlace agotado
  • esa cuenta no es tuya
  • esa extensión está suspendida
  • esa extensión no es la de este aparato
  • ese aparato está suspendido: se reactiva desde el panel
  • ese cambio no es de esta cuenta
  • esta clave es de solo lectura
  • esta clave no está atada a ninguna cuenta
  • esta operación necesita una clave de sistema
  • esta operación no está abierta a la credencial de un aparato
40443
  • agente: no está en esta cola
  • agente: no existe en esta cuenta
  • buzón: no existe en esta cuenta
  • dispositivo
  • el audio no está disponible
  • el destino …:… no existe
  • el número … no es de esta central
  • el … no tiene ruta de entrada
  • el … no tiene ruta en esta cuenta
  • enlace
  • enlace caducado
  • enlace no válido o caducado
  • enlace revocado
  • esa cita no existe en esta cuenta
  • esa extensión no existe en esta cuenta
  • esa frase no existe en este disco
  • esa grabación aún no está archivada
  • esa pista no existe en este disco
  • ese disco no existe en esta cuenta
  • ese dispositivo no existe en esta cuenta
  • ese guion no existe
  • ese mensaje aún no está archivado
  • extensión
  • feriado
  • la central no está lista
  • la grabación ya no existe
  • llamada
  • mantenimiento
  • mensaje
  • mensaje: no es de este buzón
  • miembro: no está en este grupo
  • no está en la lista
  • no existe en esta cuenta
  • no existe … …
  • no pude traer el audio del archivo
  • provisión no válida
  • recurso desconocido
  • regla
  • saludo: no es de este buzón
  • sesión
  • …: '…' no existe
  • …: no existe
  • …: no existe en esta cuenta
40925
  • demasiados dispositivos en la extensión …
  • el menú se muerde la cola: …
  • el plan '…' permite … extensiones
  • el usuario SIP '…' ya existe
  • el … está asignado a …: libéralo primero
  • el … está enfriando hasta …: reasignarlo antes hace que el cliente nuevo reciba las llamadas del anterior. Usa forzar:true si asumes eso.
  • el … está retirado del servicio
  • el … tiene … llamada(s) en el CDR: retíralo, no lo borres
  • el … ya es marcable en este inquilino
  • el … ya está asignado a …
  • el … ya está en uso en este inquilino
  • el … ya tiene ruta: edítala en vez de crear otra
  • esa provisión ya se usó
  • ese mensaje no está en la papelera
  • ese número ya está en el inventario
  • esto ya no es lo que dejó ese cambio: … se tocó después.
  • la fila …:… ya no existe. Deshacer un cambio no resucita lo borrado:
  • la troncal tiene garantías vendidas en … inquilino(s):
  • no quedan números libres en el rango …-…
  • no se pudo descifrar la provisión
  • no se puede borrar: le apuntan ….
  • provisión caducada
  • referencia inexistente
  • ya existe
  • ya existe otro con ese valor

243 mensajes distintos en 289 puntos del fuente de la central. Derivado en cada compilación: un mensaje que cambia allí cambia aquí.

Hoy casi no hay límite de ritmo. El único es una espera de unos segundos entre intentos de abrir el teléfono del navegador. No hay cuota general, y preferimos decirlo a que usted lo descubra habiendo construido sobre una suposición. Sea razonable, y si está planeando algo pesado, avísenos antes para medirlo con usted en vez de después de usted.

Hasta dónde llega

ÁreaEndpointsEjemplos
Buzones13GET /buzones POST /buzones DELETE /buzones/:buz
Extensiones13GET /extensiones POST /extensiones DELETE /extensiones/:ext
Colas12GET /colas POST /colas DELETE /colas/:cola
Música en espera12GET /discos POST /discos DELETE /discos/:disco
Grabaciones9GET /grabaciones PUT /grabaciones/:grabacion/categoria DELETE /grabaciones/:grb
Grupos de timbrado8GET /grupos POST /grupos DELETE /grupos/:grp
Menús de voz8GET /ivrs POST /ivrs DELETE /ivrs/:ivr
Turnos de guardia8GET /turnos POST /turnos DELETE /turnos/:turno
Salas de conferencia7GET /conferencias POST /conferencias DELETE /conferencias/:sala
Horarios7GET /horarios POST /horarios DELETE /horarios/:hor
Avisos a su sistema7GET /webhooks POST /webhooks DELETE /webhooks/:whk
Pasos de flujo programable6GET /pasos POST /pasos DELETE /pasos/:pso
Lo que dice cada línea5GET /guiones POST /guiones DELETE /guiones/:gui
Mensajes5GET /mensajes DELETE /mensajes/:msg GET /mensajes/:msg
Rutas de entrada5GET /rutas POST /rutas DELETE /rutas/:ruta
Alias marcables4GET /alias POST /alias DELETE /alias/:als
Recordatorios de cita4GET /citas POST /citas DELETE /citas/:cita
Sus contactos4GET /contactos POST /contactos DELETE /contactos/:con
Chat unido a la voz4GET /conversaciones GET /conversaciones/:cnv POST /conversaciones/:cnv/cerrar
Aparatos4DELETE /dispositivos/:disp POST /dispositivos/:disp/estado POST /dispositivos/:disp/provision
Expedientes de llamada malintencionada4GET /expedientes POST /expedientes GET /expedientes/:exp
Reglas de grabación4GET /grabacion/decidir GET /grabacion/reglas PUT /grabacion/reglas
Registro de llamadas4GET /llamadas GET /llamadas/:llamada GET /llamadas/csv
Números4GET /numeros DELETE /numeros/:numero/aviso-cambio GET /numeros/:numero/aviso-cambio
Líneas simultáneas3GET /canales GET /canales/episodios PUT /canales/modo
Feriados3GET /feriados POST /feriados DELETE /feriados/:fer
Historial de cambios y deshacer3GET /historial GET /historial/:cambio POST /historial/:cambio/revertir
Lista negra3GET /lista-negra POST /lista-negra DELETE /lista-negra/:neg
Ventanas de mantenimiento3GET /mantenimientos POST /mantenimientos POST /mantenimientos/:mnt/cerrar
Su cuenta y su estado2GET / PATCH /
Directorio2GET /directorio GET /directorio/buscar
Enlaces para compartir2GET /enlaces DELETE /enlaces/:token
Otras1GET /guiones/claves
Llamadas aparcadas1GET /aparcadas
Quién llama, y de qué1GET /contexto
Cuánto costaría una llamada1GET /cotizar-llamada
A dónde se puede mandar una llamada1GET /destinos
Qué tan alcanzables están sus aparatos1GET /disponibilidad
Estado de cuenta1GET /estado-cuenta
El canal en vivo1POST /eventos/ticket
Llamadas en curso1GET /llamadas-en-curso
Llamar con un clic1POST /llamar
Operadora1PUT /operadora
A dónde llama esta casa1GET /paises
Plantillas de arranque1POST /plantilla
Qué se puede marcar1GET /politica-salida
Que la central lo llame y le reproduzca algo1POST /probar-audio
Probar dónde caería una llamada1GET /probar-entrada
Probar una saliente sin cursarla1GET /probar-salida
Saldo1GET /saldo
Llamadas que nadie devolvió1GET /sin-devolver
Unir dos números de fuera1POST /unir
Quién se salta la fila1GET /vips
El teléfono en el navegador1POST /webphone/sesion

269 endpoints en total, leídos de la propia central el 2026-09-04.

Esta tabla es un resumen. La lista que no puede quedarse vieja es la que la central genera sobre sí misma: GET /api.

Cada endpoint, uno a uno

Leído del propio enrutador de la central, así que no puede describir una ruta que no exista ni olvidarse de una que sí. Aquí sólo está el ámbito de su cuenta: las rutas de aprovisionamiento son del portal y a usted no se le entrega una clave que llegue a ellas.

Qué haceQué haceEjemplo
GET /guiones/clavesQué frases admite un guion
GET /por la API
PATCH /Editar la ficha (el cliente, sus datos; plan y límites, el portal)por la API
GET /aliaspor la API
POST /aliaspor la API
DELETE /alias/:alspor la API
PATCH /alias/:alspor la API
GET /aparcadasLas llamadas aparcadas ahora mismo (#60)por la APIverlo
GET /buzonesllamada real
POST /buzonesllamada real
DELETE /buzones/:buzllamada real
GET /buzones/:buzllamada real
PATCH /buzones/:buzSaludo, correo, transcripción, duración máximapor la API
GET /buzones/:buz/mensajespor la API
PUT /buzones/:buzon/clavePoner o quitar la clave del buzón (#10)banco de pruebas
GET /buzones/:buzon/ocupacionCuántos mensajes hay y cuántos caben (#14)banco de pruebas
GET /buzones/:buzon/papeleraLo borrado que todavía se puede recuperar (#15)banco de pruebas
POST /buzones/:buzon/papelera/:mensaje/recuperarDeshacer un borrado (#15)banco de pruebas
GET /buzones/:buzon/saludosLos saludos del buzón, por motivobanco de pruebas
POST /buzones/:buzon/saludosPoner el saludo de un motivo (normal, ocupado, vacaciones…)banco de pruebas
DELETE /buzones/:buzon/saludos/:saludobanco de pruebas
GET /canalespor la API
GET /canales/episodiospor la API
PUT /canales/modopor la API
GET /citaspor la API
POST /citasProgramar un recordatorio de cita por teléfonopor la APIverlo
DELETE /citas/:citapor la APIverlo
GET /citas/:citapor la APIverlo
GET /colaspor la APIverlo
POST /colasCrear una cola de espera con agentespor la APIverlo
DELETE /colas/:colapor la API
GET /colas/:colapor la APIverlo
PUT /colas/:colapor la APIverlo
GET /colas/:cola/callbacksLas devoluciones de llamada pedidaspor la APIverlo
GET /colas/:cola/estadoCuánta gente espera, quién está de turno y cuánto se tardapor la API
GET /colas/:cola/habilidadesQué habilidades existen hoy en esta cola
POST /colas/:cola/miembrosAñadir un agente (extensión o número de fuera)por la API
DELETE /colas/:cola/miembros/:miembropor la API
PUT /colas/:cola/miembros/:miembro/habilidadesLas etiquetas de un agente (#70)
POST /colas/turnoEntrar o salir de turno (lo mismo que *80 / *81)por la API
GET /conferenciaspor la API
POST /conferenciasCrear una sala con número y clavepor la APIverlo
DELETE /conferencias/:salapor la API
GET /conferencias/:salapor la APIverlo
PUT /conferencias/:salaCambiar la sala (las claves se cambian, no se leen)por la API
GET /conferencias/:sala/historialQuién estuvo y cuántopor la API
POST /conferencias/:sala/invitarLlamar a alguien y meterlo en la salapor la API
GET /contactospor la API
POST /contactosAlta o importación masivapor la API
DELETE /contactos/:conpor la API
PUT /contactos/:contacto/vipMarcar o quitar el VIP de un contacto
GET /contextoQuién llama y de qué habló la última vezpor la API
GET /conversacionesbanco de pruebas
GET /conversaciones/:cnvbanco de pruebas
POST /conversaciones/:cnv/cerrarbanco de pruebas
POST /conversaciones/:cnv/turnosbanco de pruebas
GET /cotizar-llamadaCuánto costaría llamar a ese número, antes de marcarlopor la API
GET /destinosQué destinos se pueden elegir en esta cuentallamada real
GET /directorioQuién sale en el directorio por nombrebanco de pruebas
GET /directorio/buscarA quién encontraría el directorio con esas teclasbanco de pruebas
GET /discospor la API
POST /discospor la API
DELETE /discos/:discopor la API
GET /discos/:discopor la API
PATCH /discos/:discopor la API
GET /discos/:disco/estadisticaspor la API
GET /discos/:disco/frasespor la API
PUT /discos/:disco/frasespor la API
DELETE /discos/:disco/frases/:frasepor la API
PUT /discos/:disco/pistaspor la API
DELETE /discos/:disco/pistas/:pistapor la API
GET /discos/:disco/probarpor la API
GET /disponibilidadCuánto tiempo estuvo arriba cada extensiónpor la API
DELETE /dispositivos/:dispRevocar una credencialaparato real
POST /dispositivos/:disp/estadoSuspender o reactivar un dispositivoaparato real
POST /dispositivos/:disp/provisionEmitir un token para configurar la app sin teclear la clavepor la API
POST /dispositivos/:disp/rotarCambiar la clave de un dispositivoaparato real
GET /enlacesbanco de pruebas
DELETE /enlaces/:tokenRevocar un enlace compartido por errorbanco de pruebas
GET /estado-cuentapor la API
POST /eventos/ticketTicket para mirar el canal de eventos en vivo (sin teléfono)por la APIverlo
GET /expedientesLos expedientes abiertos (#64)
POST /expedientesAbrir expediente sobre una llamada
GET /expedientes/:expUn expediente, con su llamada y su grabación
POST /expedientes/:exp/cerrarCerrar un expediente (la fila NUNCA se borra)
GET /extensionespor la API
POST /extensionesAlta de extensión (crea buzón y credencial)por la API
DELETE /extensiones/:extpor la API
GET /extensiones/:extpor la API
PATCH /extensiones/:extpor la API
POST /extensiones/:ext/dispositivosAñadir un dispositivo (celular, computadora…)por la API
POST /extensiones/:ext/no-molestarpor la API
GET /extensiones/:ext/reglasllamada real
PUT /extensiones/:ext/reglasSígueme, desvío, no molestar y destino de fallopor la API
GET /extensiones/:extension/campLos avisos de desocupado que pidió esta extensión (#58)
DELETE /extensiones/:extension/camp/:objetivoCancelar un aviso de desocupado
POST /extensiones/:extension/moverMover la llamada en curso a otro aparato de la misma extensión (#57)
GET /extensiones/siguiente-librepor la API
GET /feriadospor la API
POST /feriadosFeriado propio o excepción a uno nacionalpor la API
DELETE /feriados/:ferpor la API
GET /grabacion/decidir¿Se grabaría esta llamada? Y con qué avisopor la API
GET /grabacion/reglaspor la API
PUT /grabacion/reglasQué se graba y cuánto se guardapor la API
DELETE /grabacion/reglas/:reglapor la API
GET /grabacionesbanco de pruebas
PUT /grabaciones/:grabacion/categoriacliente | prospecto | interno, o nada (#68)
DELETE /grabaciones/:grbbanco de pruebas
GET /grabaciones/:grbFicha: transcripción, resumen, acuerdos y hablantesaún sin ejercitar
GET /grabaciones/:grb/accesosQuién ha escuchado esta grabaciónbanco de pruebas
POST /grabaciones/:grb/analizarVolver a transcribir y resumiraún sin ejercitar
GET /grabaciones/:grb/audioEl audio (queda auditado)banco de pruebas
POST /grabaciones/:grb/enlaceEnlace firmado para compartir sin dar acceso a la cuentabanco de pruebas
GET /grabaciones/buscarBuscar por lo que se dijo dentro de las llamadasbanco de pruebas
GET /grupospor la API
POST /grupospor la API
DELETE /grupos/:grppor la API
GET /grupos/:grppor la API
PUT /grupos/:grppor la API
POST /grupos/:grp/miembrospor la API
DELETE /grupos/:grp/miembros/:miembropor la API
GET /grupos/:grp/ordenEn qué orden sonaría ahora mismopor la API
GET /guionesllamada real
POST /guionesLos textos que dice una líneallamada real
DELETE /guiones/:guillamada real
GET /guiones/:guillamada real
PATCH /guiones/:guiCambiar textos, nombre o voz declaradallamada real
GET /historialQué cambió en esta cuenta, quién y cuándopor la APIverlo
GET /historial/:cambiopor la APIverlo
POST /historial/:cambio/revertirDeshacer un cambio de configuraciónpor la APIverlo
GET /horariospor la API
POST /horariospor la API
DELETE /horarios/:horpor la API
GET /horarios/:horpor la API
PUT /horarios/:horpor la API
GET /horarios/:hor/estado¿Abierto ahora? Y por quépor la API
POST /horarios/:hor/manualForzar abierto o cerrado, con vuelta automáticapor la API
GET /ivrsllamada real
POST /ivrsCrear un menú (detecta bucles al guardar)llamada real
DELETE /ivrs/:ivrllamada real
GET /ivrs/:ivrllamada real
PUT /ivrs/:ivrllamada real
GET /ivrs/:ivr/guionEl texto exacto que se va a decirpor la API
DELETE /ivrs/:ivr/opciones/:teclallamada real
PUT /ivrs/:ivr/opciones/:teclallamada real
GET /lista-negrapor la API
POST /lista-negraBloquear un número entrantepor la API
DELETE /lista-negra/:negpor la API
GET /llamadasllamada real
GET /llamadas-en-cursoLas llamadas del inquilino ahora mismo (vista de operadora)por la APIverlo
GET /llamadas/:llamadallamada real
GET /llamadas/csvExportar el CDRllamada real
GET /llamadas/resumenTotales, atención y repartollamada real
POST /llamarTimbrar a la extensión y conectarla con un destinollamada real
GET /mantenimientospor la APIverlo
POST /mantenimientosAvisar a quien llame de que hay un mantenimiento en cursopor la APIverlo
POST /mantenimientos/:mnt/cerrarpor la APIverlo
GET /mensajesBandeja de toda la cuentapor la API
DELETE /mensajes/:msgpor la API
GET /mensajes/:msgpor la API
GET /mensajes/:msg/audiopor la API
POST /mensajes/:msg/leidopor la API
GET /numerospor la API
DELETE /numeros/:numero/aviso-cambioApagar el aviso de cambio y devolver la línea a su destinoaún sin ejercitar
GET /numeros/:numero/aviso-cambioEstado del aviso de cambio de númeroaún sin ejercitar
POST /numeros/:numero/aviso-cambioAnunciar que este número cambió y decir el nuevoaún sin ejercitar
PUT /operadoraA dónde va el cero (#109)por la APIverlo
GET /paisesLa memoria del cortafuegos de fraude: a dónde llama esta casa (#65)
GET /pasosPasos de flujo del cliente
POST /pasosAlta de un paso de flujo
DELETE /pasos/:pso
GET /pasos/:pso
PUT /pasos/:pso
POST /pasos/:pso/rotar-secretoRotar el secreto con el que se firma la consulta
POST /plantillaAplicar una plantilla de arranque (horario + ruta + buzón)por la API
GET /politica-salidapor la API
POST /probar-audioLlamarte y reproducirte una cadena de audio — la prueba de verdadllamada real
GET /probar-entradaA dónde iría una llamada ahora mismollamada real
GET /probar-salidaSimular una salida sin cursarlallamada real
GET /rutasllamada real
POST /rutasQué hace una llamada que entra por un númerollamada real
DELETE /rutas/:rutallamada real
GET /rutas/:rutallamada real
PATCH /rutas/:rutallamada real
GET /saldobanco de pruebas
GET /sin-devolverLas perdidas que nadie ha devuelto, agrupadas por número (#67)
GET /turnosLas rotas de guardia (#66)
POST /turnosCrear una rota de guardia
DELETE /turnos/:turnoBorrar una rota (falla si una ruta apunta a ella)
GET /turnos/:turnoUna rota, con quién está de guardia AHORA
PUT /turnos/:turnoCambiar una rota
POST /turnos/:turno/miembrosMeter a alguien en la rota, con su franja
DELETE /turnos/:turno/miembros/:miembroSacar a alguien de la rota
PUT /turnos/:turno/miembros/:miembroCambiar la franja de alguien
POST /unirLlamar a dos números externos y unirlosllamada real
GET /vipsQuién se salta la fila de la cola (#61)
GET /webhookspor la API
POST /webhookspor la API
DELETE /webhooks/:whkpor la API
PATCH /webhooks/:whkpor la API
GET /webhooks/:whk/entregaspor la API
POST /webhooks/:whk/probarMandar un evento de pruebapor la API
POST /webhooks/:whk/rotarpor la API
POST /webphone/sesionRegistrar el navegador como teléfono de una extensiónpor la API

Ejemplos grabados

No están tecleados. Se grabaron de una ejecución real contra este API, en una cuenta de usar y tirar que después se borró — petición, estado y respuesta, tal como viajaron. Los identificadores de cuenta y de objeto se sustituyen por marcadores; lo demás no se toca. Un ejemplo escrito demuestra lo que creía quien lo escribió; uno grabado demuestra lo que hizo la central.

20 de 204 rutas llevan ejemplo grabado, de la corrida del 2026-09-04. Las demás están listadas arriba pero todavía no se han ejercitado así — preferimos enseñarle la cifra a que usted dé por hecho que son todas.

GET /inquilinos/:inquilino/aparcadas 200

Respuesta

{
  "plazas": []
}

DELETE /inquilinos/:inquilino/citas/:id 200

Respuesta

{
  "id": "<id>",
  "inquilino": "<cuenta>",
  "numero": "50688889999",
  "nombre": null,
  "cuando": "2026-09-04T21:11:53.507Z",
  "avisar_el": "2026-09-03T21:11:53.507Z",
  "guion": null,
  "estado": "cancelada",
  "intentos": 0,
  "ultimo_intento": null,
  "respondido_el": null,
  "nota": null,
  "creado": "2026-09-04T20:11:54.131Z",
  "actualizado": "2026-09-04T20:11:54.445Z"
}

GET /inquilinos/:inquilino/citas/:id 200

Respuesta

{
  "id": "<id>",
  "inquilino": "<cuenta>",
  "numero": "50688889999",
  "nombre": null,
  "cuando": "2026-09-04T21:11:53.507Z",
  "avisar_el": "2026-09-03T21:11:53.507Z",
  "guion": null,
  "estado": "pendiente",
  "intentos": 0,
  "ultimo_intento": null,
  "respondido_el": null,
  "nota": null,
  "creado": "2026-09-04T20:11:54.131Z",
  "actualizado": "2026-09-04T20:11:54.131Z"
}

POST /inquilinos/:inquilino/citas 201

Petición

{
  "numero": "50688889999",
  "cuando": "2026-09-04T21:11:53.507Z",
  "texto": "ensayo"
}

Respuesta

{
  "id": "<id>",
  "inquilino": "<cuenta>",
  "numero": "50688889999",
  "nombre": null,
  "cuando": "2026-09-04T21:11:53.507Z",
  "avisar_el": "2026-09-03T21:11:53.507Z",
  "guion": null,
  "estado": "pendiente",
  "intentos": 0,
  "ultimo_intento": null,
  "respondido_el": null,
  "nota": null,
  "creado": "2026-09-04T20:11:54.131Z",
  "actualizado": "2026-09-04T20:11:54.131Z"
}

GET /inquilinos/:inquilino/colas/:id/callbacks 200

Respuesta

[]

GET /inquilinos/:inquilino/colas/:id 200

Respuesta

{
  "id": "<id>",
  "inquilino": "<cuenta>",
  "nombre": "Soporte",
  "numero": null,
  "estrategia": "todos",
  "timbrado_s": 20,
  "espera_max_s": 600,
  "decir_posicion": 1,
  "decir_espera": 1,
  "anuncio_cada_s": 30,
  "musica": "default",
  "callback": 1,
  "callback_min_espera_s": 45,
  "agotada_tipo": "buzon",
  "agotada_id": null,
  "vacia_tipo": null,
  "vacia_id": null,
  "creado": "2026-09-04T20:11:52.214Z",
  "actualizado": "2026-09-04T20:11:52.214Z",
  "miembros": [],
  "estado": {
    "de_turno": 0,
    "miembros": 0,
    "espera_estimada_s": null,
    "callbacks_pendientes": 0,
    "atendidas_hoy": 0,
    "abandonos_hoy": 0
  }
}

PUT /inquilinos/:inquilino/colas/:id 200

Petición

{
  "nombre": "Ya editada"
}

Respuesta

{
  "id": "<id>",
  "inquilino": "<cuenta>",
  "nombre": "Ya editada",
  "numero": null,
  "estrategia": "todos",
  "timbrado_s": 20,
  "espera_max_s": 600,
  "decir_posicion": 1,
  "decir_espera": 1,
  "anuncio_cada_s": 30,
  "musica": "default",
  "callback": 1,
  "callback_min_espera_s": 45,
  "agotada_tipo": "buzon",
  "agotada_id": null,
  "vacia_tipo": null,
  "vacia_id": null,
  "creado": "2026-09-04T20:11:54.606Z",
  "actualizado": "2026-09-04T20:11:54.771Z",
  "miembros": [],
  "estado": {
    "de_turno": 0,
    "miembros": 0,
    "espera_estimada_s": null,
    "callbacks_pendientes": 0,
    "atendidas_hoy": 0,
    "abandonos_hoy": 0
  }
}

GET /inquilinos/:inquilino/colas 200

Respuesta

[
  {
    "id": "<id>",
    "inquilino": "<cuenta>",
    "nombre": "Soporte",
    "numero": null,
    "estrategia": "todos",
    "timbrado_s": 20,
    "espera_max_s": 600,
    "decir_posicion": 1,
    "decir_espera": 1,
    "anuncio_cada_s": 30,
    "musica": "default",
    "callback": 1,
    "callback_min_espera_s": 45,
    "agotada_tipo": "buzon",
    "agotada_id": null,
    "vacia_tipo": null,
    "vacia_id": null,
    "creado": "2026-09-04T20:11:52.214Z",
    "actualizado": "2026-09-04T20:11:52.214Z"
  }
]

POST /inquilinos/:inquilino/colas 201

Petición

{
  "nombre": "Soporte",
  "estrategia": "todos"
}

Respuesta

{
  "id": "<id>",
  "inquilino": "<cuenta>",
  "nombre": "Soporte",
  "numero": null,
  "estrategia": "todos",
  "timbrado_s": 20,
  "espera_max_s": 600,
  "decir_posicion": 1,
  "decir_espera": 1,
  "anuncio_cada_s": 30,
  "musica": "default",
  "callback": 1,
  "callback_min_espera_s": 45,
  "agotada_tipo": "buzon",
  "agotada_id": null,
  "vacia_tipo": null,
  "vacia_id": null,
  "creado": "2026-09-04T20:11:52.214Z",
  "actualizado": "2026-09-04T20:11:52.214Z",
  "miembros": [],
  "estado": {
    "de_turno": 0,
    "miembros": 0,
    "espera_estimada_s": null,
    "callbacks_pendientes": 0,
    "atendidas_hoy": 0,
    "abandonos_hoy": 0
  }
}

GET /inquilinos/:inquilino/conferencias/:id 200

Respuesta

{
  "id": "<id>",
  "inquilino": "<cuenta>",
  "nombre": "Sala 1",
  "numero": null,
  "max_personas": 10,
  "esperar_organizador": 0,
  "anunciar_entradas": 1,
  "pedir_nombre": 1,
  "bloqueada": 0,
  "grabar": 0,
  "musica": "default",
  "activa": 1,
  "creado": "2026-09-04T20:11:52.847Z",
  "actualizado": "2026-09-04T20:11:52.847Z",
  "tiene_pin": false,
  "tiene_pin_organizador": false,
  "dentro": 0,
  "grabando": false
}

POST /inquilinos/:inquilino/conferencias 201

Petición

{
  "nombre": "Sala 1",
  "clave": "4321"
}

Respuesta

{
  "id": "<id>",
  "inquilino": "<cuenta>",
  "nombre": "Sala 1",
  "numero": null,
  "max_personas": 10,
  "esperar_organizador": 0,
  "anunciar_entradas": 1,
  "pedir_nombre": 1,
  "bloqueada": 0,
  "grabar": 0,
  "musica": "default",
  "activa": 1,
  "creado": "2026-09-04T20:11:52.847Z",
  "actualizado": "2026-09-04T20:11:52.847Z",
  "tiene_pin": false,
  "tiene_pin_organizador": false
}

POST /inquilinos/:inquilino/eventos/ticket 201

Petición

{}

Respuesta

{
  "ticket": "eyJ1IjoicGFuZWwiLCJpIjoiaW5xX3JhN3J0YnYycXA0YyIsInAiOiJldmVudG9zIiwiZXhwIjoxNzg4NTgxNTE1NTcxfQ.bLihoh7EfWP7ZcVGQcPEhfGcHYAn1Y8DmwK4f552uIQ",
  "eventos": [
    "wss://<puerta>:<puerto>/eventos"
  ],
  "inquilino": "<cuenta>"
}

POST /inquilinos/:inquilino/historial/:id/revertir 201

Petición

{}

Respuesta

{
  "revertido": "<id>",
  "tabla": "colas",
  "fila_id": "<id>",
  "columnas": [
    "nombre"
  ],
  "fila": {
    "id": "<id>",
    "inquilino": "<cuenta>",
    "nombre": "Para editar",
    "numero": null,
    "estrategia": "todos",
    "timbrado_s": 20,
    "espera_max_s": 600,
    "decir_posicion": 1,
    "decir_espera": 1,
    "anuncio_cada_s": 30,
    "musica": "default",
    "callback": 1,
    "callback_min_espera_s": 45,
    "agotada_tipo": "buzon",
    "agotada_id": null,
    "vacia_tipo": null,
    "vacia_id": null,
    "creado": "2026-09-04T20:11:54.606Z",
    "actualizado": "2026-09-04T20:11:55.256Z"
  }
}

GET /inquilinos/:inquilino/historial/:id 200

Respuesta

{
  "id": "<id>",
  "inquilino": "<cuenta>",
  "tabla": "colas",
  "fila_id": "<id>",
  "columna_clave": "id",
  "antes": {
    "id": "<id>",
    "inquilino": "<cuenta>",
    "nombre": "Para editar",
    "numero": null,
    "estrategia": "todos",
    "timbrado_s": 20,
    "espera_max_s": 600,
    "decir_posicion": 1,
    "decir_espera": 1,
    "anuncio_cada_s": 30,
    "musica": "default",
    "callback": 1,
    "callback_min_espera_s": 45,
    "agotada_tipo": "buzon",
    "agotada_id": null,
    "vacia_tipo": null,
    "vacia_id": null,
    "creado": "2026-09-04T20:11:54.606Z",
    "actualizado": "2026-09-04T20:11:54.606Z"
  },
  "despues": {
    "id": "<id>",
    "inquilino": "<cuenta>",
    "nombre": "Ya editada",
    "numero": null,
    "estrategia": "todos",
    "timbrado_s": 20,
    "espera_max_s": 600,
    "decir_posicion": 1,
    "decir_espera": 1,
    "anuncio_cada_s": 30,
    "musica": "default",
    "callback": 1,
    "callback_min_espera_s": 45,
    "agotada_tipo": "buzon",
    "agotada_id": null,
    "vacia_tipo": null,
    "vacia_id": null,
    "creado": "2026-09-04T20:11:54.606Z",
    "actualizado": "2026-09-04T20:11:54.771Z"
  },
  "actor": "apikey:<id> primera clave de sistema (sistema)",
  "origen": "api",
  "revertido_de": null,
  "creado": "2026-09-04T20:11:54.777Z",
  "cambios": {
    "nombre": {
      "antes": "Para editar",
      "despues": "Ya editada"
    }
  }
}

GET /inquilinos/:inquilino/historial 200

Respuesta

{
  "inquilino": "<cuenta>",
  "cambios": [
    {
      "id": "<id>",
      "tabla": "colas",
      "fila_id": "<id>",
      "actor": "apikey:<id> primera clave de sistema (sistema)",
      "origen": "api",
      "revertido_de": null,
      "creado": "2026-09-04T20:11:54.777Z",
      "cambios": {
        "nombre": {
          "antes": "Para editar",
          "despues": "Ya editada"
        }
      }
    }
  ]
}

GET /inquilinos/:inquilino/llamadas-en-curso 200

Respuesta

{
  "activas": []
}

POST /inquilinos/:inquilino/mantenimientos/:id/cerrar 201

Petición

{}

Respuesta

{
  "id": "<id>",
  "inquilino": "<cuenta>",
  "motivo": "ensayo",
  "desde": "2026-09-04T20:11:53.637Z",
  "hasta": "2026-09-04T20:11:53.969Z",
  "avisar": 1,
  "activo": 0,
  "creado": "2026-09-04T20:11:53.637Z"
}

GET /inquilinos/:inquilino/mantenimientos 200

Respuesta

[
  {
    "id": "<id>",
    "inquilino": "<cuenta>",
    "motivo": "ensayo",
    "desde": "2026-09-04T20:11:53.637Z",
    "hasta": null,
    "avisar": 1,
    "activo": 1,
    "creado": "2026-09-04T20:11:53.637Z"
  }
]

POST /inquilinos/:inquilino/mantenimientos 201

Petición

{
  "motivo": "ensayo",
  "minutos": 5
}

Respuesta

{
  "id": "<id>",
  "inquilino": "<cuenta>",
  "motivo": "ensayo",
  "desde": "2026-09-04T20:11:53.637Z",
  "hasta": null,
  "avisar": 1,
  "activo": 1,
  "creado": "2026-09-04T20:11:53.637Z"
}

PUT /inquilinos/:inquilino/operadora 200

Petición

{
  "destino": "buzon"
}

Respuesta

{
  "operadora": null
}

DELETE /inquilinos/:inquilino 200

Respuesta

{
  "borrado": "<cuenta>"
}

POST /inquilinos 201

Petición

{
  "nombre": "Ejercicio API 2026-09-04T20:11:51"
}

Respuesta

{
  "id": "<cuenta>",
  "nombre": "Ejercicio API 2026-09-04T20:11:51",
  "cuenta_portal": null,
  "cedula": null,
  "correo": null,
  "telefono": null,
  "plan": "zero",
  "zona": "America/Costa_Rica",
  "idioma": "es",
  "estado": "activo",
  "canales_max": 4,
  "notas": null,
  "creado": "2026-09-04T20:11:51.932Z",
  "actualizado": "2026-09-04T20:11:51.932Z",
  "canales_garantizados": 2,
  "modo_presion": "firme",
  "presion_canales": 1,
  "duracion_max_s": null,
  "operadora_tipo": null,
  "operadora_id": null,
  "filtro_anonimas": 0,
  "cdr_retencion_dias": null,
  "codigo_asunto_digitos": 0,
  "supervision_activa": 0,
  "limites": {
    "canales": 2,
    "canales_max": 4,
    "extensiones": 3,
    "retencion": 30,
    "tope_diario": 3,
    "tope_mensual": 25
  },
  "canales": {
    "existe": true,
    "garantizados": 2,
    "max": 4,
    "modo": "firme",
    "presion_canales": 1
  }
}

Sesiones: el navegador nunca lleva una clave permanente

Una credencial corta, con techo de 60 minutos, que no puede fabricar una permanente. Éste es el contrato si usted es quien construye el botón.

  • Sólo el portal puede emitirla. Emitir una sesión necesita una clave de aprovisionamiento, porque sólo el portal puede afirmar que detrás de la petición hay un cliente con la sesión iniciada. VOICE no sabe de contraseñas de cliente y no tiene por qué saberlo.
  • Nunca nace sin caducidad. Si nadie pide una duración, se le pone una. Un ámbito que existe para caducar y que pudiera nacer eterno es peor que no tenerlo, porque se confía en él.
  • Pedir más tiempo no sirve. Hay un techo duro. Que quien llama pida ocho horas no hace segura la credencial.
  • No puede ascender. La gestión de claves vive entera detrás del ámbito de aprovisionamiento, así que una sesión no puede fabricarse una clave permanente. Eso se impone en el enrutador, antes de cualquier manejador.
  • Se puede cerrar antes de tiempo. El identificador vuelve al emitirla, justamente para que usted pueda revocarla antes de que le toque.

Avisos a su sistema (webhooks)por la API

Sus sistemas se enteran de lo que pasó en vez de preguntarlo cada pocos segundos. 28 eventos, firmados, con reintento, y ninguno se cae en silencio.

x-pbx-evento: llamada.entrante
x-pbx-marca:  1755300000
x-pbx-firma:  <hex>

{ "evento": "llamada.entrante", "inquilino": "…", "cuando": "…", "datos": { … } }

Cada entrega va firmada: la firma cubre la marca de tiempo y el cuerpo exacto que usted recibió, así que verifíquela contra los bytes en crudo y no contra una copia vuelta a serializar. El secreto se enseña una sola vez al crear la suscripción, y se puede rotar sin parar las entregas.

Una entrega que falla se reintenta a los 10 · 30 · 60 · 300 · 900 · 3600 segundos, y cada intento tiene 10 segundos. Una suscripción que sigue fallando se pausa tras 20 fallos seguidos, en vez de caerse en silencio — y usted puede ver todos los intentos.

Los eventos

EventoCuándo salta
llamada.entranteEstá entrando una llamada, con el número, la ruta y hacia dónde va.
llamada.contestadaAlguien la atendió.
llamada.terminadaTerminó, con la duración y cómo acabó.
llamada.perdidaTimbró y no la contestó nadie.
buzon.mensajeAlguien dejó un mensaje, con su transcripción.
grabacion.listaUna grabación terminó de procesarse y se puede descargar.
grabacion.analizadaSu transcripción, sus hablantes y su resumen están listos.
saldo.bajoEl saldo se está acabando.
tope.alcanzadoSe alcanzó un tope de gasto y las llamadas se pararon.
registro.anomaloUn registro de aparato tiene mala pinta — varias credenciales desde el mismo sitio, por ejemplo.
canales.al_limiteEstá cerca del tope de sus líneas simultáneas.
cita.confirmadaAlguien confirmó su cita con el teclado.
cita.reagendarAlguien pidió otra fecha. Es una petición para una persona, no algo que la central vaya a resolver sola.
cita.canceladaAlguien canceló su cita.
desvio.activadoSe activó un desvío.
desvio.recordatorioUn desvío sigue activado. El desvío olvidado es la avería fantasma más común de una central.
buzon.llenoUn buzón está lleno — de aquí en adelante se perderían mensajes.
buzon.casi_llenoUn buzón se está llenando, cuando todavía hay tiempo de hacer algo.
cola.vaciaNo hay nadie de turno en una cola.
cola.callbackAlguien pidió que lo llamaran en vez de esperar.
conferencia.entraAlguien entró en una sala.
conferencia.saleAlguien salió de una sala.
canales.desalojoSe devolvió una línea prestada para proteger la garantía de alguien.
emergencia.marcadaAlguien marcó el número de emergencias desde una extensión. La llamada no se retrasa nunca por esto.
fax.entranteSe detectó tono de fax en una llamada entrante.
supervision.iniciadaAlguien escuchó, susurró o entró en una llamada. Es lo que separa una herramienta de supervisión de un pinchazo: poder responder «quién escuchó esta llamada, y cuándo».
fraude.sospechaUn patrón de comportamiento que parece fraude. Avisa; no corta.
filtro.insistenciaUn número está llamando demasiadas veces.

El canal en vivollamada real

Los avisos viajan en lotes y llegan en segundos. Hay cosas que tienen que estar en pantalla ya: una luz que dice que un compañero está hablando no puede llegar quince segundos tarde.

  • Qué lleva. Las llamadas según ocurren, los mensajes nuevos y el estado de la luz de cada extensión — que es lo que hace que un panel de luces en una pantalla esté vivo de verdad.
  • Es de sólo lectura.por la API Se puede abrir un pase para el canal sin entregar un teléfono: mirar lo que pasa no debería exigir una credencial que además pueda cambiar cosas.
  • No sustituye a los avisos. El canal en vivo es para una pantalla que alguien está mirando. Si importa que su sistema se entere, use un aviso: reintenta, y no depende de que haya un socket abierto.

Referencia

Cómo se leen las insignias

Cada capacidad de esta página lleva una insignia que dice cómo se ha comprobado. Publicamos también las que todavía no se han ejercitado, marcadas como tales, porque que lo descubra usted es peor.

InsigniaQué haceCuántas
llamada realAlguien hizo una llamada de verdad e hizo lo que aquí dice.13
llamada de pruebaUna llamada real contra la central viva, marcando teclas de verdad — pero sin voz y sin nadie escuchando. Todo lo que dependa de que quien llama hable sigue sin ejercitarse.3
aparato realProbado con un aparato real registrándose.1
por la APIEjercitado por la API pública.46
banco de pruebasEjercitado en el banco de pruebas, contra una copia desechable de la base.13
aún sin ejercitarEl código está y carga, pero nadie lo ha hecho correr todavía.36

112 capacidades, contadas desde la central el 2026-08-19.

La insignia es de una capacidad, no de una fila suelta: donde una capacidad cubre varios códigos, todos enseñan el nivel del grupo. Eso significa que una insignia puede quedarse CORTA respecto a lo que de verdad se ha probado — nunca larga, que es la única dirección en la que estamos dispuestos a equivocarnos en una página que usted lee como una promesa.

Glosario

Las palabras que usa una central telefónica y no usa ninguna otra cosa.

TérminoQué hace
ExtensiónUna persona o un puesto dentro de su empresa, con un número corto que marcan los demás. No es un teléfono: una extensión puede tener varios aparatos.
Número (DID)Lo que marca la gente de fuera para llegar a usted. Un número apunta a algo —una extensión, un grupo, un menú— y eso lo decide usted.
Grupo de timbradoVarias extensiones timbrando por la misma llamada. Es sencillo, y no tiene ni idea de quién está esperando ni desde cuándo.
ColaUn grupo que además lleva la fila. Sabe la posición, la espera medida y quién está de turno, y puede ofrecer una devolución de llamada.
Menú de voz (IVR)«Marque 1 para ventas». Un menú puede llevar menús dentro, y quien llama siempre puede volver atrás o llegar a una persona.
Línea simultánea (canal)Una conversación en curso. Diez canales son diez llamadas a la vez, tenga los teléfonos que tenga.
Registro de llamada (CDR)Una fila por llamada: quién, cuándo, cuánto duró, por qué ruta y cómo acabó. Es de lo que se construye una factura.
Luz de ocupadoEl indicador que dice si un compañero está libre, timbrando o hablando, sin tener que llamarlo para averiguarlo.
Tonos del teclado (DTMF)Los pitidos que hace un teléfono al pulsar una tecla. Son la forma en que le oyen un menú, un buzón y todos los códigos de esta página.
SíguemeSu extensión timbra también en su celular, o en su lugar. Es la función más usada de cualquier central pequeña.
AparcarDejar una llamada esperando en una plaza numerada para que cualquiera, desde cualquier teléfono, la recoja marcando esa plaza.
Transferencia atendidaHablar con su compañero antes de pasarle la llamada, con la posibilidad de recuperarla.

Volver a VOICE