Ịghọta FreePBX na ijikọ ya na Bitrix24 na ndị ọzọ

Bitrix24 bụ nnukwu mkpokọta na-ejikọta CRM, usoro ọrụ, ndekọ ego na ọtụtụ ihe ndị ọzọ na-amasị ndị njikwa na ndị ọrụ IT anaghị amasị ya. A na-eji ọnụ ụzọ ahụ eme ihe site n'ọtụtụ ụlọ ọrụ dị nta na nke ọkara, gụnyere obere ụlọ ọgwụ, ndị na-emepụta ihe na ọbụna ụlọ mposi mara mma. Ọrụ bụ isi nke ndị njikwa "ịhụnanya" bụ njikọ nke telephony na CRM, mgbe a na-edekọ oku ọ bụla ozugbo na CRM, a na-emepụta kaadị ndị ahịa, mgbe ọ na-abata, a na-egosipụta ozi gbasara onye ahịa na ị nwere ike ịhụ onye ọ bụ ozugbo, ihe ọ nwere ike ire na ole o ji. Mana ekwentị sitere na Bitrix24 yana njikọta ya na CRM na-efu ego, mgbe ụfọdụ ọ na-arị elu. N'isiokwu a, m ga-agwa gị ahụmahụ nke ijikọta na ngwá ọrụ na-emeghe na IP PBX na-ewu ewu freepbx, ma tụleekwa ezi uche nke ọrụ nke akụkụ dị iche iche

M na-arụ ọrụ dị ka outsourcer na ụlọ ọrụ na-ere na configures, integrates IP telephony. Mgbe a jụrụ m ma anyị nwere ike ịnye ihe a na ụlọ ọrụ a iji jikọta Bitrix24 na PBX ndị ahịa nwere, yana PBX mebere na ụlọ ọrụ VDS dị iche iche, agara m Google. Na n'ezie o nyere m njikọ edemede na habr, ebe enwere nkọwa, na github, na ihe niile yiri ka ọ na-arụ ọrụ. Mana mgbe ị na-agbalị iji ngwọta a, ọ bịara bụrụ na Bitrix24 adịkwaghị ka ọ dị na mbụ, na ọ dị mkpa ka emegharịa ọtụtụ ihe. Na mgbakwunye, FreePBX abụghị akara ngosi efu maka gị, ebe a ịkwesịrị iche echiche maka otu esi ejikọta ịdị mfe nke iji yana dialplan hardcore na faịlụ nhazi.

Anyị na-amụ mgbagha nke ọrụ

Ya mere, maka mmalite, ka ọ ga-esi arụ ọrụ niile. Mgbe a na-enweta oku site na mpụga PBX (ihe omume SIP INVITE sitere na onye na-eweta ya), nhazi nke dialplan (atụmatụ ọkpụkpọ, dialplan) na-amalite - iwu nke ihe na ihe iji mee oku ahụ. Site na ngwugwu mbụ, ị nwere ike nweta ọtụtụ ozi, nke enwere ike iji mee ihe na iwu. Ngwá ọrụ dị mma maka ịmụ ihe internals nke SIP bụ onye nyocha sngrep (ngalaba) nke a na-etinye na nkesa na-ewu ewu site na apt install/yum install na ihe ndị yiri ya, mana enwere ike wulite ya site na isi mmalite. Ka anyị lelee ndekọ oku na sngrep

Ịghọta FreePBX na ijikọ ya na Bitrix24 na ndị ọzọ

N'ụdị dị mfe, dialplan na-emekọ naanị na ngwugwu mbụ, mgbe ụfọdụ kwa mgbe a na-akparịta ụka, a na-ebugharị oku, ịpị bọtịnụ (DTMF), ihe dị iche iche na-atọ ụtọ dị ka FollowMe, RingGroup, IVR na ndị ọzọ.

Kedu ihe dị n'ime ngwugwu òkù

Ịghọta FreePBX na ijikọ ya na Bitrix24 na ndị ọzọ

N'ezie, ọtụtụ ngwa dialplans dị mfe na-arụ ọrụ na mpaghara abụọ mbụ, na mgbagha dum na-adabere na DID na CallerID. Emere - ebe anyị na-akpọ, CallerID - onye na-akpọ.

Ma mgbe niile, anyị nwere ụlọ ọrụ na ọ bụghị otu ekwentị - nke pụtara na PBX yikarịrị ka nwere oku na-akpọ otu (otu oge / consecutive ringing nke ọtụtụ ngwaọrụ) na obodo nọmba (Ring Group), IVR (Ndewo, ị na-akpọ ... Pịa. otu maka ...), Igwe na-aza (Akaraokwu), Ọnọdụ oge, na-ebugharị na ọnụọgụ ndị ọzọ ma ọ bụ na cell (FollowMe, Forward). Nke a pụtara na ọ na-esiri ike ikpebi onye ga-anata oku n'ezie yana onye ga-enwe mkparịta ụka mgbe oku rutere. Nke a bụ ọmụmaatụ mmalite nke oku a na-ahụkarị na PBX nke ndị ahịa anyị

Ịghọta FreePBX na ijikọ ya na Bitrix24 na ndị ọzọ

Mgbe oku a batara nke ọma na PBX, ọ na-aga site na dialplan na "ọnọdụ" dị iche iche. Ihe gbara ya gburugburu site na echiche nke akara mmuke bụ usoro iwu nwere nọmba, nke ọ bụla nwere nzacha site na nọmba akpọrọ (a na-akpọ ya exten, maka oku mpụga na mbido mbụ exten = DID). Iwu ndị dị na ahịrị ọkpụkpọ nwere ike ịbụ ihe ọ bụla - ọrụ ime (dịka ọmụmaatụ, kpọọ onye debanyere aha n'ime - Dial(), tinye ekwentị ala - Hangup()), ndị ọrụ ọnọdụ (IF, ELSE, ExecIF na ihe ndị yiri ya), ntụgharị gaa na iwu ndị ọzọ nke ọnọdụ a (Goto, GotoIF), mgbanwe gaa na ọnọdụ ndị ọzọ n'ụdị oku ọrụ (Gosub, Macro). Ntuziaka dị iche include имя_контекста, nke na-agbakwụnye iwu site na ọnọdụ ọzọ ruo na njedebe nke ọnọdụ dị ugbu a. Iwu agụnyere site na-agụnye na-eme ihe mgbe niile после iwu nke ọnọdụ dị ugbu a.

Ewubere echiche niile nke FreePBX na ntinye nke ọnọdụ dị iche iche n'ime ibe ya site na ịgụnye na ịkpọ site na Gosub, Macro na Handler handlers. Tụlee ọnọdụ oku FreePBX na-abata

Ịghọta FreePBX na ijikọ ya na Bitrix24 na ndị ọzọ

Oku na-aga site n'akụkụ niile site n'elu ruo na ala n'aka nke ọ bụla, n'ọnọdụ ọ bụla enwere ike ịkpọ oku na ọnọdụ ndị ọzọ dị ka macros (Macro), ọrụ (Gosub) ma ọ bụ naanị ntụgharị (Goto), ya mere ezigbo osisi nke ihe a na-akpọ nwere ike naanị. a ga-esoro na ndekọ.

E gosipụtara eserese ntọlite ​​n'ụdị maka PBX a na-ahụkarị n'okpuru. Mgbe ị na-akpọ, a na-achọ DID na ụzọ mbata, a na-enyocha ọnọdụ nwa oge maka ya, ọ bụrụ na ihe niile dị n'usoro, a na-ewepụta menu olu. Site na ya, site na ịpị bọtịnụ 1 ma ọ bụ nkwụsị oge, pụọ na otu ndị na-arụ ọrụ ọkpụkpọ. Mgbe oku ahụ kwụsịrị, a na-akpọ macro hangupcal, mgbe nke ahụ gasịrị, ọ dịghị ihe ọ bụla nwere ike ime na dialplan, ma e wezụga ndị na-ahụ maka ihe pụrụ iche (onye na-ahụ maka hangup).

Ịghọta FreePBX na ijikọ ya na Bitrix24 na ndị ọzọ

Ebee na algọridim oku a ka anyị kwesịrị ịnye ozi gbasara mmalite oku na CRM, ebe a ga-amalite ndekọ, ebe a ga-akwụsị ndekọ ma zipu ya na ozi gbasara oku na CRM?

Njikọ na sistemụ mpụga

Kedu ihe bụ njikọta PBX na CRM? Ndị a bụ ntọala na mmemme na-agbanwe data na ihe omume n'etiti ikpo okwu abụọ a ma na-ezigara ibe ha. Ụzọ a na-ahụkarị maka sistemu nọọrọ onwe ya iji kparịta ozi bụ site na API, ụzọ kacha ewu ewu iji nweta API bụ HTTP REST. Mana ọ bụghị maka akara mmuke.

N'ime akara mmuke bụ:

  • AGI - oku na-emekọrịta ihe nke mmemme / akụrụngwa mpụga, nke a na-ejikarị na dialplan, enwere ọba akwụkwọ dịka phpagi, PAGI

  • AMI - oghere TCP ederede nke na-arụ ọrụ na ụkpụrụ nke ịdenye aha na ihe omume na ịbanye iwu ederede, yiri SMTP site n'ime, nwere ike soro ihe omume ma jikwaa oku, enwere ọbá akwụkwọ. PAMI - nke kachasị ewu ewu maka ịmepụta njikọ na akara mmuke

Ihe atụ mmepụta AMI

Mmemme: Ọwa ọhụrụ
Ihe ùgwù: kpọọ, niile
Ọwa: PJSIP/VMS_pjsip-0000078b
Steeti ọwa: 4
ChannelStateDesc: mgbanaka
Onye ọkpụkpọ oku: 111222
Onye ọkpụkpọ oku: 111222
Njikọ LineNum:
aha ahịrị ejikọrọ:
Asụsụ: en
Koodu akaụntụ:
Okwu: site na-pstn
Mgbatị: s
Ibu ụzọ: 1
Pụrụ iche: 1599589046.5244
Njikọ: 1599589046.5244

  • ARI bụ ngwakọta nke ha abụọ, niile site na REST, WebSocket, na usoro JSON - mana nwere ọba akwụkwọ ọhụrụ na ihe mkpuchi, adịghị mma nke ukwuu, achọtara ya (pharia, phari) nke ghọrọ na mmepe ha ihe dịka afọ 3 gara aga.

Ọmụmaatụ nke mmepụta ARI mgbe ebilitere oku

{"mgbanwe":"CallMeCallerIDName", "uru":"111222", "ụdị":"ChannelVarset", "timestamp":"2020-09-09T09:38:36.269+0000", "channel":{"id »:»1599644315.5334″, «aha»:»PJSIP/VMSpjsip-000007b6″, "steeti":"Mgbanaka", "onye na-akpọ oku":{"aha":"111222″, "nọmba":"111222″}, "jikọrọ":{"aha":"", "nọmba" :"" }, "accountcode":"", "dialplan":{"context":"from-pstn", "exten":"s", "ebute ụzọ":2, "ngwaaha":"Stasis", "ngwadata":"hello-world"}, "oge e kere eke":"2020-09-09T09:38:35.926+0000", "asụsụ":"en"}, "asteriskid":"48:5b:aa:aa:aa:aa", "ngwa":" ndewo-ụwa"}

Ọdịmma ma ọ bụ ahụ erughị ala, ohere ma ọ bụ enweghị ike ịrụ ọrụ na otu API bụ ọrụ ndị achọrọ ka edozi ya. Ọrụ maka ijikọ na CRM bụ ndị a:

  • Soro mmalite nke oku a, ebe ebufere ya, wepụ CallerID, DID, mmalite na njedebe oge, ikekwe data sitere na ndekọ (iji chọọ njikọ n'etiti ekwentị na onye ọrụ CRM)

  • Malite na kwụsị ndekọ nke oku, chekwaa ya na usoro achọrọ, gwa na njedebe nke ndekọ ebe faịlụ ahụ dị.

  • Bido oku na ihe omume mpụga (site na mmemme), kpọọ nọmba ime, nọmba mpụga wee jikọọ ha

  • Nhọrọ: jikọọ na CRM, otu dialer na FollowME maka mbufe oku na-akpaghị aka na enweghị ebe (dị ka CRM si kwuo)

Enwere ike idozi ọrụ ndị a niile site na AMI ma ọ bụ ARI, mana ARI na-enye ozi dị ntakịrị, ọ bụghị ọtụtụ ihe omume, ọtụtụ mgbanwe nke AMI ka nwere (dịka ọmụmaatụ, oku macro, ntọala mgbanwe n'ime macros, gụnyere ndekọ oku) anaghị enyocha ya. Ya mere, maka nleba anya ziri ezi na nke ziri ezi, ka anyị họrọ AMI ugbu a (mana ọ bụghị kpamkpam). Na mgbakwunye (nke ọma, ebe ọ ga-abụ na-enweghị nke a, anyị bụ ndị umengwụ) - na ọrụ mbụ (edemede na habr) jiri PAMI. *Mgbe ahụ ịkwesịrị ịgbalị ịdegharị na ARI, mana ọ bụghị eziokwu na ọ ga-arụ ọrụ.

Na-eweghachite njikọta

Ka FreePBX anyị wee nwee ike ịkọrọ AMI n'ụzọ dị mfe banyere mmalite nke oku, njedebe oge, nọmba, aha faịlụ ndị e dekọrọ, ọ kachasị mfe iji gbakọọ oge oku ahụ site na iji otu aghụghọ ahụ dị ka ndị edemede mbụ. - tinye mgbanwe gị wee tụgharịa nsonaazụ maka ọnụnọ ha. PAMI na-atụ aro ime nke a naanị site na ọrụ nzacha.

Nke a bụ ọmụmaatụ nke ịtọ mgbanwe nke gị maka mmalite oge oku (s bụ nọmba pụrụ iche na dialplan nke a na-eme tupu ịmalite ọchụchọ emeghị)

[ext-did-custom]

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

Ihe atụ mmemme AMI maka ahịrị a

Mmemme: Ọwa ọhụrụ

Ihe ùgwù: kpọọ, niile

Ọwa: PJSIP/VMS_pjsip-0000078b

Steeti ọwa: 4

ChannelStateDesc: mgbanaka

Onye ọkpụkpọ oku: 111222

Onye ọkpụkpọ oku: 111222

Njikọ LineNum:

aha ahịrị ejikọrọ:

Asụsụ: en

Koodu akaụntụ:

Okwu: site na-pstn

Mgbatị: s

Ibu ụzọ: 1

Pụrụ iche: 1599589046.5244

Njikọ: 1599589046.5244

Ngwa: Tọọ AppData:

CallStart=1599571046

N'ihi na FreePBX na-edegharị faịlụ sizeion.conf na ókè_afikun.conf, anyị ga-eji faịlụ ahụ oke_omenala.mgbe

Koodu zuru oke nke sizeion_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

Njirimara na ihe dị iche site na ọkpụkpọ oku mbụ nke ndị dere edemede mbụ -

  • Dialplan na .conf usoro, dị ka FreePBX chọrọ ya (ee, ọ nwere ike .ael, ma ọ bụghị niile nsụgharị na ọ bụghị mgbe niile adaba)

  • Kama ịhazi njedebe site na exten=>h, a na-ebute nhazi site na hangup_handler, n'ihi na FreePBX dialplan na-arụ ọrụ naanị na ya.

  • Eriri oku ederede edobere, ngụ agbakwunyere na nọmba oku mpụga ExtNum

  • A na-ebugharị nhazi na ọnọdụ _custom ma na-enye gị ohere ịghara imetụ ma ọ bụ dezie nhazi FreePBX - na-abata site na [ext-mere-omenala], na-aga site na [outbound-allroutes-omenala]

  • Enweghị njikọ na ọnụọgụ - faịlụ ahụ bụ nke zuru ụwa ọnụ ma ọ dị mkpa ka ahazi ya maka ụzọ na njikọ na ihe nkesa

Iji malite, ịkwesịrị ịmegharị scripts na AMI site na nbanye na paswọọdụ - maka nke a, FreePBX nwekwara faịlụ _custom.

manager_custom.conf faịlụ

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

A ga-etinyerịrị faịlụ abụọ a na /etc/asterisk, wee gụọ configs (ma ọ bụ malitegharịa akara mmuke)

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

Ugbu a, ka anyị gaa na PHP

Ịmalite edemede na ịmepụta ọrụ

Ebe ọ bụ na atụmatụ maka ịrụ ọrụ na Bitrix 24, ọrụ maka AMI abụghị kpamkpam dị mfe ma doo anya, a ghaghị ịkọwa ya iche. akara mmuke, mgbe AMI na-arụ ọrụ, na-emepe ọdụ ụgbọ mmiri na ọ bụ ya. Mgbe onye ahịa sonyere, ọ na-arịọ ikike, mgbe ahụ onye ahịa na-edebanye aha na mmemme ndị dị mkpa. Ihe omume na-abịa na ederede doro anya, nke PAMI na-atụgharị ka ọ bụrụ ihe ahaziri ahazi ma na-enye ike ịtọ ọrụ nzacha naanị maka ihe omume mmasị, ubi, nọmba, wdg.

Ozugbo oku batara, ihe omume NewExten na-amalite site na nne na nna [site na-pstn], mgbe ahụ, ihe omume niile na-aga n'usoro nke ahịrị na ọnọdụ. Mgbe enwetara ozi site na CallMeCallerIDName na mgbanwe CallStart akọwapụtara na _custom dialplan,

  1. Ọrụ nke ịrịọ UserID kwekọrọ na nọmba ndọtị ebe oku bịara. Kedu ihe ma ọ bụrụ na ọ bụ otu ọkpụkpọ oku? Ajụjụ a bụ ndọrọ ndọrọ ọchịchị, ọ dị mkpa ka ịmepụta oku na-akpọ onye ọ bụla n'otu oge (mgbe onye ọ bụla na-akpọ otu oge) ma ọ bụ mepụta dịka ha na-akpọ mgbe ị na-akpọ n'aka? Ọtụtụ ndị ahịa nwere atụmatụ Fisrt Available, yabụ enweghị nsogbu na nke a, naanị otu oku. Mana ọ dị mkpa ka edozi nsogbu ahụ.

  2. Ọrụ ndebanye aha oku na Bitrix24, nke na-eweghachite CallID, nke a na-achọzi ka ọ kọọ akara oku na njikọ na ndekọ ahụ. Achọrọ ma nọmba ndọtị ma ọ bụ UserID

Ịghọta FreePBX na ijikọ ya na Bitrix24 na ndị ọzọ

Mgbe njedebe nke oku a gachara, a na-akpọ ọrụ nbudata ndekọ ahụ, nke na-akọ n'otu oge na ọnọdụ nke mmecha oku (Na-arụ ọrụ, Ọ dịghị azịza, Ịga nke Ọma), ma na-ebudata njikọ na faịlụ mp3 na ndekọ (ọ bụrụ na ọ bụla).

N'ihi na modul CallMeIn.php kwesịrị ka ọ na-aga n'ihu, e mepụtala faịlụ mmalite SystemD maka ya callme.ọrụ, nke a ga-etinyerịrị na /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

mmalite na mmalite nke edemede na-apụta site na systemctl ma ọ bụ ọrụ

# systemctl enable callme
# systemctl start callme

Ọrụ ahụ ga-amalitegharị n'onwe ya ka ọ dị mkpa (ọ bụrụ na ọ dara). Ọrụ nsuso igbe mbata anaghị achọ ka etinyere sava weebụ, naanị php ka achọrọ (nke dị na sava FeePBX). Mana na enweghị ohere ịnweta ndekọ oku site na sava Weebụ (nakwa https), ọ gaghị ekwe omume ige ntị ndekọ ndekọ.

Ugbu a, ka anyị kwuo maka oku ọpụpụ. Edemede CallMeOut.php nwere ọrụ abụọ:

  • Mmalite oku mgbe enwetara arịrịọ maka edemede php (gụnyere iji bọtịnụ "Oku" na Bitrix n'onwe ya). Ọ naghị arụ ọrụ na-enweghị sava weebụ, a na-enweta arịrịọ ahụ site na HTTP POST, arịrịọ ahụ nwere akara ngosi

  • Ozi gbasara oku a, parampat ya na ndekọ ya na Bitrix. Ihe akara mmuke churu na atụmatụ ọkpụkpọ oku [sub-call-internal-ended] mgbe oku kwụsịrị.

Ịghọta FreePBX na ijikọ ya na Bitrix24 na ndị ọzọ

Ihe nkesa weebụ dị naanị maka ihe abụọ - nbudata faịlụ ndekọ Bitrix (site na HTTPS) na ịkpọ edemede CallMeOut.php. Ị nwere ike iji ihe nkesa FreePBX arụnyere, faịlụ ndị bụ /var/www/html, ị nwere ike iwunye ihe nkesa ọzọ ma ọ bụ kọwaa ụzọ dị iche.

Sava webụ

Ka anyị hapụ ntọala sava weebụ maka ọmụmụ ihe onwe (tyts, tyts, tyts). Ọ bụrụ na ịnweghị ngalaba, ị nwere ike ịnwale FreeDomain( https://www.freenom.com/ru/index.html), nke ga-enye gị aha efu maka IP ọcha gị (echefukwala ibugharị ọdụ ụgbọ mmiri 80, 443 site na rawụta ma ọ bụrụ na adreesị mpụga dị naanị na ya). Ọ bụrụ na ị mepụtara ngalaba DNS, mgbe ahụ, ị ​​​​ga-echere (site na nkeji 15 ruo awa 48) ruo mgbe eburu ihe nkesa niile. Dị ka ahụmahụ nke ịrụ ọrụ na ndị na-enye ụlọ - site na 1 hour ruo otu ụbọchị.

Nwụnye akpaaka

Emepụtala ihe nrụnye na github iji mee ka nrụnye dị mfe karị. Ma ọ bụ ezigbo na akwụkwọ - mgbe anyị na-wụnye ya niile aka, ebe ọ bụ na mgbe tinkering na ihe a nile ọ bịara kristal doro anya ihe bụ enyi na onye, ​​onye na-aga ebe na otú debug ya. Enweghi ihe nwụnye ma

Docker

Ọ bụrụ na ịchọrọ ịnwale ngwa ngwa ngwa ngwa - enwere nhọrọ na Docker - mepụta ngwa ngwa ngwa, nye ya ọdụ ụgbọ mmiri n'èzí, tufuo faịlụ ntọala wee nwaa (nke a bụ nhọrọ na akpa LetsEncrypt, ma ọ bụrụ na ị nwere asambodo. , naanị ị ga-emegharị proxy reverse na sava weebụ FreePBX (anyị nyere ya ọdụ ụgbọ mmiri ọzọ bụ 88), LetsEncrypt na docker dabere na Akụkọ a

Ịkwesịrị ịme faịlụ ahụ na folda ọrụ ebudatara (mgbe git clone gasịrị), mana buru ụzọ banye na nhazi akara ngosi (mpaghara akara mmuke) wee dee ụzọ na ndekọ na URL nke saịtị gị ebe ahụ.

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:

A na-eji faịlụ docker-compose.yaml arụ ọrụ a

docker-compose up -d

Ọ bụrụ na nginx amaliteghị, mgbe ahụ, ọ nwere ihe adịghị mma na nhazi na nginx/ssl_docker.conf nchekwa.

Ngwakọta ndị ọzọ

Ma gịnị kpatara na ị gaghị etinye ụfọdụ CRM n'ime edemede n'otu oge, anyị chere. Anyị mụrụ ọtụtụ CRM API ndị ọzọ, ọkachasị PBX arụnyere n'efu - ShugarCRM na Vtiger, na ee! ee, ụkpụrụ ahụ bụ otu ihe ahụ. Mana nke a bụ akụkọ ọzọ, nke anyị ga-emecha bulite na github iche.

zoro

Disclaimer: Myiri ọ bụla na eziokwu bụ akụkọ ifo ma ọ bụghị m.

isi: www.habr.com

Tinye a comment