Ukuqonda iFreePBX kunye nokuyidibanisa neBitrix24 kunye nokunye

Bitrix24 yindibaniselwano enkulu edibanisa iCRM, ukuhamba komsebenzi, ukubalwa kwemali kunye nezinye izinto ezininzi abaphathi abazithanda ngokwenene kwaye abasebenzi be-IT abayithandi ngokwenene. Le portal isetyenziswa ziinkampani ezininzi ezincinci neziphakathi, kubandakanywa iikliniki ezincinci, abavelisi kunye neesaluni zobuhle. Umsebenzi oyintloko wokuba abaphathi "bathande" kukudityaniswa komnxeba kunye neCRM, xa nayiphi na ifowuni irekhodwa ngokukhawuleza kwi-CRM, amakhadi omxhasi ayenziwa, xa engena, ulwazi malunga nomxhasi luboniswa kwaye unokubona ngokukhawuleza ukuba ungubani, yintoni na. unokuthengisa kwaye unetyala elingakanani. Kodwa umnxeba ovela kwi-Bitrix24 kunye nokudityaniswa kwayo ne-CRM kubiza imali, ngamanye amaxesha kakhulu. Kwinqaku ndiza kukuxelela amava okudibanisa kunye nezixhobo ezivulekileyo kunye ne-IP PBX eyaziwayo MahalaPBX, kwaye kwakhona uqwalasele ingqiqo yomsebenzi wamacandelo ahlukeneyo

Ndisebenza njenge-outsourcer kwinkampani ethengisa kwaye iqwalasele, idibanisa i-IP telephony. Xa ndabuzwa ukuba sinokunikela ngantoni kule nkampani kwaye le nkampani idibanise i-Bitrix24 kunye nee-PBX abanazo abathengi, kunye nee-PBX ezibonakalayo kwiinkampani ezahlukeneyo ze-VDS, ndaya kuGoogle. Kwaye ngokuqinisekileyo wandinika ikhonkco inqaku kuhabr, apho kukho inkcazo, kunye ne-github, kwaye yonke into ibonakala isebenza. Kodwa xa uzama ukusebenzisa esi sisombululo, kwavela ukuba i-Bitrix24 ayisafani nangaphambili, kwaye kuninzi ekufuneka kwenziwe kwakhona. Ukongeza, i-FreePBX ayiyona asterisk engenanto kuwe, apha kufuneka ucinge malunga nendlela yokudibanisa lula ukusetyenziswa kunye ne-hardcore dialplan kwiifayile zoqwalaselo.

Sifunda ingqiqo yomsebenzi

Ke kubaqalayo, kufuneka isebenze njani yonke. Xa ifowuni ifunyenwe ngaphandle kwi-PBX (i-SIP MEME isiganeko esivela kumnikezeli), ukuqhutyelwa kwe-dialplan (isicwangciso sokudayela, i-dialplan) iqala - imigaqo yento kunye nendlela yokwenza umnxeba. Ukususela kwipakethi yokuqala, unokufumana ulwazi oluninzi, olunokuthi lusetyenziswe kwimigaqo. Isixhobo esihle kakhulu sokufunda i-internals ye-SIP yi-analyzer sngrep (unxibelelwano) efakwe ngokulula kunikezelo oludumileyo ngokufaka i-apt/yum ukufaka nokunye okunjalo, kodwa inokwakhiwa ukusuka kumthombo. Makhe sijonge kwi-call log kwi-sngrep

Ukuqonda iFreePBX kunye nokuyidibanisa neBitrix24 kunye nokunye

Kwifom eyenziwe lula, i-dialplan ijongene kuphela nepakethi yokuqala, ngamanye amaxesha kwakhona ngexesha lencoko, iifowuni zidluliswa, ukucofa amaqhosha (i-DTMF), izinto ezahlukeneyo ezinomdla ezifana ne-FollowMe, i-RingGroup, i-IVR kunye nabanye.

Yintoni engaphakathi kwiPhekhi yokumema

Ukuqonda iFreePBX kunye nokuyidibanisa neBitrix24 kunye nokunye

Ngokwenyani, uninzi lweeplani ezilula zisebenza kunye nemimandla emibini yokuqala, kwaye yonke ingqiqo ijikeleza i-DID kunye ne-CallerID. YENZA - apho sibiza khona, i-CallerID - ngubani ofowunayo.

Kodwa emva kwayo yonke loo nto, sinenkampani kwaye akukho fowuni enye - oku kuthetha ukuba i-PBX inokwenzeka ukuba inamaqela omnxeba (ngaxeshanye / ukukhala okulandelelanayo kwezixhobo ezininzi) kwiinombolo zedolophu (iQela leRing), i-IVR (Molo, ubize ... Cofa ... enye ye ...), Ukuphendula oomatshini (Amabinzana), Iimeko zeXesha, Ukudlulisela kwamanye amanani okanye kwiseli (FollowMe, Phambili). Oku kuthetha ukuba kunzima kakhulu ukumisela ngokucacileyo ukuba ngubani oza kufumana umnxeba kwaye ngubani oya kuba nencoko naye xa umnxeba ufika. Nanku umzekelo wesiqalo somnxeba oqhelekileyo kwi-PBX yabathengi bethu

Ukuqonda iFreePBX kunye nokuyidibanisa neBitrix24 kunye nokunye

Emva kokuba ifowuni ingene ngempumelelo kwi-PBX, ihamba nge-diaplan "kwimixholo" eyahlukeneyo. Umxholo ngokwembono ye-Asterisk liqela elinenombolo lemiyalelo, nganye inesihluzo ngenombolo edayelweyo (ibizwa ngokuba yi-exten, yocingo lwangaphandle kwinqanaba lokuqala exten=DID). Imiyalelo kumgca we-diaplan ingaba nantoni na - imisebenzi yangaphakathi (umzekelo, biza umrhumeli wangaphakathi - Dial(), beka ifowuni phantsi - Hangup()), abasebenzi abanemiqathango (IF, ELSE, ExecIF kunye nokunye), utshintsho ukuya kweminye imithetho yalo mxholo (Goto, GotoIF), ukutshintshela kweminye imixholo ngendlela yobizo lomsebenzi (Gosub, Macro). Umyalelo owahlukileyo include имя_контекста, eyongeza imiyalelo ukusuka komnye umxholo ukuya ekupheleni komxholo wangoku. Imiyalelo ebandakanyiweyo ngokuquka isoloko iphunyezwa после imiyalelo yomxholo wangoku.

Yonke ingqiqo ye-FreePBX yakhelwe ekufakweni kweemeko ezahlukeneyo komnye nomnye ngokubandakanya kunye nokufowuna ngeGosub, Macro kunye nabaPhathi be-Handler. Cinga ngomxholo weefowuni ze-FreePBX ezingenayo

Ukuqonda iFreePBX kunye nokuyidibanisa neBitrix24 kunye nokunye

Umnxeba uhamba kuzo zonke iimeko ukusuka phezulu ukuya ezantsi ngokulandelelana, kumxholo ngamnye kunokubakho iifowuni kwezinye iimeko ezifana ne-macros (Macro), imisebenzi (Gosub) okanye utshintsho nje (Goto), ngoko ke umthi wokwenyani wento ebizwa ngokuba unokuphela. ukulandelelwa kwiilog.

Umzobo wokuseta oqhelekileyo wePBX uboniswe ngezantsi. Xa ubiza, i-DID ikhangelwe kwiindlela ezingenayo, iimeko zesikhashana zihlolwe kuyo, ukuba yonke into ilungile, imenyu yezwi iqaliswe. Ukusuka kuyo, ngokucofa iqhosha 1 okanye ixesha lokuphuma, phuma kwiqela labasebenzi bokucofa. Emva kokuphela komnxeba, i-hangupcall macro ibizwa ngokuba, emva koko akukho nto inokwenziwa kwi-dialplan, ngaphandle kwabaphathi abakhethekileyo (i-hangup handler).

Ukuqonda iFreePBX kunye nokuyidibanisa neBitrix24 kunye nokunye

Apho kule algorithm yokufowuna kufuneka sinikezele ngolwazi malunga nokuqala komnxeba kwiCRM, apho ungaqala khona ukurekhoda, apho ukugqiba ukurekhoda kwaye uyithumele kunye nolwazi malunga nokufowunela kwiCRM?

Ukudityaniswa neenkqubo zangaphandle

Yintoni ukuhlanganiswa kwe-PBX kunye neCRM? Ezi ziseto kunye neenkqubo eziguqula idatha kunye neziganeko phakathi kwezi ziqonga zimbini kwaye zithumele omnye komnye. Indlela eqhelekileyo yeenkqubo ezizimeleyo zokunxibelelana nge-APIs, kwaye eyona ndlela idumileyo yokufikelela kwi-APIs yi-HTTP REST. Kodwa hayi ngeenkwenkwezi.

Ngaphakathi kweAsterisk yile:

  • I-AGI - i-synchronous call yeenkqubo zangaphandle / amacandelo, asetyenziswa ikakhulu kwi-diaplan, kukho amathala eencwadi afana phpagi, PAGI

  • I-AMI - isicatshulwa se-TCP socket esebenza kumgaqo wokubhalisa kwiziganeko kunye nokufaka imiyalelo yombhalo, ifana ne-SMTP evela ngaphakathi, inokulandelela imicimbi kunye nokulawula iifowuni, kukho ilayibrari. PAMI -eyona idumileyo ekudaleni uqhagamshelwano neAsterisk

Umzekelo wemveliso ye-AMI

Umsitho: Isitishi esitsha
Lubabalo: bizani nonke
Ijelo: PJSIP/VMS_pjsip-0000078b
Ilizwe lesijelo: 4
ChannelStateDesc: Ring
Inombolo yoMnxeba: 111222
I-CallerIDName: 111222
ConnectedLineNum:
igama lomgca elidityanisiweyo:
Ulwimi: en
ikhowudi yeakhawunti:
Umxholo: ukusuka-pstn
Yandisa: s
Kuqala: 1
Eyodwa: 1599589046.5244
Ikhonkco: 1599589046.5244

  • I-ARI ngumxube wazo zombini, zonke nge-REST, iWebSocket, kwifomathi ye-JSON - kodwa ngamathala eencwadi amatsha kunye nezisongelo, azilunganga kakhulu, zifunyenwe ngaphandle (phparia, phpari) eyaba kuphuhliso lwabo malunga neminyaka emi-3 eyadlulayo.

Umzekelo wemveliso ye-ARI xa umnxeba uqaliswa

{ "variable":"CallMeCallerIDName", "value":"111222", "type":"ChannelVarset", "timestamp":"2020-09-09T09:38:36.269+0000", "channel":{ "id »:»1599644315.5334″, «igama»:»PJSIP/VMSpjsip-000007b6″, "state":"Rring", "caller":{ "name":"111222″, "number":"111222″ }, "connected":{"igama":"", "inombolo" :"" }, "accountcode":"", "dialplan":{ "context":"from-pstn", "exten":"s", "priority":2, "appigama":"Stasis", "appdata":"molo-world" }, "ixesha lokudalwa":"2020-09-09T09:38:35.926+0000", "ulwimi":"en" }, "asteriskid":"48:5b:aa:aa:aa:aa", "application":"molo-world"}

Ukulungeleka okanye ukuphazamiseka, ukuba kunokwenzeka okanye akunakwenzeka ukusebenza kunye ne-API ethile kuchongwa yimisebenzi efuna ukusonjululwa. Imisebenzi yokudibanisa neCRM imi ngolu hlobo lulandelayo:

  • Landela isiqalo somnxeba, apho idluliselwe khona, khupha i-CallerID, DID, ukuqala kunye namaxesha okuphela, mhlawumbi idatha evela kulawulo (ukukhangela uxhulumaniso phakathi kwefowuni kunye nomsebenzisi weCRM)

  • Qala kwaye uphelise ukurekhodwa kwefowuni, yigcine kwifomathi oyifunayo, yazisa ekupheleni kokurekhoda apho ifayile ikhona.

  • Qalisa umnxeba kwisiganeko sangaphandle (ukusuka kwiprogram), fowunela inombolo yangaphakathi, inombolo yangaphandle kwaye udibanise

  • Ukhetho: dibanisa neCRM, amaqela okucofa kunye ne-FollowME yokudluliselwa kweefowuni ngokuzenzekelayo ngokungabikho kwendawo (ngokweCRM)

Yonke le misebenzi inokusombululwa nge-AMI okanye i-ARI, kodwa i-ARI inikezela ngolwazi oluncinci kakhulu, akukho ziganeko ezininzi, ezininzi izinto eziguquguqukayo ezisenayo i-AMI (umzekelo, iifowuni ze-macro, ukuseta izinto eziguquguqukayo ngaphakathi kwee-macros, kubandakanywa ukurekhoda kweefowuni) azilandelwa. Ke ngoko, ukulandelela ngokuchanekileyo nangokuchanekileyo, masikhethe i-AMI okwangoku (kodwa hayi ngokupheleleyo). Ukongeza (kakuhle, bekuya kuba phi ngaphandle koku, singabantu abonqenayo) - kumsebenzi wokuqala (inqaku kuhabr) sebenzisa i-PAMI. *Emva koko kufuneka uzame ukubhala kwakhona kwi-ARI, kodwa hayi into yokuba iya kusebenza.

Ukubuyisela ukuhlanganiswa

Ukuze i-FreePBX yethu ikwazi ukubika kwi-AMI ngeendlela ezilula malunga nokuqala kwefowuni, ixesha lokuphela, amanani, amagama eefayile ezirekhodiweyo, kulula ukubala ixesha lomnxeba usebenzisa iqhinga elifanayo njengababhali bokuqala. - ngenisa izinto eziguquguqukayo kwaye ucazulule iziphumo zobukho bazo. I-PAMI icebisa ukwenza oku ngokulula ngomsebenzi wokucoca.

Nanku umzekelo wokucwangcisa okwakho ukwahluka kwixesha lokuqala lomnxeba (s linani elikhethekileyo kwiplani yokucofa eyenziwa PHAMBI kokuqalisa uphendlo lwe-DID)

[ext-did-custom]

exten => s,1,Set(CallStart=${STRFTIME(epoch,,%s)})

Umzekelo isiganeko se-AMI kulo mgca

Umsitho: Isitishi esitsha

Lubabalo: bizani nonke

Ijelo: PJSIP/VMS_pjsip-0000078b

Ilizwe lesijelo: 4

ChannelStateDesc: Ring

Inombolo yoMnxeba: 111222

I-CallerIDName: 111222

ConnectedLineNum:

igama lomgca elidityanisiweyo:

Ulwimi: en

ikhowudi yeakhawunti:

Umxholo: ukusuka-pstn

Yandisa: s

Kuqala: 1

Eyodwa: 1599589046.5244

Ikhonkco: 1599589046.5244

Isicelo: Seta i-AppData:

CallStart=1599571046

Kuba iFreePBX ibhala ngaphezulu i- extention.conf kunye neefayile zobukhulu_extra.conf, siya kusebenzisa ifayile ukwandiswa_siko.conf

Ikhowudi epheleleyo ye extention_custom.conf

[globals]	
;; Проверьте пути и права на папки - юзер asterisk должен иметь права на запись
;; Сюда будет писаться разговоры
WAV=/var/www/html/callme/records/wav 
MP3=/var/www/html/callme/records/mp3

;; По этим путям будет воспроизводится и скачиваться запись
URLRECORDS=https://www.host.ru/callmeplus/records/mp3

;; Адрес для калбека при исходящем вызове
URLPHP=https://www.host.ru/callmeplus

;; Да пишем разговоры
RECORDING=1

;; Это макрос для записи разговоров в нашу папку. 
;; Можно использовать и системную запись, но пока пусть будет эта - 
;; она работает
[recording]
exten => ~~s~~,1,Set(LOCAL(calling)=${ARG1})
exten => ~~s~~,2,Set(LOCAL(called)=${ARG2})
exten => ~~s~~,3,GotoIf($["${RECORDING}" = "1"]?4:14)
exten => ~~s~~,4,Set(fname=${UNIQUEID}-${STRFTIME(${EPOCH},,%Y-%m-%d-%H_%M)}-${calling}-${called})
exten => ~~s~~,5,Set(datedir=${STRFTIME(${EPOCH},,%Y/%m/%d)})
exten => ~~s~~,6,System(mkdir -p ${MP3}/${datedir})
exten => ~~s~~,7,System(mkdir -p ${WAV}/${datedir})
exten => ~~s~~,8,Set(monopt=nice -n 19 /usr/bin/lame -b 32  --silent "${WAV}/${datedir}/${fname}.wav"  "${MP3}/${datedir}/${fname}.mp3" && rm -f "${WAV}/${fname}.wav" && chmod o+r "${MP3}/${datedir}/${fname}.mp3")
exten => ~~s~~,9,Set(FullFname=${URLRECORDS}/${datedir}/${fname}.mp3)
exten => ~~s~~,10,Set(CDR(filename)=${fname}.mp3)
exten => ~~s~~,11,Set(CDR(recordingfile)=${fname}.wav)
exten => ~~s~~,12,Set(CDR(realdst)=${called})
exten => ~~s~~,13,MixMonitor(${WAV}/${datedir}/${fname}.wav,b,${monopt})
exten => ~~s~~,14,NoOp(Finish if_recording_1)
exten => ~~s~~,15,Return()


;; Это основной контекст для начала разговора
[ext-did-custom]

;; Это хулиганство, делать это так и здесь, но работает - добавляем к номеру '8'
exten =>  s,1,Set(CALLERID(num)=8${CALLERID(num)})

;; Тут всякие переменные для скрипта
exten =>  s,n,Gosub(recording,~~s~~,1(${CALLERID(number)},${EXTEN}))
exten =>  s,n,ExecIF(${CallMeCallerIDName}?Set(CALLERID(name)=${CallMeCallerIDName}):NoOp())
exten =>  s,n,Set(CallStart=${STRFTIME(epoch,,%s)})
exten =>  s,n,Set(CallMeDISPOSITION=${CDR(disposition)})

;; Самое главное! Обработчик окончания разговора. 
;; Обычные пути обработки конца через (exten=>h,1,чтототут) в FreePBX не работают - Macro(hangupcall,) все портит. 
;; Поэтому вешаем Hangup_Handler на окончание звонка
exten => s,n,Set(CHANNEL(hangup_handler_push)=sub-call-from-cid-ended,s,1(${CALLERID(num)},${EXTEN}))

;; Обработчик окончания входящего вызова
[sub-call-from-cid-ended]

;; Сообщаем о значениях при конце звонка
exten => s,1,Set(CDR_PROP(disable)=true)
exten => s,n,Set(CallStop=${STRFTIME(epoch,,%s)})
exten => s,n,Set(CallMeDURATION=${MATH(${CallStop}-${CallStart},int)})

;; Статус вызова - Ответ, не ответ...
exten => s,n,Set(CallMeDISPOSITION=${CDR(disposition)})
exten => s,n,Return


;; Обработчик исходящих вызовов - все аналогичено
[outbound-allroutes-custom]

;; Запись
exten => _.,1,Gosub(recording,~~s~~,1(${CALLERID(number)},${EXTEN}))
;; Переменные
exten => _.,n,Set(__CallIntNum=${CALLERID(num)})
exten => _.,n,Set(CallExtNum=${EXTEN})
exten => _.,n,Set(CallStart=${STRFTIME(epoch,,%s)})
exten => _.,n,Set(CallmeCALLID=${SIPCALLID})

;; Вешаем Hangup_Handler на окончание звонка
exten => _.,n,Set(CHANNEL(hangup_handler_push)=sub-call-internal-ended,s,1(${CALLERID(num)},${EXTEN}))

;; Обработчик окончания исходящего вызова
[sub-call-internal-ended]

;; переменные
exten => s,1,Set(CDR_PROP(disable)=true)
exten => s,n,Set(CallStop=${STRFTIME(epoch,,%s)})
exten => s,n,Set(CallMeDURATION=${MATH(${CallStop}-${CallStart},int)})
exten => s,n,Set(CallMeDISPOSITION=${CDR(disposition)})

;; Вызов скрипта, который сообщит о звонке в CRM - это исходящий, 
;; так что по факту окончания
exten => s,n,System(curl -s ${URLPHP}/CallMeOut.php --data action=sendcall2b24 --data ExtNum=${CallExtNum} --data call_id=${SIPCALLID} --data-urlencode FullFname='${FullFname}' --data CallIntNum=${CallIntNum} --data CallDuration=${CallMeDURATION} --data-urlencode CallDisposition='${CallMeDISPOSITION}')
exten => s,n,Return

Uphawu kunye nomahluko ukusuka kwi-dialplan yokuqala yababhali benqaku lokuqala -

  • I-Dialplan kwi-.conf ifomathi, njengoko i-FreePBX iyifunayo (ewe, ingakwazi .ael, kodwa ayizizo zonke iinguqulelo kwaye ayisoloko ilungile)

  • Endaweni yokuqhubekeka isiphelo nge exten=>h, ukuqhubela phambili kwavezwa nge hangup_handler, kuba iFreePBX dialplan isebenze ngayo kuphela.

  • Umtya wokufowuna weskripthi esilungisiweyo, iikowuti ezongeziweyo kunye nenombolo yomnxeba yangaphandle ExtNum

  • Uqhubekeko lusiwa _custom imixholo kwaye ikuvumela ukuba ungachukumisi okanye uhlele iFreePBX configs - engenayo nge [ext-yenza-isiko], ephumayo [eziphumayo-zonke iindlela-isiko]

  • Akukho kubophelela kwamanani - ifayile yeyomhlaba wonke kwaye ifuna kuphela ukuqwalasela umendo kunye nekhonkco kumncedisi.

Ukuze uqalise, kufuneka usebenzise izikripthi kwi-AMI ngokungena kunye negama lokugqitha - kule nto, iFreePBX nayo inefayile ye_custom.

manager_custom.conf ifayile

;;  это логин
[callmeplus]
;; это пароль
secret = trampampamturlala
deny = 0.0.0.0/0.0.0.0

;; я работаю с локальной машиной - но если надо, можно и другие прописать
permit = 127.0.0.1/255.255.255.255
read = system,call,log,verbose,agent,user,config,dtmf,reporting,cdr,dialplan
write = system,call,agent,log,verbose,user,config,command,reporting,originate

Zombini ezi fayile kufuneka zibekwe kwi/etc/asterisk, emva koko ufunde kwakhona uqwalaselo (okanye uqalise kwakhona iinkwenkwezi)

# astrisk -rv
  Connected to Asterisk 16.6.2 currently running on freepbx (pid = 31629)
#freepbx*CLI> dialplan reload
     Dialplan reloaded.
#freepbx*CLI> exit

Ngoku masiqhubele phambili kwi-PHP

Ukuqalisa izikripthi kunye nokudala inkonzo

Ekubeni iskimu sokusebenza kunye ne-Bitrix 24, inkonzo ye-AMI, ayilula kwaye icacile, kufuneka ixoxwe ngokwahlukileyo. I-asterisk, xa i-AMI ivuliwe, ivula ngokulula izibuko kwaye yiyo loo nto. Xa umxhasi ejoyina, ucela ukugunyazwa, ngoko umxhasi ubhalisa kwiziganeko eziyimfuneko. Iziganeko ziza kumbhalo ocacileyo, apho i-PAMI iguqulela kwizinto ezicwangcisiweyo kwaye inika amandla okuseta umsebenzi wokucoca kuphela kwiziganeko ezinomdla, amasimi, amanani, njl.

Ngokukhawuleza ukuba ifowuni ingene, isiganeko se-NewExten sigxothwa ukusuka kumzali [ukusuka kwi-pstn] umxholo, emva koko zonke iziganeko zihamba ngokulandelelana kwemigca kwiimeko. Xa ulwazi lufunyenwe kwiCallMeCallerIDName kunye neCallStart eguquguqukayo echazwe kwi- _custom diaplan, i

  1. Umsebenzi wokucela i-UserID ehambelana nenombolo yokwandisa apho umnxeba uze khona. Kuthekani ukuba liqela lokucofa? Umbuzo wezopolitiko, ngaba kufuneka wenze umnxeba kuye wonke umntu ngexesha elinye (xa wonke umntu efowuna kanye) okanye udale njengoko befowuna xa befowuna? Uninzi lwabathengi banecebo leFisrt elifumanekayo, ke akukho ngxaki ngale nto, inye kuphela iminxeba. Kodwa umba kufuneka usonjululwe.

  2. Umsebenzi wokubhalisa umnxeba kwi-Bitrix24, ebuyisela i-CallID, efunekayo ukuba ichaze iiparamitha zefowuni kunye nekhonkco ekurekhodweni. Ifuna inombolo yolwandiso okanye i-UserID

Ukuqonda iFreePBX kunye nokuyidibanisa neBitrix24 kunye nokunye

Emva kokuphela kwefowuni, umsebenzi wokukhuphela irekhodi ubizwa ngokuba, ngexesha elifanayo libika ubume bokugqitywa kwefowuni (Busy, Akukho mpendulo, Impumelelo), kwaye kwakhona ukhuphela ikhonkco kwifayile ye-mp3 kunye nerekhodi (ukuba ikhona).

Ngenxa yokuba imodyuli yeCallMeIn.php kufuneka iqhube ngokuqhubekayo, ifayile yokuqalisa ye-SystemD yenzelwe yona callme.inkonzo, ekufuneka ifakwe kuyo /etc/systemd/system/callme.service

[Unit]
Description=CallMe

[Service]
WorkingDirectory=/var/www/html/callmeplus
ExecStart=/usr/bin/php /var/www/html/callmeplus/CallMeIn.php 2>&1 >>/var/log/callmeplus.log
ExecStop=/bin/kill -WINCH ${MAINPID}
KillSignal=SIGKILL

Restart=on-failure
RestartSec=10s

#тут надо смотреть,какие права на папки
#User=www-data  #Ubuntu - debian
#User=nginx #Centos

[Install]
WantedBy=multi-user.target

ukuqaliswa kunye nokuqaliswa kweskripthi kwenzeka nge-systemctl okanye inkonzo

# systemctl enable callme
# systemctl start callme

Inkonzo iya kuziqalisa kwakhona njengoko kufuneka (kwimeko yontlitheko). Inkonzo yokulandelela i-inbox ayifuni umncedisi wewebhu ukuba afakwe, kuphela i-php efunekayo (leyo ngokuqinisekileyo ikwi-server ye-FeePBX). Kodwa ngokungabikho kokufikelela kwiirekhodi zokufowuna nge-Web server (kunye ne-https), akuyi kuba nako ukumamela iirekhodi zokufowuna.

Ngoku makhe sithethe ngeminxeba ephumayo. I-CallMeOut.php script inemisebenzi emibini:

  • Ukuqaliswa kwefowuni xa isicelo sifunyenwe kwiscript sephp (kuquka ukusebenzisa iqhosha elithi "Call" kwiBitrix ngokwayo). Ayisebenzi ngaphandle komncedisi wewebhu, isicelo sifunyenwe nge-HTTP POST, isicelo siqulethe uphawu

  • Umyalezo malunga nomnxeba, iiparamitha zayo kunye neerekhodi kwi-Bitrix. Ikhutshwe yiAsterisk kwi [sub-call-internal-ended] dialplan xa umnxeba uphela

Ukuqonda iFreePBX kunye nokuyidibanisa neBitrix24 kunye nokunye

Umncedisi wewebhu ufuneka kuphela kwizinto ezimbini - ukukhuphela iifayile zerekhodi zeBitrix (nge-HTTPS) kwaye ubize i-CallMeOut.php script. Ungasebenzisa iseva ye-FreePBX eyakhelwe-ngaphakathi, iifayile eziye /var/www/html, ungafaka enye iseva okanye ucacise indlela eyahlukileyo.

Umncedisi wewebhu

Masishiye ukuseta iseva yewebhu ukuze sifunde ngokuzimeleyo (tyts, tyts, tyts). Ukuba awunayo idomeyini, ungazama iFreeDomain( https://www.freenom.com/ru/index.html), eya kukunika igama simahla IP yakho emhlophe (ungalibali ukudlulisa amazibuko 80, 443 ngokusebenzisa umzila ukuba idilesi yangaphandle kuphela kuyo). Ukuba udale nje i-DNS domain, ngoko kufuneka ulinde (ukusuka kwimizuzu eyi-15 ukuya kwiiyure ze-48) de kube zonke iiseva zilayishiwe. Ngokutsho kwamava okusebenza nababoneleli basekhaya - ukusuka kwiyure eli-1 ukuya ngosuku.

Ufakelo oluzenzekelayo

Isifakeli siphuhlisiwe kwi-github ukwenza ukufakela kube lula. Kodwa yayigudileyo ephepheni-ngelixa siyifakela yonke ngesandla, kuba emva kokuphonononga yonke le nto yacaca gca ukuba yintoni na abahlobo, ngubani oya phi kunye nendlela yokuyilungisa. Akukho mfaki okwangoku

Docker

Ukuba ufuna ukuzama isisombululo ngokukhawuleza - kukho ukhetho ngeDocker - yenza ngokukhawuleza isikhongozeli, usinike izibuko ngaphandle, tyibiliza iifayile zezicwangciso kwaye uzame (olu khetho kunye ne-LetsEncrypt container, ukuba sele unesatifikethi. Idinga nje ukubuyisela umva iproxy kwi-FreePBX umncedisi wewebhu (siyinike enye izibuko yi 88), LetsEncrypt kwidocker esekwe Oku kubhaliwe

Kufuneka usebenzise ifayile kwifolda yeprojekthi ekhutshelweyo (emva kwe-git clone), kodwa kuqala ungene kwi-asterisk configs (incwadi yeenkwenkwezi) kwaye ubhale iindlela kwiirekhodi kunye ne-URL yendawo yakho apho.

version: '3.3'
services:
  nginx:
    image: nginx:1.15-alpine
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./nginx/ssl_docker.conf:/etc/nginx/conf.d/ssl_docker.conf
  certbot:
    image: certbot/certbot
  freepbx:
    image: flaviostutz/freepbx
    ports:
      - 88:80 # для настройки
      - 5060:5060/udp
      - 5160:5160/udp
      - 127.0.0.1:5038:5038 # для CallMeOut.php
#      - 3306:3306
      - 18000-18100:18000-18100/udp
    restart: always
    environment:
      - ADMIN_PASSWORD=admin123
    volumes:
      - backup:/backup
      - recordings:/var/spool/asterisk/monitor
      - ./callme:/var/www/html/callme
      - ./systemd/callme.service:/etc/systemd/system/callme.conf
      - ./asterisk/manager_custom.conf:/etc/asterisk/manager_custom.conf
      - ./asterisk/extensions_custom.conf:/etc/asterisk/extensions_custom.conf
#      - ./conf/startup.sh:/startup.sh

volumes:
  backup:
  recordings:

Le docker-compose.yaml ifayile iqhutywa nge

docker-compose up -d

Ukuba nginx ayiqalisi, kukho into engalunganga ngoqwalaselo kwi nginx/ssl_docker.conf ulawulo.

Okunye ukudityaniswa

Kwaye kutheni ungafaki iCRM kwizikripthi ngaxeshanye, sacinga. Sifunde ezinye ii-API zeCRM ezininzi, ngakumbi i-PBX eyakhelwe-ngaphakathi yasimahla-ShugarCRM kunye neVtiger, kwaye ewe! ewe, umgaqo uyafana. Kodwa eli lelinye ibali, esiya kuthi kamva sililayishe kwi-github ngokwahlukileyo.

iimbekiselo

Ukuziphendulela: Nakuphi na ukufana nenyani yinyani kwaye yayingendim.

umthombo: www.habr.com

Yongeza izimvo