Ukuqonda i-FreePBX nokuyihlanganisa ne-Bitrix24 nokuningi

I-Bitrix24 iyinhlanganisela enkulu ehlanganisa i-CRM, ukuhamba komsebenzi, ukubalwa kwezimali nezinye izinto eziningi abaphathi abazithandayo futhi abasebenzi be-IT abangazithandi ngempela. Ingosi isetshenziswa izinkampani eziningi ezincane neziphakathi, okuhlanganisa imitholampilo emincane, abakhiqizi kanye namasaluni wobuhle. Umsebenzi oyinhloko abaphathi "abawuthandayo" ukuhlanganiswa kocingo kanye ne-CRM, lapho noma iyiphi ikholi irekhodwa ngokushesha ku-CRM, amakhadi weklayenti ayakhiwa, lapho engenayo, ulwazi mayelana neklayenti luboniswa futhi ungabona ngokushesha ukuthi ungubani, ukuthi yini angadayisa nokuthi ukweleta malini. Kodwa ucingo oluvela ku-Bitrix24 nokuhlanganiswa kwayo ne-CRM kubiza imali, ngezinye izikhathi eningi. Esihlokweni ngizokutshela isipiliyoni sokuhlanganisa namathuluzi avulekile kanye ne-IP PBX ethandwayo Mahhala, futhi ucabange nokucabangela komsebenzi wezingxenye ezihlukahlukene

Ngisebenza njengomsebenzi wangaphandle enkampanini ethengisa futhi elungisayo, ehlanganisa ucingo lwe-IP. Lapho ngibuzwa ukuthi singanikeza okuthile yini kulokhu nokuthi le nkampani ihlanganise i-Bitrix24 nama-PBX amakhasimende anawo, kanye nama-PBX abonakalayo ezinkampanini ezihlukahlukene ze-VDS, ngaya ku-Google. Futhi-ke wanginika isixhumanisi isihloko ku-habr, lapho kunencazelo, kanye ne-github, futhi yonke into ibonakala isebenza. Kodwa lapho uzama ukusebenzisa lesi sixazululo, kwavela ukuthi i-Bitrix24 ayisafani nangaphambili, futhi kuningi okudinga ukwenziwa kabusha. Ngaphezu kwalokho, i-FreePBX akuyona inkanyezi engenalutho kuwe, lapha udinga ukucabanga ukuthi ungahlanganisa kanjani kalula ukusetshenziswa kanye ne-hardcore dialplan kumafayela okusetha.

Sifunda i-logic yomsebenzi

Ngakho-ke, okokuqala, konke kufanele kusebenze kanjani. Uma ucingo lutholwa ngaphandle kwe-PBX (i-SIP MEME umcimbi kumhlinzeki), ukucutshungulwa kwe-dialplan (uhlelo lokudayela, i-diaplan) kuyaqala - imithetho yokuthi yini nokuthi kwenziwa kanjani ngocingo. Kusukela ephaketheni lokuqala, ungathola ulwazi oluningi, olungase lusetshenziswe emithethweni. Ithuluzi elihle kakhulu lokufunda abangaphakathi be-SIP i-analyzer sngrep (isixhumanisi) evele ifakwe ekusabalaliseni okudumile nge-apt install/yum install nokunye okunjalo, kodwa ingakhiwa futhi isuka emthonjeni. Ake sibheke irekhodi lamakholi ku-sngrep

Ukuqonda i-FreePBX nokuyihlanganisa ne-Bitrix24 nokuningi

Ngefomu elenziwe lula, i-dialplan isebenzisana kuphela nephakethe lokuqala, ngezinye izikhathi futhi phakathi nengxoxo, izingcingo ziyadluliselwa, izinkinobho zokucindezela (i-DTMF), izinto ezihlukahlukene ezithakazelisayo njenge-FollowMe, RingGroup, IVR nezinye.

Yini engaphakathi kwephekhi yokumema

Ukuqonda i-FreePBX nokuyihlanganisa ne-Bitrix24 nokuningi

Empeleni, amapulani amaningi alula asebenza nezinkambu ezimbili zokuqala, futhi umqondo wonke uzungeza ku-DID kanye ne-CallerID. WENZE - lapho esifona khona, i-CallerID - oshayayo.

Kodwa emva kwakho konke, sinenkampani hhayi ifoni eyodwa - okusho ukuthi i-PBX cishe inamaqembu ezingcingo (ukukhala ngesikhathi esisodwa / okulandelanayo kwamadivayisi amaningana) ezinombolweni zedolobha (Iqembu Eliringi), IVR ( Sawubona, ushayele ... Cindezela eyodwa ye ...), Imishini yokuphendula ( Imisho), Izimo Zesikhathi, Ukudlulisela kwezinye izinombolo noma kuseli (FollowMe, Phambili). Lokhu kusho ukuthi kunzima kakhulu ukucacisa ngokungananazi ukuthi ubani ngempela ozothola ucingo nokuthi ubani ozoba nengxoxo uma ucingo lufika. Nasi isibonelo sokuqala kocingo olujwayelekile ku-PBX yamakhasimende ethu

Ukuqonda i-FreePBX nokuyihlanganisa ne-Bitrix24 nokuningi

Ngemva kokuba ucingo lungene ngempumelelo ku-PBX, ludabula i-diaplan "kwizimo". Umongo ngokombono we-Asterisk iyisethi yemiyalo enenombolo, ngayinye equkethe isihlungi ngenombolo edayeliwe (ibizwa ngokuthi i-exten, yocingo lwangaphandle esigabeni sokuqala exten=DID). Imiyalo kulayini we-diaplan ingaba yinoma yini - imisebenzi yangaphakathi (isibonelo, shayela obhalisile wangaphakathi - Dial(), beka ifoni phansi - Hangup()), ama-opharetha anemibandela (IF, ELSE, ExecIF nokunye), ukushintshela kweminye imithetho yalo mongo (Goto, GotoIF), ukushintshela kwezinye izimo ngendlela yocingo lomsebenzi (Gosub, Macro). Umyalelo ohlukile include имя_контекста, okwengeza imiyalo esuka komunye umongo kuze kube sekupheleni kwengqikithi yamanje. Imiyalo efakwe ngokufaka isetshenziswa njalo после imiyalo yengqikithi yamanje.

I-logic yonke ye-FreePBX yakhelwe ekufakweni kwezimo ezihlukene komunye nomunye ngokufaka nokushaya ucingo ngokusebenzisa izibambi ze-Gosub, Macro kanye ne-Handler. Cabangela umongo wezingcingo ezingenayo ze-FreePBX

Ukuqonda i-FreePBX nokuyihlanganisa ne-Bitrix24 nokuningi

Ucingo ludlula kuzo zonke izimo ukusuka phezulu kuye phansi ngokulandelana, kumongo ngamunye kungaba nezingcingo eziya kwezinye izimo ezifana nama-macros (Macro), imisebenzi (Gosub) noma izinguquko nje (Goto), ukuze umuthi wangempela walokho okubizwayo unga kuphela. kulandelelwe ezingodweni.

Umdwebo ojwayelekile wokusetha we-PBX ejwayelekile uboniswa ngezansi. Uma ushaya ucingo, i-DID iseshwa emizileni engenayo, izimo zesikhashana ziyahlolwa, uma konke kuhamba ngohlelo, imenyu yezwi iyaqaliswa. Kuyo, ngokucindezela inkinobho 1 noma ukuphela kwesikhathi, phumela eqenjini lama-opharetha okudayela. Ngemuva kokuphela kocingo, kubizwa i-hangupcall macro, ngemuva kwalokho akukho okungenziwa ku-diaplan, ngaphandle kwabaphathi abakhethekile (isibambi se-hangup).

Ukuqonda i-FreePBX nokuyihlanganisa ne-Bitrix24 nokuningi

Kuphi kule nqubo yekholi lapho kufanele sinikeze khona ulwazi mayelana nokuqala kwekholi ku-CRM, ukuthi siqale kuphi ukurekhoda, ukuthi kuqedwe kuphi ukurekhoda futhi sikuthumele kanye nolwazi olumayelana nekholi ku-CRM?

Ukuhlanganiswa nezinhlelo zangaphandle

Kuyini ukuhlanganiswa kwe-PBX ne-CRM? Lezi izilungiselelo nezinhlelo eziguqula idatha nemicimbi phakathi kwalezi zinkundla ezimbili futhi zithumele enye kwenye. Indlela ejwayelekile kakhulu yezinhlelo ezizimele zokuxhumana ngama-API, futhi indlela edume kakhulu yokufinyelela ama-API yi-HTTP REST. Kodwa hhayi okwenkanyezi.

Ngaphakathi kwenkanyezi kukhona:

  • I-AGI - ikholi evumelanisiwe ezinhlelweni / izingxenye zangaphandle, ezisetshenziswa ikakhulukazi ku-diaplan, kunemitapo yolwazi efana phpagi, PAGI

  • I-AMI - isokhethi yombhalo we-TCP esebenza ngesimiso sokubhalisa ezenzakalweni nokufaka imiyalo yombhalo, efana ne-SMTP kusuka ngaphakathi, ingakwazi ukulandelela imicimbi nokuphatha izingcingo, kukhona umtapo wezincwadi. I-PAMI - edume kakhulu ngokudala ukuxhumana nenkanyezi

Isibonelo sokuphuma kwe-AMI

Umcimbi: Isiteshi esisha
Ilungelo: shayelani, nonke
Isiteshi: PJSIP/VMS_pjsip-0000078b
Isimo Sesiteshi: 4
I-ChannelStateDesc: Khalisa
Inombolo yocingo: 111222
Inombolo yocingo: 111222
I-ConnectedLineNum:
igama lomugqa elixhunyiwe:
Ulimi: en
ikhodi ye-akhawunti:
Umongo: kusuka-pstn
Nweba: s
Okuza kuqala: 1
Okuhlukile: 1599589046.5244
Isixhumanisi: 1599589046.5244

  • I-ARI iyingxube yakho kokubili, konke nge-REST, WebSocket, ngefomethi ye-JSON - kodwa ngamalabhulali amasha nama- wrappers, akukuhle kakhulu, kutholwei-phparia, phpari) eyaqala ukukhula eminyakeni emi-3 edlule.

Isibonelo sokuphuma kwe-ARI uma ucingo luqaliswa

{ "variable":"CallMeCallerIDName", "value":"111222", "type":"ChannelVarset", "timestamp":"2020-09-09T09:38:36.269+0000", "channel":{ "id »:»1599644315.5334″, «igama»:»PJSIP/VMSpjsip-000007b6″, "state":"Ring", "caller":{ "name":"111222″, "number":"111222″ }, "connected":{"igama":"", "inombolo" :"" }, "accountcode":"", "dialplan":{ "context":"from-pstn", "exten":"s", "priority":2, "appigama":"Stasis", "appidatha":"sawubona-mhlaba" }, "isikhathi sokudala":"2020-09-09T09:38:35.926+0000", "ulimi":"zu" }, "asteriskid":"48:5b:aa:aa:aa:aa", "isicelo":"sawubona-mhlaba" }

Ukunethezeka noma ukuphazamiseka, ukuthi kungenzeka noma kungenzeki ukusebenza ne-API ethile kunqunywa imisebenzi okudingeka ixazululwe. Imisebenzi yokuhlanganiswa ne-CRM imi kanje:

  • Landelela isiqalo socingo, lapho ludluliselwe khona, khipha I-CallerID, DID, izikhathi zokuqala nezokuqeda, mhlawumbe idatha evela kuhla lwemibhalo (ukusesha ukuxhumana phakathi kwefoni nomsebenzisi we-CRM)

  • Qala futhi uqedele ukurekhodwa kocingo, lugcine ngendlela oyifunayo, yazisa ekupheleni kokuqopha lapho ifayela likhona.

  • Qalisa ucingo kumcimbi wangaphandle (ophuma ohlelweni), shayela inombolo yangaphakathi, inombolo yangaphandle bese uyixhuma

  • Ongakukhetha: hlanganisa ne-CRM, amaqembu okudayela kanye ne-FollowME ukuze udlulise izingcingo ngokuzenzakalelayo lapho ingekho indawo (ngokuvumelana ne-CRM)

Yonke le misebenzi ingaxazululwa nge-AMI noma i-ARI, kodwa i-ARI inikeza ulwazi oluncane kakhulu, azikho izehlakalo eziningi, okuguquguqukayo okuningi i-AMI esenayo (isibonelo, izingcingo ezinkulu, ukusetha okuguquguqukayo ngaphakathi kwama-macros, okuhlanganisa ukuqoshwa kwezingcingo) azilandelelwa. Ngakho-ke, ukuze uthole ukulandelela okulungile nokunembile, ake sikhethe i-AMI okwamanje (kodwa hhayi ngokuphelele). Ngaphezu kwalokho (kahle, bekungaba kuphi ngaphandle kwalokhu, singabantu abavilaphayo) - emsebenzini wokuqala (isihloko ku-habr) sebenzisa i-PAMI. *Khona-ke udinga ukuzama ukuphinda ubhalele ku-ARI, kodwa hhayi iqiniso lokuthi izosebenza.

Isungula kabusha ukuhlanganiswa

Ukuze i-FreePBX yethu ikwazi ukubika ku-AMI ngezindlela ezilula mayelana nokuqala kocingo, isikhathi sokuphela, izinombolo, amagama amafayela aqoshiwe, kulula kakhulu ukubala isikhathi socingo usebenzisa iqhinga elifanayo nababhali bokuqala. - faka okuguquguqukayo kwakho futhi uhlukanise okukhiphayo ngobukhona bazo. I-PAMI iphakamisa ukwenza lokhu kalula ngokusebenzisa umsebenzi wokuhlunga.

Nasi isibonelo sokusetha okwakho okuguquguqukayo ngesikhathi sokuqala kocingo (s iyinombolo ekhethekile kuhlelo lokudayela olwenziwa NGAPHAMBI kokuqala usesho lwe-DID)

[ext-did-custom]

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

Isibonelo somcimbi we-AMI walo mugqa

Umcimbi: Isiteshi esisha

Ilungelo: shayelani, nonke

Isiteshi: PJSIP/VMS_pjsip-0000078b

Isimo Sesiteshi: 4

I-ChannelStateDesc: Khalisa

Inombolo yocingo: 111222

Inombolo yocingo: 111222

I-ConnectedLineNum:

igama lomugqa elixhunyiwe:

Ulimi: en

ikhodi ye-akhawunti:

Umongo: kusuka-pstn

Nweba: s

Okuza kuqala: 1

Okuhlukile: 1599589046.5244

Isixhumanisi: 1599589046.5244

Isicelo: Setha i-AppData:

CallStart=1599571046

Ngoba i-FreePBX ibhala phezu kwamafayela e- extention.conf kanye ne- extention_extra.conf, sizosebenzisa ifayela ububanzi_Isiko.conf

Ikhodi egcwele 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

Isici kanye nomehluko ovela kuhlelo lokudayela lwangempela lwababhali be-athikili yoqobo -

  • I-Dialplan ngefomethi ye-.conf, njengoba i-FreePBX ikufuna (yebo, ingakwazi .ael, kodwa hhayi zonke izinguqulo futhi akulula ngaso sonke isikhathi)

  • Esikhundleni sokucubungula isiphetho nge-exten=>h, ukucutshungulwa kwethulwe nge-hangup_handler, ngoba i-FreePBX dialplan yasebenza ngayo kuphela.

  • Uchungechunge lwekholi yeskripthi esingaguquki, izingcaphuno ezengeziwe kanye nenombolo yocingo yangaphandle i-ExtNum

  • Ukucubungula kuthuthelwa _kokuqukethwe ngokwezifiso futhi kukuvumela ukuthi ungathinti noma uhlele izilungiselelo ze-FreePBX - ezingena nge-[okwenziwe ngokwesiko], ephumayo [eziphumayo-zonke izindlela-ngokwesiko]

  • Akukho ukubophezela ezinombolweni - ifayela likhona yonke indawo futhi lidinga ukulungiselelwa indlela kanye nesixhumanisi seseva.

Ukuze uqalise, udinga futhi ukusebenzisa imibhalo ku-AMI ngokungena ngemvume nephasiwedi - kulokhu, i-FreePBX futhi inefayela _custom

manager_custom.conf ifayela

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

Womabili lawa mafayela kufanele afakwe ku-/etc/asterisk, bese ufunda kabusha izilungiselelo (noma uqale kabusha inkanyezi)

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

Manje ake sidlulele ku-PHP

Ukuqalisa izikripthi nokudala isevisi

Njengoba uhlelo lokusebenza ne-Bitrix 24, isevisi ye-AMI, ayilula ngokuphelele futhi isobala, kufanele kuxoxwe ngayo ngokwehlukana. Inkanyezi, lapho i-AMI icushiwe, ivele ivule ichweba futhi kube yilokho. Uma iklayenti lijoyina, licela ukugunyazwa, bese iklayenti libhalisela izehlakalo ezidingekayo. Imicimbi iza ngombhalo ongenalutho, i-PAMI ewuguqulela ezintweni ezihlelekile futhi inikeze amandla okusetha umsebenzi wokuhlunga kuphela izehlakalo ezithakaselwayo, izinkambu, izinombolo, njll.

Ngokushesha nje lapho ucingo lungena, umcimbi we-NewExten uyaxoshwa kusukela kumongo womzali [kusuka ku-pstn], bese yonke imicimbi ihamba ngokulandelana kwemigqa kuzimo. Uma ulwazi lutholwa ku-CallMeCallerIDName kanye ne-CallStart eguquguqukayo ecaciswe ku-_custom dialplan,

  1. Umsebenzi wokucela i-UserID ehambisana nenombolo yesandiso lapho ikholi ifike khona. Kuthiwani uma kuyiqembu lokudayela? Umbuzo owombangazwe, ingabe udinga ukudala ikholi eya kuwo wonke umuntu ngesikhathi esisodwa (lapho wonke umuntu efona ngesikhathi esisodwa) noma udale njengoba befona lapho befona ngokushintshana? Amakhasimende amaningi anesu le-Fisrt Available, ngakho-ke ayikho inkinga ngalokhu, izingcingo zizodwa kuphela. Kodwa udaba ludinga ukuxazululwa.

  2. Umsebenzi wokubhalisa amakholi ku-Bitrix24, obuyisela i-CallID, edingekayo ukuze ubike imingcele yekholi kanye nesixhumanisi ekurekhodweni. Idinga inombolo yesandiso noma i-UserID

Ukuqonda i-FreePBX nokuyihlanganisa ne-Bitrix24 nokuningi

Ngemuva kokuphela kocingo, kubizwa umsebenzi wokulanda irekhodi, obika ngesikhathi esisodwa isimo sokuphothulwa kwekholi (Umatasa, Akukho mpendulo, Uphumelele), futhi ulanda isixhumanisi sefayela le-mp3 elinerekhodi (uma likhona).

Ngenxa yokuthi imojuli ye-CallMeIn.php idinga ukusebenza ngokuqhubekayo, ifayela lokuqalisa le-SystemD lidalelwe yona callme.service, okufanele ifakwe ku-/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 nokwethulwa kombhalo kwenzeka nge-systemctl noma isevisi

# systemctl enable callme
# systemctl start callme

Isevisi izoziqalisa kabusha njengoba kudingeka (uma kuba nokuphahlazeka). Isevisi yokulandelela ibhokisi lokungenayo ayidingi iseva yewebhu ukuthi ifakwe, i-php kuphela edingekayo (okuseva ye-FeePBX nakanjani). Kodwa uma kungekho ukufinyelela kumarekhodi ekholi ngeseva yeWebhu (futhi ne-https), ngeke kwenzeke ukulalela amarekhodi ekholi.

Manje ake sikhulume ngezingcingo eziphumayo. Iskripthi se-CallMeOut.php sinemisebenzi emibili:

  • Ukuqaliswa kocingo lapho isicelo samukelwa sombhalo we-php (okuhlanganisa nokusebenzisa inkinobho ethi "Shaya" ku-Bitrix ngokwayo). Akusebenzi ngaphandle kweseva yewebhu, isicelo sitholwa nge-HTTP POST, isicelo siqukethe ithokheni

  • Umlayezo mayelana nekholi, imingcele yayo namarekhodi ku-Bitrix. Ixoshwe yinkanyezi kuhlelo lokudayela [sub-call-internal-end] uma ucingo luphela

Ukuqonda i-FreePBX nokuyihlanganisa ne-Bitrix24 nokuningi

Iseva yewebhu idingeka kuphela ezintweni ezimbili - ukulanda amafayela okurekhoda e-Bitrix (nge-HTTPS) nokubiza iskripthi se-CallMeOut.php. Ungasebenzisa iseva ye-FreePBX eyakhelwe ngaphakathi, amafayela okuthi /var/www/html, ungafaka enye iseva noma ucacise indlela ehlukile.

Iseva yewebhu

Asishiye ukusethwa kweseva yewebhu ukuze sifunde ngokuzimele (tyts, tyts, tyts). Uma ungenaso isizinda, ungazama iFreeDomain( https://www.freenom.com/ru/index.html), okuzokunikeza igama lamahhala le-IP yakho emhlophe (ungakhohlwa ukudlulisa amachweba 80, 443 ngokusebenzisa umzila uma ikheli langaphandle likuyo kuphela). Uma usanda kwakhiwa isizinda se-DNS, kuzomele ulinde (kusuka emizuzwini eyi-15 ukuya emahoreni angama-48) kuze kulayishwe wonke amaseva. Ngokusho kokuhlangenwe nakho kokusebenza nabahlinzeki basekhaya - kusukela kuhora elingu-1 kuya ngosuku.

Ukufaka okuzenzakalelayo

Isifaki sakhiwe ku-github ukwenza ukufaka kube lula nakakhulu. Kodwa bekubushelelezi ephepheni - ngenkathi siyifaka yonke ngesandla, njengoba ngemuva kokucubungula konke lokhu kwacaca ukuthi yini abangani nobani, oya kuphi futhi kanjani ukuyilungisa. Asikho isifaki okwamanje

Docker

Uma ufuna ukuzama ngokushesha isisombululo - kukhona inketho nge-Docker - dala isitsha ngokushesha, usinikeze amachweba ngaphandle, slip amafayela wezilungiselelo bese uzama (lena inketho ngesiqukathi se-LetsEncrypt, uma usuvele unesitifiketi. , udinga nje ukuqondisa kabusha ummeleli ohlanekezelwe kuseva yewebhu ye-FreePBX (sinikeze enye imbobo engu-88), i-LetsEncrypt kudocker ngokusekelwe Lesi sihloko

Udinga ukusebenzisa ifayela kufolda yephrojekthi elandiwe (ngemuva kwe-git clone), kodwa qala ungene kuma-asterisk configs (ifolda yenkanyezi) bese ubhala izindlela eziya kumarekhodi kanye ne-URL yesayithi lakho lapho.

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:

Leli fayela le-docker-compose.yaml lisetshenziswa nge

docker-compose up -d

Uma i-nginx ingaqali, khona-ke kukhona okungalungile ngokumisa kufolda ye-nginx/ssl_docker.conf

Okunye ukuhlanganiswa

Futhi kungani singafaki i-CRM ethile emibhalweni ngasikhathi sinye, sacabanga. Sifunde amanye ama-CRM API ambalwa, ikakhulukazi i-PBX eyakhelwe ngaphakathi yamahhala - iShugarCRM ne-Vtiger, futhi yebo! yebo, isimiso siyefana. Kodwa lena enye indaba, esizoyilayisha kamuva ku-github ngokwehlukana.

izithenjwa

Umusho wokuzihlangula: Noma yikuphi ukufana neqiniso kuyinganekwane futhi kwakungemina.

Source: www.habr.com

Engeza amazwana