Webhosting/VOICE/Dokumentation
ForHosting VOICE

Dokumentation

Eine Seite, vier Spuren. Fangen Sie hier an, geben Sie die beiden mittleren an die Person am Telefon und an die Person weiter, die den Betrieb führt, und schicken Sie die letzte an die Person, die den Code schreibt.

Für den Anfang

Ihre Telefonanlage in fünf Minuten

Alles Folgende gibt es in Ihrem Konto bereits. Nichts davon braucht einen Installateur, den Besuch eines Technikers oder ein Gerät, das Sie kaufen müssten.

  • Nummern und Nebenstellen haben Sie bereits. Sie entstehen mit Ihrem Konto, samt der SIP-Zugangsdaten, die jedes Gerät braucht. Eine Nebenstelle ist eine Person oder ein Arbeitsplatz; eine Nummer ist das, was die Außenwelt wählt.
  • Richten Sie eine Nummer auf ein Ziel. Im Reiter Nummern legen Sie fest, was ein dort eingehender Anruf tun soll: eine Nebenstelle klingeln lassen, eine Gruppe klingeln lassen, ein Menü öffnen, in eine Warteschlange gehen oder Ihren Öffnungszeiten folgen.
  • Nehmen Sie ihn im Browser an. Öffnen Sie den Reiter Telefon, erlauben Sie das Mikrofon, und der Reiter ist ein funktionierender Apparat. Rufen Sie den Echotest mit *43 an, und Sie hören sich selbst zurück.
  • Und danach Öffnungszeiten und Mailbox. Diese beiden verhindern, dass um sieben Uhr abends ein Anruf verloren geht — und es sind die zwei Dinge, die einer frisch eingerichteten Anlage am häufigsten fehlen.

Eilig? Es gibt fünf Startvorlagen — eine Praxis, eine Kanzlei, eine Werkstatt, ein Laden und ein Privatanschluss —, die Öffnungszeiten, eingehende Route und Mailbox für außerhalb der Zeiten in einer einzigen Anfrage anlegen. Sie überschreiben nie etwas, das Sie schon eingerichtet haben.

So kommen Sie in Ihr Panelüber die API

Das Panel liegt auf Ihrer VOICE-Seite und erscheint nur mit einer Sitzung. Diese Sitzung stellt Ihr Kundenbereich aus; hier wird nichts eingetippt.

SchrittWas es tut
1Sie melden sich in Ihrem Kundenbereich auf elportaldelcliente.com an.
2Sie wählen «Meine Telefonanlage verwalten» im Menü Ihres Kontos. Das fordert bei VOICE in Ihrem Namen eine Sitzung an und schickt Sie mit den Zugangsdaten im Adressfragment auf Ihre VOICE-Seite.
3Das Panel ersetzt die Verkaufsseite. Die Zugangsdaten werden aus der Adresszeile gelöscht, bevor überhaupt etwas gezeichnet wird, und sie laufen von selbst ab.

Für alle, die diesen Knopf bauen, hier der ganze Vertrag:

POST /inquilinos/:inquilino/sesiones     # Systembereich: nur das Portal darf eine ausstellen
{ "minutos": 15 }
→ { "clave": "pbx_ses_…", "caduca": "…", "ambito": "sesion", "minutos_max": 60 }

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

Die Zugangsdaten reisen im Fragment und nicht in der Query, und zwar mit Absicht: Ein Fragment wird nie an einen Server geschickt, landet also weder in einem Referer-Header noch in Zugriffsprotokollen noch bei einem Zwischenknoten unterwegs. Sie laufen in Minuten ab, sind gedeckelt und können keinen dauerhaften Schlüssel ausstellen.

Für alle, die ans Telefon gehen

Das Panel, Reiter für Reiterüber die API

16 Bereiche, dieselben 16 in allen acht Sprachen. Alles davon gibt es auch in der API.

ReiterWas es tut
ÜberblickWie es Ihrer Anlage gerade geht: Anrufe heute, angenommen, laufend, Ihre Spitze und wie erreichbar Ihre Apparate waren.
Meine NummernIhre Nummern, und was jede davon tut, wenn sie klingelt.
MenüsSprachmenüs: die 1 für den Vertrieb, und im Vertrieb ein weiteres Menü.
NebenstellenPersonen und Geräte, mit Regeln je Person: Rufumleitung aufs Handy, Weiterleitungen, Nicht stören, was gewählt werden darf, und der Pförtner.
TelefonDas Telefon selbst: wählen, annehmen, weitergeben, parken und sehen, wer telefoniert.
WarteschlangenWarteschlangen mit Position, gemessener Wartezeit, Rückruf, wer im Dienst ist und wer was bearbeitet.
RäumeKonferenzräume mit Schlüssel, und wer gerade drin ist.
MailboxNachrichten mit Abschrift, Ansagen, PIN, Papierkorb und Größengrenze.
VerzeichnisDas Namensverzeichnis, das Anrufer durch Buchstabieren auf der Tastatur erreichen.
EmpfangDie Vermittlung, geparkte Anrufe in Echtzeit, Wartungsfenster und die Code-Tabelle.
FilterSperrliste, Filter für unterdrückte Nummern, Hinweise auf zu hartnäckige Anrufer und alles dazu, wer Sie erreichen darf.
ZeitenÖffnungszeiten, Feiertage und die Tag-Nacht-Umschaltung.
MusikDie Wartemusik und die Stücke, die jeder Ablauf abspielt.
AnrufeJeder Anruf mit Nummer, Dauer, Weg und Aufzeichnung.
LeitungenGleichzeitige Leitungen: was garantiert ist, was Sie gerade leihen und Ihre Spitze.
VerbrauchWas Sie in diesem Monat verbraucht haben, Tag für Tag.

Das Telefon im Browserechter Anruf

Ein Browser-Tab ist ein Apparat. Nichts zu installieren, kein Tischtelefon zu kaufen, keine Nummer zu portieren: Es ist eine Nebenstelle Ihrer eigenen Anlage, angemeldet aus dem Browser.

  • Es ist eine echte Nebenstelle. Der Browser meldet sich an Ihrer Anlage an wie ein Tischtelefon, und der Ton läuft über eine verschlüsselte Verbindung. Wer Ihre Nummer anruft, erreicht den Reiter, und der Reiter kann nach draußen telefonieren.
  • Der Reiter muss offen bleiben. Ein geschlossener Reiter ist ein ausgestecktes Telefon. Das ist die ehrliche Grenze eines Browser-Telefons und der Grund, warum es ein Tischgerät ergänzt, statt es überall zu ersetzen.
  • Sie sehen, wer telefoniert.echter Anruf Die Lampen Ihrer Kolleginnen und Kollegen laufen live mit — frei, klingelt, im Gespräch —, damit Sie schon vor der Weitergabe wissen, ob überhaupt jemand da ist, an den Sie weitergeben können.
  • Sie können ein laufendes Gespräch auf ein anderes Gerät holen.noch ungetestet «Ich muss los und telefoniere gerade»: Das Gespräch wandert auf Ihr Handy, ohne aufzulegen. Es ist mit Absicht ein Knopf und kein Tastencode — wer ein Gespräch verschiebt, hat einen Bildschirm vor sich.
  • Weitergeben, Parken und Aufzeichnen sind dieselben Codes wie an jedem Apparat. Sie werden gewählt, nicht geklickt. Was Sie am Browser-Telefon lernen, gilt also auch am Tischtelefon und am Handy.

Das Browser-Telefon zeichnet nie auf Ihrem Rechner auf. Aufgezeichnet wird in der Anlage, denn dort greifen die Regeln dazu, wen man aufzeichnen darf und wem man es sagen muss — siehe «Aufzeichnen, und das Gesetz».

Codes, die Sie am Apparat wählen

Wo es eine Konvention gibt, bleibt sie erhalten (*72 Umleitung, *78 Nicht stören, *97 Mailbox, *8 Heranholen, *69 wer gerade angerufen hat). Genau darin liegt der Sinn eines Tastencodes: Die Funktion steckt schon im Panel, und der Code sorgt dafür, dass jemand, der seit zwanzig Jahren *72 wählt, dem Panel glaubt.

Bei aufgelegtem Hörer gewählt

CodeWas es tutGeprüft
*43Echotest. Er nimmt auf, was Sie sagen, und spielt es zurück — und kann sagen «bei mir kam nichts an».noch ungetestet
*44Dasselbe, aber verzögert: Er entlarvt die Wörter, die verloren gehen.noch ungetestet
*45Tastaturtest. Er nennt jede Taste, während Sie sie drücken.noch ungetestet
*46Der Zustand Ihrer Leitung: Anmeldung, Codec, Adresse und Laufzeit.noch ungetestet
*60Uhrzeit und Datum, richtig gesprochen.Prüfstand
*62Ihr Verbrauch in diesem Monat (Anrufe und Minuten; der Betrag erst mit aktiver Abrechnung).über die API
*69Wer Sie zuletzt angerufen hat, laut angesagt, verpasste Anrufe eingeschlossen — danach die 1 für den Rückruf.noch ungetestet
*72Bedingungslose Umleitung. Sie liest Ihnen die Nummer zurück.über die API
*73Hebt alle Umleitungen auf.über die API
*74Parallele Umleitung: Ihre Nebenstelle und die Nummer klingeln gleichzeitig.über die API
*75Umleitung, wenn Sie besetzt sind.über die API
*76Umleitung, wenn Sie nicht abnehmen.über die API
*78Nicht stören ein, laut bestätigt.über die API
*79Nicht stören aus.über die API
*80Meldet Sie in allen Ihren Warteschlangen zum Dienst an.über die API
*81Meldet Sie in allen Ihren Warteschlangen vom Dienst ab.über die API
*90Sperrt eine Nummer (nur # sperrt die des letzten Anrufs).noch ungetestet
*91Entsperrt.noch ungetestet
*97Ihre Mailbox, mit Ihrer PIN.Prüfstand
*98Nimmt Ihre Ansage auf.Prüfstand
*99Nimmt Ihren Namen auf — Verzeichnis und Konferenzraum nutzen ihn.Prüfstand
*8Holt den Anruf heran, der am Nebentisch klingelt.über die API
*66Modus: normal · Mittag · geschlossen · Feiertag · automatisch.über die API
*411Das Namensverzeichnis.Prüfstand
*57Legt eine Akte über den belästigenden Anruf an, den Sie gerade hatten. Die Aufzeichnung läuft nicht mehr ab, und Uhrzeit, Weg und Ton bleiben für eine Anzeige erhalten. Der Anrufer wird dadurch nicht gesperrt — das entscheiden Sie.noch ungetestet
*85Sagen Sie mir Bescheid, wenn diese Nebenstelle frei wird.noch ungetestet
*86Hebt das wieder auf.noch ungetestet
*82Hört bei einem Gespräch in Ihrer eigenen Firma mit. Keine der beiden Seiten hört Sie.noch ungetestet
*83Flüstern: Nur Ihr Kollege hört Sie, der Kunde nicht.noch ungetestet
*84In das Gespräch einsteigen: Beide Seiten hören Sie.noch ungetestet
*88Die Anrufe, die niemand zurückgerufen hat, laut angesagt — danach die 1 für den ältesten.noch ungetestet
*47Die Anlage erklärt sich selbst: Sie liest ihre eigenen Codes vor, 9 für den nächsten, 0 zum Beenden.noch ungetestet
70NHolt den auf Platz N geparkten Anruf.über die API

Während eines Gesprächs gewählt

CodeWas es tutGeprüft
*1Dieses Gespräch jetzt aufzeichnen. Beide Seiten werden darauf hingewiesen.über die API
*7Parken: Der Anrufer bekommt Musik, und der Platz wird laut angesagt.über die API
##<ext>#Blinde Weitergabe: durchstellen und auflegen.echter Anruf
#<ext>#Weitergeben, ohne die Art zu wählen. Die Anlage prüft, ob überhaupt jemand da ist, und gibt sonst blind weiter.noch ungetestet
*2<ext>#Begleitete Weitergabe: Sie sprechen erst mit dem Kollegen.noch ungetestet

In der Rückfrage einer begleiteten Weitergabe

CodeWas es tutGeprüft
*1Schließt die Weitergabe ab.noch ungetestet
*0Bricht ab und geht zum Anrufer zurück.noch ungetestet
*3Setzt alle drei in dasselbe Gespräch.noch ungetestet

Im Konferenzraum

CodeWas es tutGeprüft
*6Alle: eigenes Mikrofon stumm schalten und wieder öffnen.über die API
*7Alle: wie viele Personen im Raum sind.über die API
*9Alle: verlassen.über die API
*1Organisation: Raum schließen, ohne den Schlüssel zu ändern.über die API
*2Organisation: Raum wieder öffnen.über die API
*3Organisation: Aufzeichnung starten oder stoppen.über die API

Manche Codes bedeuten zwei Dinge, ohne sich in die Quere zu kommen: *1 heißt im normalen Gespräch «jetzt aufzeichnen», in der Rückfrage «Weitergabe abschließen» und im Konferenzraum «Raum schließen». Das sind verschiedene Zustände desselben Telefons, die verschiedener Code bedient.

Bevor Sie einem neuen Apparat trauen: Tischtelefone und Adapter verarbeiten ihre eigenen Sterncodes und geben sie nie weiter. Wenn Sie einen Code wählen und Stille und danach den Wählton hören, hat der Apparat ihn geschluckt und die Anlage hat nichts gesehen. Lassen Sie uns ein neues Modell gegen die heutige Liste prüfen, bevor Sie es ausrollen.

Die Mailbox von jedem Telefon ausPrüfstand

Wählen Sie *97, geben Sie Ihre PIN ein, und die ganze Mailbox ist da — ohne App, ohne Browser. Sie ist für den Inhaber gedacht, der von einem geliehenen Telefon anruft.

Hauptmenü

TasteWas es tut
1Neue Nachrichten.
2Aufbewahrte Nachrichten.
4Ansagen und Ihr aufgenommener Name.
5PIN ändern.
0Hinaus zur Vermittlung.
9Auflegen.

Während eine Nachricht läuft

TasteWas es tut
1Wiederholen.
2Behalten.
3Löschen. Danach innerhalb von fünf Sekunden die 8 für rückgängig.
4Die Person zurückrufen.
6Die nächste, diese bleibt neu.
7An einen Kollegen weiterleiten, mit einer eigenen aufgenommenen Notiz davor.

Ansagenmenü

TasteWas es tut
1Die Hauptansage aufnehmen.
2Ihren Namen aufnehmen.
3Eine Urlaubsansage setzen.
4Sie wieder entfernen.

Den Anruf selbst annehmen

Eine Rufgruppe sagt «es soll an mehreren Stellen klingeln». Alles auf dieser Liste kann etwas, das eine Rufgruppe nicht kann.

  • Warteschlangen.über die API Eine Warteschlange weiß, wie viele Leute davor sind und wie lange es üblicherweise dauert — also kann sie es sagen. Die Wartezeit wird aus Ihren eigenen jüngsten Anrufen gemessen, nie erfunden: Bei weniger als drei Messwerten sagt sie gar nichts. Ist niemand im Dienst, wird auch niemand in die Schleife gestellt.
  • Rückruf aus der Warteschlange.über die API Wird nach einer Weile in der Schleife angeboten — und nicht angeboten, wenn der Anruf ohnehin gleich angenommen wird. Der Wunsch übersteht einen Neustart, denn wer ihn äußert, legt auf, und der Rückruf kommt vorn in die Reihe. Genau das war versprochen.
  • Konferenzräume.über die API Ein Raum mit einer Nummer und zwei Schlüsseln: einer zum Hineinkommen, einer zum Leiten. Niemand braucht irgendwo ein Konto. Kommen und Gehen wird mit dem Namen angesagt, den jede Person selbst aufgenommen hat.
  • Das Namensverzeichnis.Prüfstand Anrufer buchstabieren einen Namen auf der Tastatur und werden durchgestellt. Jedes Wort eines Namens wird einzeln erfasst, denn hier sind zwei Nachnamen normal, und wer nur den ersten durchsucht, findet die halbe Firma. Akzente und ñ werden angeglichen, «Muñoz» findet man also über 686.
  • Die Null für die Vermittlung.über die API Vermutlich die allgemeinste Erwartung, die es an ein Telefon gibt: eine Person erreichen zu können. Die Null fällt in Stufen von Ihrer Vermittlung über die allgemeine Mailbox bis zu einer gesprochenen Auskunft — nie ein stummes Auflegen.
  • Parken und Heranholen.über die API Parken Sie ein Gespräch, und es wartet mit Musik auf einem nummerierten Platz, während Sie an einen anderen Arbeitsplatz gehen. Jeder holt es zurück, indem er diesen Platz wählt. Das Telefon, das neben Ihnen klingelt, holen Sie mit *8 heran.

Für alle, die den Betrieb führen

Kanäle: Garantie, Leihe und Rückgabeüber die API

Das ist der Teil des Produkts, den eine harte Obergrenze nicht kann, und es lohnt sich, ihn vor der Tarifwahl zu verstehen.

  • Garantiert. Die gleichzeitigen Gespräche, die Ihr Tarif verkauft. Sie passen immer, egal was in der Anlage los ist, und niemand kann sie Ihnen wegnehmen.
  • Geliehen. Über Ihrer Garantie nutzen Sie, was die Anlage frei hat. An den meisten Tagen sind Sie hier, und es kostet nichts extra.
  • Die Reserve. Ein Polster an Kanälen, das niemandem geliehen wird, damit jeder jederzeit seine eigene Garantie erreichen kann.
  • Die Rückgabe. Wenn die Anlage unter Druck steht, können geliehene Gespräche zurückgegeben werden, um die Garantie eines anderen zu schützen. Das gilt nur für Konten, die es erlaubt haben, nie für ein Gespräch innerhalb einer Garantie, nie für einen Notruf und nie stillschweigend: Die Anlage spricht, bevor sie freigibt.
  • Sie lässt sich nicht überbuchen. Die Summe aller Garantien plus Reserve muss hineinpassen. Die Einrichtung prüft das und lehnt einen Tarif ab, der nicht hineinpasst — genau das gibt dem Wort «garantiert» seine Bedeutung.
  • Und man sieht, wann es gezwickt hat. Überlast wird als einzelne Vorfälle mit Uhrzeit gemeldet, nicht als Monatssumme. «Zwölf Abweisungen in dreißig Tagen» liest sich wie Rauschen; «letzten Dienstag zwischen zehn und elf hörten fünf Leute besetzt» ist etwas, worauf man reagieren kann.

Was passiert, wenn etwas kaputtgeht

Eine Telefonanlage wird an dem Tag beurteilt, an dem der Strom ausfällt, nicht an dem Tag, an dem alles läuft.

  • Mehr als ein Weg nach draußen. Die Anlage erreicht die Außenwelt über mehrere unabhängige Verbindungen und wählt selbst zwischen ihnen. Sie richten das nicht ein und sehen es nicht passieren.
  • «Funktioniert» wird am Richtigen gemessen. Eine Verbindung kommt nur infrage, wenn sie sowohl das Internet als auch das Telefonnetz erreicht. Nur das Erste zu prüfen ist der Weg, auf dem eine Anlage ohne Leitung dasteht, während alle Lampen grün sind.
  • Sie kommt nach einem Stromausfall von allein zurück. Wenn der Strom zurückkehrt, starten Anlage und Netzwerktechnik gleichzeitig und nicht immer in der richtigen Reihenfolge. Statt sich auf diese Reihenfolge zu verlassen, vergleicht die Anlage laufend, was sie tatsächlich hat, mit dem, was sie haben sollte, und repariert sich selbst — mit einer Obergrenze für die Versuche, damit eine echte Störung gemeldet wird, statt in einer Schleife zu enden.
  • Sie trennt kein Gespräch, um sich zu reparieren. Jede Reparatur, die Gespräche unterbrechen würde, wartet, bis keines mehr läuft.

Aufzeichnungen und Mailbox-Nachrichten liegen außerhalb der Anlage und überleben damit die Maschine selbst.

Tarife und Minuten

5 Tarife, von $100 bis $300 im Jahr, und eine Nummer je Lizenz. Die eingehende Minute auf einer costa-ricanischen Nummer kostet $0.00.

TarifGleichzeitig, bisDavon garantiertNebenstellenSpeicherung (Tage)Pro Jahr
VOICE I3133$100
VOICE II4244$150
VOICE III6366$200
VOICE IV8488$250
VOICE V105Ohne Limit28$300

Minuten

ZielPro Minute
Eingehende Anrufe$0.00
Costa Rica · Festnetz$0.03
Costa Rica · Mobil$0.08
Mittelamerika$0.45
Karibik$0.55
Rest der Welt$2.30

Preise in US-Dollar, Steuern inklusive. Mobilfunkgespräche rechnet unser Netzbetreiber sekundengenau ab. Jede Lizenz enthält 1 Nummer; zusätzliche Nummern teilen sich dieselbe Anlage, dieselben Abläufe und dasselbe Panel.

Aufzeichnen, und das Gesetzüber die API

Aufgezeichneter Ton ist die Stimme anderer Menschen. Das costa-ricanische Gesetz 8968 regelt das, und der Entwurf folgt daraus — nicht dem, was bequem wäre.

  • Sie entscheiden, was aufgezeichnet wird.über die API Alles, oder nur bestimmte Nebenstellen, oder nur Anrufe auf einer bestimmten Nummer. Oder nichts, was eine legitime Antwort ist.
  • Die Aufbewahrung kommt mit Ihrem Tarif. Aufzeichnungen werden automatisch gelöscht, wenn ihre Zeit um ist. Die einzige Ausnahme ist eine Aufzeichnung, die an einer Akte über einen belästigenden Anruf hängt: Sie läuft nicht mehr ab, bis Sie die Akte schließen — und das Schließen setzt eine normale Frist, nie ein «jetzt sofort löschen».
  • Eine zu teilen heißt nicht, Zugang zu geben. Ein signierter Link spielt genau eine Aufzeichnung ab, läuft von selbst ab und lässt sich widerrufen. Die Person, der Sie ihn schicken, sieht Ihr Konto nie.
  • Jedes Abhören wird protokolliert. Wer welche Aufzeichnung wann abgespielt hat. Es ist die Stimme eines anderen Menschen: zu wissen, wer sie gehört hat, gehört zum Aufbewahren dazu.
  • Sie lassen sich einordnen. Kunde, Interessent oder intern. Es gibt mit Absicht keine Voreinstellung: nicht eingeordnet ist ehrlich, und eine Einordnung, die die Maschine geraten hat, lässt sich später nicht mehr von einer unterscheiden, die ein Mensch gewählt hat.

Beide Seiten werden immer informiert. Wer die Anlage bittet aufzuzeichnen, bekommt die Ansagepflicht gleich mit — die beiden lassen sich nicht trennen, denn genau beim Trennen wird jemand aufgezeichnet, ohne es zu wissen. Im Konferenzraum wird die Ansage jeder Person beim Eintreten gemacht.

Grenzen, Schutz und Rückgängig

Das, was entscheidet, wie schlimm ein schlechter Tag wird: gestohlene Zugangsdaten, ein Fehler in der Wegeführung, eine Nummer, die nicht aufhört anzurufen.

  • Eine Ausgabengrenze, täglich und monatlich.Prüfstand Das ist es, was gestohlene Zugangsdaten daran hindert, Geld zu kosten. Ist die Grenze erreicht, hören die Gespräche auf.
  • Was jede Nebenstelle wählen darf.über die API Nur intern, national, Mobilfunk oder alles. Das Telefon im Lager hat keinen Grund, eine Mehrwertnummer anrufen zu können. Notrufe sind davon nie betroffen.
  • Der Preis, bevor Sie wählen.über die API Fragen Sie, was eine bestimmte Nummer kosten würde, und die Antwort berechnet dieselbe Maschinerie, die das Gespräch später auch führt — nicht eine Preisliste, die vielleicht gar nicht die angewandte ist.
  • Ein Betrugsalarm, der auf Verhalten schaut.noch ungetestet Ungewöhnliches Tempo, ein Land, in das Sie nie telefonieren, eine Uhrzeit, zu der niemand arbeitet. Er warnt und trennt nicht: Ein Fehlalarm ist hier kein lästiger Hinweis, sondern ein Gespräch, das nicht stattgefunden hat. Er braucht zwei Signale, bevor er etwas sagt, denn einen Alarm, der täglich losgeht, lernt man zu ignorieren.
  • Wer zu hartnäckig anruft, wird markiert.noch ungetestet Dieselbe Nummer fünfmal in zwei Minuten ist kein hartnäckiger Kunde, sondern ein Automat. Ab Werk wird nur gewarnt; automatisch sperren ist ein Häkchen, das Sie setzen — denn ein Fehlalarm kostet Sie einen Kunden, der nie wieder anrufen kann.
  • Eine Akte für einen belästigenden Anruf.noch ungetestet Uhrzeit, Weg und Ton, zusammen aufbewahrt für eine Anzeige. Eine Akte zu eröffnen sperrt den Anrufer nicht: Jeder neue Anruf ist ein weiterer Beleg, und das entscheiden Sie, nicht wir.
  • Wie erreichbar Ihre Apparate waren.über die API Nicht unsere Verfügbarkeit — Ihre. Und es wird immer mit ausgewiesen, wie viel des Zeitraums tatsächlich gemessen wurde, denn ein Prozentwert, der die unbeobachteten Stunden stillschweigend weglässt, irrt sich immer in die bequeme Richtung.
  • Was sich geändert hat, wer es geändert hat, und Rückgängig.über die API «Gestern ging es noch» ist eine Frage mit Antwort. Jede Änderung an der Konfiguration wird festgehalten und lässt sich zurücknehmen, und das Zurücknehmen prüft, ob inzwischen jemand anderes diese Felder angefasst hat, statt sie stillschweigend zu überschreiben.

Was abgeschaltet ist, und warum

Ein Handbuch, das nur beschreibt, was funktioniert, zwingt Sie, den Rest allein herauszufinden — und man findet ihn immer im schlechtesten Moment. Diese Liste erzeugt der Schalter selbst; sie kann also nichts als abgeschaltet beschreiben, das längst eingeschaltet ist.

Was es tutWarum
Mailbox per E-MailDer Ton als Anhang, ohne anzurufen. Dafür braucht es Zugangsdaten für das Postfach, und die gibt es noch nicht.
Automatische MinutenabrechnungDie Messung funktioniert, jedes Gespräch wird gemessen; nicht eingeschaltet ist der Abzug von einem Guthaben. Bis dahin werden die Minuten in Rechnung gestellt.
Ausweichadresse für die ApparateDamit Telefone zwischen den beiden Eingängen der Anlage von selbst umschalten. Dafür braucht es Zugangsdaten für die Domain mit Schreibrecht; die vorhandenen lesen nur.
Eingehendes FaxDen Ton zu erkennen und zu melden ist gebaut und mit Absicht abgeschaltet: Die Fax-Erkennung hört bei jedem eingehenden Anruf mit, und ein Fehlalarm würde ein echtes Gespräch abwerfen. Sie bleibt aus, bis es ein echtes Fax gibt, an dem sich das messen lässt.

Für alle, die es anbinden

Die APIüber die API

Das Panel ist einer der Clients dieser API. Alles, was Sie von Hand ändern, lässt sich auch per Programm ändern — mit einem Schlüssel, der Ihrem Konto gehört.

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

Geltungsbereiche

BereichWas es tut
sistemaEinrichtung, über Konten hinweg. So einen bekommen Sie nicht ausgestellt.
inquilinoIhr Konto, lesen und schreiben. Das ist der Schlüssel, mit dem Sie anbinden.
lecturaIhr Konto, nur GET. Für Dashboards, die nichts ändern können sollen.
sesionDieselbe Reichweite wie Ihr Kontoschlüssel, läuft aber in Minuten ab. Das nutzt das Panel, damit ein Browser nie dauerhafte Zugangsdaten hält.
dispositivoEin einziges Gerät an einer einzigen Nebenstelle, und er läuft in Minuten ab. Diesen Schlüssel trägt die Telefon-App: Er erreicht nur, was ein Telefon braucht, und nur für die eigene Nebenstelle.

Wenn etwas schiefgeht

CodeWas es tut
400Die Anfrage ist fehlerhaft, oder ein Wert ist keiner, den wir annehmen. Die Meldung sagt, welcher.
401Kein Schlüssel, ein unbekannter Schlüssel, oder eine bereits abgelaufene Sitzung.
403Der Schlüssel ist echt, darf das aber nicht: Daten eines anderen Kontos, eine Route nur für die Einrichtung, oder ein Schreibzugriff mit einem Nur-Lese-Schlüssel.
404So etwas gibt es in Ihrem Konto nicht.
405Diesen Pfad gibt es, diese Methode nicht. Mit Absicht von 404 unterschieden — das spart eine Stunde.
503 · 504Die Anlage war nicht erreichbar oder hat nicht rechtzeitig geantwortet. Es wird nie mit «Sie haben nichts» geantwortet: nicht nachsehen zu können ist nicht dasselbe, wie dass nichts da wäre.

Alles, was die API antworten kann, wenn sie ablehnt

Das sind die genauen Zeichenketten, die die API im Feld error zurückgibt, gelesen aus dem Quelltext der Anlage. Sie kommen auf Spanisch heraus und stehen hier absichtlich unverändert: Erkennen müssen Sie, was ankommt, nicht eine Übersetzung davon. Ein … markiert die Stelle, an der ein Wert eingesetzt wird.

Jeder Fehler trägt einen stabilen Code. Werten Sie codigo aus, nicht die Meldung. Er ist immer da: Was keinen eigenen deklariert, bekommt den seiner Klasse, abgeleitet aus dem HTTP-Status. Der Text in error ist für Menschen gedacht und kann umformuliert werden; der Code nicht.

{ "error": "…", "codigo": "de_otra_cuenta" }
CodeHTTPWann Sie ihn bekommen
mala_peticion400Die Anfrage ist fehlerhaft, oder ein Wert gehört nicht zu den akzeptierten. Die Meldung sagt, welcher.
no_autorizado401Kein Schlüssel, ein unbekannter, oder eine abgelaufene Sitzung.
prohibido403Der Schlüssel ist gültig, darf das aber nicht.
no_existe404Es gibt nichts, worauf sich das anwenden ließe.
metodo_no_permitido405Den Pfad gibt es, dieses Verb nicht. Absichtlich von einem fehlenden Pfad unterschieden — das spart eine Stunde.
conflicto409Der Zustand des Kontos lässt das gerade nicht zu.
ambito_insuficienteIhr Schlüssel reicht nicht bis zu dieser Route. Die Bereitstellung gehört dem Portal, nicht Ihnen.
canales_por_troncalDie bei der Bereitstellung gesendete Kanalaufteilung kann nicht angenommen werden, und nichts davon wird gespeichert. Das Detail sagt, was nicht stimmt. Das betrifft die Bereitstellung, nicht Ihr Konto.
central_no_disponibleDie Anlage ist gerade nicht erreichbar. Versuchen Sie es mit wachsender Wartezeit erneut: an Ihrer Anfrage ist nichts falsch.
central_sin_respuestaDie Anlage hat nicht rechtzeitig geantwortet. Gleiche Behandlung wie zuvor und dieselbe Vorsicht: der Schreibvorgang kann angekommen sein oder nicht.
clase_de_servicioDieser Wert ist keine der Anrufberechtigungen, die eine Nebenstelle haben kann.
clave_sin_cuentaDer Schlüssel ist keinem Konto zugeordnet.
de_otra_cuentaEs gehört zu einem anderen Konto — oder existiert in Ihrem nicht. Beide Fälle teilen sich absichtlich einen Code: sie zu unterscheiden würde verraten, ob es existiert.
falta_credencialSie haben gar keinen Schlüssel geschickt.
garantia_no_cabeFür das Angefragte ist keine garantierte Kapazität mehr frei. Das ist keine Störung: Genau das verhindert, dass derselbe Kanal zweimal verkauft wird. Die Meldung sagt, wie viel noch frei ist.
no_editableDieses Feld ändert Ihr Anbieter, nicht Sie von hier aus.
no_existeEs gibt nichts, worauf sich das anwenden ließe.
protocolo_incorrectoDiese Route spricht nur WebSocket, und Sie haben sie über normales HTTP angefragt.
solo_lecturaIhr Schlüssel ist nur lesend, und dies würde schreiben.
ya_existeEs gibt bereits etwas mit diesem Namen oder dieser Nummer. Versuchen Sie es mit einer anderen, nicht mit derselben Nutzlast.
CodeWie vieleMeldung
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 verschiedene Meldungen an 289 Stellen im Quelltext der Anlage. Bei jedem Build abgeleitet: Was sich dort ändert, ändert sich hier.

Heute gibt es fast keine Ratenbegrenzung. Die einzige ist eine Wartezeit von ein paar Sekunden zwischen zwei Versuchen, das Telefon im Browser zu öffnen. Ein allgemeines Kontingent gibt es nicht, und das sagen wir lieber, als Sie es entdecken zu lassen, nachdem Sie auf einer Annahme gebaut haben. Bleiben Sie vernünftig, und wenn Sie etwas Schweres planen, sagen Sie uns vorher Bescheid — dann messen wir es mit Ihnen und nicht hinter Ihnen her.

Was erreichbar ist

BereichEndpunkteBeispiele
Mailboxen13GET /buzones POST /buzones DELETE /buzones/:buz
Nebenstellen13GET /extensiones POST /extensiones DELETE /extensiones/:ext
Warteschlangen12GET /colas POST /colas DELETE /colas/:cola
Wartemusik12GET /discos POST /discos DELETE /discos/:disco
Aufzeichnungen9GET /grabaciones PUT /grabaciones/:grabacion/categoria DELETE /grabaciones/:grb
Rufgruppen8GET /grupos POST /grupos DELETE /grupos/:grp
Sprachmenüs8GET /ivrs POST /ivrs DELETE /ivrs/:ivr
Bereitschaftspläne8GET /turnos POST /turnos DELETE /turnos/:turno
Konferenzräume7GET /conferencias POST /conferencias DELETE /conferencias/:sala
Öffnungszeiten7GET /horarios POST /horarios DELETE /horarios/:hor
Webhooks7GET /webhooks POST /webhooks DELETE /webhooks/:whk
Schritte programmierbarer Abläufe6GET /pasos POST /pasos DELETE /pasos/:pso
Was jede Leitung sagt5GET /guiones POST /guiones DELETE /guiones/:gui
Nachrichten5GET /mensajes DELETE /mensajes/:msg GET /mensajes/:msg
Eingehende Routen5GET /rutas POST /rutas DELETE /rutas/:ruta
Wählbare Kurznamen4GET /alias POST /alias DELETE /alias/:als
Terminerinnerungen4GET /citas POST /citas DELETE /citas/:cita
Ihre Kontakte4GET /contactos POST /contactos DELETE /contactos/:con
Chat, mit der Stimme verbunden4GET /conversaciones GET /conversaciones/:cnv POST /conversaciones/:cnv/cerrar
Geräte4DELETE /dispositivos/:disp POST /dispositivos/:disp/estado POST /dispositivos/:disp/provision
Akten zu belästigenden Anrufen4GET /expedientes POST /expedientes GET /expedientes/:exp
Aufzeichnungsregeln4GET /grabacion/decidir GET /grabacion/reglas PUT /grabacion/reglas
Anrufliste4GET /llamadas GET /llamadas/:llamada GET /llamadas/csv
Nummern4GET /numeros DELETE /numeros/:numero/aviso-cambio GET /numeros/:numero/aviso-cambio
Gleichzeitige Leitungen3GET /canales GET /canales/episodios PUT /canales/modo
Feiertage3GET /feriados POST /feriados DELETE /feriados/:fer
Änderungsverlauf und Rückgängig3GET /historial GET /historial/:cambio POST /historial/:cambio/revertir
Sperrliste3GET /lista-negra POST /lista-negra DELETE /lista-negra/:neg
Wartungsfenster3GET /mantenimientos POST /mantenimientos POST /mantenimientos/:mnt/cerrar
Ihr Konto und sein Zustand2GET / PATCH /
Verzeichnis2GET /directorio GET /directorio/buscar
Links zum Teilen2GET /enlaces DELETE /enlaces/:token
Sonstiges1GET /guiones/claves
Geparkte Anrufe1GET /aparcadas
Wer anruft, und weswegen1GET /contexto
Was ein Anruf kosten würde1GET /cotizar-llamada
Wohin ein Anruf gehen darf1GET /destinos
Erreichbarkeit Ihrer Apparate1GET /disponibilidad
Kontoauszug1GET /estado-cuenta
Der Live-Kanal1POST /eventos/ticket
Laufende Gespräche1GET /llamadas-en-curso
Anrufen per Klick1POST /llamar
Vermittlung1PUT /operadora
Wohin dieses Haus telefoniert1GET /paises
Startvorlagen1POST /plantilla
Was gewählt werden darf1GET /politica-salida
Sich von der Anlage anrufen und etwas vorspielen lassen1POST /probar-audio
Testen, wo ein Anruf landen würde1GET /probar-entrada
Einen ausgehenden Anruf testen, ohne ihn zu führen1GET /probar-salida
Guthaben1GET /saldo
Nicht zurückgerufene Anrufe1GET /sin-devolver
Zwei externe Nummern verbinden1POST /unir
Bevorzugte Anrufer1GET /vips
Das Telefon im Browser1POST /webphone/sesion

269 Endpunkte insgesamt, am 2026-09-04 aus der Anlage selbst gelesen.

Diese Tabelle ist eine Zusammenfassung. Die Liste, die nicht veralten kann, ist die, die die Anlage über sich selbst erzeugt: GET /api.

Jeder Endpunkt, einzeln

Aus dem Router der Anlage selbst gelesen: Er kann also weder eine Route beschreiben, die es nicht gibt, noch eine vergessen, die es gibt. Hier steht nur der Bereich Ihres Kontos; die Bereitstellungsrouten gehören dem Portal, und einen Schlüssel, der dorthin reicht, erhalten Sie nicht.

Was es tutWas er tutBeispiel
GET /guiones/clavesQué frases admite un guion
GET /über die API
PATCH /Editar la ficha (el cliente, sus datos; plan y límites, el portal)über die API
GET /aliasüber die API
POST /aliasüber die API
DELETE /alias/:alsüber die API
PATCH /alias/:alsüber die API
GET /aparcadasLas llamadas aparcadas ahora mismo (#60)über die APIansehen
GET /buzonesechter Anruf
POST /buzonesechter Anruf
DELETE /buzones/:buzechter Anruf
GET /buzones/:buzechter Anruf
PATCH /buzones/:buzSaludo, correo, transcripción, duración máximaüber die API
GET /buzones/:buz/mensajesüber die API
PUT /buzones/:buzon/clavePoner o quitar la clave del buzón (#10)Prüfstand
GET /buzones/:buzon/ocupacionCuántos mensajes hay y cuántos caben (#14)Prüfstand
GET /buzones/:buzon/papeleraLo borrado que todavía se puede recuperar (#15)Prüfstand
POST /buzones/:buzon/papelera/:mensaje/recuperarDeshacer un borrado (#15)Prüfstand
GET /buzones/:buzon/saludosLos saludos del buzón, por motivoPrüfstand
POST /buzones/:buzon/saludosPoner el saludo de un motivo (normal, ocupado, vacaciones…)Prüfstand
DELETE /buzones/:buzon/saludos/:saludoPrüfstand
GET /canalesüber die API
GET /canales/episodiosüber die API
PUT /canales/modoüber die API
GET /citasüber die API
POST /citasProgramar un recordatorio de cita por teléfonoüber die APIansehen
DELETE /citas/:citaüber die APIansehen
GET /citas/:citaüber die APIansehen
GET /colasüber die APIansehen
POST /colasCrear una cola de espera con agentesüber die APIansehen
DELETE /colas/:colaüber die API
GET /colas/:colaüber die APIansehen
PUT /colas/:colaüber die APIansehen
GET /colas/:cola/callbacksLas devoluciones de llamada pedidasüber die APIansehen
GET /colas/:cola/estadoCuánta gente espera, quién está de turno y cuánto se tardaüber die 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)über die API
DELETE /colas/:cola/miembros/:miembroüber die API
PUT /colas/:cola/miembros/:miembro/habilidadesLas etiquetas de un agente (#70)
POST /colas/turnoEntrar o salir de turno (lo mismo que *80 / *81)über die API
GET /conferenciasüber die API
POST /conferenciasCrear una sala con número y claveüber die APIansehen
DELETE /conferencias/:salaüber die API
GET /conferencias/:salaüber die APIansehen
PUT /conferencias/:salaCambiar la sala (las claves se cambian, no se leen)über die API
GET /conferencias/:sala/historialQuién estuvo y cuántoüber die API
POST /conferencias/:sala/invitarLlamar a alguien y meterlo en la salaüber die API
GET /contactosüber die API
POST /contactosAlta o importación masivaüber die API
DELETE /contactos/:conüber die API
PUT /contactos/:contacto/vipMarcar o quitar el VIP de un contacto
GET /contextoQuién llama y de qué habló la última vezüber die API
GET /conversacionesPrüfstand
GET /conversaciones/:cnvPrüfstand
POST /conversaciones/:cnv/cerrarPrüfstand
POST /conversaciones/:cnv/turnosPrüfstand
GET /cotizar-llamadaCuánto costaría llamar a ese número, antes de marcarloüber die API
GET /destinosQué destinos se pueden elegir en esta cuentaechter Anruf
GET /directorioQuién sale en el directorio por nombrePrüfstand
GET /directorio/buscarA quién encontraría el directorio con esas teclasPrüfstand
GET /discosüber die API
POST /discosüber die API
DELETE /discos/:discoüber die API
GET /discos/:discoüber die API
PATCH /discos/:discoüber die API
GET /discos/:disco/estadisticasüber die API
GET /discos/:disco/frasesüber die API
PUT /discos/:disco/frasesüber die API
DELETE /discos/:disco/frases/:fraseüber die API
PUT /discos/:disco/pistasüber die API
DELETE /discos/:disco/pistas/:pistaüber die API
GET /discos/:disco/probarüber die API
GET /disponibilidadCuánto tiempo estuvo arriba cada extensiónüber die API
DELETE /dispositivos/:dispRevocar una credencialechtes Gerät
POST /dispositivos/:disp/estadoSuspender o reactivar un dispositivoechtes Gerät
POST /dispositivos/:disp/provisionEmitir un token para configurar la app sin teclear la claveüber die API
POST /dispositivos/:disp/rotarCambiar la clave de un dispositivoechtes Gerät
GET /enlacesPrüfstand
DELETE /enlaces/:tokenRevocar un enlace compartido por errorPrüfstand
GET /estado-cuentaüber die API
POST /eventos/ticketTicket para mirar el canal de eventos en vivo (sin teléfono)über die APIansehen
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 /extensionesüber die API
POST /extensionesAlta de extensión (crea buzón y credencial)über die API
DELETE /extensiones/:extüber die API
GET /extensiones/:extüber die API
PATCH /extensiones/:extüber die API
POST /extensiones/:ext/dispositivosAñadir un dispositivo (celular, computadora…)über die API
POST /extensiones/:ext/no-molestarüber die API
GET /extensiones/:ext/reglasechter Anruf
PUT /extensiones/:ext/reglasSígueme, desvío, no molestar y destino de falloüber die 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-libreüber die API
GET /feriadosüber die API
POST /feriadosFeriado propio o excepción a uno nacionalüber die API
DELETE /feriados/:ferüber die API
GET /grabacion/decidir¿Se grabaría esta llamada? Y con qué avisoüber die API
GET /grabacion/reglasüber die API
PUT /grabacion/reglasQué se graba y cuánto se guardaüber die API
DELETE /grabacion/reglas/:reglaüber die API
GET /grabacionesPrüfstand
PUT /grabaciones/:grabacion/categoriacliente | prospecto | interno, o nada (#68)
DELETE /grabaciones/:grbPrüfstand
GET /grabaciones/:grbFicha: transcripción, resumen, acuerdos y hablantesnoch ungetestet
GET /grabaciones/:grb/accesosQuién ha escuchado esta grabaciónPrüfstand
POST /grabaciones/:grb/analizarVolver a transcribir y resumirnoch ungetestet
GET /grabaciones/:grb/audioEl audio (queda auditado)Prüfstand
POST /grabaciones/:grb/enlaceEnlace firmado para compartir sin dar acceso a la cuentaPrüfstand
GET /grabaciones/buscarBuscar por lo que se dijo dentro de las llamadasPrüfstand
GET /gruposüber die API
POST /gruposüber die API
DELETE /grupos/:grpüber die API
GET /grupos/:grpüber die API
PUT /grupos/:grpüber die API
POST /grupos/:grp/miembrosüber die API
DELETE /grupos/:grp/miembros/:miembroüber die API
GET /grupos/:grp/ordenEn qué orden sonaría ahora mismoüber die API
GET /guionesechter Anruf
POST /guionesLos textos que dice una líneaechter Anruf
DELETE /guiones/:guiechter Anruf
GET /guiones/:guiechter Anruf
PATCH /guiones/:guiCambiar textos, nombre o voz declaradaechter Anruf
GET /historialQué cambió en esta cuenta, quién y cuándoüber die APIansehen
GET /historial/:cambioüber die APIansehen
POST /historial/:cambio/revertirDeshacer un cambio de configuraciónüber die APIansehen
GET /horariosüber die API
POST /horariosüber die API
DELETE /horarios/:horüber die API
GET /horarios/:horüber die API
PUT /horarios/:horüber die API
GET /horarios/:hor/estado¿Abierto ahora? Y por quéüber die API
POST /horarios/:hor/manualForzar abierto o cerrado, con vuelta automáticaüber die API
GET /ivrsechter Anruf
POST /ivrsCrear un menú (detecta bucles al guardar)echter Anruf
DELETE /ivrs/:ivrechter Anruf
GET /ivrs/:ivrechter Anruf
PUT /ivrs/:ivrechter Anruf
GET /ivrs/:ivr/guionEl texto exacto que se va a decirüber die API
DELETE /ivrs/:ivr/opciones/:teclaechter Anruf
PUT /ivrs/:ivr/opciones/:teclaechter Anruf
GET /lista-negraüber die API
POST /lista-negraBloquear un número entranteüber die API
DELETE /lista-negra/:negüber die API
GET /llamadasechter Anruf
GET /llamadas-en-cursoLas llamadas del inquilino ahora mismo (vista de operadora)über die APIansehen
GET /llamadas/:llamadaechter Anruf
GET /llamadas/csvExportar el CDRechter Anruf
GET /llamadas/resumenTotales, atención y repartoechter Anruf
POST /llamarTimbrar a la extensión y conectarla con un destinoechter Anruf
GET /mantenimientosüber die APIansehen
POST /mantenimientosAvisar a quien llame de que hay un mantenimiento en cursoüber die APIansehen
POST /mantenimientos/:mnt/cerrarüber die APIansehen
GET /mensajesBandeja de toda la cuentaüber die API
DELETE /mensajes/:msgüber die API
GET /mensajes/:msgüber die API
GET /mensajes/:msg/audioüber die API
POST /mensajes/:msg/leidoüber die API
GET /numerosüber die API
DELETE /numeros/:numero/aviso-cambioApagar el aviso de cambio y devolver la línea a su destinonoch ungetestet
GET /numeros/:numero/aviso-cambioEstado del aviso de cambio de númeronoch ungetestet
POST /numeros/:numero/aviso-cambioAnunciar que este número cambió y decir el nuevonoch ungetestet
PUT /operadoraA dónde va el cero (#109)über die APIansehen
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)über die API
GET /politica-salidaüber die API
POST /probar-audioLlamarte y reproducirte una cadena de audio — la prueba de verdadechter Anruf
GET /probar-entradaA dónde iría una llamada ahora mismoechter Anruf
GET /probar-salidaSimular una salida sin cursarlaechter Anruf
GET /rutasechter Anruf
POST /rutasQué hace una llamada que entra por un númeroechter Anruf
DELETE /rutas/:rutaechter Anruf
GET /rutas/:rutaechter Anruf
PATCH /rutas/:rutaechter Anruf
GET /saldoPrüfstand
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 unirlosechter Anruf
GET /vipsQuién se salta la fila de la cola (#61)
GET /webhooksüber die API
POST /webhooksüber die API
DELETE /webhooks/:whküber die API
PATCH /webhooks/:whküber die API
GET /webhooks/:whk/entregasüber die API
POST /webhooks/:whk/probarMandar un evento de pruebaüber die API
POST /webhooks/:whk/rotarüber die API
POST /webphone/sesionRegistrar el navegador como teléfono de una extensiónüber die API

Aufgezeichnete Beispiele

Sie sind nicht getippt, sondern bei einem echten Lauf gegen diese API aufgezeichnet worden — in einem Wegwerfkonto, das danach gelöscht wurde. Anfrage, Status und Antwort, genau so, wie sie über die Leitung gingen. Konto- und Objektkennungen sind durch Platzhalter ersetzt, sonst nichts. Ein geschriebenes Beispiel belegt, was sein Autor glaubte; ein aufgezeichnetes belegt, was die Anlage getan hat.

20 von 204 Routen haben ein aufgezeichnetes Beispiel, aus dem Lauf vom 2026-09-04. Die übrigen stehen oben, sind aber noch nicht auf diese Weise erprobt — wir zeigen Ihnen lieber die Zahl, als Sie annehmen zu lassen, es seien alle.

GET /inquilinos/:inquilino/aparcadas 200

Antwort

{
  "plazas": []
}

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

Antwort

{
  "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

Antwort

{
  "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

Anfrage

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

Antwort

{
  "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

Antwort

[]

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

Antwort

{
  "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

Anfrage

{
  "nombre": "Ya editada"
}

Antwort

{
  "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

Antwort

[
  {
    "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

Anfrage

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

Antwort

{
  "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

Antwort

{
  "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

Anfrage

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

Antwort

{
  "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

Anfrage

{}

Antwort

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

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

Anfrage

{}

Antwort

{
  "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

Antwort

{
  "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

Antwort

{
  "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

Antwort

{
  "activas": []
}

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

Anfrage

{}

Antwort

{
  "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

Antwort

[
  {
    "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

Anfrage

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

Antwort

{
  "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

Anfrage

{
  "destino": "buzon"
}

Antwort

{
  "operadora": null
}

DELETE /inquilinos/:inquilino 200

Antwort

{
  "borrado": "<cuenta>"
}

POST /inquilinos 201

Anfrage

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

Antwort

{
  "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
  }
}

Sitzungen: Der Browser hält nie einen dauerhaften Schlüssel

Kurzlebige Zugangsdaten, gedeckelt bei 60 Minuten, die keine dauerhaften ausstellen können. Das ist der Vertrag, wenn Sie den Knopf bauen.

  • Nur das Portal darf eine ausstellen. Eine Sitzung auszustellen braucht einen Einrichtungsschlüssel, denn nur das Portal kann behaupten, dass hinter der Anfrage ein angemeldeter Kunde steht. VOICE weiß nichts von Kundenpasswörtern und muss es auch nicht.
  • Sie entsteht nie ohne Ablauf. Fragt niemand nach einer Dauer, wird eine gesetzt. Ein Bereich, der zum Ablaufen da ist und ewig geboren werden könnte, ist schlimmer als gar keiner — weil man ihm vertraut.
  • Mehr Zeit zu verlangen bringt nichts. Es gibt eine harte Obergrenze. Dass jemand acht Stunden verlangt, macht die Zugangsdaten nicht sicher.
  • Sie kann sich nicht selbst befördern. Die Schlüsselverwaltung liegt vollständig hinter dem Einrichtungsbereich, eine Sitzung kann sich also keinen dauerhaften Schlüssel ausstellen. Das wird im Router erzwungen, bevor irgendein Handler läuft.
  • Sie lässt sich vorzeitig beenden. Die Kennung kommt beim Ausstellen zurück — genau damit Sie sie vor der Zeit widerrufen können.

Webhooksüber die API

Ihre Systeme erfahren, was passiert ist, statt alle paar Sekunden nachzufragen. 28 Ereignisse, signiert, mit Wiederholung, und keines fällt still unter den Tisch.

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

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

Jede Zustellung ist signiert: Die Signatur deckt den Zeitstempel und genau den Rumpf ab, den Sie erhalten haben — prüfen Sie sie also gegen die rohen Bytes und nicht gegen eine neu serialisierte Kopie. Das Geheimnis wird beim Anlegen des Abonnements einmal angezeigt und lässt sich wechseln, ohne die Zustellungen anzuhalten.

Eine fehlgeschlagene Zustellung wird nach 10 · 30 · 60 · 300 · 900 · 3600 Sekunden erneut versucht, und jeder Versuch bekommt 10 Sekunden. Ein Abonnement, das weiterhin fehlschlägt, wird nach 20 Fehlschlägen in Folge pausiert, statt stillschweigend verworfen zu werden — und Sie sehen jeden Versuch.

Die Ereignisse

EreignisWann es auslöst
llamada.entranteEin Anruf kommt herein, mit Nummer, Route und Ziel.
llamada.contestadaJemand hat abgenommen.
llamada.terminadaEr ist zu Ende, mit Dauer und Art des Endes.
llamada.perdidaEs hat geklingelt, und niemand ist rangegangen.
buzon.mensajeJemand hat eine Nachricht hinterlassen, samt Abschrift.
grabacion.listaEine Aufzeichnung ist fertig verarbeitet und kann geladen werden.
grabacion.analizadaAbschrift, Sprecher und Zusammenfassung liegen vor.
saldo.bajoDas Guthaben geht zur Neige.
tope.alcanzadoEine Ausgabengrenze wurde erreicht, die Gespräche sind gestoppt.
registro.anomaloEine Geräteanmeldung sieht falsch aus — etwa mehrere Zugangsdaten von derselben Stelle.
canales.al_limiteSie sind nahe an der Obergrenze Ihrer gleichzeitigen Leitungen.
cita.confirmadaJemand hat seinen Termin über die Tastatur bestätigt.
cita.reagendarJemand hat um einen anderen Termin gebeten. Das ist eine Bitte an einen Menschen, nichts, was die Anlage von allein löst.
cita.canceladaJemand hat seinen Termin abgesagt.
desvio.activadoEine Weiterleitung wurde eingeschaltet.
desvio.recordatorioEine Weiterleitung ist immer noch eingeschaltet. Die vergessene Weiterleitung ist der häufigste Phantomfehler einer Telefonanlage.
buzon.llenoEine Mailbox ist voll — ab hier gingen Nachrichten verloren.
buzon.casi_llenoEine Mailbox ist fast voll, solange noch Zeit bleibt, etwas zu tun.
cola.vaciaIn einer Warteschlange ist niemand im Dienst.
cola.callbackJemand hat um einen Rückruf gebeten, statt zu warten.
conferencia.entraJemand ist einem Raum beigetreten.
conferencia.saleJemand hat einen Raum verlassen.
canales.desalojoEine geliehene Leitung wurde zurückgegeben, um die Garantie eines anderen zu schützen.
emergencia.marcadaJemand hat von einer Nebenstelle den Notruf gewählt. Der Anruf wird dadurch nie verzögert.
fax.entranteBei einem eingehenden Anruf wurde ein Faxton erkannt.
supervision.iniciadaJemand hat mitgehört, geflüstert oder sich eingeschaltet. Genau das trennt ein Aufsichtswerkzeug von einer Wanze: die Frage «wer hat dieses Gespräch gehört, und wann» beantworten zu können.
fraude.sospechaEin Verhaltensmuster, das nach Betrug aussieht. Es warnt; es trennt nicht.
filtro.insistenciaEine Nummer ruft viel zu oft an.

Der Live-Kanalechter Anruf

Webhooks reisen in Bündeln und kommen binnen Sekunden an. Manches muss jetzt auf dem Bildschirm stehen: Eine Lampe, die zeigt, dass ein Kollege telefoniert, darf nicht fünfzehn Sekunden zu spät sein.

  • Was er transportiert. Anrufe, während sie passieren, neue Nachrichten und den Lampenzustand jeder Nebenstelle — das ist es, was ein Besetztlampenfeld auf einem Bildschirm überhaupt erst lebendig macht.
  • Er ist nur lesend.über die API Sie können einen Zugang zum Kanal öffnen, ohne ein Telefon herauszugeben: zuzusehen, was passiert, sollte keine Zugangsdaten erfordern, die auch etwas ändern können.
  • Er ersetzt keine Webhooks. Der Live-Kanal ist für einen Bildschirm, auf den jemand schaut. Wenn es darauf ankommt, dass Ihr System es erfährt, nehmen Sie einen Webhook: Er wiederholt, und er hängt nicht an einem offenen Socket.

Referenz

Wie die Nachweise zu lesen sind

Jede Funktion auf dieser Seite trägt einen Nachweis, wie sie geprüft wurde. Wir veröffentlichen auch die, die noch niemand ausgeführt hat — so gekennzeichnet, denn dass Sie es selbst herausfinden, wäre schlimmer.

NachweisWas es tutWie viele
echter AnrufJemand hat wirklich angerufen, und es tat, was hier steht.13
TestanrufEin echter Anruf gegen die laufende Anlage, mit wirklich gedrückten Tasten — aber ohne Stimme und ohne Zuhörer. Alles, was davon abhängt, dass der Anrufer spricht, ist weiterhin ungetestet.3
echtes GerätMit einem echten Apparat nachgewiesen, der sich anmeldet.1
über die APIÜber die öffentliche API ausgeführt.46
PrüfstandAuf dem Prüfstand ausgeführt, gegen eine Wegwerfkopie der Datenbank.13
noch ungetestetDer Code ist da und lädt, aber niemand hat ihn bisher ausgeführt.36

112 Funktionen, am 2026-08-19 aus der Anlage gezählt.

Der Nachweis gehört zu einer Funktion, nicht zu einer einzelnen Zeile: Wo eine Funktion mehrere Codes abdeckt, zeigen alle die Stufe der Gruppe. Ein Nachweis kann also untertreiben, was tatsächlich geprüft wurde — nie übertreiben. Das ist die einzige Richtung, in die wir auf einer Seite, die Sie als Versprechen lesen, falsch liegen wollen.

Glossar

Die Wörter, die eine Telefonanlage benutzt und sonst nichts.

BegriffWas es tut
NebenstelleEine Person oder ein Arbeitsplatz in Ihrer Firma, mit einer kurzen Nummer, die andere wählen. Sie ist kein Telefon: Eine Nebenstelle kann mehrere Geräte haben.
Nummer (DID)Was die Außenwelt wählt, um Sie zu erreichen. Eine Nummer zeigt auf etwas — eine Nebenstelle, eine Gruppe, ein Menü —, und Sie bestimmen, worauf.
RufgruppeMehrere Nebenstellen, die für denselben Anruf klingeln. Einfach — und ohne jede Ahnung, wer wartet und wie lange schon.
WarteschlangeEine Gruppe, die eine Reihe führt. Sie kennt die Position, die gemessene Wartezeit und wer im Dienst ist, und sie kann einen Rückruf anbieten.
Sprachmenü (IVR)«Die 1 für den Vertrieb». Menüs können Menüs enthalten, und ein Anrufer kann immer zurück oder zu einem Menschen.
Gleichzeitige Leitung (Kanal)Ein laufendes Gespräch. Zehn Kanäle heißt zehn Gespräche auf einmal, egal wie viele Telefone Sie besitzen.
Anrufdatensatz (CDR)Eine Zeile je Anruf: wer, wann, wie lange, über welchen Weg und wie er endete. Daraus wird eine Rechnung gebaut.
BesetztlampeDie Anzeige, die zeigt, ob ein Kollege frei ist, klingelt oder spricht — ohne ihn anrufen zu müssen, um es herauszufinden.
Tastentöne (DTMF)Die Töne, die ein Telefon beim Drücken einer Taste erzeugt. Über sie hören ein Menü, eine Mailbox und jeder Code auf dieser Seite, was Sie drücken.
Rufumleitung aufs HandyIhre Nebenstelle klingelt auch auf Ihrem Handy — oder stattdessen. Die meistgenutzte Funktion jeder kleinen Telefonanlage.
ParkenEin Gespräch auf einem nummerierten Platz warten lassen, damit jeder an jedem Telefon es durch Wählen dieses Platzes heranholen kann.
Begleitete WeitergabeMit dem Kollegen sprechen, bevor Sie das Gespräch übergeben — mit der Möglichkeit, es zurückzunehmen.

Zurück zu VOICE