Çîroka yek projeyek an jî min çawa 7 sal derbas kir ku PBX-yek li ser bingeha Asterisk û Php-yê diafirîne

Bê guman gelek ji we, mîna min, ramanek hebû ku tiştek bêhempa bikin. Di vê gotarê de ez ê pirsgirêk û çareseriyên teknîkî yên ku ez di dema pêşdebirina PBX de rû bi rû bimînim vebêjim. Dibe ku ev yek bibe alîkar ku kesek li ser ramana xwe biryarê bide, û kesek bişopîne riya baş-pêketî, ji ber ku min jî ji ezmûna pêşengan sûd wergirt.

Çîroka yek projeyek an jî min çawa 7 sal derbas kir ku PBX-yek li ser bingeha Asterisk û Php-yê diafirîne

Fikir û pêdiviyên sereke

Û her tişt bi tenê bi hezkirinê dest pê kir Stêrkok (çarçoveya avakirina sepanên ragihandinê), otomasyona têlefonê û saziyan freepbx (navbera malperê ji bo Stêrkok). Ger hewcedariyên pargîdaniyê bêyî taybetmendî bûn û di hundurê kapasîteyan de bûn freepbx - Her tişt baş e. Tevahiya sazkirinê di nav XNUMX demjimêran de pêk hat, pargîdaniyek PBX-ya mîhengkirî, navgînek bikarhêner-heval û perwerdehiyek kurt û heke bixwaze piştgirî wergirt.

Lê karên herî balkêş ne-standard bûn û paşê ew qas ne ecêb bû. Stêrkok dikare gelek tiştan bike, lê ji bo ku pêwendiya webê di rêza xebatê de bimîne, hewce bû ku gelek caran bêtir dem derbas bikin. Ji ber vê yekê hûrguliyek piçûk dikare ji sazkirina mayî ya PBX-ê pir dirêjtir bigire. Û mesele ne ev e ku ji bo nivîsandina navgînek malperê demek dirêj digire, lê berevajî xal di taybetmendiyên mîmarî de ye. freepbx. Nêzîkatî û rêbazên mîmarî freepbx di dema php4 de hate danîn, û di wê gavê de jixwe php5.6 hebû ku li ser wê her tişt hêsan û rehettir bû.

Xala dawîn dialplanên grafîkî yên di forma diagramê de bûn. Dema ku min hewl da ku ji bo tiştek bi vî rengî ava bikim freepbx, Min fêm kir ku ez ê bi girîngî wê ji nû ve binivîsim û ew ê hêsantir be ku tiştek nû ava bikim.

Pêdiviyên sereke ev bûn:

  • sazûmanek hêsan, bi têgihîştî ji rêveberek nû re jî tê gihîştin. Ji ber vê yekê, pargîdan ji hêla me ve hewceyê lênêrîna PBX-ê ne,
  • guherandina hêsan da ku peywir di wextê têr de bêne çareser kirin,
  • hêsankirina yekbûna bi PBX. U freepbx ji bo guhertina mîhengan API tune bû, yanî. Mînakî, hûn nikarin kom an pêşekên deng ji serîlêdanek sêyemîn biafirînin, tenê API bixwe Stêrkok,
  • çavkaniya vekirî - ji bo bernamenûsan ev ji bo guheztinên ji bo xerîdar pir girîng e.

Fikra pêşkeftina zûtir ew bû ku hemî fonksiyon ji modulan di forma tiştan de pêk were. Diviyabû ku hemî tişt xwediyê çînek dêûbavê hevbeş bin, ku tê vê wateyê ku navên hemî fonksiyonên sereke jixwe têne zanîn û ji ber vê yekê jixwe pêkanînên xwerû hene. Nesne dê bihêle ku hûn bi bişkokên rêzê, ku hûn dikarin tê de bibînin, hejmara argumanan di forma rêzikên hevgirtî de bi rengek berbiçav kêm bikin. freepbx Ew bi vekolîna tevahî fonksiyon û fonksiyonên hêlînkirî gengaz bû. Di mijara tiştan de, xweseriya banal dê hemî taybetmendiyan nîşan bide, û bi gelemperî dê jiyanê gelek caran hêsantir bike. Zêdeyî, mîras û ji nû ve pênasekirin jixwe gelek pirsgirêkan bi guhertinan çareser dike.

Tişta din a ku dema ji nû ve xebitandinê hêdî kir û hêja bû ku xwe jê dûr bixin, dubarebûn bû. Ger modulek ku ji bo telefonkirina karmendek berpirsiyar e, wê hingê hemî modulên din ên ku hewce ne ku bangek ji karmendek re bişînin divê wê bikar bînin, û kopiyên xwe neafirînin. Ji ber vê yekê, heke hûn hewce ne ku tiştek biguhezînin, wê hingê hûn neçar in ku tenê li cîhek biguhezînin û lêgerîna "çawa ew çawa dixebite" divê li cîhek were kirin, û li seranserê projeyê negere.

Guhertoya yekem û xeletiyên yekem

Prototîpa yekem di nava salekê de amade bû. Tevahiya PBX, wekî ku hatî plansaz kirin, modular bû, û modul ne tenê dikarin fonksiyonên nû ji bo pêvajoykirina bangan zêde bikin, lê di heman demê de navgîniya webê bixwe jî biguherînin.

Çîroka yek projeyek an jî min çawa 7 sal derbas kir ku PBX-yek li ser bingeha Asterisk û Php-yê diafirîne
Erê, ramana avakirina dialplanek di forma nexşeyek wusa de ne ya min e, lê ew pir rehet e û min heman tişt ji bo Stêrkok.

Çîroka yek projeyek an jî min çawa 7 sal derbas kir ku PBX-yek li ser bingeha Asterisk û Php-yê diafirîne

Bi nivîsandina modulek, bernamesaz berê dikaribûn:

  • fonksiyona xwe ya ji bo pêvajoya bangê biafirîne, ku dikare li ser diagramê, û her weha di menuya hêmanên li milê çepê de were danîn,
  • rûpelên xwe ji bo navgîniya malperê biafirînin û şablonên xwe li rûpelên heyî zêde bikin (heke pêşdebirê rûpelê ji bo vê yekê peyda kiriye),
  • mîhengên xwe li tabloya mîhengên sereke zêde bikin an tabloya mîhengên xwe biafirînin,
  • bernamesaz dikare ji modulek heyî mîras bigire, beşek fonksiyonê biguhezîne û di bin navek nû de tomar bike an modula orîjînal biguhezîne.

Mînakî, bi vî rengî hûn dikarin menuya dengê xwe biafirînin:

......
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__); //Подменить существующий модуль

Yekemîn pêkanînên tevlihev yekem serbilindî û yekem dilşikestî anîn. Ez kêfxweş bûm ku ew xebitî, ku min berê xwe da taybetmendiyên sereke freepbx. Ez kêfxweş bûm ku mirovan ji ramana nexşeyê hez kir. Dîsa jî gelek vebijark hebûn ku pêşkeftinê hêsan bikin, lê tewra di wê demê de hin karan jixwe hêsantir dihatin çêkirin.

API-ya ji bo guheztina mîhengê PBX xemgîniyek bû - encam ne tiştê ku me dixwest bû. Min heman prensîba ku di nav de ye girt freepbx, bi tikandina bişkoka Serlêdan, tevahiya veavakirinê ji nû ve tê çêkirin û modul ji nû ve têne destpêkirin.

Ev wisa xuya dike:

Çîroka yek projeyek an jî min çawa 7 sal derbas kir ku PBX-yek li ser bingeha Asterisk û Php-yê diafirîne
*Dialplan rêgezek (algorîtmayek) e ku pê bangek tê kirin.

Lê digel vê vebijarkê, ne gengaz e ku meriv API-yek normal ji bo guheztina mîhengên PBX binivîsîne. Pêşîn, operasyona sepandina guhertinan Stêrkok pir dirêj û çavkaniyek zirav.
Ya duyemîn, hûn nikarin di heman demê de du fonksiyonan bang bikin, ji ber ku herdu jî dê veavakirinê çêbikin.
Ya sêyemîn, ew hemî mîhengan, tevî yên ku ji hêla rêveber ve hatî çêkirin, bicîh tîne.

Di vê versiyonê de, wekî ku di Askozia, mimkun bû ku veavakirina tenê modulên guhertî werin çêkirin û tenê modulên pêwîst ji nû ve bidin destpêkirin, lê ev hemî nîv tedbîr in. Pêwîst bû ku nêzîkatî were guhertin.

Guhertoya duyemîn. Pozê xwe derxist dûvikê asê

Fikra ji bo çareserkirina pirsgirêkê ne ji nû veavakirina veavakirin û dialplan bû Stêrkok, lê agahdarî li databasê hilînin û dema ku bang dikin rasterast ji databasê bixwînin. Stêrkok Min berê dizanibû ku meriv çawa mîhengan ji databasê bixwîne, tenê nirxê di databasê de biguhezîne û banga din dê li gorî guhartinan were hilanîn, û fonksiyon ji bo xwendina pîvanên dialplanê bêkêmasî bû. REALTIME_HASH.

Di dawiyê de, ne hewce bû ku ji nû ve dest pê bike Stêrkok dema guheztina mîhengan û hemî mîhengan tavilê dest pê kir ku were sepandin Stêrkok.

Çîroka yek projeyek an jî min çawa 7 sal derbas kir ku PBX-yek li ser bingeha Asterisk û Php-yê diafirîne

Guhertinên tenê yên dialplanê zêdekirina hejmarên dirêjkirinê ne û nîşan. Lê ev guhertinên piçûk bûn

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)
...

Hûn dikarin bi karanîna xêzek dialplanê de bi hêsanî lê zêde bikin an biguhezînin kîjan (navbera kontrolê Stêrkok) û ji nû ve bootkirina tevaya dialplanê ne hewce ye.

Vê pirsgirêkê bi veavakirina API-ê re çareser kir. Tewra hûn dikarin rasterast biçin nav databasê û komek nû lê zêde bikin an biguhezînin, mînakî, dema dial-upê di qada "demjimêra dialê" de ji bo komê û banga din dê jixwe dema diyarkirî bidome (Ev ne pêşniyarek e ji bo komê. çalakiyê, ji ber ku hin operasyonên API hewce ne kîjan bang dike).

Yekemîn pêkanînên dijwar dîsa serbilindî û bêhêvîbûna yekem anîn. Ez kêfxweş bûm ku ew xebitî. Database bû girêdanek krîtîk, girêdayîbûna bi dîskê zêde bû, metirsî zêdetir bûn, lê her tişt bi îstîqrar û bê pirsgirêk xebitî. Û ya herî girîng, naha her tiştê ku dikaribû bi navgîniya webê were kirin, dikaribû bi riya API-yê were kirin, û heman rêbaz hatin bikar anîn. Digel vê yekê, pêwendiya malperê ji bişkoja "serîlêdana mîhengan li PBX" xilas bû, ku rêveberan pir caran ji bîr dikirin.

Xemgînî ew bû ku pêşveçûn tevlihevtir bû. Ji ber guhertoya yekem, zimanê PHP di ziman de plansaziyek çêkiriye Stêrkok û ew bi tevahî nayê xwendin, û ziman bixwe jî xuya dike Stêrkok ji bo nivîsandina dialplanek pir primitive e.

Çawa xuya bû:

$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'))

Di guhertoya duyemîn de, dialplan gerdûnî bû, ew hemî vebijarkên pêvajoyê yên mimkun li gorî pîvanan vedihewîne û mezinahiya wê pir zêde bû. Vana hemî dema pêşkeftinê pir hêdî kir, û ramana ku careke din hewce bû ku destwerdana dialplanê bike ez xemgîn kirim.

Guhertoya sêyemîn

Fikra çareserkirina pirsgirêkê ne hilberandin bû Stêrkok dialplan ji php û bikar bînin FastAGI û hemî qaîdeyên pêvajoyê di PHP-ê de bixwe binivîsin. FastAGI Ev rê dide Stêrkok, ji bo pêvajoya bangê, bi soketê ve girêdin. Ji wir fermanan bistînin û encaman bişînin. Ji ber vê yekê, mantiqa dialplanê jixwe li derveyî sînoran e Stêrkok û dikare bi her zimanî were nivîsandin, di rewşa min de bi PHP.

Gelek ceribandin û xeletî hebû. Pirsgirêka sereke ev bû ku jixwe gelek dersan/pelên min hebûn. Nêzîkî 1,5 çirke ji bo afirandina tiştan, destpêkirina wan, û qeydkirina hevûdu bi hev re girt, û ev derengiya her bangê ne tiştek e ku meriv paşguh bike.

Destpêkirin divê tenê carekê çêbibe û ji ber vê yekê lêgerîna çareseriyê bi nivîsandina karûbarek di php-ê de dest pê kir Pthreads. Piştî hefteyek ceribandinê, ev vebijark ji ber tevliheviyên ka ev dirêjkirin çawa dixebite hate rakirin. Piştî mehek ceribandinê, min di heman demê de neçar ma ku bernameya asynchronous di PHP-ê de berdim; Ji min re tiştek hêsan, nas ji her destpêkek PHP-ê re lazim bû, û gelek pêvekên ji bo PHP-ê hevdem in.

Çareserî karûbarê meya pir-mijarî ya di C de bû, ku pê re hatî berhev kirin PHPLIB. Ew hemî pelên php yên ATS-ê bar dike, li benda destpêkirina hemî modulan e, vegerek li hevûdu zêde dike, û gava ku her tişt amade ye, wê cache dike. Dema ku lêpirsîn ji aliyê FastAGI çemek tê afirandin, kopiyek ji cache ya hemî çîn û daneyan tê de tê nûve kirin, û daxwaz ji fonksiyona php re tê şandin.

Bi vê çareseriyê, dema ji şandina bangekê ji bo xizmeta me ji bo fermana yekem Stêrkok ji 1,5s daket 0,05s û vê carê hinekî bi mezinahiya projeyê ve girêdayî ye.

Çîroka yek projeyek an jî min çawa 7 sal derbas kir ku PBX-yek li ser bingeha Asterisk û Php-yê diafirîne

Wekî encamek, dema pêşkeftina dialplanê pir kêm bû, û ez dikarim vê yekê binirxînim ji ber ku min neçar ma ku tevahiya dialplana hemî modulan di PHP-ê de ji nû ve binivîsim. Ya yekem, pêdivî ye ku rêbaz jixwe di php-ê de bêne nivîsandin da ku tiştek ji databasê werbigirin; ew ji bo xuyangkirina di navgîniya malperê de hewce bûn, û ya duyemîn jî, û ya sereke ev e, di dawiyê de gengaz e ku meriv bi rehetî bi rêzikên bi jimar û rêzan re bixebite. bi database plus gelek pêvekên PHP.

Ji bo ku hûn plana dialplanê di pola modulê de bicîh bikin, hûn hewce ne ku fonksiyonê bicîh bikin dialplanDynamicCall û arguman pbxCallRequest dê hêmanek ku pê re têkilî daynin heye Stêrkok.

Çîroka yek projeyek an jî min çawa 7 sal derbas kir ku PBX-yek li ser bingeha Asterisk û Php-yê diafirîne

Wekî din, mimkun bû ku dialplanê debug bike (php xdebug heye û ew ji bo karûbarê me dixebite), hûn dikarin bi dîtina nirxên guhêrbar gav bi gav tevbigerin.

Daneyên bangê

Her analîtîk û rapor daneyên rast berhevkirî hewce dike, û ev bloka PBX jî ji guhertoya yekem heya sêyemîn gelek ceribandin û xeletî derbas kir. Pir caran, daneyên bangê nîşanek e. Yek bang = yek tomar: kê gazî kir, kê bersiv da, çiqasî axivî. Di vebijarkên balkêştir de, nîşanek zêde heye ku destnîşan dike ku di dema bangê de kîjan xebatkarê PBX-ê hatî gazî kirin. Lê ev hemî tenê beşek ji hewcedariyên xwe digire.

Pêdiviyên destpêkê ev bûn:

  • xilas ne bi tenê yê ku PBX gazî, di heman demê de jî kê bersiv da, ji ber astengî hene û ev ê hewce bike ku dema ku bangên analîz bikin, bêne hesibandin,
  • dem berî ku bi karmendek ve girêdayî ye. Li freepbx û hin PBX-yên din, gava ku PBX têlefonê hildide, bang tê hesibandin ku bersiv tê dayîn. Lê ji bo menuya deng hûn jixwe hewce ne ku hûn têlefonê hildin, ji ber vê yekê hemî bang têne bersivandin û dema benda bersivê dibe 0-1 saniye. Ji ber vê yekê, biryar hate girtin ku ne tenê dema berî bersivê, lê dema berî girêdana bi modulên sereke ve were hilanîn (modul bixwe vê alayê destnîşan dike. Niha ew "Karmend", "Xeta Derve" ye).
  • ji bo dialplanek tevlihevtir, dema ku bangek di navbera komên cûda de derbas dibe, pêdivî bû ku meriv bikaribe her hêmanek ji hev cuda vekole.

Vebijarka çêtirîn derket holê ku gava ku modulên PBX li ser bangan agahdariya xwe dişînin û di dawiyê de agahdariya di forma darekê de hilînin.

Wusa dixuye:

Pêşîn, agahdariya gelemperî di derbarê bangê de (wek her kesê din - ne tiştek taybetî).

Çîroka yek projeyek an jî min çawa 7 sal derbas kir ku PBX-yek li ser bingeha Asterisk û Php-yê diafirîne

  1. Li ser xetek derveyî bangek wergirt "Ji bo ceribandinê"di saet 05:55:52 de ji hejmara 89295671458 heya jimareya 89999999999, di dawiyê de ji hêla karmendek ve hate bersivandin"Sekreterê 2» bi hejmara 104. Xerîdar 60 saniye sekinî û 36 saniye peyivî.
  2. Karmend"Sekreterê 2"bang li 112 dike û karmendek bersiv dide"Rêveber 1» piştî 8 çirkeyan. Ew 14 çirkeyan diaxivin.
  3. Xerîdar ji Karmend re tê veguhestin "rêveber1"ku ew 13 saniyeyên din axaftina xwe berdewam dikin

Lê ev serê berfê ye; ji bo her tomar hûn dikarin bi navgîniya PBX-ê dîrokek bangek berfireh bistînin.

Çîroka yek projeyek an jî min çawa 7 sal derbas kir ku PBX-yek li ser bingeha Asterisk û Php-yê diafirîne

Hemî agahdarî wekî hêlînek bangan têne pêşkêş kirin:

  1. Li ser xetek derveyî bangek wergirt "Ji bo ceribandinê» di saet 05:55:52 de ji jimareya 89295671458 heta hejmara 89999999999.
  2. Di demjimêr 05:55:53 de xeta derve bangek ji çerxa hatinê re dişîne "îmtîhan»
  3. Dema ku bangek li gorî plansaziyê dimeşîne, modul "bang manager", ku tê de bang 16 saniye ye. Ev modulek e ku ji bo xerîdar hatî pêşve xistin.
  4. Modul "bang manager"bangek ji xebatkarê ku ji bo hejmarê berpirsiyar e (muwekîlê) re dişîne"Rêveber 1” û 5 çirkeyan li benda bersivê dimîne. Rêvebir bersiv neda.
  5. Modul "bang manager"bangek ji komê re dişîne"rêveberên CORP" Ev rêveberên din ên heman rêgezê ne (di heman odeyê de rûniştin) û 11 hûrdeman li benda bersivê ne.
  6. Group "rêveberên CORP" bang li karmendan dike"Rêveber 1, Rêveber 2, Rêveber 3"hemdem ji bo 11 seconds. Bê bersiv.
  7. Banga gerînendeyê diqede. Û çerxek bangek ji modulê re dişîne "Hilbijartina rêyek ji 1c" Di heman demê de modulek ku ji bo xerîdar hatî nivîsandin. Li vir bang ji bo 0 çirkeyan hate kirin.
  8. Qark bangek ji menuya deng re dişîne "Bi telefona zêde ya bingehîn" Xerîdar 31 saniye li wir sekinî, jimareyek zêde tune.
  9. Plan bangek ji Komê re dişîne "Sekreterên", cihê ku xerîdar 12 çirke li bendê ma.
  10. Di komekê de, 2 karmend di heman demê de têne gazî kirin "Sekreterê 1"And"Sekreterê 2"û piştî 12 çirkeyan karmend bersiv dide"Sekreterê 2" Bersiva bangê di bangên dêûbavan de tê dubare kirin. Derket holê ku di komê de wî bersiv da "Sekreterê 2", dema ku gazî çerxerê kir, bersiv da"Sekreterê 2"û bersiva banga li ser xeta derve bi"Sekreterê 2".

Ew tomarkirina agahdariya li ser her operasyonê û hêlîna wan e ku dê bi hêsanî çêkirina raporan gengaz bike. Raporek li ser menuya deng dê ji we re bibe alîkar ku hûn fêr bibin ka ew çiqas alîkarî an asteng dike. Li ser bangên ku ji hêla karmendan ve hatine windakirin raporek çêbikin, bihesibînin ku bang hate girtin û ji ber vê yekê wekî wenda nayê hesibandin, û bihesibînin ku ew bangek kom bû, û kesek din berê bersiv da, ku tê vê wateyê ku bang jî ji dest neketiye.

Veguheztina agahdariya wusa dê bihêle ku hûn her komê ji hev veqetînin û diyar bikin ka ew çiqas bi bandor dixebite, û bi saetan grafiyek komên bersivdar û windakirî ava bikin. Her weha hûn dikarin bi analîzkirina veguheztinên piştî girêdana bi rêveberê re pêwendiya bi rêvebirê berpirsiyar re çiqas rast rast bikin.

Di heman demê de hûn dikarin lêkolînên pir netîpîkî jî bikin, mînakî, çend caran hejmarên ku ne di databasê de ne dirêjkirina rast dikin an ji sedî çend bangên derketinê ji têlefonek desta re têne şandin.

Di dawiyê de çi ye?

Pisporek ne hewce ye ku PBX biparêze; rêveberê herî asayî dikare wê bike - di pratîkê de ceribandin.

Ji bo guhertinan, pisporên xwedan jêhatîbûnên ciddî ne hewce ne; zanîna PHP-ê bes e, ji ber ku Jixwe ji bo protokola SIP, û ji bo dorê, û ji bo gazîkirina karmendek û yên din modul hatine nivîsandin. Ji bo çîna pêçanê heye Stêrkok. Ji bo pêşdebirina modulek, bernamenûsek dikare (û bi awayek baş divê) modulên amade gazî bike. Û zanîn Stêrkok heke xerîdar bixwaze rûpelek bi hin raporek nû zêde bike bi tevahî ne hewce ne. Lê pratîk destnîşan dike ku her çend bernamenûsên partiya sêyemîn dikarin li ber xwe bidin jî, ew bêyî belgekirin û vegirtina normal ya şîroveyan bêbawer hîs dikin, ji ber vê yekê hîn jî cîh ji bo başbûnê heye.

Modul dikarin:

  • kapasîteyên nû yên pêvajoya bangê biafirînin,
  • blokên nû li navrûya malperê zêde bikin,
  • ji yek ji modulên heyî mîras bistînin, fonksiyonan ji nû ve pênase bikin û li şûna wê biguhezînin, an jî bi tenê kopiyek piçûktir be,
  • mîhengên xwe li şablonên mîhengên modulên din û hêj bêtir zêde bikin.

Mîhengên PBX bi API-ê. Wekî ku li jor hatî destnîşan kirin, hemî mîheng di databasê de têne hilanîn û di dema bangê de têne xwendin, ji ber vê yekê hûn dikarin hemî mîhengên PBX-ê bi navgîniya API-ê biguhezînin. Dema ku gazî API-yê tê kirin, veavakirin ji nû ve nayê çêkirin û modul ji nû ve nayên destpêkirin, ji ber vê yekê, ne girîng e ka çend mîheng û xebatkarên we hene. Daxwazên API-ê zû têne darve kirin û hevûdu asteng nakin.

PBX hemî operasyonên sereke bi bangên bi demdirêjî (li benda/axaftin), hêlîn û bi şertên PBX-ê (karmend, kom, xeta derveyî, ne kanal, hejmar) vedigire. Ev dihêle hûn ji bo xerîdarên taybetî raporên cihêreng ava bikin û piraniya kar ev e ku meriv pêwendiyek bikarhêner-heval biafirîne.

Wext dê diyar bike ka dê paşê çi bibe. Hîn gelek nuwaze hene ku divê ji nû ve bên çêkirin, hîn jî gelek plan hene, lê salek di ser afirandina guhertoya 3-an re derbas bû û em jixwe dikarin bibêjin ku ev fikir dixebite. Kêmasiya sereke ya guhertoya 3-ê çavkaniyên hardware ye, lê bi gelemperî tiştê ku hûn ji bo hêsankirina pêşkeftinê lê bidin ev e.

Source: www.habr.com

Add a comment