A’ tuigsinn FreePBX agus ga fhilleadh a-steach le Bitrix24 agus barrachd

Bitrix24 na mheasgachadh mòr a tha a’ cothlamadh CRM, sruth-obrach, cunntasachd agus mòran rudan eile a tha a’ còrdadh ri manaidsearan agus nach toil le luchd-obrach IT. Tha am portal air a chleachdadh le mòran de chompanaidhean beaga is meadhanach, a’ toirt a-steach clionaigean beaga, luchd-saothrachaidh agus eadhon salons bòidhchead. Is e am prìomh ghnìomh a tha manaidsearan “gaol” amalachadh fòn agus CRM, nuair a thèid gairm sam bith a chlàradh sa bhad ann an CRM, thèid cairtean teachdaiche a chruthachadh, nuair a thig iad a-steach, tha fiosrachadh mun neach-dèiligidh air a thaisbeanadh agus chì thu sa bhad cò e, dè a th ’ann. a reic agus cia meud a tha aige. Ach tha fònadh bho Bitrix24 agus an aonachadh le CRM a 'cosg airgead, uaireannan tòrr. Anns an artaigil innsidh mi dhut an eòlas air a bhith ag amalachadh le innealan fosgailte agus an IP PBX mòr-chòrdte PBX saor an asgaidh, agus cuideachd beachdaich air loidsig obair diofar phàirtean

Bidh mi ag obair mar neach-reic taobh a-muigh ann an companaidh a bhios a’ reic agus a’ rèiteachadh, ag aonachadh fònadh IP. Nuair a chaidh faighneachd dhomh am b’ urrainn dhuinn rudeigin a thabhann dha seo agus don chompanaidh seo gus Bitrix24 fhilleadh a-steach le PBXn a tha aig luchd-ceannach, a bharrachd air le PBXan brìgheil air diofar chompanaidhean VDS, chaidh mi gu Google. Agus gu dearbh thug e ceangal dhomh gu artaigil ann an habr, far a bheil tuairisgeul, agus github, agus tha coltas gu bheil a h-uile càil ag obair. Ach nuair a dh'fheuchas tu ris an fhuasgladh seo a chleachdadh, thionndaidh e a-mach nach eil Bitrix24 mar a bha e roimhe, agus feumar mòran ath-nuadhachadh. A bharrachd air an sin, chan e rionnag lom a th’ ann an FreePBX dhut, an seo feumaidh tu smaoineachadh air mar as urrainn dhut furasta a chleachdadh agus plana dial cruaidh a thoirt còmhla ann am faidhlichean config.

Bidh sinn a’ sgrùdadh loidsig na h-obrach

Mar sin airson tòiseachadh, mar a bu chòir dha uile obrachadh. Nuair a gheibhear fios bho thaobh a-muigh an PBX (tachartas SIP INVITE bhon t-solaraiche), tòisichidh giullachd dialplan (plana dial, dialplan) - na riaghailtean air dè agus dè an òrdugh a bu chòir a dhèanamh leis a ’ghairm. Bhon chiad phacaid, gheibh thu tòrr fiosrachaidh, a dh'fhaodar a chleachdadh an uairsin anns na riaghailtean. Is e inneal sàr-mhath airson sgrùdadh a dhèanamh air taobh a-staigh SIP an anailisiche sngrep (ceangal) a tha dìreach air a chuir a-steach ann an sgaoilidhean mòr-chòrdte tro apt install / yum install agus an leithid, ach faodar a thogail bhon stòr cuideachd. Bheir sinn sùil air an logadh a-steach gairm sngrep

A’ tuigsinn FreePBX agus ga fhilleadh a-steach le Bitrix24 agus barrachd

Ann an cruth nas sìmplidhe, bidh am plana dial a’ dèiligeadh ris a’ chiad phacaid a-mhàin, uaireannan cuideachd tron ​​​​chòmhradh, thèid fiosan a ghluasad, brùth putan (DTMF), grunn rudan inntinneach leithid FollowMe, RingGroup, IVR agus feadhainn eile.

Na tha am broinn a’ Phasgan Cuireadh

A’ tuigsinn FreePBX agus ga fhilleadh a-steach le Bitrix24 agus barrachd

Gu fìrinneach, bidh a ’mhòr-chuid de phlanaichean dial sìmplidh ag obair leis a’ chiad dà raon, agus tha an loidsig gu lèir a ’dol timcheall DID agus CallerID. DID - far a bheil sinn a 'gairm, CallerID - cò tha a' gairm.

Ach às deidh a h-uile càil, tha companaidh againn agus chan e aon fhòn - a tha a ’ciallachadh gu bheil e nas coltaiche gu bheil buidhnean gairm aig PBX (glaodhadh grunn innealan aig an aon àm / leantainneach) air àireamhan baile-mòr (Ring Group), IVR (Hello, dh’ ainmich thu ... Press aon airson ...), Innealan freagairt (Abairtean), Suidheachadh Ùine, Air adhart gu àireamhan eile no gu cealla (FollowMe, Forward). Tha seo a’ ciallachadh gu bheil e gu math duilich co-dhùnadh gun teagamh cò dha-rìribh a gheibh fios agus cò ris a bhios còmhradh nuair a thig fios. Seo eisimpleir de thoiseach gairm àbhaisteach ann am PBX ar luchd-dèiligidh

A’ tuigsinn FreePBX agus ga fhilleadh a-steach le Bitrix24 agus barrachd

Às deidh a ’ghairm a dhol a-steach don PBX gu soirbheachail, bidh e a’ siubhal tron ​​​​chlàr dial ann an diofar “cho-theacsan”. Is e an co-theacsa bho shealladh Rionnag seata òrdughan le àireamh, agus tha criathrag anns gach fear dhiubh leis an àireamh dialed (canar exten ris, airson gairm bhon taobh a-muigh aig a’ chiad ìre exten = DID). Faodaidh na h-òrdughan anns an loidhne dialplan a bhith mar rud sam bith - gnìomhan a-staigh (mar eisimpleir, cuir fios gu neach-clàraidh a-staigh - Dial(), cuir am fòn sìos - Hangup()), gnìomhaichean cumhach (IF, ELSE, ExecIF agus an leithid), eadar-ghluasadan gu riaghailtean eile den cho-theacsa seo (Goto, GotoIF), gluasad gu co-theacsan eile ann an cruth gairm gnìomh (Gosub, Macro). Stiùireadh air leth include имя_контекста, a chuireas òrdughan bho cho-theacs eile gu deireadh a’ cho-theacsa làithreach. Bidh òrdughan air an toirt a-steach tro bhith a’ toirt a-steach an-còmhnaidh air an cur an gnìomh после òrdughan den cho-theacsa làithreach.

Tha loidsig iomlan FreePBX air a thogail air a bhith a’ toirt a-steach diofar cho-theacsan a-steach dha chèile tro bhith a’ toirt a-steach agus a’ gairm tro luchd-làimhseachaidh Gosub, Macro agus Handler. Beachdaich air co-theacsa gairmean FreePBX a tha a’ tighinn a-steach

A’ tuigsinn FreePBX agus ga fhilleadh a-steach le Bitrix24 agus barrachd

Bidh an gairm a’ dol tro gach co-theacsa bho mhullach gu bonn mu seach, anns gach co-theacsa faodaidh fiosan a bhith ann gu co-theacsan eile leithid macros (Macro), gnìomhan (Gosub) no dìreach eadar-ghluasadan (Goto), agus mar sin chan urrainn dha fìor chraobh na tha air ainmeachadh. a bhith air a leantainn anns na clàran.

Tha diagram rèiteachaidh àbhaisteach airson PBX àbhaisteach ri fhaicinn gu h-ìosal. Nuair a bhios tu a ’gairm, thathas a’ sgrùdadh DID ann an slighean a tha a ’tighinn a-steach, thathas a’ sgrùdadh suidheachaidhean sealach air a shon, ma tha a h-uile dad ann an òrdugh, thèid an clàr guth a chuir air bhog. Às an sin, le putadh air a’ phutan 1 no ùine a-mach, fàg chun bhuidheann de ghnìomhaichean dial. Às deidh don ghairm crìochnachadh, canar macro hangupcall ris, às deidh sin chan urrainnear dad a dhèanamh anns a ’phlana dial, ach a-mhàin làimhseachadh sònraichte (làimhseachaidh hangup).

A’ tuigsinn FreePBX agus ga fhilleadh a-steach le Bitrix24 agus barrachd

Càite anns an algairim gairm seo am bu chòir dhuinn fiosrachadh a thoirt seachad mu thoiseach a’ ghairm gu CRM, càite an tòisich sinn air clàradh, càite an cuir sinn crìoch air a’ chlàradh agus a chuir sinn còmhla ri fiosrachadh mun ghairm gu CRM?

Amalachadh le siostaman taobh a-muigh

Dè a th’ ann an amalachadh PBX agus CRM? Is iad seo suidheachaidhean agus prògraman a thionndaidheas dàta agus tachartasan eadar an dà àrd-ùrlar seo agus gan cur gu chèile. Is e API an dòigh as cumanta air siostaman neo-eisimeileach conaltradh a dhèanamh, agus is e HTTP REST an dòigh as mòr-chòrdte air faighinn gu APIan. Ach chan ann airson asterisk.

Taobh a-staigh Asterisk tha:

  • AGI - gairm sioncronaich de phrògraman / co-phàirtean taobh a-muigh, air a chleachdadh sa mhòr-chuid anns a’ phlana dial, tha leabharlannan mar phpagi, PAGI

  • AMI - socaid TCP teacsa a bhios ag obair air a’ phrionnsapal airson ballrachd a thoirt do thachartasan agus cuir a-steach òrdughan teacsa, coltach ri SMTP bhon taobh a-staigh, as urrainn sùil a chumail air tachartasan agus smachd a chumail air fiosan, tha leabharlann ann PAMI - an fheadhainn as mòr-chòrdte airson ceangal a chruthachadh le Asterisk

Eisimpleir toradh AMI

Tachartas: sianal ùr
Sochair: gairm, uile
Sianal: PJSIP/VMS_pjsip-0000078b
Stàite sianal: 4
ChannelStateDesc: Cearcall
Àireamh a' Chlàir: 111222
Ainm an neach-gairm: 111222
Loidhne CeangailteNum:
Ainm loidhne ceangailte:
Cànan: en
còd cunntais:
Co-theacsa: bho-pstn
Leudachadh: s
Prìomhachas: 1
Gun samhail: 1599589046.5244
Ceangal: 1599589046.5244

  • Tha ARI na mheasgachadh den dà chuid, uile tro REST, WebSocket, ann an cruth JSON - ach le leabharlannan ùra agus pasgain, gun a bhith glè mhath, lorgar neo-làimh (phparia, phpari) a thàinig gu bhith nan leasachadh mu 3 bliadhna air ais.

Eisimpleir de thoradh ARI nuair a thèid gairm a thòiseachadh

{ "variable": "CallMeCallerIDName", "value":" 111222", "type": "ChannelVarset", "timestamp":" 2020-09-09T09:38:36.269+0000", "channel":{ "id »:» 1599644315.5334 ″, «ainm»:»PJSIP/VMSpjsip-000007b6″, "state": "Cuir fàinne", "neach-gairm":{ "name":" 111222″, "àireamh":" 111222″ }, "ceangailte":{ "name":"", "àireamh" : " " }, "còd a' chunntais" : "", "dialplan":{ "context": "bho-pstn", "exten": "s", "prìomhachas": 2, "appname":" Stasis", "appdata": "hello-world" }, "creationtime":" 2020-09-09T09:38:35.926+0000", "language": "en" }, "rionnagid":" 48:5b: aa:aa:aa:aa", "app": "hello-world" }

Tha goireasachd no mì-ghoireasachd, comasachd no neo-chomasachd a bhith ag obair le API sònraichte air a dhearbhadh leis na gnìomhan a dh’ fheumar fhuasgladh. Tha na gnìomhan airson amalachadh le CRM mar a leanas:

  • Cum sùil air toiseach a’ ghairm, far an deach a ghluasad, tarraing a-mach CallerID, DID, amannan tòiseachaidh is crìochnachaidh, is dòcha dàta bhon eòlaire (gus lorg ceangal eadar am fòn agus an neach-cleachdaidh CRM)

  • Tòisich agus cuir crìoch air clàradh a ’ghairm, sàbhail e anns a’ chruth a tha thu ag iarraidh, cuir fios aig deireadh a ’chlàraidh far a bheil am faidhle suidhichte

  • Tòisich gairm air tachartas taobh a-muigh (bhon phrògram), cuir fios gu àireamh a-staigh, àireamh taobh a-muigh agus ceangail iad

  • Roghainneil: amalachadh le CRM, buidhnean dialer agus FollowME airson gairmean a ghluasad gu fèin-ghluasadach às aonais àite (a rèir CRM)

Faodar na gnìomhan sin uile fhuasgladh tro AMI no ARI, ach tha ARI a’ toirt seachad mòran nas lugha de dh’ fhiosrachadh, chan eil mòran thachartasan ann, chan eilear a’ cumail sùil air mòran chaochladairean a tha aig AMI (mar eisimpleir, macro ghairmean, suidheachadh caochladairean taobh a-staigh macros, a’ toirt a-steach clàradh ghairmean). Mar sin, airson tracadh ceart agus ceart, tagh sinn AMI airson a-nis (ach chan ann gu tur). A bharrachd air an sin (uill, càite am biodh e às aonais seo, is e daoine leisg a th’ annainn) - anns an obair thùsail (artaigil ann an habr) Cleachd PAMI. *An uairsin feumaidh tu feuchainn ri ath-sgrìobhadh gu ARI, ach chan e an fhìrinn gun obraich e.

Ag ath-nuadhachadh amalachadh

Gus am bi an FreePBX againn comasach air aithris gu AMI ann an dòighean sìmplidh mu thoiseach a’ ghairm, an ùine crìochnachaidh, àireamhan, ainmean fhaidhlichean clàraichte, tha e nas fhasa fad a’ ghairm obrachadh a-mach a’ cleachdadh an aon chleas ris na h-ùghdaran tùsail. - cuir a-steach na caochladairean agad agus rannsaich an toradh airson an làthaireachd. Tha PAMI a’ moladh seo a dhèanamh dìreach tro ghnìomh sìoltachain.

Seo eisimpleir de bhith a’ suidheachadh an caochladair agad fhèin airson àm tòiseachaidh na gairm (s e àireamh sònraichte anns a’ phlana dial a thèid a dhèanamh mus tòisich thu air an rannsachadh DID)

[ext-did-custom]

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

Eisimpleir de thachartas AMI airson na loidhne seo

Tachartas: sianal ùr

Sochair: gairm, uile

Sianal: PJSIP/VMS_pjsip-0000078b

Stàite sianal: 4

ChannelStateDesc: Cearcall

Àireamh a' Chlàir: 111222

Ainm an neach-gairm: 111222

Loidhne CeangailteNum:

Ainm loidhne ceangailte:

Cànan: en

còd cunntais:

Co-theacsa: bho-pstn

Leudachadh: s

Prìomhachas: 1

Gun samhail: 1599589046.5244

Ceangal: 1599589046.5244

Iarrtas: Suidhich AppData:

CallStart=1599571046

Leis gu bheil FreePBX a’ sgrìobhadh thairis air na faidhlichean extention.conf agus extention_additional.conf, cleachdaidh sinn am faidhle leudachadh_custom.conf

Còd slàn de 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

Feart agus eadar-dhealachadh bhon chlàr dial tùsail aig ùghdaran an artaigil thùsail -

  • Dialplan ann an cruth .conf, mar a tha FreePBX ga iarraidh (tha, faodaidh e .ael, ach chan eil a h-uile dreach agus chan eil e an-còmhnaidh goireasach)

  • An àite a bhith a' giullachd a' chrìoch tro exten=>h, chaidh giullachd a thoirt a-steach tro hangup_handler, oir dh'obraich an dialplan FreePBX leis a-mhàin

  • Sreang gairm sgriobt stèidhichte, luachan a bharrachd agus àireamh gairm taobh a-muigh ExtNum

  • Tha giullachd air a ghluasad gu co-theacsan _custom agus a’ leigeil leat gun a bhith a’ suathadh no a’ deasachadh configs FreePBX - a’ tighinn a-steach tro [ext-rinn-custom], a-mach tro [outbound-allroutes-custom]

  • Gun cheangal ri àireamhan - tha am faidhle uile-choitcheann agus chan fheumar a rèiteachadh ach airson an t-slighe agus ceangal ris an fhrithealaiche

Gus tòiseachadh, feumaidh tu cuideachd sgriobtaichean a ruith ann an AMI le logadh a-steach agus facal-faire - airson seo, tha faidhle _custom aig FreePBX cuideachd

manaidsear_custom.conf faidhle

;;  это логин
[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

Feumaidh an dà fhaidhle seo a bhith air an cur ann an /etc/asterisk, an uairsin leugh na configs a-rithist (no ath-thòisich an rionnag)

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

A-nis gluaisidh sinn air adhart gu PHP

A’ tòiseachadh sgriobtaichean agus a’ cruthachadh seirbheis

Leis nach eil an sgeama airson a bhith ag obair le Bitrix 24, seirbheis airson AMI, gu tur sìmplidh agus follaiseach, feumar a dheasbad air leth. Bidh rionnag, nuair a thèid AMI a chuir an gnìomh, dìreach a ’fosgladh a’ phort agus sin e. Nuair a thig neach-dèiligidh còmhla, bidh e ag iarraidh cead, an uairsin bidh an neach-dèiligidh a’ gabhail ris na tachartasan riatanach. Bidh tachartasan a’ tighinn ann an teacsa shìmplidh, a bhios PAMI a’ tionndadh gu bhith nan nithean structaraichte agus a’ toirt comas an gnìomh sìolaidh a shuidheachadh a-mhàin airson tachartasan inntinneach, raointean, àireamhan, msaa.

Cho luath ‘s a thig an gairm a-steach, thèid an tachartas NewExten a losgadh a’ tòiseachadh bhon cho-theacsa pàrant [bho-pstn], an uairsin bidh a h-uile tachartas a ’dol ann an òrdugh nan loidhnichean anns na co-theacsan. Nuair a gheibhear fiosrachadh bho na caochladairean CallMeCallerIDName agus CallStart a tha air an sònrachadh anns a’ phlana dial _custom, bidh an

  1. An gnìomh a bhith ag iarraidh an UserID a rèir an àireamh leudachaidh far an tàinig a’ ghairm. Dè mas e buidheann dial-up a th’ ann? Tha a’ cheist poilitigeach, am feum thu gairm a chruthachadh don h-uile duine aig an aon àm (nuair a bhios a h-uile duine a’ gairm aig an aon àm) no cruthaich mar a chanas iad nuair a bhios tu a’ gairm mu seach? Tha an ro-innleachd Fisrt Available aig a’ mhòr-chuid de luchd-dèiligidh, agus mar sin chan eil duilgheadas ann le seo, dìreach aon ghairm. Ach feumar a’ chùis a rèiteach.

  2. An gnìomh clàraidh gairm ann am Bitrix24, a thilleas an CallID, a dh’ fheumas an uairsin cunntas a thoirt air paramadairean gairm agus ceangal ris a’ chlàradh. Feumaidh an dàrna cuid àireamh leudachaidh no ID User

A’ tuigsinn FreePBX agus ga fhilleadh a-steach le Bitrix24 agus barrachd

Às deidh deireadh a ’ghairm, canar an gnìomh luchdachadh sìos clàr, a bhios aig an aon àm ag aithris inbhe crìochnachaidh a’ ghairm (Trang, Gun fhreagairt, Soirbheachas), agus cuideachd a ’luchdachadh sìos ceangal chun fhaidhle mp3 leis a’ chlàr (ma tha sin ann).

Leis gu feum am modal CallMeIn.php ruith gu leantainneach, chaidh faidhle tòiseachaidh SystemD a chruthachadh air a shon seirbheis. callme, a dh'fheumas a bhith air a chur ann /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

bidh tòiseachadh agus cur air bhog an sgriobt a’ tachairt tro systemctl no seirbheis

# systemctl enable callme
# systemctl start callme

Bidh an t-seirbheis ag ath-thòiseachadh mar a dh ’fheumar (ma tha tubaistean ann). Chan fheum an t-seirbheis tracadh bogsa a-steach frithealaiche lìn a chuir a-steach, chan eil a dhìth ach php (a tha gu cinnteach air frithealaiche FeePBX). Ach às aonais ruigsinneachd air clàran gairm tron ​​​​t-seirbheisiche lìn (cuideachd le https), cha bhith e comasach èisteachd ri clàran gairm.

A-nis bruidhnidh sinn mu dheidhinn gairmean a-mach. Tha dà ghnìomh aig sgriobt CallMeOut.php:

  • A’ tòiseachadh gairm nuair a gheibhear iarrtas airson sgriobt php (a’ toirt a-steach cleachdadh a’ phutan “Call” anns a’ Bitrix fhèin). Chan obraich e às aonais frithealaiche lìn, gheibhear an t-iarrtas tro HTTP POST, tha comharradh anns an iarrtas

  • Teachdaireachd mun ghairm, na crìochan agus na clàran ann am Bitrix. Air a losgadh le Asterisk anns a’ phlana dial [fo-ghairm a-staigh] nuair a thig gairm gu crìch

A’ tuigsinn FreePBX agus ga fhilleadh a-steach le Bitrix24 agus barrachd

Chan eil feum air an fhrithealaiche lìn ach airson dà rud - a 'luchdachadh sìos faidhlichean clàraidh Bitrix (tro HTTPS) agus a' gairm an sgriobt CallMeOut.php. Faodaidh tu am frithealaiche FreePBX togte a chleachdadh, is iad na faidhlichean airson /var/www/html, is urrainn dhut frithealaiche eile a stàladh no slighe eile a shònrachadh.

Frithealaiche lìn

Fàgaidh sinn suidheachadh an fhrithealaiche lìn airson sgrùdadh neo-eisimeileach (tyts, tyts, tyts). Mura h-eil àrainn agad, faodaidh tu feuchainn air FreeDomain( https://www.freenom.com/ru/index.html), a bheir dhut ainm an-asgaidh airson an IP geal agad (na dì-chuimhnich gun cuir thu air adhart puirt 80, 443 tron ​​​​rothadair ma tha an seòladh a-muigh dìreach air). Ma tha thu dìreach air àrainn DNS a chruthachadh, feumaidh tu feitheamh (bho 15 mionaidean gu 48 uairean) gus am bi na frithealaichean uile air an luchdachadh. A rèir an eòlas a bhith ag obair le solaraichean dachaigheil - bho 1 uair gu latha.

Stàladh fèin-obrachail

Chaidh stàlaichear a leasachadh air github gus an stàladh a dhèanamh eadhon nas fhasa. Ach bha e rèidh air pàipear - fhad ‘s a tha sinn ga chuir a-steach le làimh, oir às deidh dhuinn a bhith a’ tinkering leis a h-uile càil seo dh ’fhàs e soilleir dè a th’ ann an caraidean cò leis, cò a thèid càite agus ciamar a nì thu dì-bhugachadh air. Chan eil stàlaichear ann fhathast

Docker

Ma tha thu airson am fuasgladh fheuchainn gu sgiobalta - tha roghainn ann le Docker - cruthaich soitheach gu sgiobalta, thoir puirt chun an taobh a-muigh, sleamhnaich na faidhlichean roghainnean agus feuch (is e seo an roghainn leis an inneal LetsEncrypt, ma tha teisteanas agad mu thràth , chan fheum thu ach an neach-ionaid cùil ath-stiùireadh gu frithealaiche lìn FreePBX (thug sinn port eile dha 88), LetsEncrypt ann an docker stèidhichte air den artaigil seo

Feumaidh tu am faidhle a ruith ann am pasgan a’ phròiseict a chaidh a luchdachadh sìos (às deidh git clone), ach an-toiseach faighinn a-steach do na configs rionnag (pasgan rionnag) agus sgrìobh na slighean gu na clàran agus URL na làraich agad an sin

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:

Tha am faidhle docker-compose.yaml seo air a ruith tro

docker-compose up -d

Mura tòisich nginx, tha rudeigin ceàrr air an rèiteachadh sa phasgan nginx/ssl_docker.conf

Amalachadh eile

Agus carson nach cuir thu beagan CRM ann an sgriobtaichean aig an aon àm, shaoil ​​​​sinn. Rinn sinn sgrùdadh air grunn APIan CRM eile, gu sònraichte am PBX togte an-asgaidh - ShugarCRM agus Vtiger, agus tha! tha, tha am prionnsabal mar an ceudna. Ach is e sgeulachd eile a tha seo, a bhios sinn nas fhaide air adhart air a luchdachadh suas chun github air leth.

iomraidhean

Àicheadh: Tha coltas sam bith air fìrinn meallta agus cha b’ e mise a bh’ ann.

Source: www.habr.com

Cuir beachd ann