Bitrix24 jẹ apapọ nla kan ti o ṣajọpọ CRM, ṣiṣan iṣẹ, ṣiṣe iṣiro ati ọpọlọpọ awọn nkan miiran ti awọn alakoso fẹran gaan ati pe oṣiṣẹ IT ko fẹran gaan. Oju-ọna naa jẹ lilo nipasẹ ọpọlọpọ awọn ile-iṣẹ kekere ati alabọde, pẹlu awọn ile-iwosan kekere, awọn aṣelọpọ ati paapaa awọn ile iṣọ ẹwa. Iṣẹ akọkọ ti awọn alakoso "ife" ni isọpọ ti telephony ati CRM, nigbati eyikeyi ipe ti wa ni igbasilẹ lẹsẹkẹsẹ ni CRM, awọn kaadi onibara ti ṣẹda, nigbati o ba nwọle, alaye nipa onibara yoo han ati pe o le wo ẹni ti o jẹ, kini o jẹ. le ta ati iye ti o jẹ. Ṣugbọn telephony lati Bitrix24 ati iṣọpọ rẹ pẹlu CRM jẹ owo, nigbakan pupọ. Ninu nkan naa Emi yoo sọ fun ọ iriri ti iṣọpọ pẹlu awọn irinṣẹ ṣiṣi ati IP PBX olokiki freepbx, ki o si tun ro awọn kannaa ti awọn iṣẹ ti awọn orisirisi awọn ẹya ara
Mo ṣiṣẹ bi olutaja ni ile-iṣẹ ti o ta ati tunto, ṣepọ telephony IP. Nigbati a beere lọwọ mi boya a le funni ni nkan si eyi ati ile-iṣẹ yii lati ṣepọ Bitrix24 pẹlu awọn PBX ti awọn alabara ni, ati pẹlu awọn PBX foju lori ọpọlọpọ awọn ile-iṣẹ VDS, Mo lọ si Google. Ati pe dajudaju o fun mi ni ọna asopọ kan si article ni habr, Nibo ni apejuwe kan wa, ati github, ati pe ohun gbogbo dabi pe o ṣiṣẹ. Ṣugbọn nigbati o n gbiyanju lati lo ojutu yii, o wa ni pe Bitrix24 ko jẹ kanna bi iṣaaju, ati pe pupọ nilo lati tun ṣe. Ni afikun, FreePBX kii ṣe ami akiyesi igboro fun ọ, nibi o nilo lati ronu nipa bii o ṣe le darapọ irọrun lilo ati dialplan hardcore ni awọn faili atunto.
A kọ ẹkọ ọgbọn ti iṣẹ
Nitorina fun awọn ibẹrẹ, bawo ni o ṣe yẹ ki gbogbo ṣiṣẹ. Nigbati ipe ba gba lati ita PBX (iṣẹlẹ SIP INVITE lati ọdọ olupese), sisẹ ti dialplan (eto ipe kiakia, dialplan) bẹrẹ - awọn ofin ti kini ati ni ibere lati ṣe pẹlu ipe naa. Lati apo akọkọ, o le gba alaye pupọ, eyiti o le ṣee lo ninu awọn ofin. Ohun elo ti o dara julọ fun kikọ awọn inu ti SIP jẹ olutupalẹ sngrep (ọna asopọ) eyiti a fi sori ẹrọ ni irọrun ni awọn pinpin olokiki nipasẹ fi sori ẹrọ apt / yum fi sori ẹrọ ati bii, ṣugbọn o tun le kọ lati orisun. Jẹ ká wo ni ipe log ni sngrep
Ni fọọmu ti o rọrun, dialplan ṣe adehun pẹlu apo akọkọ nikan, nigbakan tun lakoko ibaraẹnisọrọ, awọn ipe ti gbe, awọn titẹ bọtini (DTMF), ọpọlọpọ awọn nkan ti o nifẹ bi FollowMe, RingGroup, IVR ati awọn miiran.
Ohun ti o wa ninu awọn ifiwepe Pack
Lootọ, awọn eto ipe ti o rọrun pupọ julọ ṣiṣẹ pẹlu awọn aaye akọkọ meji, ati pe gbogbo imọ-jinlẹ wa ni ayika DID ati CallerID. ṢE - nibiti a ti n pe, CallerID - tani n pe.
Ṣugbọn lẹhin gbogbo, a ni ile-iṣẹ kan kii ṣe foonu kan - eyiti o tumọ si pe PBX ṣeese ni awọn ẹgbẹ ipe (igbakanna / ohun orin itẹlera ti awọn ẹrọ pupọ) lori awọn nọmba ilu (Ẹgbẹ Iwọn), IVR (Kaabo, o pe ... Tẹ. Ọkan fun ...), Awọn ẹrọ idahun (Awọn gbolohun ọrọ), Awọn ipo akoko, Firanṣẹ si awọn nọmba miiran tabi si sẹẹli (FollowMe, Siwaju). Eyi tumọ si pe o nira pupọ lati pinnu ẹni ti yoo gba ipe nitootọ ati tani yoo ni ibaraẹnisọrọ pẹlu nigbati ipe ba de. Eyi jẹ apẹẹrẹ ti ibẹrẹ ti ipe aṣoju ni PBX ti awọn alabara wa
Lẹhin ipe naa ni aṣeyọri ti wọ PBX, o rin irin-ajo nipasẹ dialplan ni oriṣiriṣi “awọn ọrọ”. Ọrọ ti o wa ni oju-ọna ti Aami akiyesi jẹ eto awọn aṣẹ ti o ni nọmba, ọkọọkan eyiti o ni àlẹmọ nipasẹ nọmba ti a tẹ (o pe ni exten, fun ipe ita ni ipele ibẹrẹ exten=DID). Awọn aṣẹ ti o wa ninu laini dialplan le jẹ ohunkohun - awọn iṣẹ inu (fun apẹẹrẹ, pe alabapin inu - Dial(), fi foonu si isalẹ - Hangup()), awọn oniṣẹ ipo (IF, ELSE, ExecIF ati bii), awọn iyipada si awọn ofin miiran ti ọrọ-ọrọ yii (Goto, GotoIF), iyipada si awọn ipo miiran ni irisi ipe iṣẹ (Gosub, Makiro). Ilana lọtọ include имя_контекста, eyi ti o ṣe afikun awọn aṣẹ lati inu ọrọ miiran si opin ọrọ-ọrọ lọwọlọwọ. Awọn aṣẹ ti o wa nipasẹ pẹlu jẹ ṣiṣe nigbagbogbo после awọn aṣẹ ti o tọ lọwọlọwọ.
Gbogbo ọgbọn ti FreePBX ti wa ni itumọ ti lori ifisi ti o yatọ si àrà sinu kọọkan miiran nipasẹ pẹlu ati ipe nipasẹ Gosub, Makiro ati Handler handlers. Ṣe akiyesi agbegbe ti awọn ipe FreePBX ti nwọle
Ipe naa n lọ nipasẹ gbogbo awọn ipo lati oke si isalẹ ni titan, ni aaye kọọkan awọn ipe le wa si awọn ipo miiran bi macros (Macro), awọn iṣẹ (Gosub) tabi awọn iyipada nikan (Goto), nitorina igi gidi ti ohun ti a npe ni le nikan. wa ni tọpinpin ninu awọn àkọọlẹ.
Aworan iṣeto aṣoju fun PBX aṣoju jẹ afihan ni isalẹ. Nigbati o ba n pe, DID ti wa ni awọn ipa-ọna ti nwọle, awọn ipo igba diẹ ni a ṣayẹwo fun rẹ, ti ohun gbogbo ba wa ni ibere, a ṣe ifilọlẹ akojọ ohun. Lati inu rẹ, nipa titẹ bọtini 1 tabi akoko ipari, jade lọ si ẹgbẹ ti awọn oniṣẹ titẹ. Lẹhin ti ipe ba pari, a pe macro hangupcal, lẹhin eyi ko si ohunkan ti a le ṣe ni dialplan, ayafi fun awọn olutọju pataki (olutọju hangup).
Nibo ni algorithm ipe yii o yẹ ki a pese alaye nipa ibẹrẹ ipe si CRM, nibo ni lati bẹrẹ gbigbasilẹ, nibo ni lati pari gbigbasilẹ ati firanṣẹ pẹlu alaye nipa ipe si CRM?
Integration pẹlu ita awọn ọna šiše
Kini PBX ati isọpọ CRM? Iwọnyi jẹ awọn eto ati awọn eto ti o ṣe iyipada data ati awọn iṣẹlẹ laarin awọn iru ẹrọ meji wọnyi ati firanṣẹ si ara wọn. Ọna ti o wọpọ julọ fun awọn eto ominira lati baraẹnisọrọ jẹ nipasẹ awọn API, ati pe ọna olokiki julọ lati wọle si API ni HTTP REST. Sugbon ko fun aami akiyesi.
Inu Aami akiyesi ni:
AGI - ipe amuṣiṣẹpọ si awọn eto / awọn paati ita, ti a lo ni pataki ninu ero-ọrọ, awọn ile-ikawe wa bii phpagi, PAGI
AMI - iho TCP ọrọ ti o ṣiṣẹ lori ipilẹ ṣiṣe alabapin si awọn iṣẹlẹ ati titẹ awọn aṣẹ ọrọ, dabi SMTP lati inu, le tọpa awọn iṣẹlẹ ati ṣakoso awọn ipe, ile-ikawe kan wa. PAMI - olokiki julọ fun ṣiṣẹda asopọ pẹlu Aami akiyesi
AMI o wu apẹẹrẹ
Iṣẹlẹ: New ikanni
Anfaani: ipe, gbogbo
ikanni: PJSIP/VMS_pjsip-0000078b
Ipinle ikanni: 4
ChannelStateDesc: Oruka
Olupe IDNum: 111222
Orukọ olupe: 111222
Nọm ti a ti sopọ:
orukọ ila ti o ni asopọ:
Ede: en
koodu akọọlẹ:
Ọrọ: lati-pstn
Itẹsiwaju: s
Ni ayo: 1
Alailẹgbẹ: 1599589046.5244
Linkedid: 1599589046.5244
ARI jẹ idapọ ti awọn mejeeji, gbogbo nipasẹ REST, WebSocket, ni ọna kika JSON - ṣugbọn pẹlu awọn ile-ikawe tuntun ati awọn murasilẹ, ko dara pupọ, aibikita ti a rii (pharia, phpari) eyiti o di ni idagbasoke wọn nipa 3 ọdun sẹyin.
Irọrun tabi airọrun, o ṣeeṣe tabi ailagbara lati ṣiṣẹ pẹlu API kan ni ipinnu nipasẹ awọn iṣẹ ṣiṣe ti o nilo lati yanju. Awọn iṣẹ-ṣiṣe fun iṣọpọ pẹlu CRM jẹ bi atẹle:
Tọpinpin ibẹrẹ ipe naa, nibiti o ti gbe lọ, fa jade CallerID, DID, bẹrẹ ati awọn akoko ipari, boya data lati inu itọsọna naa (lati wa asopọ laarin foonu ati olumulo CRM)
Bẹrẹ ati pari gbigbasilẹ ipe naa, fipamọ ni ọna kika ti o fẹ, sọfun ni ipari gbigbasilẹ nibiti faili naa wa.
Bẹrẹ ipe lori iṣẹlẹ ita (lati inu eto), pe nọmba inu, nọmba ita ki o so wọn pọ
Iyan: ṣepọ pẹlu CRM, awọn ẹgbẹ dialer ati FollowME fun gbigbe awọn ipe laifọwọyi ni laisi aaye kan (ni ibamu si CRM)
Gbogbo awọn iṣẹ-ṣiṣe wọnyi ni a le yanju nipasẹ AMI tabi ARI, ṣugbọn ARI pese alaye ti o kere pupọ, ko si ọpọlọpọ awọn iṣẹlẹ, ọpọlọpọ awọn oniyipada ti AMI tun ni (fun apẹẹrẹ, awọn ipe Makiro, ṣeto awọn oniyipada inu macros, pẹlu gbigbasilẹ ipe) ko tọpinpin. Nitorinaa, fun titọpa deede ati deede, jẹ ki a yan AMI fun bayi (ṣugbọn kii ṣe patapata). Ni afikun (daradara, nibiti laisi rẹ, a jẹ eniyan ọlẹ) - ninu iṣẹ atilẹba (article ni habr) lo PAMI. *Lẹhinna o nilo lati gbiyanju lati tun kọwe si ARI, ṣugbọn kii ṣe otitọ pe yoo ṣiṣẹ.
Reinventing Integration
Ni ibere fun FreePBX wa lati ni anfani lati jabo si AMI ni awọn ọna ti o rọrun nipa ibẹrẹ ipe, akoko ipari, awọn nọmba, awọn orukọ ti awọn faili ti o gbasilẹ, o rọrun julọ lati ṣe iṣiro iye akoko ipe naa ni lilo ẹtan kanna gẹgẹbi awọn onkọwe atilẹba. - tẹ awọn oniyipada rẹ sii ki o ṣe itupalẹ abajade fun wiwa wọn. PAMI ni imọran ṣiṣe eyi ni irọrun nipasẹ iṣẹ àlẹmọ kan.
Eyi ni apẹẹrẹ ti iṣeto oniyipada tirẹ fun akoko ibẹrẹ ti ipe (s jẹ nọmba pataki kan ninu eto dialplan ti o ṣe ṣaaju ki o to bẹrẹ wiwa DID)
Nitori FreePBX ṣe atunkọ awọn faili iwọn.conf ati iwọnafikun.conf, a yoo lo faili naa iwọn_aṣa.okun
Kikun koodu ti iwọn limition_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
Ẹya ati iyatọ lati ipilẹṣẹ dialplan atilẹba ti awọn onkọwe ti nkan atilẹba -
Dialplan ni ọna kika .conf, bi FreePBX ṣe fẹ (bẹẹni, o le .ael, ṣugbọn kii ṣe gbogbo awọn ẹya ati pe ko rọrun nigbagbogbo)
Dipo ṣiṣatunṣe ipari nipasẹ exten = h, iṣelọpọ ti ṣe ifilọlẹ nipasẹ hangup_handler, nitori dialplan FreePBX ṣiṣẹ pẹlu rẹ nikan
Okun ipe iwe afọwọkọ ti o wa titi, awọn agbasọ ọrọ ti a fikun ati nọmba ipe ita ExtNum
Ilana ti gbe lọ si awọn ipo aṣa aṣa ati gba ọ laaye lati ma fi ọwọ kan tabi ṣatunkọ awọn atunto FreePBX - ti nwọle nipasẹ [ext-ṣe-aṣati njade nipasẹ [outbound-allroutes-aṣa]
Ko si abuda si awọn nọmba - faili naa jẹ gbogbo agbaye ati pe o nilo lati tunto nikan fun ọna ati ọna asopọ si olupin naa
Lati bẹrẹ, o tun nilo lati ṣiṣe awọn iwe afọwọkọ ni AMI nipasẹ iwọle ati ọrọ igbaniwọle - fun eyi, FreePBX tun ni faili _custom kan
faili manager_custom.conf
;; это логин
[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
Mejeji ti awọn faili wọnyi gbọdọ wa ni gbe sinu /etc/asterisk, lẹhinna tun-ka awọn atunto (tabi tun ami akiyesi naa bẹrẹ)
# astrisk -rv
Connected to Asterisk 16.6.2 currently running on freepbx (pid = 31629)
#freepbx*CLI> dialplan reload
Dialplan reloaded.
#freepbx*CLI> exit
Bayi jẹ ki a lọ si PHP
Bibẹrẹ awọn iwe afọwọkọ ati ṣiṣẹda iṣẹ kan
Niwọn igba ti ero fun ṣiṣẹ pẹlu Bitrix 24, iṣẹ kan fun AMI, ko rọrun patapata ati sihin, o gbọdọ jiroro ni lọtọ. Aami akiyesi, nigbati AMI ti mu ṣiṣẹ, nìkan ṣii ibudo ati pe o jẹ. Nigbati alabara kan ba darapọ mọ, o beere aṣẹ, lẹhinna alabara ṣe alabapin si awọn iṣẹlẹ pataki. Awọn iṣẹlẹ wa ni ọrọ itele, eyiti PAMI ṣe iyipada si awọn nkan ti a ṣeto ati pese agbara lati ṣeto iṣẹ sisẹ nikan fun awọn iṣẹlẹ ti iwulo, awọn aaye, awọn nọmba, ati bẹbẹ lọ.
Ni kete ti ipe ba wọle, iṣẹlẹ NewExten ti wa ni ina ti o bẹrẹ lati inu ipo obi [lati-pstn], lẹhinna gbogbo awọn iṣẹlẹ lọ ni aṣẹ ti awọn ila ni awọn aaye. Nigbati alaye ba gba lati ọdọ CallMeCallerIDName ati awọn oniyipada CallStart ti a pato ninu _custom dialplan, awọn
Iṣẹ ti nbere ID olumulo ti o baamu si nọmba itẹsiwaju nibiti ipe ti de. Ti o ba jẹ ẹgbẹ ipe kan nko? Ibeere naa jẹ iṣelu, ṣe o nilo lati ṣẹda ipe si gbogbo eniyan ni ẹẹkan (nigbati gbogbo eniyan pe ni ẹẹkan) tabi ṣẹda bi wọn ṣe pe nigbati o n pe ni titan? Pupọ awọn alabara ni ilana Fisrt Wa, nitorinaa ko si iṣoro pẹlu eyi, awọn ipe kan nikan. Ṣugbọn ọrọ naa nilo lati yanju.
Iṣẹ iforukọsilẹ ipe ni Bitrix24, eyiti o da CallID pada, eyiti o nilo lẹhinna lati jabo awọn aye ipe ati ọna asopọ si gbigbasilẹ. Nilo boya nọmba itẹsiwaju tabi UserID
Lẹhin ipari ipe, iṣẹ igbasilẹ igbasilẹ ni a pe, eyiti o ṣe ijabọ ni akoko kanna ipo ipari ipe (Nṣiṣẹ, Ko si idahun, Aṣeyọri), ati tun ṣe igbasilẹ ọna asopọ si faili mp3 pẹlu igbasilẹ (ti o ba jẹ eyikeyi).
Nitoripe module CallMeIn.php nilo lati ṣiṣẹ nigbagbogbo, faili ibẹrẹ SystemD ti ṣẹda fun rẹ callme.iṣẹ, eyi ti o gbọdọ fi sii /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
ipilẹṣẹ ati ifilọlẹ iwe afọwọkọ waye nipasẹ systemctl tabi iṣẹ
Iṣẹ naa yoo tun bẹrẹ funrararẹ bi o ṣe nilo (ni ọran awọn ipadanu). Iṣẹ ipasẹ apo-iwọle ko nilo olupin wẹẹbu kan lati fi sii, php nikan ni o nilo (eyiti o daju lori olupin FeePBX). Ṣugbọn laisi iraye si awọn igbasilẹ ipe nipasẹ olupin wẹẹbu (tun pẹlu https), kii yoo ṣee ṣe lati tẹtisi awọn igbasilẹ ipe.
Bayi jẹ ki a sọrọ nipa awọn ipe ti njade. Iwe afọwọkọ CallMeOut.php ni awọn iṣẹ meji:
Bibẹrẹ ipe nigbati o ba gba ibeere kan fun iwe afọwọkọ php (pẹlu lilo bọtini “Ipe” ninu Bitrix funrararẹ). Ko ṣiṣẹ laisi olupin wẹẹbu kan, a gba ibeere naa nipasẹ HTTP POST, ibeere naa ni ami-ami kan
Ifiranṣẹ nipa ipe naa, awọn aye rẹ ati awọn igbasilẹ ni Bitrix. Ti ṣiṣẹ nipasẹ Aami akiyesi ni eto ipe-ipe-ipe-ipin nigbati ipe ba pari
Olupin wẹẹbu naa nilo fun awọn nkan meji nikan - gbigba awọn faili igbasilẹ Bitrix (nipasẹ HTTPS) ati pipe iwe afọwọkọ CallMeOut.php. O le lo olupin FreePBX ti a ṣe sinu, awọn faili ti o jẹ /var/www/html, o le fi olupin miiran sii tabi pato ọna ti o yatọ.
Olupin wẹẹbu
Jẹ ki a lọ kuro ni iṣeto olupin wẹẹbu fun ikẹkọ ominira (tyts, tyts, tyts). Ti o ko ba ni aaye kan, o le gbiyanju FreeDomain( https://www.freenom.com/ru/index.html), eyi ti yoo fun ọ ni orukọ ọfẹ fun IP funfun rẹ (maṣe gbagbe lati firanṣẹ awọn ibudo 80, 443 nipasẹ olulana ti adirẹsi ita ba wa lori rẹ nikan). Ti o ba ṣẹda agbegbe DNS kan, lẹhinna o ni lati duro (lati awọn iṣẹju 15 si awọn wakati 48) titi gbogbo awọn olupin yoo fi kojọpọ. Gẹgẹbi iriri ti ṣiṣẹ pẹlu awọn olupese ile - lati wakati 1 si ọjọ kan.
Adaṣiṣẹ fifi sori ẹrọ
Insitola ti ni idagbasoke lori github lati jẹ ki fifi sori ẹrọ rọrun paapaa. Sugbon o je dan lori iwe - nigba ti a ba ti wa ni fifi gbogbo awọn ti o pẹlu ọwọ, niwon lẹhin tinkering pẹlu gbogbo eyi ti o di gara ko o ohun ti o jẹ ọrẹ pẹlu ẹniti, ti o lọ ibi ti ati bi lati yokokoro o. Ko si olupilẹṣẹ sibẹsibẹ
Docker
Ti o ba fẹ gbiyanju ojutu ni kiakia - aṣayan kan wa pẹlu Docker - yarayara ṣẹda eiyan kan, fun ni awọn ebute oko oju omi si ita, isokuso awọn faili eto ki o gbiyanju (eyi ni aṣayan pẹlu eiyan LetsEncrypt, ti o ba ti ni ijẹrisi tẹlẹ. , o kan nilo lati ṣe atunṣe aṣoju iyipada si olupin wẹẹbu FreePBX (a fun ni ibudo miiran jẹ 88), LetsEncrypt ni docker da lori Arokọ yi
O nilo lati ṣiṣe faili naa ni folda ise agbese ti o gbasilẹ (lẹhin git clone), ṣugbọn kọkọ wọle sinu awọn atunto ami akiyesi (folda aami akiyesi) ki o kọ awọn ọna si awọn igbasilẹ ati URL ti aaye rẹ nibẹ
Ti nginx ko ba bẹrẹ, lẹhinna nkan kan jẹ aṣiṣe pẹlu iṣeto ni folda nginx/ssl_docker.conf
Awọn akojọpọ miiran
Ati idi ti ko fi diẹ ninu awọn CRM sinu awọn iwe afọwọkọ ni akoko kanna, a ro. A ṣe iwadi ọpọlọpọ awọn API CRM miiran, paapaa PBX ti a ṣe sinu ọfẹ - ShugarCRM ati Vtiger, ati bẹẹni! bẹẹni, opo jẹ kanna. Ṣugbọn eyi jẹ itan miiran, eyiti a yoo gbejade nigbamii si github lọtọ.