Ang istorya sa usa ka proyekto o kung giunsa nako paggugol ang 7 ka tuig sa paghimo og PBX base sa Asterisk ug Php

Sigurado nga daghan kaninyo, sama kanako, adunay ideya sa pagbuhat sa usa ka butang nga talagsaon. Niini nga artikulo akong ihulagway ang mga teknikal nga problema ug mga solusyon nga kinahanglan nakong atubangon sa pagpalambo sa PBX. Tingali kini makatabang sa usa ka tawo sa pagdesisyon sa ilang kaugalingon nga ideya, ug usa ka tawo sa pagsunod sa maayo nga dalan, tungod kay ako usab nakabenepisyo gikan sa kasinatian sa mga pioneer.

Ang istorya sa usa ka proyekto o kung giunsa nako paggugol ang 7 ka tuig sa paghimo og PBX base sa Asterisk ug Php

Ideya ug mahinungdanong mga kinahanglanon

Ug nagsugod ang tanan sa gugma Asterisk (framework para sa pagtukod og mga aplikasyon sa komunikasyon), automation sa telephony ug mga instalasyon LibrePBX (web interface alang sa Asterisk). Kung ang mga panginahanglan sa kompanya walay mga detalye ug nahulog sa mga kapabilidad LibrePBX - maayo ang tanan. Ang tibuok nga pag-instalar nahitabo sa sulod sa XNUMX ka oras, ang kompanya nakadawat sa usa ka configured PBX, usa ka user-friendly interface ug mubo nga pagbansay plus suporta kon gusto.

Apan ang labing makaiikag nga mga buluhaton dili standard ug unya kini dili kaayo talagsaon. Asterisk daghan ang mahimo, apan aron mapadayon ang pag-andar sa web interface, kinahanglan nga mogugol ug daghang beses nga daghang oras. Busa ang usa ka gamay nga detalye mahimong mas dugay kaysa pag-instalar sa nahabilin nga PBX. Ug ang punto dili nga kini nagkinahanglan og usa ka taas nga panahon sa pagsulat sa usa ka web interface, apan hinoon ang punto anaa sa mga bahin sa arkitektura LibrePBX. Mga pamaagi ug pamaagi sa arkitektura LibrePBX gibutang sa panahon sa php4, ug nianang higayuna aduna nay php5.6 diin ang tanan mahimong mas simple ug mas sayon.

Ang katapusan nga straw mao ang graphical dialplans sa porma sa usa ka diagram. Sa diha nga ako misulay sa pagtukod sa usa ka butang nga sama niini alang sa LibrePBX, nakaamgo ko nga kinahanglan nako nga isulat pag-usab kini ug mas sayon ​​ang paghimo og bag-o.

Ang nag-unang kinahanglanon mao ang:

  • yano nga setup, intuitively accessible bisan sa usa ka novice administrator. Busa, ang mga kompanya wala magkinahanglan og PBX maintenance sa among kiliran,
  • dali nga pagbag-o aron ang mga buluhaton masulbad sa igong oras,
  • kasayon ​​sa paghiusa sa PBX. U LibrePBX walay API alang sa pag-usab sa mga setting, i.e. Dili ka, pananglitan, makahimo og mga grupo o voice menu gikan sa usa ka third-party nga aplikasyon, ang API lang mismo Asterisk,
  • opensource - alang sa mga programmer kini hinungdanon kaayo alang sa mga pagbag-o alang sa kliyente.

Ang ideya sa mas paspas nga pag-uswag mao ang pagbaton sa tanan nga mga gamit nga naglangkob sa mga module sa porma sa mga butang. Ang tanan nga mga butang kinahanglan adunay usa ka sagad nga klase sa ginikanan, nga nagpasabut nga ang mga ngalan sa tanan nga mga nag-unang gimbuhaton nahibal-an na ug busa adunay mga default nga pagpatuman. Ang mga butang magtugot kanimo sa mahinuklugong pagpakunhod sa gidaghanon sa mga argumento sa porma sa mga associative arrays nga adunay mga string key, nga imong mahibal-an sa LibrePBX Posible kini pinaagi sa pagsusi sa tibuok nga function ug nested functions. Sa kaso sa mga butang, ang banal nga autocompletion magpakita sa tanan nga mga kabtangan, ug sa kinatibuk-an makapasimple sa kinabuhi sa daghang mga higayon. Dugang pa, ang kabilin ug pag-usab sa kahulugan nakasulbad na sa daghang mga problema sa mga pagbag-o.

Ang sunod nga butang nga nagpahinay sa oras sa rework ug angay likayan mao ang pagdoble. Kung adunay usa ka module nga responsable sa pag-dial sa usa ka empleyado, nan ang tanan nga ubang mga module nga kinahanglan magpadala usa ka tawag sa usa ka empleyado kinahanglan nga mogamit niini, ug dili maghimo sa ilang kaugalingon nga mga kopya. Mao nga, kung kinahanglan nimo nga usbon ang usa ka butang, nan kinahanglan ka nga magbag-o lamang sa usa ka lugar ug ang pagpangita alang sa "kung giunsa kini molihok" kinahanglan himuon sa usa ka lugar, ug dili pangitaon sa tibuuk nga proyekto.

Unang bersyon ug unang mga sayop

Ang unang prototype andam na sulod sa usa ka tuig. Ang tibuuk nga PBX, ingon sa giplano, modular, ug ang mga module dili lamang makadugang bag-ong kagamitan alang sa pagproseso sa mga tawag, apan usbon usab ang interface sa web mismo.

Ang istorya sa usa ka proyekto o kung giunsa nako paggugol ang 7 ka tuig sa paghimo og PBX base sa Asterisk ug Php
Oo, ang ideya sa paghimo sa usa ka dialplan sa porma sa ingon nga laraw dili ako, apan kini sayon ​​​​kaayo ug gibuhat ko ang parehas alang sa Asterisk.

Ang istorya sa usa ka proyekto o kung giunsa nako paggugol ang 7 ka tuig sa paghimo og PBX base sa Asterisk ug Php

Pinaagi sa pagsulat og module, ang mga programmer mahimo nang:

  • paghimo sa imong kaugalingon nga pag-andar alang sa pagproseso sa tawag, nga mahimong ibutang sa diagram, ingon man sa menu sa mga elemento sa wala,
  • paghimo sa imong kaugalingon nga mga panid alang sa web interface ug idugang ang imong mga templates sa kasamtangan nga mga panid (kung ang developer sa panid naghatag niini),
  • idugang ang imong mga setting sa main settings tab o paghimo og imong kaugalingong settings tab,
  • ang programmer mahimong makapanunod gikan sa usa ka kasamtangan nga module, usbon ang bahin sa gamit ug irehistro kini ubos sa bag-ong ngalan o pulihan ang orihinal nga module.

Pananglitan, mao kini kung unsaon nimo paghimo ang imong kaugalingong voice menu:

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

Ang unang komplikado nga mga pagpatuman nagdala sa unang garbo ug sa unang mga kasagmuyo. Nalipay ako nga kini nagtrabaho, nga ako nakahimo na sa paghimo sa mga nag-unang bahin LibrePBX. Nalipay ko nga ang mga tawo ganahan sa ideya sa laraw. Adunay daghan pa nga mga kapilian sa pagpayano sa kalamboan, apan bisan niadtong panahona ang pipila sa mga buluhaton gipasayon ​​na.

Ang API alang sa pagbag-o sa PBX configuration usa ka kasagmuyo - ang resulta dili gyud ang among gusto. Gikuha nako ang parehas nga prinsipyo sama sa sa LibrePBX, pinaagi sa pag-klik sa Apply button, ang tibuok nga configuration gihimo pag-usab ug ang mga modules gi-restart.

Murag mao ni:

Ang istorya sa usa ka proyekto o kung giunsa nako paggugol ang 7 ka tuig sa paghimo og PBX base sa Asterisk ug Php
*Ang dialplan usa ka lagda (algorithm) diin ang usa ka tawag giproseso.

Apan sa kini nga kapilian, imposible nga magsulat usa ka normal nga API alang sa pagbag-o sa mga setting sa PBX. Una, ang operasyon sa pagpadapat sa mga pagbag-o sa Asterisk taas kaayo ug kusog sa kahinguhaan.
Ikaduha, dili ka makatawag og duha ka function sa samang higayon, tungod kay ang duha maghimo sa configuration.
Ikatulo, gipadapat niini ang tanan nga mga setting, lakip ang gihimo sa tagdumala.

Niini nga bersyon, sama sa Askozia, posible nga makamugna ang pag-configure sa nabag-o nga mga module ug i-restart ang kinahanglan nga mga module, apan kini tanan katunga nga mga lakang. Kinahanglan nga usbon ang pamaagi.

Ikaduha nga bersyon. Ilong gibira ang ikog giugbok

Ang ideya sa pagsulbad sa problema dili ang paghimo pag-usab sa configuration ug dialplan alang sa Asterisk, apan i-save ang impormasyon sa database ug basaha gikan sa database direkta samtang pagproseso sa tawag. Asterisk Nahibal-an ko na kung unsaon pagbasa ang mga pag-configure gikan sa database, usba lang ang kantidad sa database ug ang sunod nga tawag maproseso nga gikonsiderar ang mga pagbag-o, ug ang function perpekto alang sa pagbasa sa mga parameter sa dialplan REALTIME_HASH.

Sa katapusan, dili na kinahanglan nga i-restart pa Asterisk sa diha nga ang pagbag-o sa mga setting ug ang tanan nga mga setting nagsugod sa paggamit dayon sa Asterisk.

Ang istorya sa usa ka proyekto o kung giunsa nako paggugol ang 7 ka tuig sa paghimo og PBX base sa Asterisk ug Php

Ang mga pagbag-o ra sa dialplan mao ang pagdugang sa mga numero sa extension ug Mga pahibalo. Apan kini gamay nga pagbag-o sa lugar

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

Dali ka makadugang o makausab og linya sa dialplan gamit nga (kontrol nga interface Asterisk) ug walay reboot sa tibuok dialplan ang gikinahanglan.

Nasulbad niini ang problema sa configuration API. Mahimo ka nga direkta nga moadto sa database ug magdugang usa ka bag-ong grupo o pagbag-o, pananglitan, ang oras sa dial-up sa field nga "dialtime" alang sa grupo ug ang sunod nga tawag molungtad na sa piho nga oras (Dili kini rekomendasyon para sa aksyon, tungod kay gikinahanglan ang pipila ka mga operasyon sa API nga mga tawag).

Ang unang lisud nga pagpatuman na usab nagdala sa unang garbo ug kasagmuyo. Nalipay ko nga kini nagtrabaho. Ang database nahimong usa ka kritikal nga link, ang pagsalig sa disk misaka, adunay daghang mga risgo, apan ang tanan nagtrabaho nga lig-on ug walay mga problema. Ug labaw sa tanan, karon ang tanan nga mahimo pinaagi sa web interface mahimo pinaagi sa API, ug ang parehas nga mga pamaagi gigamit. Dugang pa, gitangtang sa web interface ang buton nga "i-apply ang mga setting sa PBX", nga kanunay nakalimtan sa mga administrador.

Ang kasagmuyo mao nga ang kalamboan nahimong mas komplikado. Sukad sa unang bersyon, ang PHP nga pinulongan nakamugna og dialplan sa pinulongan Asterisk ug kini tan-awon nga hingpit nga dili mabasa, ug ang pinulongan mismo Asterisk alang sa pagsulat sa usa ka dialplan kini hilabihan ka primitive.

Unsa ang hitsura niini:

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

Sa ikaduha nga bersyon, ang dialplan nahimong unibersal, gilakip niini ang tanan nga posible nga mga opsyon sa pagproseso depende sa mga parameter ug ang gidak-on niini miuswag pag-ayo. Kining tanan nakapahinay pag-ayo sa panahon sa pag-uswag, ug ang paghunahuna nga sa makausa pa kinahanglan nga manghilabot sa dialplan nakapaguol kanako.

Ikatulo nga bersyon

Ang ideya sa pagsulbad sa problema dili sa pagmugna Asterisk dialplan gikan sa php ug gamita FastAGI ug isulat ang tanang mga lagda sa pagproseso sa PHP mismo. FastAGI kini nagtugot Asterisk, aron maproseso ang tawag, kumonekta sa socket. Dawata ang mga sugo gikan didto ug ipadala ang mga resulta. Busa, ang lohika sa dialplan anaa na sa gawas sa mga utlanan Asterisk ug mahimong isulat sa bisan unsang pinulongan, sa akong kaso sa PHP.

Adunay daghang pagsulay ug sayup. Ang nag-unang problema mao nga ako adunay daghang mga klase / file. Nagkinahanglan kini og mga 1,5 segundos sa paghimo og mga butang, pagsugod niini, ug pagparehistro sa usag usa, ug kini nga paglangan matag tawag dili usa ka butang nga mahimong ibalewala.

Kausa ra unta mahitabo ang inisyal ug busa ang pagpangita og solusyon nagsugod sa pagsulat og serbisyo sa php gamit Mga Pthread. Pagkahuman sa usa ka semana nga pag-eksperimento, kini nga kapilian gi-istante tungod sa mga kalisud kung giunsa kini nga extension molihok. Pagkahuman sa usa ka bulan nga pagsulay, kinahanglan usab nako nga biyaan ang asynchronous nga programming sa PHP; Kinahanglan nako ang usa ka yano, pamilyar sa bisan kinsa nga nagsugod sa PHP, ug daghang mga extension para sa PHP ang magkadungan.

Ang solusyon mao ang among kaugalingon nga multi-threaded nga serbisyo sa C, nga giipon PHPLIB. Nag-load kini sa tanan nga mga file sa ATS php, naghulat nga magsugod ang tanan nga mga module, magdugang usa ka callback sa usag usa, ug kung andam na ang tanan, itago kini. Sa pagpangutana ni FastAGI ang usa ka sapa gihimo, usa ka kopya gikan sa cache sa tanan nga mga klase ug datos ang gihimo niini, ug ang hangyo gipasa sa php function.

Uban niini nga solusyon, ang oras gikan sa pagpadala sa usa ka tawag sa among serbisyo hangtod sa una nga mando Asterisk mikunhod gikan sa 1,5s ngadto sa 0,05s ug kini nga panahon nagdepende gamay sa gidak-on sa proyekto.

Ang istorya sa usa ka proyekto o kung giunsa nako paggugol ang 7 ka tuig sa paghimo og PBX base sa Asterisk ug Php

Ingon usa ka sangputanan, ang oras alang sa pag-uswag sa dialplan giminusan pag-ayo, ug mapasalamatan ko kini tungod kay kinahanglan nako nga isulat pag-usab ang tibuuk nga dialplan sa tanan nga mga module sa PHP. Una, ang mga pamaagi kinahanglan nga isulat sa php aron makakuha usa ka butang gikan sa database; gikinahanglan sila alang sa pagpakita sa web interface, ug ikaduha, ug kini ang panguna nga butang, sa katapusan posible nga dali nga magtrabaho sa mga kuldas nga adunay mga numero ug arrays. nga adunay database ug daghang mga extension sa PHP.

Aron maproseso ang dialplan sa klase sa module kinahanglan nimo nga ipatuman ang function dialplanDynamicCall ug argumento pbxCallRequest maglangkob sa usa ka butang nga makig-uban Asterisk.

Ang istorya sa usa ka proyekto o kung giunsa nako paggugol ang 7 ka tuig sa paghimo og PBX base sa Asterisk ug Php

Dugang pa, nahimo nga posible nga i-debug ang dialplan (ang php adunay xdebug ug kini molihok alang sa among serbisyo), mahimo ka nga molihok sa lakang pinaagi sa pagtan-aw sa mga kantidad sa mga variable.

Tawag sa datos

Ang bisan unsang pag-analisa ug mga taho nanginahanglan husto nga nakolekta nga datos, ug kini nga block sa PBX miagi usab sa daghang pagsulay ug sayup gikan sa una hangtod sa ikatulo nga bersyon. Kasagaran, ang data sa pagtawag usa ka timaan. Usa ka tawag = usa ka pagrekord: kinsa mitawag, kinsa mitubag, unsa ka dugay sila nakigsulti. Sa mas makapaikag nga mga kapilian, adunay usa ka dugang nga timaan nga nagpakita kung kinsa nga empleyado sa PBX ang gitawag sa panahon sa pagtawag. Apan kining tanan naglangkob lamang sa bahin sa mga panginahanglan.

Ang nag-unang mga kinahanglanon mao ang:

  • luwasa dili lang kung kinsa ang gitawag sa PBX, apan kung kinsa usab ang mitubag, tungod kay adunay mga interception ug kini kinahanglan nga tagdon kung mag-analisar sa mga tawag,
  • oras sa wala pa makonektar sa usa ka empleyado. Sa LibrePBX ug uban pang mga PBX, ang tawag gikonsiderar nga tubag sa diha nga ang PBX mokuha sa telepono. Apan alang sa menu sa tingog kinahanglan nimo nga kuhaon ang telepono, aron ang tanan nga mga tawag matubag ug ang oras sa paghulat alang sa usa ka tubag mahimong 0-1 segundo. Busa, nakahukom nga i-save dili lamang ang oras sa wala pa ang tubag, apan ang oras sa wala pa magkonektar sa mga yawe nga mga module (ang module mismo ang nagtakda niini nga bandila. Sa pagkakaron kini "Empleyado", "External nga linya"),
  • alang sa usa ka mas komplikado nga dialplan, sa diha nga ang usa ka tawag mobiyahe tali sa lain-laing mga grupo, kini kinahanglan nga makahimo sa pagsusi sa matag elemento gilain.

Ang labing kaayo nga kapilian nahimo nga kung ang mga module sa PBX nagpadala kasayuran bahin sa ilang kaugalingon sa mga tawag ug sa katapusan i-save ang kasayuran sa porma sa usa ka kahoy.

Ingon kini:

Una, kinatibuk-ang impormasyon bahin sa tawag (sama sa uban - walay espesyal).

Ang istorya sa usa ka proyekto o kung giunsa nako paggugol ang 7 ka tuig sa paghimo og PBX base sa Asterisk ug Php

  1. Nakadawat ug tawag sa gawas nga linya "Alang sa pagsulay"sa 05:55:52 gikan sa numero 89295671458 hangtod sa numero 89999999999, sa katapusan gitubag kini sa usa ka empleyado"Sekretaryo2»nga adunay numero 104. Ang kliyente naghulat og 60 segundos ug misulti sulod sa 36 segundos.
  2. empleyado"Sekretaryo2"nagtawag sa 112 ug ang empleyado mitubag"Tagdumala1» human sa 8 segundos. Nag-istoryahanay sila sulod sa 14 segundos.
  3. Ang Kliyente gibalhin sa Empleyado "manedyer1" diin nagpadayon sila sa pagsulti sulod sa laing 13 ka segundo

Apan kini ang tumoy sa iceberg; alang sa matag rekord makakuha ka usa ka detalyado nga kasaysayan sa tawag pinaagi sa PBX.

Ang istorya sa usa ka proyekto o kung giunsa nako paggugol ang 7 ka tuig sa paghimo og PBX base sa Asterisk ug Php

Ang tanan nga impormasyon gipresentar isip usa ka salag sa mga tawag:

  1. Nakadawat ug tawag sa gawas nga linya "Alang sa pagsulay» sa 05:55:52 gikan sa numero 89295671458 ngadto sa numero 89999999999.
  2. Sa 05:55:53 ang gawas nga linya nagpadala usa ka tawag sa umaabot nga sirkito "pagsulay»
  3. Kung giproseso ang usa ka tawag sumala sa laraw, ang module "tawag sa manager", diin ang tawag 16 segundos. Kini usa ka module nga gihimo alang sa kliyente.
  4. Module"tawag sa manager"Nagpadala ug tawag sa empleyado nga responsable sa numero (kliyente)"Tagdumala1” ug maghulat 5 segundos alang sa tubag. Wala motubag ang manager.
  5. Module"tawag sa manager"nagpadala ug tawag sa grupo"Mga manedyer sa CORP" Kini ang ubang mga manedyer sa parehas nga direksyon (naglingkod sa parehas nga kwarto) ug naghulat 11 segundos alang sa tubag.
  6. Grupo "Mga manedyer sa CORP"nagtawag sa mga empleyado"Tagdumala1, Tagdumala2, Tagdumala3"dungan sa 11 segundos. Walay tubag.
  7. Natapos ang tawag sa manedyer. Ug ang sirkito nagpadala usa ka tawag sa module "Pagpili og ruta gikan sa 1c" Usab usa ka module nga gisulat alang sa kliyente. Dinhi ang tawag giproseso sulod sa 0 segundos.
  8. Ang sirkito nagpadala ug tawag sa voice menu "Basic nga adunay dugang nga pag-dial" Ang kliyente naghulat didto sulod sa 31 segundos, wala'y dugang nga pag-dial.
  9. Ang laraw nagpadala usa ka tawag sa Grupo "Mga sekretaryo", diin ang kliyente naghulat 12 segundos.
  10. Sa usa ka grupo, 2 ka empleyado ang gitawag sa samang higayon "Sekretaryo1"Ug"Sekretaryo2"ug pagkahuman sa 12 segundos ang empleyado mitubag"Sekretaryo2" Ang tubag sa tawag gi-duplicate sa mga tawag sa ginikanan. Nigawas nga sa grupo iyang gitubag “Sekretaryo2", sa diha nga ang pagtawag sa sirkito mitubag "Sekretaryo2"ug gitubag ang tawag sa gawas nga linya gamit ang"Sekretaryo2".

Kini mao ang pagtipig sa impormasyon mahitungod sa matag operasyon ug sa ilang mga salag nga makahimo sa paghimo sa yano nga mga taho. Ang usa ka taho sa voice menu makatabang kanimo nga mahibal-an kung unsa ka dako ang natabang o gibabagan niini. Paghimo og usa ka taho sa mga tawag nga wala madawat sa mga empleyado, nga gikonsiderar nga ang tawag na-intercept ug busa wala gikonsiderar nga wala, ug gikonsiderar nga kini usa ka tawag sa grupo, ug adunay lain nga mitubag sa sayo pa, nga nagpasabut nga ang tawag wala usab gimingaw.

Ang ingon nga pagtipig sa kasayuran magtugot kanimo sa pagkuha sa matag grupo nga gilain ug mahibal-an kung unsa kini ka epektibo, ug maghimo usa ka graph sa gitubag ug wala nga mga grupo matag oras. Mahimo usab nimong susihon kung unsa ka tukma ang koneksyon sa responsable nga manedyer pinaagi sa pag-analisar sa mga pagbalhin pagkahuman sa pagkonektar sa manager.

Mahimo ka usab nga magpahigayon og medyo dili tipikal nga mga pagtuon, pananglitan, kung unsa ka sagad ang mga numero nga wala sa database mag-dial sa husto nga extension o pila nga porsyento sa mga outgoing nga tawag ang gipasa sa usa ka mobile phone.

Unsa man ang sa katapusan?

Ang usa ka espesyalista wala kinahanglana sa pagpadayon sa PBX; ang labing ordinaryo nga administrador makahimo niini - gisulayan sa praktis.

Alang sa mga pagbag-o, ang mga espesyalista nga adunay seryoso nga mga kwalipikasyon dili kinahanglan; ang kahibalo sa PHP igo na, tungod kay Ang mga module gisulat na alang sa SIP protocol, ug alang sa pila, ug alang sa pagtawag sa usa ka empleyado, ug uban pa. Adunay usa ka klase sa wrapper alang sa Asterisk. Aron mapalambo ang usa ka module, ang usa ka programmer mahimo (ug sa usa ka maayo nga paagi kinahanglan) tawagan ang andam nga mga module. Ug kahibalo Asterisk hingpit nga wala kinahanglana kung ang kliyente mohangyo nga magdugang usa ka panid nga adunay bag-ong taho. Apan gipakita sa praktis nga bisan kung makasagubang ang mga programmer sa ikatulo nga partido, gibati nila nga wala’y kasegurohan nga wala’y dokumentasyon ug normal nga pagsakop sa mga komento, mao nga adunay lugar pa alang sa pag-uswag.

Ang mga module mahimong:

  • paghimo og bag-ong mga kapabilidad sa pagproseso sa tawag,
  • pagdugang bag-ong mga bloke sa web interface,
  • makapanunod gikan sa bisan hain sa naa na nga mga modulo, i-redefine ang mga function ug pulihan kini, o mahimong gamay nga giusab nga kopya,
  • idugang ang imong mga setting sa template sa mga setting sa ubang mga module ug daghan pa.

Mga setting sa PBX pinaagi sa API. Sama sa gihulagway sa ibabaw, ang tanan nga mga setting gitipigan sa database ug gibasa sa panahon sa tawag, aron imong mabag-o ang tanan nga mga setting sa PBX pinaagi sa API. Kung nagtawag sa API, ang pagsumpo wala gi-recreate ug ang mga module wala gi-restart, busa, dili igsapayan kung pila ang mga setting ug empleyado nga naa kanimo. Ang mga hangyo sa API dali nga gipatuman ug dili makababag sa usag usa.

Gitipigan sa PBX ang tanan nga hinungdanon nga operasyon nga adunay mga tawag nga adunay gidugayon (paghulat / panag-istoryahanay), pagpugad ug sa mga termino sa PBX (empleyado, grupo, linya sa gawas, dili channel, numero). Gitugotan ka niini nga maghimo lainlaing mga taho alang sa piho nga mga kliyente ug kadaghanan sa trabaho mao ang paghimo usa ka interface nga mahigalaon sa user.

Ang panahon maoy magtug-an kon unsay sunod nga mahitabo. Adunay daghan pa nga mga nuances nga kinahanglan nga buhaton pag-usab, adunay daghan pa nga mga plano, apan usa ka tuig na ang milabay sukad sa paghimo sa ika-3 nga bersyon ug kita makaingon na nga ang ideya nagtrabaho. Ang nag-unang disbentaha sa bersyon 3 mao ang mga kahinguhaan sa hardware, apan kasagaran kini ang kinahanglan nimong bayran alang sa kadali sa pag-uswag.

Source: www.habr.com

Idugang sa usa ka comment