Hébergement web/VOICE/Documentation
ForHosting VOICE

Documentation

Une seule page, quatre couloirs. Commencez ici, confiez les deux du milieu à qui répond au téléphone et à qui dirige la maison, et envoyez le dernier à qui écrit le code.

Pour commencer

Votre standard en cinq minutes

Tout ce qui suit existe déjà dans votre compte. Rien ici ne demande un installateur, la visite d'un technicien ni un appareil à acheter.

  • Vous avez déjà des numéros et des postes. Ils sont créés avec votre compte, avec les identifiants SIP dont chaque appareil a besoin. Un poste, c'est une personne ou un bureau ; un numéro, c'est ce que compose le monde extérieur.
  • Faites pointer un numéro quelque part. Dans l'onglet Numéros, vous dites ce qu'un appel arrivant sur ce numéro doit faire : sonner un poste, sonner un groupe, ouvrir un menu, entrer dans une file ou suivre vos horaires.
  • Répondez depuis le navigateur. Ouvrez l'onglet Téléphone, autorisez le micro, et cet onglet devient un poste qui fonctionne. Appelez le test d'écho en composant *43 et vous vous entendrez revenir.
  • Ensuite, réglez vos horaires et votre messagerie. Ce sont ces deux-là qui empêchent un appel de se perdre à sept heures du soir, et ce sont les deux choses qui manquent le plus souvent à un standard tout neuf.

Pressé ? Il existe cinq modèles de démarrage — un cabinet médical, un cabinet d'avocats, un atelier, une boutique et une ligne de maison — qui créent vos horaires, votre route entrante et votre messagerie hors horaires en une seule requête. Ils n'écrasent jamais ce que vous avez déjà configuré.

Comment entrer dans votre panneaupar l'API

Le panneau vit sur votre page VOICE et n'apparaît qu'avec une session. Cette session est émise par votre espace client ; ici, on ne saisit rien.

ÉtapeCe que ça fait
1Vous vous connectez à votre espace client sur elportaldelcliente.com.
2Vous choisissez « Administrer mon standard » dans le menu de votre compte. Cela demande à VOICE une session en votre nom et vous envoie sur votre page VOICE, la clé dans le fragment de l'adresse.
3Le panneau remplace la page commerciale. La clé est effacée de la barre d'adresse avant tout affichage, et elle expire d'elle-même.

Pour qui construira ce bouton, voici tout le contrat :

POST /inquilinos/:inquilino/sesiones     # portée système : seul le portail peut en émettre
{ "minutos": 15 }
→ { "clave": "pbx_ses_…", "caduca": "…", "ambito": "sesion", "minutos_max": 60 }

/telephonie#t=<clave>&exp=<ISO>&v=<inquilino>

La clé voyage dans le fragment et non dans la query, volontairement : un fragment n'est jamais envoyé à un serveur, il ne finit donc ni dans un en-tête Referer, ni dans les journaux d'accès, ni chez un intermédiaire du chemin. Elle expire en quelques minutes, elle est plafonnée, et elle ne peut jamais fabriquer de clé permanente.

Pour qui répond au téléphone

Le panneau, onglet par ongletpar l'API

16 sections, les mêmes 16 dans les huit langues. Tout ce qui est ici existe aussi dans l'API.

OngletCe que ça fait
AperçuOù en est votre standard à l'instant : appels du jour, décrochés, en cours, votre pointe et à quel point vos postes ont été joignables.
Mes numérosVos numéros, et ce que fait chacun quand il sonne.
MenusMenus vocaux : tapez 1 pour les ventes, et dans les ventes un autre menu.
PostesPersonnes et appareils, avec des règles par personne : suivez-moi, renvois, ne pas déranger, ce que chacun a le droit de composer, et le portier.
TéléphoneLe téléphone lui-même : composer, décrocher, transférer, mettre en garde, et voir qui est en ligne.
Files d'attenteFiles avec position, attente mesurée, rappel, qui est en poste et qui traite quoi.
SallesSalles de conférence avec clé, et qui est dedans en ce moment.
MessagerieMessages avec leur transcription, annonces, code, corbeille et taille maximale.
AnnuaireL'annuaire par le nom auquel arrive celui qui épelle sur le clavier.
AccueilLa standardiste, les appels en garde en temps réel, les fenêtres de maintenance et la table des codes.
FiltresListe noire, filtre d'appels anonymes, alertes sur qui insiste trop et tout ce qui touche à qui peut vous joindre.
HorairesHeures ouvrées, jours fériés et la bascule jour / nuit.
MusiqueMusique d'attente et les morceaux que joue chaque flux.
AppelsChaque appel avec son numéro, sa durée, sa route et son enregistrement.
LignesLignes simultanées : ce que vous avez garanti, ce que vous empruntez et votre pointe.
ConsommationCe que vous avez consommé ce mois-ci, jour par jour.

Le téléphone dans votre navigateurappel réel

Un onglet est un poste. Rien à installer, aucun téléphone de bureau à acheter, aucun numéro à porter : c'est un poste de votre propre standard, enregistré depuis le navigateur.

  • C'est un vrai poste. Le navigateur s'enregistre sur votre standard comme le ferait un téléphone de bureau, et l'audio passe par une liaison chiffrée. Qui appelle votre numéro peut atteindre l'onglet, et l'onglet peut appeler dehors.
  • L'onglet doit rester ouvert. Un onglet fermé est un téléphone débranché. C'est la limite honnête d'un téléphone dans le navigateur, et la raison pour laquelle il accompagne un poste de bureau au lieu de le remplacer partout.
  • Vous voyez qui est en ligne.appel réel Les voyants de vos collègues se mettent à jour en direct — libre, sonne, en conversation —, vous savez donc s'il y a quelqu'un à qui passer l'appel avant d'essayer.
  • Vous pouvez déplacer un appel en cours vers un autre appareil.pas encore exercé « Je dois partir et je suis en pleine conversation » : l'appel passe sur votre mobile sans raccrocher. C'est un bouton et non un code de clavier, volontairement — qui déplace un appel a un écran devant lui.
  • Transférer, mettre en garde et enregistrer sont les mêmes codes que sur n'importe quel poste. Ils se composent, ils ne se cliquent pas : ce que vous apprenez sur le téléphone du navigateur vous sert sur le poste de bureau et sur votre mobile.

Le téléphone du navigateur n'enregistre jamais sur votre ordinateur. L'enregistrement se fait dans le standard, là où s'appliquent les règles sur qui peut être enregistré et qui doit en être averti — voyez « Enregistrer, et la loi ».

Codes composés depuis un poste

On garde les classiques là où une convention existe (*72 renvoi, *78 ne pas déranger, *97 messagerie, *8 interception, *69 qui vient d'appeler). C'est tout le sens d'un code de clavier : la fonction est déjà dans le panneau, et le code est ce qui fait qu'une personne qui compose *72 depuis vingt ans croit le panneau.

Composés poste au repos

CodeCe que ça faitVérifié
*43Test d'écho. Il enregistre ce que vous dites et vous le renvoie, et il sait dire « rien ne m'est parvenu ».pas encore exercé
*44La même chose, avec un retard : il révèle les mots qui se perdent.pas encore exercé
*45Test du clavier. Il annonce chaque touche à mesure que vous appuyez.pas encore exercé
*46L'état de votre ligne : enregistrement, codec, adresse et latence.pas encore exercé
*60L'heure et la date, dites correctement.banc d'essai
*62Votre consommation du mois (appels et minutes ; le montant, une fois la facturation active).par l'API
*69Qui vous a appelé en dernier, dit à voix haute, appels manqués compris — puis tapez 1 pour rappeler.pas encore exercé
*72Renvoi inconditionnel. Il vous relit le numéro.par l'API
*73Annule tous les renvois.par l'API
*74Renvoi parallèle : votre poste et le numéro sonnent en même temps.par l'API
*75Renvoi quand vous êtes occupé.par l'API
*76Renvoi quand vous ne répondez pas.par l'API
*78Ne pas déranger activé, confirmé à voix haute.par l'API
*79Ne pas déranger désactivé.par l'API
*80Vous prenez votre poste dans toutes vos files.par l'API
*81Vous quittez votre poste dans toutes vos files.par l'API
*90Bloque un numéro (# seul bloque celui du dernier appel reçu).pas encore exercé
*91Débloque.pas encore exercé
*97Votre messagerie, avec votre code.banc d'essai
*98Enregistre votre annonce.banc d'essai
*99Enregistre votre nom — l'annuaire et la salle de conférence s'en servent.banc d'essai
*8Interceptez l'appel qui sonne au bureau d'à côté.par l'API
*66Mode : normal · déjeuner · fermé · férié · automatique.par l'API
*411L'annuaire par le nom.banc d'essai
*57Ouvre un dossier d'appel malveillant sur celui que vous venez de recevoir. L'enregistrement cesse d'expirer et l'heure, la route et l'audio sont conservés pour une plainte. Cela ne bloque pas l'appelant : ce choix vous appartient.pas encore exercé
*85Prévenez-moi quand ce poste sera libre.pas encore exercé
*86Annule cette demande.pas encore exercé
*82Écoutez un appel de votre propre maison. Aucune des deux parties ne vous entend.pas encore exercé
*83Soufflez : seul votre collègue vous entend, pas le client.pas encore exercé
*84Entrez dans l'appel : les deux parties vous entendent.pas encore exercé
*88Les appels que personne n'a rappelés, dits à voix haute — puis tapez 1 pour rappeler le plus ancien.pas encore exercé
*47Le standard s'explique tout seul : il récite ses propres codes, 9 pour le suivant, 0 pour sortir.pas encore exercé
70NReprend l'appel mis en garde sur l'emplacement N.par l'API

Composés pendant une conversation

CodeCe que ça faitVérifié
*1Enregistre cet appel, maintenant. Les deux parties en sont averties.par l'API
*7Le met en garde : l'appelant a de la musique et le numéro d'emplacement est annoncé à voix haute.par l'API
##<ext>#Transfert aveugle : vous passez l'appel et vous raccrochez.appel réel
#<ext>#Transférer sans choisir le type. Le standard regarde s'il y a quelqu'un en face et bascule en transfert aveugle s'il n'y a personne.pas encore exercé
*2<ext>#Transfert supervisé : vous parlez d'abord à votre collègue.pas encore exercé

Pendant la consultation, dans un transfert supervisé

CodeCe que ça faitVérifié
*1Termine le transfert.pas encore exercé
*0Annule et revient à l'appelant.pas encore exercé
*3Vous met tous les trois sur le même appel.pas encore exercé

Dans une salle de conférence

CodeCe que ça faitVérifié
*6Tout le monde : coupe et rouvre son micro.par l'API
*7Tout le monde : combien de personnes sont dans la salle.par l'API
*9Tout le monde : sortir.par l'API
*1Organisateur : ferme la salle sans changer la clé.par l'API
*2Organisateur : la rouvre.par l'API
*3Organisateur : lance ou arrête l'enregistrement.par l'API

Certains codes veulent dire deux choses et elles ne se percutent pas : *1 dans une conversation normale, c'est « enregistrer maintenant » ; pendant la consultation, c'est « terminer le transfert » ; et dans une salle, c'est « verrouiller la salle ». Ce sont des états différents du même poste, traités par du code différent.

Avant de faire confiance à un poste neuf : Les téléphones de bureau et les adaptateurs traitent leurs propres codes étoile et ne les transmettent jamais. Si vous composez un code et que vous entendez le silence puis la tonalité, c'est l'appareil qui l'a avalé et le standard n'a rien vu. Demandez-nous de vérifier un nouveau modèle contre la liste du jour avant de le déployer.

La messagerie depuis n'importe quel postebanc d'essai

Composez *97, saisissez votre code, et toute la messagerie est là — sans application et sans navigateur. C'est écrit pour le patron qui appelle depuis un téléphone emprunté.

Menu principal

ToucheCe que ça fait
1Nouveaux messages.
2Messages gardés.
4Annonces et votre nom enregistré.
5Changer votre code.
0Sortir vers la standardiste.
9Raccrocher.

Pendant l'écoute d'un message

ToucheCe que ça fait
1Le répéter.
2Le garder.
3Le supprimer. Puis tapez 8 dans les cinq secondes pour annuler.
4Rappeler cette personne.
6Le suivant, en laissant celui-ci comme nouveau.
7Le transmettre à un collègue avec une note de vous enregistrée devant.

Menu des annonces

ToucheCe que ça fait
1Enregistrer l'annonce principale.
2Enregistrer votre nom.
3Mettre une annonce de congés.
4L'enlever.

Traiter l'appel lui-même

Un groupe d'appel dit « que ça sonne à plusieurs endroits ». Tout ce qui suit fait quelque chose qu'un groupe d'appel ne sait pas faire.

  • Files d'attente.par l'API Une file sait combien de personnes attendent devant et combien de temps cela prend d'habitude, elle peut donc le dire. L'attente est mesurée sur vos propres appels récents, jamais inventée — avec moins de trois échantillons, elle ne dit rien. Sans personne en poste, personne n'est mis en attente.
  • Rappel depuis la file.par l'API Proposé après un moment d'attente, et pas proposé si l'appel va de toute façon être pris tout de suite. La demande survit à un redémarrage, puisque celui qui la fait raccroche, et le rappel entre en tête de file — c'est ce qui a été promis.
  • Salles de conférence.par l'API Une salle avec son numéro et deux clés : une pour entrer, une pour l'animer. Personne n'a besoin de compte nulle part. Les entrées et les sorties sont annoncées avec le nom que chacun a enregistré lui-même.
  • L'annuaire par le nom.banc d'essai L'appelant épelle un nom sur le clavier et il est mis en relation. Chaque mot du nom est indexé séparément, parce qu'ici deux noms de famille sont la norme et ne chercher que le premier trouve la moitié de la maison. Les accents et le ñ sont normalisés : « Muñoz » se trouve en composant 686.
  • Le zéro pour la standardiste.par l'API Sans doute l'attente la plus universelle qui existe à propos d'un téléphone : pouvoir joindre une personne. Le zéro descend en cascade de votre standardiste vers la messagerie générale, puis vers une phrase dite à voix haute — jamais un raccroché muet.
  • Mettre en garde et reprendre.par l'API Mettez un appel en garde et il attend avec de la musique sur un emplacement numéroté pendant que vous marchez jusqu'à un autre bureau. N'importe qui le reprend en composant cet emplacement. Intercepter le téléphone qui sonne à côté de vous, c'est *8.

Pour qui dirige la maison

Canaux : garantie, prêt et restitutionpar l'API

C'est la partie du produit qu'un plafond dur ne sait pas faire, et il vaut mieux la comprendre avant de choisir un forfait.

  • Garantis. Les appels simultanés que vend votre forfait. Ils passent toujours, quoi que fasse le standard, et personne ne peut vous les retirer.
  • En prêt. Au-dessus de votre garantie, vous utilisez ce que le standard a de libre. La plupart des jours, vous serez là, et cela ne coûte rien de plus.
  • La réserve. Un matelas de canaux qui n'est prêté à personne, pour que chacun puisse atteindre sa propre garantie à tout moment.
  • La restitution. Quand le standard est sous tension, les appels empruntés peuvent être rendus pour protéger la garantie d'un autre. Cela ne concerne que les comptes qui l'ont activé, jamais un appel à l'intérieur d'une garantie, jamais un appel d'urgence et jamais en silence : le standard parle avant de libérer.
  • Impossible de survendre. La somme de toutes les garanties plus la réserve doit tenir. La mise en service le vérifie et refuse un forfait qui ne tient pas, et c'est ce qui donne un sens au mot « garanti ».
  • Et vous voyez quand ça a mordu. La congestion est signalée par épisodes avec leur heure, pas comme un total mensuel. « Douze refus en trente jours » se lit comme du bruit ; « mardi dernier, entre dix et onze heures, cinq personnes ont eu l'occupation » est quelque chose sur quoi on peut décider.

Ce qui se passe quand quelque chose casse

Un standard se juge le jour où le courant saute, pas le jour où tout marche.

  • Plus d'une sortie. Le standard atteint le monde extérieur par plusieurs liaisons indépendantes et choisit entre elles tout seul. Vous ne configurez pas cela et vous ne le voyez pas se produire.
  • « Ça marche » se mesure contre la bonne chose. Une liaison n'entre dans la rotation que si elle atteint à la fois l'internet et le réseau téléphonique. Ne vérifier que le premier, c'est ainsi qu'un standard se retrouve sans ligne avec tous les voyants au vert.
  • Il se relève seul après une coupure de courant. Quand le courant revient, le standard et les équipements réseau démarrent en même temps et pas toujours dans le bon ordre. Plutôt que de se fier à cet ordre, le standard compare sans cesse ce qu'il a vraiment avec ce qu'il devrait avoir, et se répare — avec un plafond sur le nombre de tentatives, pour qu'une vraie panne soit remontée au lieu de tourner en boucle.
  • Il ne coupe pas un appel pour se réparer. Toute réparation qui interromprait des conversations attend qu'il n'y en ait plus.

Les enregistrements et les messages vocaux sont stockés hors du standard : ils survivent donc à la machine elle-même.

Forfaits et minutes

5 forfaits, de $100 à $300 par an, et un numéro par licence. La minute entrante sur un numéro du Costa Rica est à $0.00.

ForfaitSimultanés, jusqu'àDont garantisPostesConservation (jours)Par an
VOICE I3133$100
VOICE II4244$150
VOICE III6366$200
VOICE IV8488$250
VOICE V105Sans limite28$300

Minutes

DestinationLa minute
Appels entrants$0.00
Costa Rica · fixe$0.03
Costa Rica · mobile$0.08
Amérique centrale$0.45
Caraïbes$0.55
Reste du monde$2.30

Prix en dollars, taxes comprises. L'opérateur mesure les appels vers mobile à la seconde. Chaque licence inclut 1 numéro ; les numéros supplémentaires partagent le même standard, les mêmes flux et le même panneau.

Enregistrer, et la loipar l'API

Un enregistrement, c'est la voix d'autres personnes. La loi costaricienne 8968 la protège, et la conception découle de là plutôt que de ce qui serait commode.

  • Vous décidez ce qui est enregistré.par l'API Tout, ou seulement certains postes, ou seulement les appels arrivant sur un certain numéro. Ou rien, ce qui est une réponse légitime.
  • La conservation vient avec votre forfait. Les enregistrements sont purgés d'eux-mêmes à l'échéance : celle du forfait, ou 90 jours pour ceux demandés pendant l'appel (avec *1) et ceux d'une salle de conférence. La seule exception est un enregistrement rattaché à un dossier d'appel malveillant, qui cesse d'expirer jusqu'à ce que vous fermiez le dossier — et le fermer redonne un délai normal, jamais un « supprimez-le tout de suite ».
  • En partager un ne revient pas à donner un accès. Un lien signé joue un seul enregistrement, expire de lui-même et peut être révoqué. La personne à qui vous l'envoyez ne voit jamais votre compte.
  • Chaque écoute est journalisée. Qui a joué quel enregistrement, et quand. C'est la voix de quelqu'un d'autre : savoir qui l'a entendue fait partie du fait de la détenir.
  • Vous pouvez les classer. Client, prospect ou interne. Il n'y a volontairement pas de valeur par défaut : non classé est honnête, et une étiquette devinée par la machine ne se distingue plus, après coup, d'une étiquette choisie par une personne.

Les deux parties sont toujours averties. Demander au standard d'enregistrer rend aussi l'obligation de l'annoncer : les deux ne se séparent pas, parce que les séparer est précisément la façon dont quelqu'un finit enregistré sans le savoir. Dans une salle de conférence, l'annonce est faite à chaque personne au moment où elle entre.

Limites, protection et retour arrière

Ce qui décide jusqu'où va une mauvaise journée : une clé volée, une erreur d'acheminement, un numéro qui n'arrête pas d'appeler.

  • Un plafond de dépense, journalier et mensuel.banc d'essai C'est ce qui empêche une clé volée de coûter de l'argent. Le plafond atteint, les appels s'arrêtent.
  • Ce que chaque poste a le droit de composer.par l'API Interne seulement, national, mobile, ou tout. Le téléphone de l'entrepôt n'a aucune raison de pouvoir appeler un numéro surtaxé. Les appels d'urgence ne passent jamais par là.
  • Le prix avant de composer.par l'API Demandez ce que coûterait un numéro donné : la réponse est calculée par la même mécanique que celle qui acheminera vraiment l'appel, et non par une grille tarifaire qui pourrait ne pas être celle appliquée.
  • Une alarme de fraude qui regarde le comportement.pas encore exercé Une cadence inhabituelle, un pays que vous n'avez jamais appelé, une heure où personne ne travaille. Elle prévient et ne coupe pas : un faux positif ici n'est pas une alerte agaçante, c'est un appel qui n'a pas eu lieu. Il lui faut deux signaux avant de dire quoi que ce soit, parce qu'une alarme qui se déclenche tous les jours finit ignorée.
  • Celui qui insiste trop est signalé.pas encore exercé Le même numéro cinq fois en deux minutes, ce n'est pas un client insistant : c'est un automate d'appel. En sortie d'usine, cela ne fait qu'avertir ; bloquer automatiquement est une case que vous cochez, parce qu'un faux positif coûte un client qui ne pourra plus jamais appeler.
  • Un dossier pour un appel malveillant.pas encore exercé L'heure, la route et l'audio, gardés ensemble pour une plainte. En ouvrir un ne bloque pas l'appelant : chaque nouvel appel est une preuve de plus, et cette décision est la vôtre, pas la nôtre.
  • À quel point vos postes ont été joignables.par l'API Pas notre disponibilité : la vôtre. Et on montre toujours quelle part de la période a réellement été mesurée, parce qu'un pourcentage qui avale en silence les heures que personne n'a regardées se trompe toujours du côté confortable.
  • Ce qui a changé, qui l'a changé, et le retour arrière.par l'API « Hier ça marchait » est une question qui a une réponse. Chaque changement de configuration est consigné et peut être annulé, et l'annulation vérifie que personne d'autre n'a touché à ces champs entre-temps au lieu de les écraser en silence.

Ce qui est éteint, et pourquoi

Un manuel qui ne décrit que ce qui marche vous oblige à découvrir le reste tout seul, et on le découvre toujours au pire moment. Cette liste est engendrée par l'interrupteur lui-même : elle ne peut pas décrire comme éteint ce qui vient d'être allumé.

Ce que ça faitPourquoi
La messagerie vers l'e-mailL'audio en pièce jointe, sans avoir à appeler la messagerie. Il faut un identifiant de courrier pour la boîte, et cet identifiant n'existe pas encore.
La facturation automatique à la minuteLa mesure fonctionne et chaque appel est mesuré ; ce qui n'est pas activé, c'est le débit sur un solde prépayé. En attendant, les minutes sont facturées.
Adresse de secours pour les postesPour que les téléphones basculent seuls entre les deux entrées du standard. Il faut un identifiant du domaine avec droit d'écriture ; celui que nous avons ne fait que lire.
Le fax entrantDétecter la tonalité et vous le signaler est construit, et c'est éteint volontairement : la détection de fax écoute tous les appels entrants, et un faux positif ferait tomber un vrai appel vocal. Cela reste éteint tant qu'il n'y a pas un vrai fax pour le mesurer.

Pour qui l'intègre

L'APIpar l'API

Le panneau n'est qu'un client de cette API. Tout ce que vous changez à la main peut se changer par programme, avec une clé qui appartient à votre compte.

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

Portées

PortéeCe que ça fait
sistemaMise en service, au-dessus des comptes. On ne vous en délivrera pas.
inquilinoVotre compte, lecture et écriture. C'est la clé avec laquelle on intègre.
lecturaVotre compte, GET uniquement. Pour des tableaux de bord qui ne doivent rien pouvoir changer.
sesionLa même portée que votre clé de compte, mais elle expire en quelques minutes. C'est celle du panneau, pour qu'un navigateur ne détienne jamais de clé permanente.
dispositivoUn seul appareil d'un seul poste, et elle expire en quelques minutes. C'est celle que porte l'application du téléphone : elle n'atteint que ce dont un téléphone a besoin, et seulement pour son propre poste.

Quand quelque chose se passe mal

CodeCe que ça fait
400La requête est mal formée, ou une valeur ne fait pas partie de celles que nous acceptons. Le message dit laquelle.
401Pas de clé, une clé inconnue, ou une session déjà expirée.
403La clé est bonne mais n'a pas le droit : des données d'un autre compte, une route de mise en service, ou une écriture avec une clé en lecture seule.
404Cela n'existe pas dans votre compte.
405Ce chemin existe, cette méthode non. On le distingue du 404 volontairement : cela fait gagner une heure.
503 · 504Le standard n'a pas pu être joint, ou il n'a pas répondu à temps. On ne répond jamais « vous n'avez rien » : ne pas pouvoir regarder n'est pas la même chose que ne rien avoir.

Tout ce que l'API peut répondre lorsqu'elle refuse

Ce sont les chaînes exactes que l'API renvoie dans le champ error, lues dans le code source du standard. Elles sortent en espagnol et sont affichées ici telles quelles, à dessein : ce que vous devez reconnaître, c'est ce qui arrive, pas une traduction. Un … marque l'endroit où une valeur est insérée.

Chaque erreur porte un code stable. Appuyez-vous sur codigo, pas sur le message. Il est toujours présent : ce qui ne déclare pas de code propre reçoit celui de sa classe, dérivé du statut HTTP. Le texte de error est destiné à être lu par une personne et peut être reformulé ; le code, non.

{ "error": "…", "codigo": "de_otra_cuenta" }
CodeHTTPQuand vous le recevez
mala_peticion400La requête est mal formée, ou une valeur ne fait pas partie de celles que nous acceptons. Le message précise laquelle.
no_autorizado401Sans clé, avec une clé inconnue, ou avec une session expirée.
prohibido403La clé est valide mais n'a pas le droit de faire cela.
no_existe404Il n'y a rien sur quoi agir.
metodo_no_permitido405La route existe, ce verbe non. On la distingue d'une route inexistante à dessein : cela fait gagner une heure.
conflicto409L'état du compte ne le permet pas pour l'instant.
precondicion_fallida412La condition posée par votre requête (If-Match) n’est plus remplie : ce que vous vouliez modifier a changé depuis votre lecture.
ambito_insuficienteVotre clé n'atteint pas cette route. Le provisionnement appartient au portail, pas à vous.
audio_ilegibleL’audio est arrivé mais n’a pas pu être lu : il est endommagé ou tronqué. Le message en donne la raison.
audio_no_validoUne chaîne audio n’est pas valide : elle n’accepte que les audios du standard lui-même, sans chemin, 1000 caractères au plus et sans saut de ligne. Le message nomme les éléments refusés.
cambio_de_sistemaCette modification a été faite par votre fournisseur, ou touche quelque chose que lui seul modifie : votre clé ne peut pas l'annuler.
canales_por_troncalLa répartition des canaux envoyée lors du provisionnement ne peut pas être acceptée, et rien n'en est enregistré. Le détail indique ce qui ne va pas. Cela relève du provisionnement, pas de votre compte.
cedula_mal_formadaLe numéro d’identité n’a pas la forme de son type : une cédula física a 9 chiffres et une cédula jurídica, 10.
central_no_disponibleLe standard est injoignable pour l'instant. Réessayez avec une attente croissante : votre requête n'a rien d'incorrect.
central_suspendidaLe standard est suspendu : tant qu'il l'est, aucun nouveau téléphone n'est autorisé.
clase_de_servicioCette valeur ne fait pas partie des permissions d'appel qu'un poste peut avoir.
clave_sin_cuentaLa clé n'est rattachée à aucun compte.
consulta_no_validaUn paramètre de la requête a une valeur que nous n’acceptons pas ; par exemple, un oui/non qui n’est ni 1/0 ni true/false.
cuenta_distintaCet achat appartient à un autre compte du portail. Un achat ne change pas de propriétaire.
cuenta_invalidaLe compte du portail manque, ou n'a pas la forme attendue.
cuenta_portal_en_usoCe compte du portail est déjà lié à une autre licence ou à un autre standard. Chacun a le sien.
cuenta_suspendidaVotre compte est suspendu : vous pouvez consulter, mais rien modifier tant qu'il n'est pas réactivé.
cupo_llenoLe forfait n'admet plus d'extensions. Libérez-en une ou passez à un forfait supérieur.
cursor_no_validoLe curseur de pagination ne vaut pas ici : il vient d’un autre standard, d’une autre liste ou d’autres filtres. Demandez la première page avec les mêmes filtres.
de_otra_cuentaCela appartient à un autre compte — ou n'existe pas dans le vôtre. Les deux cas partagent un code à dessein : les distinguer révélerait l'existence.
demasiado_grandeL’audio dépasse la taille maximale (HTTP 413). Le message indique la limite.
duracionL’annonce est trop courte ou trop longue. Le message indique sa durée et la limite.
es_titularC'est l'installation titulaire : elle n'est ni révoquée ni suspendue ; c'est le standard qui est suspendu.
estado_invalidoCet état ne fait pas partie de ceux que nous acceptons. Le message indique lesquels sont valables.
extension_ajenaCe poste n’appartient pas à votre standard.
extension_de_la_tiendaCette extension est un poste autorisé via la boutique (une licence, le titulaire ou un membre) : elle ne se supprime pas ici, elle se révoque depuis l'application.
falta_confirmarLa suppression d’un compte est irréversible : la requête doit contenir confirmar: 'suprimir'.
falta_credencialVous n'avez envoyé aucune clé.
formato_no_soportadoL’audio n’est pas dans un format accepté (HTTP 415) : AAC dans MP4 (m4a), MP3, WAV ou Ogg.
garantia_no_cabeIl ne reste plus de capacité garantie pour ce qui est demandé. Ce n'est pas une panne : c'est ce qui empêche de vendre deux fois le même canal. Le message indique ce qui reste.
identidad_ajenaVous ne pouvez demander une autorisation qu’avec un numéro de votre propre compte.
identidad_de_otroCe numéro d’identité est déjà attribué à une autre licence. Pour le déplacer, envoyez mover: true.
instalacion_invalidaL'identifiant de l'installation n'a pas la forme attendue : de 8 à 128 lettres, chiffres, point, tiret, deux-points ou tiret bas.
instalacion_sin_licenciaCette installation n'est pas celle de cette licence ni de ce poste. Chaque licence, et chaque poste d'un standard acheté en boutique, sert un seul téléphone.
licencia_solo_appUne licence de l'app n'a que le téléphone de son installation : elle n'accepte aucun autre appareil.
mensaje_con_enlaceLe message d’une demande d’autorisation ne peut pas contenir de liens.
mensaje_largoLe message d’une demande d’autorisation fait au plus 140 caractères.
misma_casaCe numéro appartient à votre propre compte : aucune autorisation n’est nécessaire entre vos lignes.
nacionalUn jour férié national ne se modifie ni ne se supprime. Pour ouvrir ce jour-là, créez une exception avec cerrado:false.
no_editableCette donnée est modifiée par votre fournisseur, pas ici.
no_es_de_la_tiendaCe compte n’a pas été acheté dans la boutique : sa clôture suit une autre procédure.
no_es_de_tiendaCe standard n'a pas été acheté dans la boutique : il se gère depuis le portail.
no_existeIl n'y a rien sur quoi agir.
no_pude_mirarCécité, pas diagnostic : impossible d'interroger le standard (ARI tombé, la base, le conteneur). Cela ne veut pas dire que tout va bien ; cela veut dire qu'on ne sait pas.
permiso_no_existeCe numéro n’a pas l’autorisation de vous appeler : il n’y a rien à révoquer.
plan_desconocidoCe forfait n'est pas en vente. Les forfaits valables sont ceux qui sont publiés.
plan_legadoCe standard conserve le forfait avec lequel il a été vendu. Pour le passer à la grille actuelle, il faut le demander expressément.
prueba_distintaUn standard de test ne devient pas réel, ni un standard réel un standard de test. Un achat réel porte sa propre référence.
reconfigurandoLe standard change de lien et le signale lui-même. Cela dure quelques secondes et c'est le bon comportement, pas une panne. La fenêtre expire d'elle-même au bout de 3 minutes, pour qu'un avis oublié ne puisse pas étouffer la vraie alarme.
ref_de_otro_tipoCette référence est celle d'une licence et a été demandée comme standard, ou l'inverse.
ref_invalidaLa référence du portail n'a pas la forme attendue.
sesion_vieja_para_gastarLa session a plus de 15 minutes. Pour une opération qui consomme du solde, comme passer ou joindre un appel, demandez une nouvelle session.
sin_numero_voiceImpossible d'attribuer un numéro VOICE pour l'instant. Réessayez dans quelques secondes.
sin_registrarLa vraie panne : l'opérateur ne nous a pas enregistrés, et aucun appel n'entre par là. Celle-ci mérite de réveiller quelqu'un.
solicitud_cerradaCette demande d’autorisation n’est plus en attente : elle a été approuvée, refusée, retirée ou elle a expiré.
solicitud_no_existeCette demande d’autorisation n’existe pas ou n’appartient pas à votre compte.
solo_la_titularDans un standard partagé par plusieurs personnes, c’est la titulaire qui en décide ; un membre ne peut pas.
solo_lecturaVotre clé est en lecture seule et ceci écrirait.
tope_aparatosCette extension a déjà tous les appareils qu'elle admet. Dissociez-en un avant d'en ajouter un autre.
tunel_retiradoCette adresse était celle du tunnel, retiré le 25-09-2026 : l’API va directement au standard. Appelez la route normale ; l’état du chemin est sur /_directo/salud.
url_no_permitidaCette adresse n'est pas admise pour un webhook : elle doit être en https et publique, jamais sur un réseau privé.
version_distintaCe réglage a changé depuis votre lecture. Relisez-le, décidez sur l’état actuel et écrivez avec la nouvelle version ; le détail donne la version et la valeur actuelles.
ya_existeIl existe déjà quelque chose avec ce nom ou ce numéro. Réessayez avec un autre, pas avec la même charge.
CodeCombienMessage
400218
  • 'desde' tiene que ser una fecha ISO
  • 'dispositivo_id' va con 'extension_id'
  • 'en' tiene que ser una fecha ISO (la hora del portal)
  • 'extension_id' y 'numero' son excluyentes
  • 'hasta' como mucho a 30 días
  • 'hasta' es una fecha ISO-8601
  • 'hasta' es una fecha ISO-8601 futura
  • 'hasta' tiene que ser posterior a 'desde' (o al momento de abrirlo)
  • 'limite' es un entero de 1 a …
  • 'minutos' es un entero de 1 a …
  • 'minutos' y 'hasta' se excluyen: manda uno
  • 'modos' es un objeto {modo: {tipo, id}}
  • 'modos' no es un JSON válido
  • 'modos': '…' no lleva destino propio (…)
  • 'modos.…' necesita {tipo, id}
  • 'musica' es el nombre de una clase de música en espera (letras, cifras, - y _)
  • 'numero' no parece un número
  • 'paginar' es 1 o true
  • 'segmentos' lleva caracteres que no acepto
  • 'zona' es una zona horaria IANA (p. ej. America/Costa_Rica)
  • '…' es el desplazamiento de antes: al paginar, el cursor dice dónde seguir
  • '…' es sí o no (1/0 o true/false)
  • '…' es una fecha ISO-8601
  • '…' no es una clave de audio de la central
  • '…': como mucho 1000 caracteres y sin saltos de línea
  • '…': piezas de audio que no acepto —solo audios de la central, sin rutas—:
  • 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
  • borrar una cuenta no se puede deshacer: mande confirmar: 'suprimir'
  • 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: …
  • cid_saliente: ese número no es de esta cuenta
  • 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
  • cuenta_portal: la fila de central del portal (4 a 128 caracteres)
  • 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 alta ya no acepta canales como número suelto: mande canales_garantizados y canales_max como mapa por troncal {"trk_…": N} (las troncales las publica GET /sistema/canales)
  • el aviso de buzón admite hasta 5 teléfonos
  • el bloque debe tener números de la misma longitud
  • el cuerpo va vacío: manda los bytes del audio
  • 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 mensaje no puede llevar enlaces
  • el mensaje tiene como mucho 140 caracteres
  • 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 saludo dura … s: como mucho … s
  • el saludo dura … s: como mínimo … s
  • 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 inválida
  • 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 extensión no es de ese inquilino
  • esa extensión no es de este inquilino
  • esa extensión no es de su central
  • 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 número es de su propia cuenta: no hace falta permiso
  • ese turno lo usan: …
  • estado: 'activo' o 'suspendido'
  • estado: activa|suspendida
  • estado: …
  • estos campos los cambia su proveedor: …
  • 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 'modo' (null vuelve al automático)
  • falta 'motivo'
  • falta 'nombre'
  • falta 'numero'
  • falta 'prepago' (true o false)
  • 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
  • falta el número nuevo (destino)
  • falta extension_id
  • falta inquilino, extensión o quién lo pide
  • falta la instalacion que rechaza
  • 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
  • hacen falta 'de' (su número) y 'para' (el número al que quiere llamar)
  • hacen falta 'fecha' y 'nombre'
  • 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 referencia del portal: de 4 a 128 caracteres (letras, dígitos, . _ : -)
  • 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 leer ese audio: …
  • no pude originar la prueba: …
  • no se puede esperar a uno mismo
  • no sé marcar '…'
  • no sé marcar '…': para llamar fuera del país, ponga + o 00 delante
  • nombre: no puede quedar vacío
  • 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: …
  • plan: … (la escalera publicada)
  • plantilla: …
  • prueba: true|false
  • 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: …
  • timbrado_s: un entero de 5 a 120
  • tipo: 'cedula_fisica' (9 dígitos) o 'cedula_juridica' (10)
  • tipo: …
  • transporte: …
  • un IVR sin saludo deja al llamante en silencio: pon saludo_texto o saludo_audio
  • una troncal sin host no puede activarse
  • una … no tiene esa forma
  • url debe empezar por http:// o https://
  • url inválida
  • vence: fecha ISO 8601 con zona (UTC)
  • «…» 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 '…'
  • …: '…-…' se solapa con '…'
  • …: de 4 a 8 dígitos
  • …: demasiado fácil de adivinar
  • …: el identificador de la instalación de la app, de 8 a 128 caracteres (letras, dígitos, . _ : -)
  • …: falta 'respaldo.dest_tipo'. Un paso sin respaldo cuelga al que llama
  • …: número inválido
  • …: respaldo.dest_tipo debe ser uno de …
  • …: texto de 1 a 120 caracteres
4011
  • falta la clave de API
40316
  • 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 lo hizo su proveedor (o toca algo que sólo cambia su proveedor): no se puede deshacer desde la cuenta
  • ese cambio no es de esta cuenta
  • ese número no es suyo: solo puede pedir permiso con un número de su cuenta
  • esta clave es de solo lectura
  • esta clave no está atada a ninguna cuenta
  • esta cuenta está suspendida: solo se puede consultar
  • esta operación necesita una clave de sistema
  • esta operación no está abierta a la credencial de un aparato
  • esta sesión tiene más de 15 minutos: para gastar, pida una nueva
  • esto lo decide la titular de la central
40458
  • agente: no está en esta cola
  • agente: no existe en esta cuenta
  • audio_clave: no es un audio de esta cuenta (uno nuevo se sube con PUT …/saludos/:tipo/audio)
  • buzón: no existe en esta cuenta
  • dispositivo
  • el audio de ese saludo no está en la central
  • 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 central de la tienda no existe
  • esa central no existe
  • 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 licencia no existe
  • esa pista no existe en este disco
  • esa solicitud no existe
  • ese disco no existe en esta cuenta
  • ese dispositivo no existe en esta cuenta
  • ese guion no existe
  • ese inquilino no existe
  • ese mensaje aún no está archivado
  • ese miembro no existe
  • ese número no tiene permiso
  • ese saludo es de texto: no tiene audio
  • ese timbre no existe o ya terminó
  • extensión
  • feriado
  • guion: no existe en esta cuenta
  • horario: no existe en esta cuenta
  • 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 esta rota
  • 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 en esta cuenta
  • …: '…' no existe
  • …: no existe
  • …: no existe en esta cuenta
40943
  • a la titular no se la revoca: la central es suya
  • a la titular no se la suspende: se suspende la central
  • 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 otra ruta: edita ésa en vez de duplicarla
  • el … ya tiene ruta: edítala en vez de crear otra
  • esa central es de otra cuenta del portal
  • esa central no es de la tienda
  • esa cuenta_portal es de una central del portal, no de una compra de la tienda: su baja es otro proceso
  • esa cédula ya es de otra licencia (mover: true para moverla)
  • esa extensión es un puesto autorizado desde la tienda: se revoca desde la app, no se borra aquí
  • esa licencia es de otra cuenta del portal: una compra no se cambia de dueño
  • esa provisión ya se usó
  • esa referencia es de una central, no de una licencia
  • esa referencia es de una licencia, no de una central
  • esa solicitud está …
  • ese mensaje no está en la papelera
  • ese número ya está en el inventario
  • esta central conserva la escalera con la que se vendió (plan '…' anterior al 18-oct):
  • esta extensión ya tiene … aparato(s) y su techo es …: desvincule uno antes
  • esto ya no es lo que dejó ese cambio: … se tocó después.
  • la central está suspendida: no se autorizan miembros
  • la cuenta_portal '…' ya es del inquilino …: cada licencia y cada central llevan su propia fila del portal
  • 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
  • una licencia de la app sólo tiene el teléfono de su instalación: no admite aparatos SIP sueltos
  • ya existe
  • ya existe otro con ese valor
  • ya hay un feriado de esta cuenta el …: edítalo con PATCH

336 messages distincts sur 407 points du code source du standard. Dérivé à chaque compilation : un message qui change là-bas change ici.

Il n'y a presque pas de limitation de débit aujourd'hui. La seule est une attente de quelques secondes entre deux tentatives d'ouvrir le téléphone du navigateur. Il n'y a pas de quota général, et nous préférons le dire plutôt que vous le laisser découvrir après avoir bâti sur une hypothèse. Restez raisonnable, et si vous préparez quelque chose de lourd, prévenez-nous avant : nous le mesurerons avec vous plutôt qu'après vous.

Jusqu'où on va

DomaineEndpointsExemples
Messageries15GET /buzones POST /buzones DELETE /buzones/:buz
Postes13GET /extensiones POST /extensiones DELETE /extensiones/:ext
Qui peut vous appeler gratuitement depuis le réseau13GET /red/bloqueos DELETE /red/bloqueos/:numero PUT /red/bloqueos/:numero
Files d'attente12GET /colas POST /colas DELETE /colas/:cola
Musique d'attente12GET /discos POST /discos DELETE /discos/:disco
Enregistrements9GET /grabaciones PUT /grabaciones/:grabacion/categoria DELETE /grabaciones/:grb
Groupes d'appel8GET /grupos POST /grupos DELETE /grupos/:grp
Menus vocaux8GET /ivrs POST /ivrs DELETE /ivrs/:ivr
Tours de garde8GET /turnos POST /turnos DELETE /turnos/:turno
Salles de conférence7GET /conferencias POST /conferencias DELETE /conferencias/:sala
Horaires7GET /horarios POST /horarios DELETE /horarios/:hor
Notifications vers votre système7GET /webhooks POST /webhooks DELETE /webhooks/:whk
Étapes de flux programmable6GET /pasos POST /pasos DELETE /pasos/:pso
Jours fériés5GET /feriados POST /feriados DELETE /feriados/:fer
Ce que dit chaque ligne5GET /guiones POST /guiones DELETE /guiones/:gui
Messages5GET /mensajes DELETE /mensajes/:msg GET /mensajes/:msg
Routes entrantes5GET /rutas POST /rutas DELETE /rutas/:ruta
Alias composables4GET /alias POST /alias DELETE /alias/:als
Rappels de rendez-vous4GET /citas POST /citas DELETE /citas/:cita
Vos contacts4GET /contactos POST /contactos DELETE /contactos/:con
Chat rattaché à la voix4GET /conversaciones GET /conversaciones/:cnv POST /conversaciones/:cnv/cerrar
Appareils4DELETE /dispositivos/:disp POST /dispositivos/:disp/estado POST /dispositivos/:disp/provision
Dossiers d'appel malveillant4GET /expedientes POST /expedientes GET /expedientes/:exp
Règles d'enregistrement4GET /grabacion/decidir GET /grabacion/reglas PUT /grabacion/reglas
Journal d'appels4GET /llamadas GET /llamadas/:llamada GET /llamadas/csv
Numéros4GET /numeros DELETE /numeros/:numero/aviso-cambio GET /numeros/:numero/aviso-cambio
Lignes simultanées3GET /canales GET /canales/episodios PUT /canales/modo
Historique des changements et retour arrière3GET /historial GET /historial/:cambio POST /historial/:cambio/revertir
Liste noire3GET /lista-negra POST /lista-negra DELETE /lista-negra/:neg
Fenêtres de maintenance3GET /mantenimientos POST /mantenimientos POST /mantenimientos/:mnt/cerrar
Votre compte et son état2GET / PATCH /
Annuaire2GET /directorio GET /directorio/buscar
Liens de partage2GET /enlaces DELETE /enlaces/:token
Sonneries de l’app2GET /timbres/:timbre POST /timbres/:timbre/rechazar
Autres1GET /guiones/claves
Appels en garde1GET /aparcadas
Ce que votre clé peut faire1GET /capacidades
Qui appelle, et à quel sujet1GET /contexto
Ce que coûterait un appel1GET /cotizar-llamada
Où un appel peut être envoyé1GET /destinos
À quel point vos postes sont joignables1GET /disponibilidad
Relevé de compte1GET /estado-cuenta
Le canal en direct1POST /eventos/ticket
Installations de l’app1DELETE /instalaciones/:instalacion
Appels en cours1GET /llamadas-en-curso
Appeler en un clic1POST /llamar
Standardiste1PUT /operadora
Où cette maison appelle1GET /paises
Modèles de démarrage1POST /plantilla
Ce qui peut être composé1GET /politica-salida
Présence1GET /presencia
Que le standard vous appelle et vous joue quelque chose1POST /probar-audio
Tester où atterrirait un appel1GET /probar-entrada
Tester un appel sortant sans le passer1GET /probar-salida
Solde1GET /saldo
Appels que personne n'a rappelés1GET /sin-devolver
Relier deux numéros extérieurs1POST /unir
Qui passe devant1GET /vips
Le téléphone dans le navigateur1POST /webphone/sesion

304 endpoints au total, lus sur le standard lui-même le 2026-10-21.

Ce tableau est un résumé. La liste qui ne peut pas vieillir est celle que le standard génère sur lui-même : GET /api.

Chaque point d'accès, un par un

Lu directement dans le routeur du standard : il ne peut donc ni décrire une route qui n'existe pas, ni en oublier une qui existe. Seule la portée de votre compte figure ici ; les routes de provisionnement appartiennent au portail et aucune clé qui y accède ne vous sera remise.

Ce que ça faitCe qu'il faitExemple
GET /guiones/clavesQué frases admite un guion
GET /par l'API
PATCH /Editar la ficha (el cliente, sus datos; plan y límites, el portal). Parcial; If-Match → 412par l'API
GET /aliaspar l'API
POST /aliaspar l'API
DELETE /alias/:alspar l'API
PATCH /alias/:alspar l'API
GET /aparcadasLas llamadas aparcadas ahora mismo (#60)par l'APIvoir
GET /buzonesappel réel
POST /buzonesappel réel
DELETE /buzones/:buzBorrar un buzón. If-Match opcional → 412appel réel
GET /buzones/:buzappel réel
PATCH /buzones/:buzSaludo, correo, transcripción, duración máxima. Parcial; If-Match → 412par l'API
GET /buzones/:buz/mensajesMensajes de un buzón. ?paginar=1 / ?cursor= → {elementos, siguiente}par l'API
PUT /buzones/:buzon/clavePoner o quitar la clave del buzón (#10)banc d'essai
GET /buzones/:buzon/ocupacionCuántos mensajes hay y cuántos caben (#14)banc d'essai
GET /buzones/:buzon/papeleraLo borrado que todavía se puede recuperar (#15)banc d'essai
POST /buzones/:buzon/papelera/:mensaje/recuperarDeshacer un borrado (#15)banc d'essai
GET /buzones/:buzon/saludosLos saludos del buzón, por motivo (con su audio: duración, bytes, huella)banc d'essai
POST /buzones/:buzon/saludosPoner el saludo de un motivo (normal, ocupado, vacaciones…): de texto, o volver a un audio de la cuentabanc d'essai
DELETE /buzones/:buzon/saludos/:saludobanc d'essai
GET /buzones/:buzon/saludos/:saludo/audioEscuchar un saludo: WAV o MP3 (Accept), con Range y ETagbanc d'essai
PUT /buzones/:buzon/saludos/:tipo/audioSubir el saludo de un motivo con la voz del cliente (bytes: m4a, mp3, wav u ogg; 1-90 s)banc d'essai
GET /canalespar l'API
GET /canales/episodiospar l'API
PUT /canales/modopar l'API
GET /capacidadesQué puede esta llave, qué campos edita cada ajuste y con qué límites, y qué hay en cada áreapar l'API
GET /citaspar l'API
POST /citasProgramar un recordatorio de cita por teléfonopar l'APIvoir
DELETE /citas/:citapar l'APIvoir
GET /citas/:citapar l'APIvoir
GET /colaspar l'APIvoir
POST /colasCrear una cola de espera con agentespar l'APIvoir
DELETE /colas/:colaBorrar una cola. If-Match opcional → 412par l'API
GET /colas/:colapar l'APIvoir
PUT /colas/:colaEstrategia, tiempos, anuncios, música y destinos. PUT PARCIAL; If-Match → 412par l'APIvoir
GET /colas/:cola/callbacksLas devoluciones de llamada pedidaspar l'APIvoir
GET /colas/:cola/estadoCuánta gente espera, quién está de turno y cuánto se tardapar l'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)par l'API
DELETE /colas/:cola/miembros/:miembropar l'API
PUT /colas/:cola/miembros/:miembro/habilidadesLas etiquetas de un agente (#70)
POST /colas/turnoEntrar o salir de turno (lo mismo que *80 / *81)par l'API
GET /conferenciaspar l'API
POST /conferenciasCrear una sala con número y clavepar l'APIvoir
DELETE /conferencias/:salapar l'API
GET /conferencias/:salapar l'APIvoir
PUT /conferencias/:salaCambiar la sala (las claves se cambian, no se leen)par l'API
GET /conferencias/:sala/historialQuién estuvo y cuántopar l'API
POST /conferencias/:sala/invitarLlamar a alguien y meterlo en la salapar l'API
GET /contactospar l'API
POST /contactosAlta o importación masivapar l'API
DELETE /contactos/:conpar l'API
PUT /contactos/:contacto/vipMarcar o quitar el VIP de un contacto
GET /contextoQuién llama y de qué habló la última vezpar l'API
GET /conversacionesbanc d'essai
GET /conversaciones/:cnvbanc d'essai
POST /conversaciones/:cnv/cerrarbanc d'essai
POST /conversaciones/:cnv/turnosbanc d'essai
GET /cotizar-llamadaCuánto costaría llamar a ese número, antes de marcarlopar l'API
GET /destinosQué destinos se pueden elegir en esta cuentaappel réel
GET /directorioQuién sale en el directorio por nombrebanc d'essai
GET /directorio/buscarA quién encontraría el directorio con esas teclasbanc d'essai
GET /discospar l'API
POST /discospar l'API
DELETE /discos/:discopar l'API
GET /discos/:discopar l'API
PATCH /discos/:discopar l'API
GET /discos/:disco/estadisticaspar l'API
GET /discos/:disco/frasespar l'API
PUT /discos/:disco/frasespar l'API
DELETE /discos/:disco/frases/:frasepar l'API
PUT /discos/:disco/pistaspar l'API
DELETE /discos/:disco/pistas/:pistapar l'API
GET /discos/:disco/probarpar l'API
GET /disponibilidadCuánto tiempo estuvo arriba cada extensiónpar l'API
DELETE /dispositivos/:dispRevocar una credencial (y colgar lo que ese aparato tenga en curso)poste réel
POST /dispositivos/:disp/estadoSuspender o reactivar un dispositivoposte réel
POST /dispositivos/:disp/provisionEmitir un token para configurar la app sin teclear la clavepar l'API
POST /dispositivos/:disp/rotarCambiar la clave de un dispositivoposte réel
GET /enlacesbanc d'essai
DELETE /enlaces/:tokenRevocar un enlace compartido por errorbanc d'essai
GET /estado-cuentaEstado de cuenta: movimientos, consumo y lo pendiente de reportar, con su semántica (el disponible es del portal)par l'API
POST /eventos/ticketTicket para mirar el canal de eventos en vivo (sin teléfono)par l'APIvoir
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 /extensionespar l'APIvoir
POST /extensionesAlta de extensión (crea buzón y credencial)par l'APIvoir
DELETE /extensiones/:extBorrar una extensión. If-Match opcional → 412par l'API
GET /extensiones/:extpar l'API
PATCH /extensiones/:extEditar una extensión. Parcial; If-Match → 412par l'API
POST /extensiones/:ext/dispositivosAñadir un dispositivo (celular, computadora…)par l'API
POST /extensiones/:ext/no-molestarpar l'API
GET /extensiones/:ext/reglasappel réel
PUT /extensiones/:ext/reglasSígueme, desvío, no molestar y destino de fallo. PUT PARCIAL; If-Match → 412par l'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-librepar l'APIvoir
GET /feriadospar l'API
POST /feriadosFeriado propio o excepción a uno nacional (idempotente por fecha)par l'API
DELETE /feriados/:ferBorrar un feriado de la cuenta. If-Match opcional → 412par l'API
GET /feriados/:ferUn feriado de la cuenta o nacional, con su versión (ETag)par l'API
PATCH /feriados/:ferNombre y cerrado de un feriado de la cuenta (la fecha ES el feriado). If-Match → 412par l'API
GET /grabacion/decidir¿Se grabaría esta llamada? Y con qué avisopar l'API
GET /grabacion/reglaspar l'API
PUT /grabacion/reglasQué se graba y cuánto se guardapar l'API
DELETE /grabacion/reglas/:reglapar l'API
GET /grabacionesGrabaciones; desde/hasta son fechas. ?paginar=1 / ?cursor= → {elementos, siguiente}banc d'essai
PUT /grabaciones/:grabacion/categoriacliente | prospecto | interno, o nada (#68)
DELETE /grabaciones/:grbbanc d'essai
GET /grabaciones/:grbFicha: transcripción, resumen, acuerdos y hablantespas encore exercé
GET /grabaciones/:grb/accesosQuién ha escuchado esta grabaciónbanc d'essai
POST /grabaciones/:grb/analizarVolver a transcribir y resumirpas encore exercé
GET /grabaciones/:grb/audioEl audio (queda auditado)banc d'essai
POST /grabaciones/:grb/enlaceEnlace firmado para compartir sin dar acceso a la cuentabanc d'essai
GET /grabaciones/buscarBuscar por lo que se dijo dentro de las llamadasbanc d'essai
GET /grupospar l'API
POST /grupospar l'API
DELETE /grupos/:grpBorrar un grupo. If-Match opcional → 412par l'API
GET /grupos/:grppar l'API
PUT /grupos/:grpEstrategia, timbrado, fallo y miembros (si vienen, reemplazan la lista). Parcial; If-Match → 412par l'API
POST /grupos/:grp/miembrospar l'API
DELETE /grupos/:grp/miembros/:miembropar l'API
GET /grupos/:grp/ordenEn qué orden sonaría ahora mismopar l'API
GET /guionesappel réel
POST /guionesLos textos que dice una líneaappel réel
DELETE /guiones/:guiappel réel
GET /guiones/:guiappel réel
PATCH /guiones/:guiCambiar textos, nombre o voz declaradaappel réel
GET /historialQué cambió en esta cuenta, quién y cuándopar l'APIvoir
GET /historial/:cambiopar l'APIvoir
POST /historial/:cambio/revertirDeshacer un cambio de configuraciónpar l'APIvoir
GET /horariospar l'API
POST /horariospar l'API
DELETE /horarios/:horBorrar un horario. If-Match opcional → 412par l'API
GET /horarios/:horpar l'API
PUT /horarios/:horNombre, zona y tramos (si vienen, reemplazan la lista). Parcial; If-Match → 412par l'API
GET /horarios/:hor/estado¿Abierto ahora? Y por quépar l'API
POST /horarios/:hor/manualInterruptor: abierto, cerrado, almuerzo o feriado, con caducidad; null vuelve al automáticopar l'API
DELETE /instalaciones/:instalacionDesvincular el teléfono de una instalación de la app (borra sus aparatos y cuelga sus llamadas)par l'API
GET /ivrsappel réel
POST /ivrsCrear un menú (detecta bucles al guardar)appel réel
DELETE /ivrs/:ivrBorrar un menú. If-Match opcional → 412appel réel
GET /ivrs/:ivrappel réel
PUT /ivrs/:ivrSaludo, espera, reintentos, agotado y opciones (si vienen, reemplazan la lista). Parcial; If-Match → 412; ciclo → 409appel réel
GET /ivrs/:ivr/guionEl texto exacto que se va a decirpar l'API
DELETE /ivrs/:ivr/opciones/:teclaappel réel
PUT /ivrs/:ivr/opciones/:teclaappel réel
GET /lista-negrapar l'API
POST /lista-negraBloquear un número entrantepar l'API
DELETE /lista-negra/:negpar l'API
GET /llamadasRegistro de llamadas; desde/hasta son fechas (con la llave de un aparato, las de su extensión). ?paginar=1 / ?cursor= → {elementos, siguiente}appel réel
GET /llamadas-en-cursoLas llamadas del inquilino ahora mismo (vista de operadora)par l'APIvoir
GET /llamadas/:llamadaappel réel
GET /llamadas/csvExportar el CDRappel réel
GET /llamadas/resumenTotales, atención y repartoappel réel
POST /llamarTimbrar a la extensión y conectarla con un destinoappel réel
GET /mantenimientospar l'APIvoir
POST /mantenimientosAvisar a quien llame de que hay un mantenimiento en cursopar l'APIvoir
POST /mantenimientos/:mnt/cerrarpar l'APIvoir
GET /mensajesBandeja de toda la cuenta (con la llave de un aparato, la de su extensión). ?paginar=1 / ?cursor= → {elementos, siguiente}par l'API
DELETE /mensajes/:msgpar l'API
GET /mensajes/:msgpar l'API
GET /mensajes/:msg/audioEl audio del mensaje: WAV o MP3 (Accept), con Range y ETag; no lo marca leído y queda auditadopar l'API
POST /mensajes/:msg/leidopar l'API
GET /numerospar l'APIvoir
DELETE /numeros/:numero/aviso-cambioApagar el aviso de cambio y devolver la línea a su destinopas encore exercé
GET /numeros/:numero/aviso-cambioEstado del aviso de cambio de númeropas encore exercé
POST /numeros/:numero/aviso-cambioAnunciar que este número cambió y decir el nuevopas encore exercé
PUT /operadoraA dónde va el cero (#109)par l'APIvoir
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)par l'API
GET /politica-salidapar l'API
GET /presenciaPresencia de las extensiones de la cuenta, agregada por extensiónpar l'API
POST /probar-audioLlamarte y reproducirte una cadena de audio — la prueba de verdadappel réel
GET /probar-entradaA dónde iría una llamada ahora mismoappel réel
GET /probar-salidaSimular una salida sin cursarlaappel réel
GET /red/bloqueosLos números bloqueadospar l'API
DELETE /red/bloqueos/:numeroDesbloquear un númeropar l'API
PUT /red/bloqueos/:numeroBloquear un número (cuelga sus llamadas de red en curso)par l'API
GET /red/enviadasLas solicitudes que envié (pendiente | aprobada | no_aprobada)par l'API
POST /red/enviadasPedir permiso para llamar gratis (202 siempre igual)par l'API
DELETE /red/enviadas/:solRetirar una solicitud, o renunciar a un permiso concedidopar l'API
GET /red/permisosQuién me puede llamar gratispar l'API
DELETE /red/permisos/:numeroRevocar un permiso (la llamada en curso sigue; la siguiente ya no es gratis)par l'API
GET /red/solicitudesLas solicitudes de llamada gratis que le llegaron (estado=pendiente)par l'API
POST /red/solicitudes/:sol/aprobarAceptar: ese número llama gratis (en una central, la titular; extension_id = dónde suena)par l'API
POST /red/solicitudes/:sol/bloquearRechazar y bloquear ese númeropar l'API
POST /red/solicitudes/:sol/rechazarRechazar (a quien pidió no se le avisa)par l'API
GET /red/veredictoAntes de llamar: gratis | pago (con su tarifa) | solicitud | no_disponiblepar l'API
GET /rutasappel réel
POST /rutasQué hace una llamada que entra por un númeroappel réel
DELETE /rutas/:rutaBorrar una ruta de entrada. If-Match opcional → 412appel réel
GET /rutas/:rutaappel réel
PATCH /rutas/:rutaDestino, horario, modos, saludo y grabación. Parcial; If-Match → 412appel réel
GET /saldoSaldo: el espejo local, los topes y el gasto, con su semántica (el disponible es del portal)banc d'essai
GET /sin-devolverLas perdidas que nadie ha devuelto, agrupadas por número (#67)
GET /timbres/:timbreEstado de un timbre de la app (conciliar al despertar)par l'API
POST /timbres/:timbre/rechazarRechazar un timbre desde la app (antes o después de registrarse)par l'API
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 unirlosappel réel
GET /vipsQuién se salta la fila de la cola (#61)
GET /webhookspar l'API
POST /webhookspar l'API
DELETE /webhooks/:whkpar l'API
PATCH /webhooks/:whkpar l'API
GET /webhooks/:whk/entregaspar l'API
POST /webhooks/:whk/probarMandar un evento de pruebapar l'API
POST /webhooks/:whk/rotarpar l'API
POST /webphone/sesionRegistrar el navegador o la app como teléfono de una extensión (la app manda su instalacion)par l'API

Exemples enregistrés

Ils n'ont pas été rédigés. Ils ont été enregistrés lors d'une exécution réelle contre cette API, dans un compte jetable supprimé ensuite — requête, statut et réponse, tels qu'ils ont circulé. Les identifiants de compte et d'objet sont remplacés par des marqueurs ; rien d'autre n'est modifié. Un exemple rédigé prouve ce que croyait son auteur ; un exemple enregistré prouve ce que le standard a fait.

24 routes sur 226 disposent d'un exemple enregistré, issu de l'exécution du 2026-10-16. Les autres figurent ci-dessus mais n'ont pas encore été éprouvées ainsi — nous préférons vous montrer le chiffre plutôt que vous laisser supposer qu'elles y sont toutes.

GET /inquilinos/:inquilino/aparcadas 200

Réponse

{
  "plazas": []
}

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

Réponse

{
  "id": "<id>",
  "inquilino": "<cuenta>",
  "numero": "50688889999",
  "nombre": null,
  "cuando": "2026-10-16T22:44:57.219Z",
  "avisar_el": "2026-10-15T22:44:57.219Z",
  "guion": null,
  "estado": "cancelada",
  "intentos": 0,
  "ultimo_intento": null,
  "respondido_el": null,
  "nota": null,
  "creado": "2026-10-16T21:44:58.732Z",
  "actualizado": "2026-10-16T21:44:58.942Z"
}

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

Réponse

{
  "id": "<id>",
  "inquilino": "<cuenta>",
  "numero": "50688889999",
  "nombre": null,
  "cuando": "2026-10-16T22:44:57.219Z",
  "avisar_el": "2026-10-15T22:44:57.219Z",
  "guion": null,
  "estado": "pendiente",
  "intentos": 0,
  "ultimo_intento": null,
  "respondido_el": null,
  "nota": null,
  "creado": "2026-10-16T21:44:58.732Z",
  "actualizado": "2026-10-16T21:44:58.732Z"
}

POST /inquilinos/:inquilino/citas 201

Requête

{
  "numero": "50688889999",
  "cuando": "2026-10-16T22:44:57.219Z",
  "texto": "ensayo"
}

Réponse

{
  "id": "<id>",
  "inquilino": "<cuenta>",
  "numero": "50688889999",
  "nombre": null,
  "cuando": "2026-10-16T22:44:57.219Z",
  "avisar_el": "2026-10-15T22:44:57.219Z",
  "guion": null,
  "estado": "pendiente",
  "intentos": 0,
  "ultimo_intento": null,
  "respondido_el": null,
  "nota": null,
  "creado": "2026-10-16T21:44:58.732Z",
  "actualizado": "2026-10-16T21:44:58.732Z"
}

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

Réponse

[]

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

Réponse

{
  "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": "<id>",
  "vacia_tipo": null,
  "vacia_id": null,
  "creado": "2026-10-16T21:44:57.230Z",
  "actualizado": "2026-10-16T21:44:57.230Z",
  "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

Requête

{
  "nombre": "Ya editada"
}

Réponse

{
  "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": "<id>",
  "vacia_tipo": null,
  "vacia_id": null,
  "creado": "2026-10-16T21:44:59.058Z",
  "actualizado": "2026-10-16T21:44:59.287Z",
  "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

Réponse

[
  {
    "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": "<id>",
    "vacia_tipo": null,
    "vacia_id": null,
    "creado": "2026-10-16T21:44:57.230Z",
    "actualizado": "2026-10-16T21:44:57.230Z",
    "version": "\"v1-73d179cfb86c534a9bfccc\""
  }
]

POST /inquilinos/:inquilino/colas 201

Requête

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

Réponse

{
  "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": "<id>",
  "vacia_tipo": null,
  "vacia_id": null,
  "creado": "2026-10-16T21:44:57.230Z",
  "actualizado": "2026-10-16T21:44:57.230Z",
  "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

Réponse

{
  "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-10-16T21:44:57.733Z",
  "actualizado": "2026-10-16T21:44:57.733Z",
  "tiene_pin": false,
  "tiene_pin_organizador": false,
  "dentro": 0,
  "grabando": false
}

POST /inquilinos/:inquilino/conferencias 201

Requête

{
  "nombre": "Sala 1",
  "clave": "<secreto>"
}

Réponse

{
  "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-10-16T21:44:57.733Z",
  "actualizado": "2026-10-16T21:44:57.733Z",
  "tiene_pin": false,
  "tiene_pin_organizador": false
}

POST /inquilinos/:inquilino/eventos/ticket 201

Requête

{}

Réponse

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

POST /inquilinos/:inquilino/extensiones/:id/credencial-dispositivo 201

Requête

{
  "instalacion": "ejercicio-api-ventana-tranquila"
}

Réponse

{
  "id": "<id>",
  "clave": "<secreto>",
  "caduca": "2026-10-16T22:00:02.449Z",
  "segundos": 900,
  "ambito": "dispositivo",
  "vinculo": {
    "inquilino": "<cuenta>",
    "extension": "<id>",
    "dispositivo": "<id>"
  },
  "extension": {
    "id": "<id>",
    "numero": "100",
    "nombre": "Ejercicio API"
  },
  "dispositivo_nuevo": true,
  "minutos_max": 60,
  "resumen": "credencial de UN aparato de UNA extensión, que caduca; para la app móvil"
}

GET /inquilinos/:inquilino/extensiones/siguiente-libre 200

Réponse

{
  "numero": "100"
}

GET /inquilinos/:inquilino/extensiones 200

Réponse

[
  {
    "id": "<id>",
    "inquilino": "<cuenta>",
    "numero": "100",
    "nombre": "Ejercicio API",
    "correo": null,
    "cid_saliente": null,
    "timbrado_s": 25,
    "estado": "activa",
    "creado": "2026-10-16T21:45:00.167Z",
    "actualizado": "2026-10-16T21:45:00.167Z",
    "nombre_audio": null,
    "en_directorio": 1,
    "departamento": null,
    "version": "\"v1-a1a25e330e8bc32c8289ab\""
  }
]

POST /inquilinos/:inquilino/extensiones 201

Requête

{
  "nombre": "Ejercicio API",
  "numero": "100"
}

Réponse

{
  "id": "<id>",
  "inquilino": "<cuenta>",
  "numero": "100",
  "nombre": "Ejercicio API",
  "correo": null,
  "cid_saliente": null,
  "timbrado_s": 25,
  "estado": "activa",
  "creado": "2026-10-16T21:45:00.167Z",
  "actualizado": "2026-10-16T21:45:00.167Z",
  "nombre_audio": null,
  "en_directorio": 1,
  "departamento": null,
  "reglas": {
    "extension_id": "<id>",
    "dnd": 0,
    "dnd_hasta": null,
    "sigueme": 0,
    "sigueme_numeros": [],
    "sigueme_modo": "tras",
    "sigueme_confirmar": 1,
    "sigueme_s": 20,
    "desvio_siempre": null,
    "desvio_ocupado": null,
    "desvio_nocontesta": null,
    "fallo_tipo": "buzon",
    "fallo_id": "<id>",
    "actualizado": "2026-10-16T21:45:00.168Z",
    "desvio_confirmar": 1,
    "screening": 0,
    "clase_servicio": "todo",
    "supervisar": 0,
    "transferencia_retorno": 0
  },
  "dispositivos": [
    {
      "id": "<id>",
      "etiqueta": "principal",
      "usuario_sip": "tf3zfmm96cfq100",
      "transporte": "udp",
      "estado": "activo",
      "ultimo_registro": null,
      "ultima_ip": null,
      "creado": "2026-10-16T21:45:00.168Z",
      "rotado": null,
      "instalacion": null
    }
  ],
  "buzon": {
    "id": "<id>",
    "inquilino": "<cuenta>",
    "extension_id": "<id>",
    "nombre": "Buzón de Ejercicio API",
    "saludo_texto": "Ha llamado a Ejercicio API. Deje su mensaje después del tono.",
    "saludo_audio": null,
    "correo": null,
    "enviar_correo": 1,
    "adjuntar": 1,
    "transcribir": 1,
    "max_s": 120,
    "creado": "2026-10-16T21:45:00.168Z",
    "actualizado": "2026-10-16T21:45:00.168Z",
    "max_mensajes": 50,
    "aviso_activo": 0,
    "aviso_numero": null,
    "revisar": 0,
    "ofrecer_operadora": 1,
    "guion": null,
    "aviso_numeros": null,
    "aviso_modo": "tras",
    "reintentar": 0,
    "reintentos_max": 2,
    "compartido": 0,
    "extensiones_acceso": null,
    "abrir_caso": 1,
    "tiene_pin": false
  },
  "credencial": {
    "id": "<id>",
    "usuario_sip": "tf3zfmm96cfq100",
    "clave": "<secreto>",
    "realm": "pbx.forhosting.com",
    "transporte": "udp"
  }
}

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

Requête

{}

Réponse

{
  "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": "<id>",
    "vacia_tipo": null,
    "vacia_id": null,
    "creado": "2026-10-16T21:44:59.058Z",
    "actualizado": "2026-10-16T21:44:59.671Z"
  }
}

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

Réponse

{
  "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": "<id>",
    "vacia_tipo": null,
    "vacia_id": null,
    "creado": "2026-10-16T21:44:59.058Z",
    "actualizado": "2026-10-16T21:44:59.058Z"
  },
  "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": "<id>",
    "vacia_tipo": null,
    "vacia_id": null,
    "creado": "2026-10-16T21:44:59.058Z",
    "actualizado": "2026-10-16T21:44:59.287Z"
  },
  "actor": "apikey:<id> primera clave de sistema (sistema)",
  "origen": "api",
  "revertido_de": null,
  "creado": "2026-10-16T21:44:59.287Z",
  "cambios": {
    "nombre": {
      "antes": "Para editar",
      "despues": "Ya editada"
    }
  }
}

GET /inquilinos/:inquilino/historial 200

Réponse

{
  "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-10-16T21:44:59.287Z",
      "cambios": {
        "nombre": {
          "antes": "Para editar",
          "despues": "Ya editada"
        }
      }
    }
  ]
}

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

Réponse

{
  "activas": []
}

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

Requête

{}

Réponse

{
  "id": "<id>",
  "inquilino": "<cuenta>",
  "motivo": "ensayo",
  "desde": "2026-10-16T21:44:58.365Z",
  "hasta": "2026-10-16T21:44:58.588Z",
  "avisar": 1,
  "activo": 0,
  "creado": "2026-10-16T21:44:58.365Z"
}

GET /inquilinos/:inquilino/mantenimientos 200

Réponse

[
  {
    "id": "<id>",
    "inquilino": "<cuenta>",
    "motivo": "ensayo",
    "desde": "2026-10-16T21:44:58.365Z",
    "hasta": null,
    "avisar": 1,
    "activo": 1,
    "creado": "2026-10-16T21:44:58.365Z"
  }
]

POST /inquilinos/:inquilino/mantenimientos 201

Requête

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

Réponse

{
  "id": "<id>",
  "inquilino": "<cuenta>",
  "motivo": "ensayo",
  "desde": "2026-10-16T21:44:58.365Z",
  "hasta": null,
  "avisar": 1,
  "activo": 1,
  "creado": "2026-10-16T21:44:58.365Z"
}

GET /inquilinos/:inquilino/numeros 200

Réponse

[]

PUT /inquilinos/:inquilino/operadora 200

Requête

{
  "destino": "buzon"
}

Réponse

{
  "operadora": null
}

DELETE /inquilinos/:inquilino 200

Réponse

{
  "borrado": "<cuenta>"
}

POST /inquilinos 201

Requête

{
  "nombre": "Ejercicio API 2026-10-16T21:44:54"
}

Réponse

{
  "id": "<cuenta>",
  "nombre": "Ejercicio API 2026-10-16T21:44:54",
  "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-10-16T21:44:56.852Z",
  "actualizado": "2026-10-16T21:44:56.852Z",
  "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,
  "canales_troncal": null,
  "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,
    "por_troncal": null
  }
}

Sessions : le navigateur ne détient jamais de clé permanente

Une clé courte, plafonnée à 60 minutes, qui ne peut pas en fabriquer une permanente. Voici le contrat si c'est vous qui construisez le bouton.

  • Seul le portail peut en émettre une. Émettre une session exige une clé de mise en service, parce que seul le portail peut affirmer qu'il y a un client connecté derrière la requête. VOICE ne connaît pas les mots de passe des clients et n'a aucune raison de les connaître.
  • Elle ne naît jamais sans échéance. Si personne ne demande de durée, on lui en applique une. Une portée qui existe pour expirer et qui pourrait naître éternelle est pire que rien, parce qu'on lui fait confiance.
  • Demander plus longtemps ne sert à rien. Il y a un plafond dur. Qu'un appelant demande huit heures ne rend pas la clé sûre.
  • Elle ne peut pas se promouvoir. La gestion des clés vit entièrement derrière la portée de mise en service : une session ne peut donc pas fabriquer de clé permanente. C'est imposé dans le routeur, avant tout traitement.
  • Vous pouvez la fermer avant l'heure. L'identifiant revient au moment de l'émission, justement pour que vous puissiez la révoquer avant son échéance.

Notifications vers votre système (webhooks)par l'API

Vos systèmes apprennent ce qui s'est passé au lieu de le demander toutes les quelques secondes. 31 événements, signés, réessayés, et aucun ne tombe en silence.

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

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

Chaque livraison est signée : la signature couvre l'horodatage et le corps exact que vous avez reçu, vérifiez-la donc contre les octets bruts et non contre une copie re-sérialisée. Le secret n'est montré qu'une fois, à la création de l'abonnement, et il peut tourner sans interrompre les livraisons.

Une livraison qui échoue est réessayée au bout de 10 · 30 · 60 · 300 · 900 · 3600 secondes, et chaque tentative dispose de 10 secondes. Un abonnement qui continue d'échouer est mis en pause après 20 échecs consécutifs, au lieu d'être abandonné en silence — et vous pouvez voir chaque tentative.

Les événements

ÉvénementQuand il part
llamada.entranteUn appel arrive, avec le numéro, la route et sa destination.
llamada.contestadaQuelqu'un a décroché.
llamada.terminadaIl s'est terminé, avec la durée et la façon dont il a fini.
llamada.perdidaIl a sonné et personne n'a répondu.
buzon.mensajeQuelqu'un a laissé un message, avec sa transcription.
grabacion.listaUn enregistrement a fini d'être traité et peut être téléchargé.
grabacion.analizadaSa transcription, ses locuteurs et son résumé sont prêts.
saldo.bajoLe solde s'épuise.
tope.alcanzadoUn plafond de dépense a été atteint et les appels se sont arrêtés.
registro.anomaloUn enregistrement de poste a mauvaise allure — plusieurs identifiants depuis le même endroit, par exemple.
canales.al_limiteVous approchez du haut de vos lignes simultanées.
cita.confirmadaQuelqu'un a confirmé son rendez-vous au clavier.
cita.reagendarQuelqu'un a demandé une autre date. C'est une demande pour une personne, pas quelque chose que le standard va résoudre tout seul.
cita.canceladaQuelqu'un a annulé son rendez-vous.
desvio.activadoUn renvoi a été activé.
desvio.recordatorioUn renvoi est toujours activé. Le renvoi oublié est la panne fantôme la plus courante d'un standard.
buzon.llenoUne messagerie est pleine — à partir d'ici, des messages seraient perdus.
buzon.casi_llenoUne messagerie est presque pleine, alors qu'il est encore temps d'agir.
cola.vaciaPersonne n'est en poste dans une file.
cola.callbackQuelqu'un a demandé à être rappelé plutôt que d'attendre.
conferencia.entraQuelqu'un est entré dans une salle.
conferencia.saleQuelqu'un est sorti d'une salle.
canales.desalojoUne ligne empruntée a été rendue pour protéger la garantie de quelqu'un.
emergencia.marcadaQuelqu'un a composé le numéro d'urgence depuis un poste. L'appel n'est jamais retardé pour autant.
fax.entranteUne tonalité de fax a été détectée sur un appel entrant.
supervision.iniciadaQuelqu'un a écouté, soufflé ou est entré dans un appel. C'est ce qui sépare un outil de supervision d'une écoute clandestine : pouvoir répondre « qui a écouté cet appel, et quand ».
fraude.sospechaUn motif de comportement qui ressemble à de la fraude. Il prévient ; il ne coupe pas.
filtro.insistenciaUn numéro appelle beaucoup trop souvent.
red.solicitud.nuevaUne autre ligne du réseau a demandé l’autorisation de vous appeler gratuitement.
red.solicitud.respondidaVotre compte a approuvé ou refusé une demande d’autorisation.
red.permiso.revocadoVotre compte a retiré à un numéro l’autorisation de vous appeler gratuitement.

Le canal en directappel réel

Les notifications voyagent par lots et arrivent en quelques secondes. Certaines choses doivent être à l'écran tout de suite : un voyant qui indique qu'un collègue est en ligne ne peut pas avoir quinze secondes de retard.

  • Ce qu'il transporte. Les appels à mesure qu'ils se produisent, les nouveaux messages, et l'état du voyant de chaque poste — c'est ce qui rend un tableau de voyants vraiment vivant à l'écran.
  • Il est en lecture seule.par l'API On peut ouvrir un laissez-passer pour le canal sans confier un téléphone : regarder ce qui se passe ne devrait pas exiger une clé capable, en plus, de changer les choses.
  • Il ne remplace pas les notifications. Le canal en direct est fait pour un écran que quelqu'un regarde. S'il importe que votre système l'apprenne, prenez une notification : elle réessaie, et elle ne dépend pas d'une socket ouverte.

Référence

Comment lire les mentions

Chaque fonction de cette page porte une mention qui dit comment elle a été vérifiée. Nous publions aussi celles qui n'ont pas encore été exercées, en le disant, parce que vous le découvrir seul serait pire.

MentionCe que ça faitCombien
appel réelQuelqu'un a passé un vrai appel et il a fait ce qui est écrit ici.14
appel de testUn vrai appel contre le standard en production, avec de vraies touches composées — mais sans voix et sans personne à l'écoute. Tout ce qui dépend de la parole de l'appelant reste non testé.3
poste réelProuvé avec un vrai poste qui s'enregistre.1
par l'APIExercé par l'API publique.47
banc d'essaiExercé sur le banc d'essai, contre une copie jetable de la base.13
pas encore exercéLe code est là et il se charge, mais personne ne l'a encore fait tourner.36

114 fonctions, comptées sur le standard le 2026-09-19.

La mention appartient à une fonction, pas à une ligne isolée : là où une fonction couvre plusieurs codes, tous affichent le niveau du groupe. Cela veut dire qu'une mention peut rester EN DEÇÀ de ce qui a réellement été testé — jamais au-delà, qui est la seule direction dans laquelle nous acceptons de nous tromper sur une page que vous lisez comme une promesse.

Glossaire

Les mots qu'emploie un standard téléphonique et que rien d'autre n'emploie.

TermeCe que ça fait
PosteUne personne ou un bureau dans votre maison, avec un numéro court que les autres composent. Ce n'est pas un téléphone : un poste peut avoir plusieurs appareils.
Numéro (SDA)Ce que compose le monde extérieur pour vous joindre. Un numéro pointe vers quelque chose — un poste, un groupe, un menu — et c'est vous qui décidez quoi.
Groupe d'appelPlusieurs postes qui sonnent pour le même appel. C'est simple, et cela n'a aucune idée de qui attend ni depuis combien de temps.
File d'attenteUn groupe qui tient en plus la file. Il connaît la position, l'attente mesurée et qui est en poste, et il peut proposer un rappel.
Menu vocal (SVI)« Tapez 1 pour les ventes ». Un menu peut contenir des menus, et l'appelant peut toujours revenir en arrière ou joindre une personne.
Ligne simultanée (canal)Une conversation en cours. Dix canaux, ce sont dix appels à la fois, quel que soit le nombre de téléphones que vous possédez.
Journal d'appel (CDR)Une ligne par appel : qui, quand, combien de temps, par quelle route et comment il a fini. C'est de là qu'une facture est construite.
Voyant d'occupationL'indicateur qui dit si un collègue est libre, en train de sonner ou en conversation, sans avoir à l'appeler pour le savoir.
Tonalités du clavier (DTMF)Les bips que fait un téléphone quand on appuie sur une touche. C'est ainsi qu'un menu, une messagerie et tous les codes de cette page vous entendent.
Suivez-moiVotre poste fait sonner aussi votre mobile, ou à sa place. C'est la fonction la plus utilisée de tout petit standard.
Mise en gardeLaisser un appel en attente sur un emplacement numéroté pour que n'importe qui, depuis n'importe quel téléphone, le reprenne en composant cet emplacement.
Transfert superviséParler à votre collègue avant de lui passer l'appel, avec la possibilité de le reprendre.

Retour à VOICE