Nkag siab txog FreePBX thiab kev koom ua ke nrog Bitrix24 thiab ntau dua

Bitrix 24 yog ib qho kev sib koom ua ke loj uas ua ke nrog CRM, kev ua haujlwm, kev suav nyiaj thiab ntau lwm yam uas cov thawj coj nyiam thiab cov neeg ua haujlwm IT tsis nyiam. Lub portal yog siv los ntawm ntau lub tuam txhab me me thiab nruab nrab, nrog rau cov chaw kho mob me, cov chaw tsim khoom thiab txawm tias cov chaw zoo nkauj. Lub luag haujlwm tseem ceeb uas cov thawj tswj hwm "hlub" yog kev sib koom ua ke ntawm xov tooj thiab CRM, thaum twg kev hu tam sim ntawd kaw hauv CRM, tus neeg siv daim npav raug tsim, thaum tuaj, cov ntaub ntawv hais txog tus neeg siv khoom tau tshwm sim thiab koj tuaj yeem pom tam sim ntawd nws yog leej twg, nws yog dab tsi. tuaj yeem muag thiab nws tshuav nqi npaum li cas. Tab sis xov tooj ntawm Bitrix24 thiab nws kev koom ua ke nrog CRM raug nqi nyiaj, qee zaum ntau heev. Hauv tsab xov xwm kuv yuav qhia rau koj paub txog kev sib koom ua ke nrog cov cuab yeej qhib thiab nrov IP PBX ua freepbx, thiab tseem xav txog cov laj thawj ntawm kev ua haujlwm ntawm ntau qhov chaw

Kuv ua hauj lwm raws li ib tug outsourcer nyob rau hauv ib lub tuam txhab uas muag thiab configures, integrates IP xov tooj. Thaum kuv raug nug yog tias peb tuaj yeem muab qee yam rau qhov no thiab lub tuam txhab no los koom ua ke Bitrix24 nrog PBXs uas cov neeg siv khoom muaj, nrog rau nrog PBXs virtual ntawm ntau lub tuam txhab VDS, kuv tau mus rau Google. Thiab ntawm chav kawm nws muab ib qhov txuas rau kuv tsab xov xwm hauv habr, qhov twg muaj cov lus piav qhia, thiab github, thiab txhua yam zoo li ua haujlwm. Tab sis thaum sim siv cov tshuaj no, nws tau pom tias Bitrix24 tsis zoo ib yam li yav dhau los, thiab ntau yuav tsum tau rov ua dua. Tsis tas li ntawd, FreePBX tsis yog lub hnub qub liab qab rau koj, ntawm no koj yuav tsum xav txog yuav ua li cas sib txuas yooj yim ntawm kev siv thiab hardcore dialplan hauv cov ntaub ntawv config.

Peb kawm cov logic ntawm kev ua haujlwm

Yog li, rau qhov pib, nws yuav tsum ua haujlwm li cas. Thaum ib qho kev hu xov tooj tau txais los ntawm sab nraud PBX (SIP INVITE kev tshwm sim los ntawm tus neeg muab kev pabcuam), kev ua haujlwm ntawm dialplan (dial plan, dialplan) pib - cov cai ntawm dab tsi thiab yuav ua li cas nrog kev hu. Los ntawm thawj pob ntawv, koj tuaj yeem tau txais cov ntaub ntawv ntau, uas tuaj yeem siv rau hauv cov cai. Ib qho cuab yeej zoo tshaj plaws rau kev kawm sab hauv ntawm SIP yog tus ntsuas sngrep ua (txuas) uas tsuas yog ntsia tau rau hauv cov kev faib tawm nrov ntawm apt install / yum nruab thiab cov zoo li, tab sis nws kuj tuaj yeem tsim los ntawm qhov chaw. Cia peb saib ntawm lub cav hu hauv sngrep

Nkag siab txog FreePBX thiab kev koom ua ke nrog Bitrix24 thiab ntau dua

Hauv daim ntawv yooj yim, lub dialplan tsuas cuam tshuam nrog thawj pob ntawv, qee zaum kuj thaum sib tham, hu xov tooj raug xa mus, khawm nias (DTMF), ntau yam nthuav dav xws li FollowMe, RingGroup, IVR thiab lwm yam.

Dab tsi nyob hauv Invite Pack

Nkag siab txog FreePBX thiab kev koom ua ke nrog Bitrix24 thiab ntau dua

Qhov tseeb, feem ntau cov dialplans yooj yim ua hauj lwm nrog thawj ob lub teb, thiab tag nrho cov logic revolves nyob ib ncig ntawm DID thiab CallerID. DID - qhov twg peb hu, CallerID - leej twg hu.

Tab sis tom qab tag nrho, peb muaj ib lub tuam txhab thiab tsis yog ib lub xov tooj - uas txhais tau hais tias PBX feem ntau yuav muaj cov pab pawg hu (ib txhij / sib txuas ringing ntawm ob peb pab kiag li lawm) ntawm lub nroog xov tooj (Nplhaib Group), IVR (nyob zoo, koj hu ... Xovxwm ib qho rau ...), Teb cov cav tov (Cov kab lus), Lub Sij Hawm Lub Sijhawm, Xa mus rau lwm tus lej lossis mus rau ib lub xovtooj (FollowMe, Forward). Qhov no txhais tau hais tias nws yog ib qho nyuaj heev rau unambiguously txiav txim seb leej twg yuav tau txais kev hu thiab leej twg yuav muaj kev sib tham nrog thaum hu tuaj. Nov yog ib qho piv txwv ntawm qhov pib ntawm kev hu xov tooj hauv PBX ntawm peb cov neeg siv khoom

Nkag siab txog FreePBX thiab kev koom ua ke nrog Bitrix24 thiab ntau dua

Tom qab kev hu tau zoo nkag mus rau PBX, nws taug kev los ntawm dialplan nyob rau hauv txawv "contexts". Cov ntsiab lus los ntawm qhov pom ntawm Asterisk yog cov lej ntawm cov lus txib, txhua tus uas muaj cov lim los ntawm tus lej xov tooj (nws yog hu ua exten, rau kev hu sab nraud ntawm thawj theem exten = DID). Cov lus txib hauv kab dialplan tuaj yeem yog txhua yam - kev ua haujlwm sab hauv (piv txwv li, hu rau tus neeg siv khoom sab hauv - Dial(), muab lub xov tooj tso - Hangup()), cov neeg ua haujlwm kho mob (IF, ELSE, ExecIF thiab lwm yam), kev hloov mus rau lwm txoj cai ntawm cov ntsiab lus no (Goto, GotoIF), hloov mus rau lwm cov ntsiab lus hauv daim ntawv hu ua haujlwm (Gosub, Macro). Cov lus qhia cais include имя_контекста, uas ntxiv cov lus txib los ntawm lwm cov ntsiab lus mus rau qhov kawg ntawm cov ntsiab lus tam sim no. Cov lus txib suav nrog suav nrog ib txwm ua tiav tom qab cov lus txib ntawm cov ntsiab lus tam sim no.

Tag nrho cov logic ntawm FreePBX yog tsim los ntawm kev suav nrog cov ntsiab lus sib txawv rau hauv ib leeg los ntawm kev suav nrog thiab hu los ntawm Gosub, Macro thiab Handler handlers. Xav txog cov ntsiab lus ntawm kev hu FreePBX tuaj

Nkag siab txog FreePBX thiab kev koom ua ke nrog Bitrix24 thiab ntau dua

Kev hu mus los ntawm tag nrho cov ntsiab lus los ntawm sab saum toj mus rau hauv qab nyob rau hauv lem, nyob rau hauv txhua lub ntsiab lus muaj peev xwm hu mus rau lwm yam ntsiab lus xws li macros (Macro), zog (Gosub) los yog cia li hloov mus (Goto), yog li tsob ntoo tiag tiag ntawm dab tsi hu ua xwb. yuav taug qab hauv cov cav.

Daim duab teeb pom kev zoo rau ib txwm PBX yog qhia hauv qab no. Thaum hu, DID yog tshawb nrhiav hauv cov kev nkag mus, cov xwm txheej ib ntus raug kuaj xyuas rau nws, yog tias txhua yam nyob rau hauv kev txiav txim, lub suab ntawv qhia zaub mov pib. Los ntawm nws, los ntawm nias lub pob 1 lossis ncua sijhawm, tawm mus rau pawg neeg hu xov tooj. Tom qab qhov kev hu xaus, lub hangupcall macro hu ua, tom qab ntawd tsis muaj dab tsi tuaj yeem ua tiav hauv lub dialplan, tsuas yog cov neeg tuav tshwj xeeb (hangup handler).

Nkag siab txog FreePBX thiab kev koom ua ke nrog Bitrix24 thiab ntau dua

Qhov twg hauv qhov kev hu xov tooj no peb yuav tsum muab cov ntaub ntawv hais txog qhov pib ntawm kev hu mus rau CRM, qhov twg yuav pib kaw, qhov twg yuav xaus cov ntaub ntawv thiab xa nrog cov ntaub ntawv hais txog kev hu mus rau CRM?

Kev koom ua ke nrog cov tshuab sab nraud

PBX thiab CRM kev koom ua ke yog dab tsi? Cov no yog cov chaw thiab cov kev pab cuam uas hloov cov ntaub ntawv thiab cov xwm txheej ntawm ob lub platform no thiab xa mus rau ib leeg. Txoj hauv kev zoo tshaj plaws rau kev ywj pheej sib txuas lus yog los ntawm APIs, thiab txoj hauv kev nrov tshaj plaws rau kev nkag mus rau APIs yog HTTP REST. Tab sis tsis yog rau lub hnub qub.

Sab hauv Asterisk yog:

  • AGI - synchronous hu ntawm cov kev pab cuam sab nraud / cov khoom siv, siv feem ntau hauv daim dialplan, muaj cov tsev qiv ntawv zoo li phpag, PAJ

  • AMI - cov ntawv nyeem TCP lub qhov (socket) uas ua haujlwm ntawm lub hauv paus ntsiab lus ntawm kev tso npe rau cov xwm txheej thiab nkag mus rau cov lus txib, zoo li SMTP los ntawm sab hauv, tuaj yeem taug qab cov xwm txheej thiab tswj kev hu, muaj lub tsev qiv ntawv PAMI - qhov nrov tshaj plaws rau kev tsim kev sib txuas nrog Asterisk

AMI tso zis piv txwv

Event: Tshiab channel
Muaj cai: hu, txhua tus
Channel: PJSIP/VMS_pjsip-0000078b
Channel State: 4
ChannelStateDesc: Ntiv
IDNum: 111222
Hu rau ID: 111222
ConnectedLineNum:
txuas kab npe:
Lus: en
tus account code:
Cov ntsiab lus: los ntawm-pstn
Exten: s
Qhov muaj feem thib: 1
Ib: 1599589046.5244
Ib: 1599589046.5244

  • ARI yog ib qho kev sib xyaw ntawm ob qho tib si, tag nrho ntawm REST, WebSocket, hauv JSON hom - tab sis nrog cov tsev qiv ntawv tshiab thiab cov ntaub qhwv, tsis zoo heev, offhand pom (phparia ua, phpari ua) uas tau los ua hauv lawv txoj kev loj hlob txog 3 xyoos dhau los.

Piv txwv ntawm ARI tso zis thaum pib hu

{ "variable":"CallMeCallerIDName", "value":"111222", "type":"ChannelVarset", "timestamp":"2020-09-09T09:38:36.269+0000", "channel":{ "id »:»1599644315.5334", "name":"PJSIP/VMSpjsip-000007b6", "state":"Nplhaib", "hu":{ "name":"111222", "number":"111222″ }, "connected":{ "name":"", "number" :"" }, "accountcode":"", "dialplan":{ "context":"from-pstn", "exten":"s", "priority":2, "appname": "Stasis", "appdata":"hello-world" }, "creationtime":"2020-09-09T09:38:35.926+0000", "language":"en" }, "asteriskid":"48:5b:aa:aa:aa:aa", "application":"hello-world" }

Kev yooj yim lossis tsis yooj yim, qhov ua tau lossis tsis tuaj yeem ua haujlwm nrog API tshwj xeeb yog txiav txim siab los ntawm cov haujlwm uas yuav tsum tau daws. Cov dej num rau kev koom ua ke nrog CRM yog raws li nram no:

  • Taug qab qhov pib ntawm kev hu, qhov twg nws tau pauv, rub tawm CallerID, DID, lub sijhawm pib thiab xaus, tej zaum cov ntaub ntawv los ntawm cov npe (los tshawb nrhiav kev sib txuas ntawm tus xov tooj thiab tus neeg siv CRM)

  • Pib thiab xaus cov ntaubntawv povthawj siv hu, txuag nws nyob rau hauv cov hom ntawv uas xav tau, qhia rau thaum xaus ntawm cov ntaubntawv povthawj siv qhov twg cov ntaub ntawv nyob.

  • Pib hu rau ib qho kev tshwm sim sab nraud (los ntawm qhov kev zov me nyuam), hu rau tus lej sab hauv, tus lej sab nraud thiab txuas rau lawv

  • Yeem: koom nrog CRM, pab pawg neeg hu xov tooj thiab FollowME rau kev hloov pauv ntawm kev hu tsis siv neeg thaum tsis muaj chaw (raws li CRM)

Tag nrho cov haujlwm no tuaj yeem daws tau los ntawm AMI lossis ARI, tab sis ARI muab cov ntaub ntawv tsawg dua, tsis muaj ntau yam xwm txheej, ntau qhov hloov pauv uas AMI tseem muaj (piv txwv li, macro hu, teeb tsa qhov hloov pauv hauv macros, suav nrog kev hu xov tooj) tsis tau taug qab. Yog li ntawd, kom raug thiab raug mus txog qhovtwg, cia peb xaiv AMI rau tam sim no (tab sis tsis tag). Tsis tas li ntawd (zoo, qhov twg nws yuav tsis muaj qhov no, peb yog cov neeg tub nkeeg) - hauv thawj qhov haujlwm (tsab xov xwm hauv habr) siv PAMI. *Tom qab ntawd koj yuav tsum sim rov sau dua rau ARI, tab sis tsis yog qhov tseeb tias nws yuav ua haujlwm.

Reinventing kev koom ua ke

Txhawm rau kom peb FreePBX tuaj yeem tshaj tawm rau AMI hauv txoj hauv kev yooj yim hais txog qhov pib ntawm kev hu, lub sijhawm kawg, cov lej, cov npe ntawm cov ntaub ntawv kaw, nws yog qhov yooj yim tshaj los xam lub sijhawm hu xov tooj siv tib lub dag zog raws li cov neeg sau ntawv qub. - Nkag mus rau koj qhov hloov pauv thiab txheeb xyuas cov khoom tso tawm rau lawv lub xub ntiag. PAMI qhia ua qhov no yooj yim los ntawm kev lim dej.

Ntawm no yog ib qho piv txwv ntawm kev teeb tsa koj tus kheej hloov pauv rau lub sijhawm pib ntawm kev hu (s yog tus lej tshwj xeeb hauv dialplan uas tau ua ua ntej pib tshawb nrhiav DID)

[ext-did-custom]

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

Ib qho piv txwv AMI tshwm sim rau kab no

Event: Tshiab channel

Muaj cai: hu, txhua tus

Channel: PJSIP/VMS_pjsip-0000078b

Channel State: 4

ChannelStateDesc: Ntiv

IDNum: 111222

Hu rau ID: 111222

ConnectedLineNum:

txuas kab npe:

Lus: en

tus account code:

Cov ntsiab lus: los ntawm-pstn

Exten: s

Qhov muaj feem thib: 1

Ib: 1599589046.5244

Ib: 1599589046.5244

Daim Ntawv Thov: Teem AppData:

CallStart = 1599571046

Vim FreePBX overwrites extention.conf thiab extention_ cov ntaub ntawvntxiv.conf, peb yuav siv cov ntaub ntawv extension_kev cai.nruj

Tag nrho cov cai ntawm 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

Feature thiab qhov sib txawv ntawm tus thawj dialplan ntawm cov neeg sau ntawv ntawm thawj tsab xov xwm -

  • Dialplan hauv .conf hom, raws li FreePBX xav tau nws (yog, nws tuaj yeem .ael, tab sis tsis yog txhua tus qauv thiab nws tsis yooj yim ib txwm)

  • Tsis txhob ua qhov kawg ntawm exten=>h, kev ua haujlwm tau qhia los ntawm hangup_handler, vim tias FreePBX dialplan ua haujlwm nrog nws xwb

  • Tsau tsab ntawv hu xov tooj, ntxiv quotes thiab sab nraud hu xov tooj ExtNum

  • Kev ua haujlwm yog tsiv mus rau _custom contexts thiab tso cai rau koj tsis txhob kov lossis hloov FreePBX configs - tuaj ntawm [ext-ua-kev cai], tawm ntawm [outbound-allroutes-kev cai]

  • Tsis muaj kev khi rau cov lej - cov ntaub ntawv yog universal thiab tsuas yog yuav tsum tau teeb tsa rau txoj hauv kev thiab txuas mus rau lub server.

Txhawm rau pib, koj kuj yuav tsum khiav cov ntawv sau hauv AMI los ntawm kev nkag mus thiab lo lus zais - rau qhov no, FreePBX kuj muaj cov ntaub ntawv _custom

manager_custom.conf cov ntaub ntawv

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

Ob leeg ntawm cov ntaub ntawv no yuav tsum tau muab tso rau hauv /etc/asterisk, tom qab ntawd rov nyeem cov configs (lossis rov pib lub hnub qub)

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

Tam sim no cia peb mus rau PHP

Pib pib scripts thiab tsim ib qho kev pabcuam

Txij li thaum lub tswv yim rau kev ua hauj lwm nrog Bitrix 24, ib qho kev pab rau AMI, tsis yog tag nrho yooj yim thiab pob tshab, nws yuav tsum tau sib tham nyias. Asterisk, thaum AMI qhib, tsuas qhib qhov chaw nres nkoj thiab qhov ntawd yog nws. Thaum tus neeg siv khoom koom nrog, nws thov kev tso cai, tom qab ntawd tus neeg siv yuav tau txais cov xwm txheej tsim nyog. Cov xwm txheej tuaj rau hauv cov ntawv dawb, uas PAMI hloov mus rau hauv cov khoom tsim thiab muab lub peev xwm los teeb tsa kev lim dej tsuas yog rau cov xwm txheej ntawm kev txaus siab, teb, lej, thiab lwm yam.

Sai li qhov kev hu tuaj, NewExten qhov kev tshwm sim raug rho tawm haujlwm pib ntawm niam txiv [los ntawm-pstn] cov ntsiab lus, ces txhua yam xwm txheej mus rau qhov kev txiav txim ntawm cov kab hauv cov ntsiab lus. Thaum cov ntaub ntawv tau txais los ntawm CallMeCallerIDName thiab CallStart hloov pauv tau teev tseg hauv _custom dialplan, lub

  1. Kev ua haujlwm ntawm kev thov tus UserID sib raug rau tus lej txuas ntxiv qhov twg hu tuaj. Yuav ua li cas yog ib pab pawg neeg hu xov tooj? Lo lus nug yog kev nom kev tswv, koj puas yuav tsum tsim kom muaj kev hu rau txhua tus ib zaug (thaum sawv daws hu ib zaug) lossis tsim raws li lawv hu thaum hu xov tooj? Cov neeg siv feem ntau muaj lub tswv yim Fisrt Available, yog li tsis muaj teeb meem nrog qhov no, tsuas yog ib qho hu. Tab sis qhov teeb meem yuav tsum tau daws.

  2. Kev sau npe hu ua haujlwm hauv Bitrix24, uas xa rov qab rau CallID, uas yog tom qab ntawd yuav tsum tau tshaj tawm cov kev hu xov tooj thiab qhov txuas rau kev kaw. Yuav tsum muaj tus lej txuas ntxiv lossis UserID

Nkag siab txog FreePBX thiab kev koom ua ke nrog Bitrix24 thiab ntau dua

Tom qab qhov kawg ntawm kev hu, cov ntaub ntawv rub tawm muaj nuj nqi hu ua, uas ib txhij qhia txog cov xwm txheej ntawm kev hu ua tiav (Ntaus, Tsis teb, Ua tiav), thiab tseem rub tawm qhov txuas mus rau mp3 cov ntaub ntawv nrog cov ntaub ntawv (yog tias muaj).

Vim tias CallMeIn.php module yuav tsum tau khiav tsis tu ncua, SystemD pib cov ntaub ntawv tau tsim rau nws callme.kev pab, uas yuav tsum tau muab tso rau hauv /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

pib thiab tso tawm ntawm tsab ntawv tshwm sim los ntawm systemctl lossis kev pabcuam

# systemctl enable callme
# systemctl start callme

Cov kev pabcuam yuav rov pib dua nws tus kheej raws li xav tau (thaum muaj kev sib tsoo). Lub inbox nrhiav kev pabcuam tsis xav tau lub web server los nruab, tsuas yog xav tau php (uas yog qhov tseeb ntawm FeePBX server). Tab sis thaum tsis muaj kev nkag mus rau hu cov ntaub ntawv los ntawm Web server (tseem nrog https), nws yuav tsis tuaj yeem mloog cov ntaub ntawv hu.

Tam sim no cia peb tham txog kev hu tawm. Tsab ntawv CallMeOut.php muaj ob txoj haujlwm:

  • Kev pib ntawm kev hu thaum tau txais kev thov rau php tsab ntawv (xws li siv lub pob "Hu" hauv Bitrix nws tus kheej). Nws tsis ua haujlwm yam tsis muaj lub vev xaib server, qhov kev thov tau txais los ntawm HTTP POST, qhov kev thov muaj lub token

  • Cov lus hais txog kev hu, nws cov kev txwv thiab cov ntaub ntawv hauv Bitrix. Raug rho tawm los ntawm Asterisk hauv [sub-call-internal-ended] dialplan thaum hu xaus

Nkag siab txog FreePBX thiab kev koom ua ke nrog Bitrix24 thiab ntau dua

Lub web server tsuas yog xav tau rau ob yam - rub tawm cov ntaub ntawv Bitrix (ntawm HTTPS) thiab hu rau CallMeOut.php tsab ntawv. Koj tuaj yeem siv FreePBX server, cov ntaub ntawv uas yog /var/www/html, koj tuaj yeem nruab lwm tus neeg rau zaub mov lossis qhia txog txoj hauv kev sib txawv.

Web server

Cia peb tawm ntawm lub web server teeb tsa rau kev kawm ywj pheej (tyts, tyts, tyts). Yog tias koj tsis muaj tus sau npe, koj tuaj yeem sim FreeDomain( https://www.freenom.com/ru/index.html), uas yuav muab lub npe pub dawb rau koj tus IP dawb (tsis txhob hnov ​​​​qab xa cov chaw nres nkoj 80, 443 los ntawm lub router yog tias qhov chaw nyob sab nraud tsuas yog ntawm nws). Yog tias koj nyuam qhuav tsim DNS sau, ces koj yuav tsum tau tos (los ntawm 15 feeb mus rau 48 teev) kom txog thaum tag nrho cov servers raug thauj khoom. Raws li kev paub dhau los ntawm kev ua haujlwm nrog cov neeg muab kev pabcuam hauv tsev - los ntawm 1 teev mus rau ib hnub.

Installation automation

Ib qho installer tau tsim los ntawm github los ua kom yooj yim dua. Tab sis nws yog du ntawm daim ntawv - thaum peb tab tom txhim kho nws tag nrho manually, txij li tom qab tinkering nrog tag nrho cov no nws tau ua kom pom tseeb tias yog phooj ywg nrog leej twg, leej twg mus qhov twg thiab yuav ua li cas debug nws. Tseem tsis tau muaj installer

docker

Yog tias koj xav sim sai sai - muaj kev xaiv nrog Docker - sai sai tsim lub thawv, muab cov chaw nres nkoj sab nraud, hlais cov ntaub ntawv teeb tsa thiab sim (qhov no yog qhov kev xaiv nrog LetsEncrypt thawv, yog tias koj twb muaj daim ntawv pov thawj, koj tsuas yog yuav tsum tau hloov pauv lub npe rov qab mus rau FreePBX lub vev xaib server (peb muab nws lwm qhov chaw nres nkoj yog 88), LetsEncrypt hauv docker raws li ntawm tsab xov xwm no

Koj yuav tsum tau khiav cov ntaub ntawv nyob rau hauv lub downloaded project nplaub tshev (tom qab git clone), tab sis ua ntej nkag mus rau hauv lub hnub qub configs (asterisk folder) thiab sau txoj hauv kev rau cov ntaub ntawv thiab URL ntawm koj qhov chaw nyob ntawd.

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:

Cov ntaub ntawv docker-compose.yaml no khiav ntawm

docker-compose up -d

Yog tias nginx tsis pib, ces ib yam dab tsi tsis ncaj ncees lawm nrog kev teeb tsa hauv nginx/ssl_docker.conf nplaub tshev

Lwm yam kev koom ua ke

Thiab vim li cas ho tsis muab qee qhov CRM rau hauv cov ntawv sau tib lub sijhawm, peb xav. Peb tau kawm ob peb lwm CRM APIs, tshwj xeeb tshaj yog cov dawb built-in PBX - ShugarCRM thiab Vtiger, thiab yog! yog, txoj ntsiab cai yog tib yam. Tab sis qhov no yog lwm zaj dab neeg, uas peb yuav tom qab upload rau github cais.

ua tim khawv

Kev lees paub: Txhua yam zoo ib yam li qhov tseeb yog qhov tseeb thiab nws tsis yog kuv.

Tau qhov twg los: www.hab.com

Ntxiv ib saib