D'Geschicht vun engem Projet oder wéi ech 7 Joer verbruecht hunn eng PBX ze kreéieren baséiert op Asterisk a Php

Sécherlech hate vill vun iech, wéi ech, eng Iddi eppes eenzegaarteg ze maachen. An dësem Artikel wäert ech d'technesch Problemer a Léisungen beschreiwen, déi ech musse konfrontéieren beim Entwécklung vun der PBX. Villäicht hëlleft dat een iwwer seng eegen Iddi ze entscheeden, an engem dee gutt getraffene Wee ze goen, well ech och vun der Erfahrung vu Pionéier profitéiert hunn.

D'Geschicht vun engem Projet oder wéi ech 7 Joer verbruecht hunn eng PBX ze kreéieren baséiert op Asterisk a Php

Iddi a Schlëssel Ufuerderunge

An et huet alles ugefaang einfach mat Léift fir Asterisk (Kader fir Gebai Kommunikatioun Uwendungen), Automatisatioun vun Telefonie an Installatiounen Gratis PBX (Web Interface fir Asterisk). Wann d'Bedierfnesser vun der Firma ouni Spezifizitéiten waren a falen an de Fäegkeeten Gratis PBX - alles ass super. Déi ganz Installatioun huet bannent 24 Stonnen stattfonnt, d'Firma krut eng konfiguréiert PBX, eng userfrëndlech Interface a kuerz Training plus Ënnerstëtzung wann Dir wëllt.

Awer déi interessantst Aufgaben waren net-Standard an dann war et net sou fantastesch. Asterisk ka vill maachen, awer fir de Webinterface an der Aarbecht ze halen, war et néideg vill Mol méi Zäit ze verbréngen. Also e klengen Detail kéint vill méi laang daueren wéi de Rescht vun der PBX z'installéieren. An de Punkt ass net datt et eng laang Zäit dauert fir e Webinterface ze schreiwen, mee éischter de Punkt ass an den architektoneschen Features Gratis PBX. Architektur Approche a Methoden Gratis PBX war zu der Zäit vum php4 geluecht, an dee Moment gouf et schonn php5.6 op deem alles méi einfach a méi bequem gemaach ka ginn.

Déi lescht Stréi war grafesch Diagrammen a Form vun engem Diagramm. Wann ech probéiert esou eppes ze bauen fir Gratis PBX, Ech hu gemierkt datt ech et wesentlech ëmschreiwen muss an et wier méi einfach eppes Neies ze bauen.

Déi Haaptfuerderunge waren:

  • einfache Setup, intuitiv zougänglech och fir en Ufänger Administrateur. Dofir erfuerderen d'Firmen keng PBX Ënnerhalt op eiser Säit,
  • einfach Ännerung sou datt Aufgaben an adäquat Zäit geléist ginn,
  • Einfachheet vun Integratioun mat PBX. U Gratis PBX et war keng API fir Astellunge änneren, i.e. Dir kënnt zum Beispill net Gruppen oder Stëmmmenüe vun enger Drëtt Partei Applikatioun erstellen, nëmmen d'API selwer Asterisk,
  • opensource - fir Programméierer ass dëst extrem wichteg fir Ännerungen fir de Client.

D'Iddi vu méi séier Entwécklung war all Funktionalitéit aus Moduler a Form vun Objekter ze bestoen. All Objete missten eng gemeinsam Elterenklass hunn, dat heescht datt d'Nimm vun all den Haaptfunktiounen scho bekannt sinn an dofir scho Standardimplementatiounen ginn. Objekter erlaben Iech dramatesch d'Zuel vun den Argumenter a Form vun assoziativen Arrays mat Stringschlësselen ze reduzéieren, déi Dir erausfënnt an Gratis PBX Et war méiglech andeems d'ganz Funktioun an nestéiert Funktiounen ënnersicht gouf. Am Fall vun Objeten wäert banal Autocompletion all d'Eegeschafte weisen, an am Allgemengen d'Liewen vill Mol vereinfachen. Plus, Ierfschaft a Redefinitioun léist scho vill Probleemer mat Ännerungen.

Déi nächst Saach, déi d'Wiederaarbechtszäit verlangsamt huet an et derwäert war ze vermeiden, war Duplikatioun. Wann et e Modul verantwortlech ass fir en Employé ze wielen, da sollten all aner Moduler, déi en Uruff un en Employé schécken, se benotzen, an net hir eege Kopien erstellen. Also, wann Dir eppes änneren musst, da musst Dir nëmmen op enger Plaz änneren an d'Sich no "wéi et funktionnéiert" soll op enger Plaz duerchgefouert ginn an net am ganze Projet gesicht ginn.

Éischt Versioun an éischt Feeler

Den éischte Prototyp war bannent engem Joer fäerdeg. De ganze PBX, wéi geplangt, war modulär, an d'Module konnten net nëmmen nei Funktionalitéit fir d'Veraarbechtung vun Uriff addéieren, awer och d'Webinterface selwer änneren.

D'Geschicht vun engem Projet oder wéi ech 7 Joer verbruecht hunn eng PBX ze kreéieren baséiert op Asterisk a Php
Jo, d'Iddi fir en Dialplan a Form vun esou engem Schema ze bauen ass net meng, awer et ass ganz bequem an ech hunn datselwecht gemaach fir Asterisk.

D'Geschicht vun engem Projet oder wéi ech 7 Joer verbruecht hunn eng PBX ze kreéieren baséiert op Asterisk a Php

Andeems Dir e Modul schreift, kënnen d'Programméierer schonn:

  • Erstellt Är eege Funktionalitéit fir Uruffveraarbechtung, déi am Diagramm plazéiert ka ginn, wéi och am Menu vun Elementer op der lénker Säit,
  • erstellt Är eege Säiten fir d'Webinterface a füügt Är Templates op existent Säiten un (wann de Säitentwéckler dat virgesinn huet),
  • Füügt Är Astellungen un den Haaptastellungstab oder erstellt Ären eegenen Astellungstab,
  • de Programméierer kann aus engem bestehende Modul ierwen, en Deel vun der Funktionalitéit änneren an en ënner engem neien Numm registréieren oder den originale Modul ersetzen.

Zum Beispill, esou kënnt Dir Ären eegene Stëmmmenü erstellen:

......
class CPBX_MYIVR extends CPBX_IVR
{
 function __construct()
 {
 parent::__construct();
 $this->_module = "myivr";
 }
}
.....
$myIvrModule = new CPBX_MYIVR();
CPBXEngine::getInstance()->registerModule($myIvrModule,__DIR__); //Зарегистрировать новый модуль
CPBXEngine::getInstance()->registerModuleExtension($myIvrModule,'ivr',__DIR__); //Подменить существующий модуль

Déi éischt komplex Implementatiounen hunn den éischte Stolz an déi éischt Enttäuschungen bruecht. Ech war frou datt et geklappt huet, datt ech d'Haaptfeatures scho konnt reproduzéieren Gratis PBX. Ech war frou datt d'Leit d'Iddi vum Schema gär hunn. Et waren nach vill Méiglechkeeten fir d'Entwécklung ze vereinfachen, awer och zu där Zäit goufen e puer vun den Aufgaben scho méi einfach gemaach.

D'API fir d'PBX Konfiguratioun z'änneren war eng Enttäuschung - d'Resultat war guer net wat mir wollten. Ech hunn dee selwechte Prinzip geholl wéi an Gratis PBX, andeems Dir op d'Uwendung Knäppchen klickt, gëtt déi ganz Konfiguratioun nei erstallt an d'Module ginn nei gestart.

Et gesäit dëst:

D'Geschicht vun engem Projet oder wéi ech 7 Joer verbruecht hunn eng PBX ze kreéieren baséiert op Asterisk a Php
*Dialplan ass eng Regel (Algorithmus) duerch deen en Uruff veraarbecht gëtt.

Awer mat dëser Optioun ass et onméiglech eng normal API ze schreiwen fir d'PBX Astellungen z'änneren. Éischtens, d'Operatioun vun Applikatioun Ännerungen op Asterisk ze laang a Ressourceintensiv.
Zweetens, Dir kënnt net zwou Funktiounen gläichzäiteg ruffen, well souwuel wäert d'Configuratioun schafen.
Drëttens gëlt et all Astellungen, och déi vum Administrateur gemaach.

An dëser Versioun, wéi an Askozia, Et war méiglech d'Konfiguratioun vun nëmmen geännert Moduler ze generéieren an nëmmen déi néideg Moduler Restart, mä dës sinn all hallef Moossnamen. Et war néideg der Approche ze änneren.

Zweet Versioun. Nues rausgezunn Schwäif stack

D'Iddi fir de Problem ze léisen war net d'Konfiguratioun an d'Dialplan fir nei ze kreéieren Asterisk, mee späichert Informatioun an d'Datebank a liest direkt aus der Datebank beim Veraarbechtung vum Uruff. Asterisk Ech wousst scho wéi ech Konfiguratiounen aus der Datebank liesen, ännert just de Wäert an der Datebank an den nächsten Uruff gëtt veraarbecht andeems d'Ännerunge berücksichtegt ginn, an d'Funktioun war perfekt fir d'Dialplanparameter ze liesen REALTIME_HASH.

Um Enn war et net néideg emol nei ze starten Asterisk wann d'Astellungen änneren an all Astellungen ugefaang direkt ze applizéiert ginn Asterisk.

D'Geschicht vun engem Projet oder wéi ech 7 Joer verbruecht hunn eng PBX ze kreéieren baséiert op Asterisk a Php

Déi eenzeg Ännerunge vum Dialplan sinn d'Zousatz vun Extensiounsnummeren an Hiweiser. Mä dëst waren kleng Plaz Ännerungen

exten=>101,1,GoSub(‘sub-callusers’,s,1(1)); - точечное изменение, добавляется/изменяется через ami

; sub-callusers – универсальная функция генерится при установке модуля.
[sub-callusers]
exten =>s,1,Noop()
exten =>s,n,Set(LOCAL(TOUSERID)=${ARG1})
exten =>s,n,ClearHash(TOUSERPARAM)
exten =>s,n,Set(HASH(TOUSERPARAM)=${REALTIME_HASH(rl_users,id,${LOCAL(TOUSERID)})})
exten =>s,n,GotoIf($["${HASH(TOUSERPARAM,id)}"=""]?return)
...

Dir kënnt einfach eng Zeil am Dialplan addéieren oder änneren Ami (Kontroll Interface Asterisk) a kee Restart vum ganze Dialplan ass erfuerderlech.

Dëst huet de Problem mat der Configuratioun API geléist. Dir kënnt souguer direkt an d'Datebank goen an en neie Grupp derbäisetzen oder z.B. d'Uruffzäit am Feld "Dialtime" fir de Grupp änneren an den nächsten Uruff dauert schonn déi spezifizéiert Zäit (Dëst ass keng Empfehlung fir Aktioun, well e puer API Operatiounen erfuerderen Ami rifft).

Déi éischt schwiereg Ëmsetzungen hunn erëm den éischte Stolz an Enttäuschung bruecht. Ech war frou datt et geschafft huet. D'Datebank gouf e kriteschen Link, d'Ofhängegkeet vun der Disk erhéicht, et goufe méi Risiken, awer alles huet stabil an ouni Probleemer geschafft. An am wichtegsten ass elo alles wat duerch d'Webinterface gemaach ka ginn duerch d'API gemaach ginn, an déiselwecht Methode goufen benotzt. Zousätzlech huet d'Web-Interface de Knäppchen "Apply Settings to PBX" geläscht, wat d'Administrateuren dacks vergiess hunn.

D'Enttäuschung war datt d'Entwécklung méi komplizéiert gouf. Zënter der éischter Versioun huet d'PHP Sprooch en Dialplan an der Sprooch generéiert Asterisk an et gesäit komplett onliesbar aus, plus d'Sprooch selwer Asterisk fir en Dialplan ze schreiwen ass et extrem primitiv.

Wéi et ausgesinn huet:

$usersInitSection = $dialplan->createExtSection('usersinit-sub','s');
$usersInitSection
 ->add('',new Dialplanext_gotoif('$["${G_USERINIT}"="1"]','exit'))
 ->add('',new Dialplanext_set('G_USERINIT','1'))
 ->add('',new Dialplanext_gosub('1','s','sub-AddOnAnswerSub','usersconnected-sub'))
 ->add('',new Dialplanext_gosub('1','s','sub-AddOnPredoDialSub','usersinitondial-sub'))
 ->add('',new Dialplanext_set('LOCAL(TECH)','${CUT(CHANNEL(name),/,1)}'))
 ->add('',new Dialplanext_gotoif('$["${LOCAL(TECH)}"="SIP"]','sipdev'))
 ->add('',new Dialplanext_gotoif('$["${LOCAL(TECH)}"="PJSIP"]','pjsipdev'))

An der zweeter Versioun gouf d'Dialplan universell, et enthält all méiglech Veraarbechtungsoptiounen ofhängeg vun de Parameteren a seng Gréisst ass wesentlech eropgaang. All dëst huet d'Entwécklungszäit immens verlangsamt, an dee ganz Gedanken, datt et nach eng Kéier néideg war, mam Dialplan ze stéieren, huet mech traureg gemaach.

Drëtt Versioun

D'Iddi fir de Problem ze léisen war net ze generéieren Asterisk Dialplan vu php a benotzen FastAGI a schreift all Veraarbechtungsregelen an PHP selwer. FastAGI et erlaabt Asterisk, fir den Uruff ze veraarbecht, verbënnt mat der Socket. Kritt Kommandoen vun do a schéckt Resultater. Also ass d'Logik vum Dialplan schonn ausserhalb vun de Grenzen Asterisk a kann an all Sprooch geschriwwe ginn, a mengem Fall an PHP.

Et gouf vill Versuch a Feeler. Den Haaptproblem war datt ech scho vill Klassen/Dateien haten. Et huet ongeféier 1,5 Sekonnen gedauert fir Objekter ze kreéieren, se ze initialiséieren an sech mateneen registréieren, an dës Verzögerung pro Uruff ass net eppes wat ignoréiert ka ginn.

Initialiséierung sollt nëmmen eemol geschéien an dofir huet d'Sich no enger Léisung ugefaang mam Schreiwen vun engem Service an php benotzt Pthreads. No enger Woch vun Experimenter gouf dës Optioun ofgeschaaft wéinst de Schwieregkeeten wéi dës Extensioun funktionnéiert. No engem Mount Testen hunn ech och missen asynchrone Programméierungen an PHP opginn; Ech brauch eppes einfach, vertraut fir all PHP Ufänger, a vill Extensiounen fir PHP si synchron.

D'Léisung war eisen eegene Multi-threaded Service am C, dee mat kompiléiert gouf PHPLIB. Et lued all ATS php Dateien, waart op all d'Moduler fir ze initialiséieren, füügt e Réckruff un all aner, a wann alles fäerdeg ass, cache se. Beim Ufro vun FastAGI e Stream gëtt erstallt, eng Kopie aus dem Cache vun alle Klassen an Daten ginn dran reproduzéiert, an d'Ufro gëtt un d'php Funktioun weidergeleet.

Mat dëser Léisung ass d'Zäit vun engem Uruff un eise Service bis zum éischte Kommando Asterisk vun 1,5s op 0,05s erofgaang an dës Kéier hänkt liicht vun der Gréisst vum Projet of.

D'Geschicht vun engem Projet oder wéi ech 7 Joer verbruecht hunn eng PBX ze kreéieren baséiert op Asterisk a Php

Als Resultat gouf d'Zäit fir d'Dialplan Entwécklung wesentlech reduzéiert, an ech kann dat schätzen well ech de ganze Dialplan vun all Moduler an PHP iwwerschreiwe muss. Éischtens, Methoden solle scho geschriwwe ginn an php fir en Objet aus der Datebank ze kréien; si waren gebraucht fir an der Webinterface ze weisen, an zweetens, an dat ass den Haapt Saach, ass et endlech méiglech mat Strings mat Zuelen an Arrays bequem ze schaffen mat Datebank plus vill PHP Extensiounen.

Fir den Dialplan an der Modulklass ze veraarbecht, musst Dir d'Funktioun ëmsetzen dialplanDynamicCall an Argument pbxCallRequest wäert en Objet enthalen fir mat ze interagéieren Asterisk.

D'Geschicht vun engem Projet oder wéi ech 7 Joer verbruecht hunn eng PBX ze kreéieren baséiert op Asterisk a Php

Zousätzlech gouf et méiglech den Dialplan ze debuggen (php huet xdebug an et funktionnéiert fir eise Service), Dir kënnt Schrëtt fir Schrëtt réckelen andeems Dir d'Wäerter vu Variabelen kuckt.

Call Daten

All Analyse a Berichter erfuerderen korrekt gesammelt Donnéeën, an dëse PBX-Block ass och duerch vill Versuch a Feeler vun der éischter bis drëtter Versioun duerchgaang. Dacks, Opruff Daten ass en Zeechen. Een Uruff = eng Opnam: wien huet ugeruff, wien huet geäntwert, wéi laang si geschwat hunn. A méi interessant Optiounen gëtt et en zousätzleche Schëld, deen uginn wéi eng PBX-Mataarbechter wärend dem Uruff geruff gouf. Mä all dëst deckt nëmmen en Deel vun de Besoinen.

Déi initial Ufuerderunge waren:

  • spueren net nëmmen wien d'PBX ugeruff huet, awer och wien geäntwert huet, well et ginn Interceptiounen an dëst muss berécksiichtegt ginn wann Dir Uriff analyséiert,
  • Zäit ier Dir mat engem Employé verbënnt. An Gratis PBX an e puer aner PBXen, gëtt den Uruff als geäntwert ugesinn soubal d'PBX den Telefon ophëlt. Awer fir de Stëmmmenü musst Dir schonn den Telefon ophuelen, sou datt all Uriff geäntwert ginn an d'Waardezäit fir eng Äntwert gëtt 0-1 Sekonn. Dofir gouf decidéiert net nëmmen d'Zäit virun enger Äntwert ze spueren, mee d'Zäit ier Dir mat Schlësselmoduler verbënnt (de Modul selwer setzt dëse Fändel. Momentan ass et "Employé", "Extern Linn"),
  • fir eng méi komplex dialplan, wann en Opruff Reesen tëscht verschiddene Gruppen, et war néideg all Element getrennt ënnersicht kënnen.

Déi bescht Optioun huet sech erausgestallt wann d'PBX Moduler Informatioun iwwer sech selwer op Uruff schécken an d'Informatioun schlussendlech a Form vun engem Bam späicheren.

Et gesäit sou aus:

Éischtens, allgemeng Informatiounen iwwert den Uruff (wéi all aner - näischt speziell).

D'Geschicht vun engem Projet oder wéi ech 7 Joer verbruecht hunn eng PBX ze kreéieren baséiert op Asterisk a Php

  1. En Uruff op enger Baussenlinn kritt "Fir den Test"um 05:55:52 vun der Nummer 89295671458 op d'Nummer 89999999999, um Enn gouf et vun engem Employé geäntwert"Sekretär 2» mat der Nummer 104. De Client huet 60 Sekonnen gewaart a 36 Sekonnen geschwat.
  2. Employé"Sekretär 2"rufft den 112 un an en Employé äntwert"Manager 1» no 8 Sekonnen. Si schwätzen fir 14 Sekonnen.
  3. De Client gëtt un den Employé transferéiert "Manager 1" wou se weider 13 Sekonnen schwätzen

Awer dëst ass den Tipp vum Äisbierg; fir all Rekord kënnt Dir eng detailléiert Uruffgeschicht iwwer d'PBX kréien.

D'Geschicht vun engem Projet oder wéi ech 7 Joer verbruecht hunn eng PBX ze kreéieren baséiert op Asterisk a Php

All Informatioun gëtt als Nesting vun Uriff presentéiert:

  1. En Uruff op enger Baussenlinn kritt "Fir den Test» um 05:55:52 vun der Nummer 89295671458 op d'Nummer 89999999999.
  2. Um 05:55:53 schéckt d'Aussenlinn en Uruff un den Incoming Circuit "Test»
  3. Wann Dir en Uruff no dem Schema veraarbecht, gëtt de Modul "Manager Opruff", an deem den Uruff 16 Sekonnen ass. Dëst ass e Modul fir de Client entwéckelt.
  4. Modul "Manager Opruff" schéckt en Uruff un den Employé responsabel fir d'Nummer (Client)"Manager 1” a waart 5 Sekonnen op eng Äntwert. De Manager huet net geäntwert.
  5. Modul "Manager Opruff"schéckt en Uruff un de Grupp"Corp Manager" Dëst sinn aner Manager vun der selwechter Richtung (sëtzen am selwechte Sall) a waarden 11 Sekonnen fir eng Äntwert.
  6. Grupp "Corp Manager"rufft Mataarbechter"Manager 1, Manager 2, Manager 3"gläichzäiteg fir 11 Sekonnen. Keng Äntwert.
  7. Den Uruff vum Manager geet eriwwer. An de Circuit schéckt en Uruff un de Modul "Wiel vun enger Streck aus 1c" Och e Modul fir de Client geschriwwen. Hei gouf den Uruff fir 0 Sekonnen veraarbecht.
  8. De Circuit schéckt en Uruff un de Stëmmmenü "Basis mat zousätzlech Zifferen" De Client huet do 31 Sekonnen gewaart, et gouf keng zousätzlech Uruff.
  9. De Schema schéckt en Uruff un d'Grupp "Sekretären", wou de Client 12 Sekonnen gewaart huet.
  10. An engem Grupp ginn 2 Mataarbechter gläichzäiteg opgeruff "Sekretär 1"An"Sekretär 2"an no 12 Sekonnen äntwert den Employé"Sekretär 2" D'Äntwert op den Uruff gëtt an Elterenuriff duplizéiert. Et stellt sech eraus datt hien an der Grupp geäntwert huet "Sekretär 2", beim Opruff vum Circuit geäntwert"Sekretär 2"an huet den Uruff op der Bausselinn geäntwert mat"Sekretär 2".

Et ass d'Späichere vun Informatioun iwwer all Operatioun an hir Nesting déi et méiglech mécht einfach Berichter ze maachen. E Bericht iwwer de Stëmmmenü hëlleft Iech erauszefannen wéi vill et hëlleft oder behënnert. Konstruéiert e Bericht iwwer Uruff déi Mataarbechter verpasst hunn, andeems Dir berécksiichtegt datt den Uruff ofgefaang gouf an dofir net als verpasst ugesi gëtt, a berécksiichtegt datt et e Gruppruff war, an een aneren huet virdru geäntwert, dat heescht datt den Uruff och net verpasst gouf.

Esou Informatiounsspeicher erlaabt Iech all Grupp getrennt ze huelen an ze bestëmmen wéi effektiv et funktionnéiert, a bauen eng Grafik vun beäntwerten a vermësste Gruppen no Stonn. Dir kënnt och iwwerpréiwen wéi genau d'Verbindung mam verantwortleche Manager ass, andeems Dir d'Transfere analyséiert nodeems Dir mam Manager verbonne sidd.

Dir kënnt och zimmlech ontypesch Studien maachen, zum Beispill, wéi dacks d'Zuelen déi net an der Datebank sinn déi richteg Verlängerung wielen oder wéi eng Prozentsaz vun den ausgaangenen Uriff op en Handy weidergeleet ginn.

Wat am Ende?

E Spezialist ass net erfuerderlech fir de PBX z'erhalen, deen normalsten Administrateur kann et maachen - an der Praxis getest.

Fir Ännerungen, Spezialisten mat sérieux Qualifikatiounen sinn net néideg; Wëssen vun PHP ass genuch, well Moduler si scho geschriwwe fir de SIP Protokoll, a fir d'Schlaang, a fir en Employé ze ruffen, an anerer. Et gëtt eng wrapper Klass fir Asterisk. Fir e Modul z'entwéckelen, kann e Programméierer (a op eng gutt Manéier) fäerdeg Moduler nennen. A Wëssen Asterisk sinn komplett onnéideg wann de Client freet eng Säit mat engem neie Bericht derbäi ze ginn. Awer d'Praxis weist datt obwuel Drëtt-Partei Programméierer sech këmmeren kënnen, fille se sech onsécher ouni Dokumentatioun an normal Ofdeckung vu Kommentaren, sou datt et nach ëmmer Plaz fir Verbesserung ass.

Moduler kënnen:

  • nei Uruffveraarbechtungsfäegkeeten erstellen,
  • füügt nei Blocks un d'Webinterface,
  • vun engem vun den existente Moduler ierwen, Funktiounen nei definéieren an ersetzen, oder einfach eng liicht modifizéiert Kopie sinn,
  • füügt Är Astellungen un d'Astellungsschabloun vun anere Moduler a vill méi.

PBX Astellunge iwwer API. Wéi uewen beschriwwen, sinn all Astellungen an der Datebank gespäichert a gelies an der Zäit vum Uruff, sou kënnt Dir all PBX Astellungen duerch d'API änneren. Wann Dir d'API rufft, gëtt d'Konfiguratioun net nei erstallt an d'Moduler ginn net nei gestart, dofir ass et egal wéi vill Astellungen a Mataarbechter Dir hutt. API Ufroe gi séier ausgefouert a blockéiere sech net.

De PBX späichert all Schlësseloperatioune mat Uruff mat Dauer (waart / Gespréich), Nesting an a PBX-Begrëffer (Employé, Grupp, extern Linn, net Kanal, Nummer). Dëst erlaabt Iech verschidde Berichter fir spezifesch Clienten ze bauen an déi meescht vun der Aarbecht ass eng userfrëndlech Interface ze kreéieren.

D'Zäit wäert soen wat duerno geschitt. Et ginn nach vill Nuancen déi nei gemaach ginn, et sinn nach vill Pläng, awer e Joer ass zënter der Schafung vun der 3. Versioun vergaangen a mir kënne scho soen datt d'Iddi funktionnéiert. Den Haapt Nodeel vun der Versioun 3 ass d'Hardware Ressourcen, awer dëst ass normalerweis wat Dir musst bezuelen fir d'Entwécklung einfach ze maachen.

Source: will.com

Setzt e Commentaire