Ho utloisisa FreePBX le ho e kopanya le Bitrix24 le tse ling

Bitrix24 ke motsoako o moholo o kopanyang CRM, mosebetsi oa ho sebetsa, accounting le lintho tse ling tse ngata tseo batsamaisi ba hlileng ba li ratang le basebeletsi ba IT ha ba hlile ba sa li rate. Sebaka sa marang-rang se sebelisoa ke lik'hamphani tse ngata tse nyane le tse mahareng, ho kenyeletsoa litleliniki tse nyane, bahlahisi esita le li-salon tsa botle. Mosebetsi o ka sehloohong oo batsamaisi ba "ratang" ke ho kopanngoa ha mohala le CRM, ha mohala ofe kapa ofe o tlalehoa hang-hang ho CRM, likarete tsa bareki li bōptjoa, ha li kena, boitsebiso bo mabapi le moreki bo bontšoa 'me u ka bona hang-hang hore na ke mang, hore na ke mang. a ka rekisa le hore na o kolota bokae. Empa thelefono e tsoang ho Bitrix24 le ho kopanngoa ha eona le CRM e bitsa chelete, ka linako tse ling e ngata haholo. Sehloohong ke tla u bolella phihlelo ea ho kopanya le lisebelisoa tse bulehileng le IP PBX e tsebahalang MahalaPBX, hape u nahane ka mokhoa o utloahalang oa mosebetsi oa likarolo tse sa tšoaneng

Ke sebetsa ke le morekisi khamphaning e rekisang le ho e lokisa, e kopanyang mohala oa IP. Ha ke botsoa hore na re ka fana ka ho hong ho sena le k'hamphani ena ho kopanya Bitrix24 le li-PBX tseo bareki ba nang le tsona, hammoho le li-PBX tsa sebele ho lik'hamphani tse fapaneng tsa VDS, ke ile ka ea Google. 'Me ehlile o ile a mpha sehokelo ho sengoloa ho habr, moo ho nang le tlhaloso, le github, 'me ntho e' ngoe le e 'ngoe e bonahala e sebetsa. Empa ha u leka ho sebelisa tharollo ena, ho ile ha fumaneha hore Bitrix24 ha e sa tšoana le pele, 'me ho na le ho hongata ho lokelang ho etsoa hape. Ntle le moo, FreePBX ha se naleli e se nang letho bakeng sa hau, mona o hloka ho nahana ka mokhoa oa ho kopanya boiketlo ba ts'ebeliso le "hardcore dialplan" lifaeleng tsa config.

Re ithuta logic ea mosebetsi

Kahoo bakeng sa ho qala, hore na tsohle li lokela ho sebetsa joang. Ha mohala o amoheloa ho tsoa kantle ho PBX (ketsahalo ea SIP INVITE ho tsoa ho mofani), ts'ebetso ea dialplan (leano la ho daela, dialplan) e qala - melao ea hore na o lokela ho etsa eng le ka tatellano efe ka mohala. Ho tloha paketeng ea pele, u ka fumana boitsebiso bo bongata, bo ka sebelisoang ka melao. Sesebelisoa se setle sa ho ithuta ba ka hare ho SIP ke analyzer sngrep (link) e kentsoeng habonolo lipehelong tse tsebahalang ka apt install/yum install le tse ling tse joalo, empa hape e ka hahuoa ho tsoa mohloling. Ha re shebeng lethathamo la mehala ho sngrep

Ho utloisisa FreePBX le ho e kopanya le Bitrix24 le tse ling

Ka mokhoa o nolofalitsoeng, dialplan e sebetsana feela le pakete ea pele, ka linako tse ling hape nakong ea moqoqo, li-call li fetisetsoa, ​​li-buttons (DTMF), lintho tse sa tšoaneng tse thahasellisang tse kang FollowMe, RingGroup, IVR le tse ling.

Se ka hare ho Mema Pack

Ho utloisisa FreePBX le ho e kopanya le Bitrix24 le tse ling

Haele hantle, li-dialplans tse bonolo li sebetsa le likarolo tse peli tsa pele, 'me mohopolo oohle o pota-potile DID le CallerID. ETSA - moo re letsetsang, CallerID - ea letsetsang.

Empa ka mor'a tsohle, re na le k'hamphani eseng mohala o le mong - ho bolelang hore PBX e ka 'na ea e-ba le lihlopha tsa mehala (ho lla ka nako e le 'ngoe / ho latellana ha lisebelisoa tse' maloa) ho linomoro tsa motse (Ring Group), IVR (Lumela, u bitsitse ... Tobetsa). ngoe bakeng sa ...), Mechini e arabang (Mafoko), Maemo a Nako, Ho fetisetsa linomoro tse ling kapa ho sele (FollowMe, Forward). Sena se bolela hore ho thata haholo ho tseba hantle hore na ke mang ea tla amohela mohala le hore na ke mang ea tla buisana le eena ha mohala o fihla. Mona ke mohlala oa ho qala ha mohala o tloaelehileng ho PBX ea bareki ba rona

Ho utloisisa FreePBX le ho e kopanya le Bitrix24 le tse ling

Ka mor'a hore mohala o kene ka katleho PBX, o tsamaea ka "dialplan" ka "litaba" tse fapaneng. Moelelo ho ea ka pono ea Asterisk ke lenane la litaelo tse nang le linomoro, e 'ngoe le e 'ngoe ea tsona e na le sefe ka nomoro e letselitsoeng (e bitsoa exten, bakeng sa mohala oa ka ntle boemong ba pele exten=DID). Litaelo tse molaong oa dialplan e ka ba eng kapa eng - mesebetsi ea ka hare (mohlala, letsetsa morekisi oa kahare - Dial(), beha fono fatše - Hangup()), basebetsi ba nang le maemo (IF, ELSE, ExecIF le tse ling tse joalo), ho fetela ho melao e meng ea moelelo ona (Goto, GotoIF), ho fetela ho maemo a mang ka mokhoa oa mohala oa ts'ebetso (Gosub, Macro). Taelo e arohaneng include имя_контекста, e eketsang litaelo tse tsoang ho moelelo o mong ho ea qetellong ea moelelo oa hona joale. Litaelo tse kenyellelitsoeng ka ho kenyelletsa li lula li etsoa после litaelo tsa maemo a hona joale.

Monahano oohle oa FreePBX o hahiloe holim'a ho kenyelletsoa ha maemo a fapaneng ho e mong ka ho kenyelletsa le ho letsetsa ka Gosub, Macro le Handler handlers. Nahana ka moelelo oa mehala e kenang ea FreePBX

Ho utloisisa FreePBX le ho e kopanya le Bitrix24 le tse ling

Pitso e feta maemong ohle ho tloha holimo ho ea tlase ka lehlakoreng le leng, moelelong o mong le o mong ho ka ba le mehala ho maemo a mang joalo ka macros (Macro), mesebetsi (Gosub) kapa liphetoho feela (Goto), kahoo sefate sa 'nete sa se bitsoang se ka khona feela. ho lateloa ka har'a li-log.

Setšoantšo se tloaelehileng sa ho seta bakeng sa PBX e tloaelehileng e bontšitsoe ka tlase. Ha o letsetsa, DID e batlisisoa litseleng tse kenang, maemo a nakoana a hlahlojoa bakeng sa eona, haeba ntho e 'ngoe le e' ngoe e lokile, menu ea lentsoe e qalisoa. Ho tsoa ho eona, ka ho tobetsa konopo 1 kapa nako ea ho fela, tsoa ho sehlopha sa ho daela ha opareitara. Ka mor'a hore mohala o fele, hangupcall macro e bitsoa, ​​​​ka mor'a moo ha ho letho le ka etsoang ka har'a dialplan, ntle le ba sebetsang ba khethehileng (hangup handler).

Ho utloisisa FreePBX le ho e kopanya le Bitrix24 le tse ling

Ke hokae ka har'a algorithm ee ea mohala moo re lokelang ho fana ka tlhahisoleseling mabapi le qalo ea mohala ho CRM, moo u ka qalang ho rekota, ho emisa ho rekota le ho e romella hammoho le tlhaiso-leseling mabapi le mohala ho CRM?

Ho kopanya le mekhoa ea ka ntle

Ho kopanya PBX le CRM ke eng? Tsena ke litlhophiso le mananeo a fetolang data le liketsahalo lipakeng tsa li-platform tsena tse peli ebe li romellana. Mokhoa o tloaelehileng oa litsamaiso tse ikemetseng tsa puisano ke ka li-API, 'me mokhoa o tsebahalang haholo oa ho fihlella li-API ke HTTP REST. Empa eseng bakeng sa linaleli.

Ka hare ho Asterisk ke:

  • AGI - pitso e lumellanang ho mananeo / likarolo tsa kantle, tse sebelisoang haholo ho diaplan, ho na le lilaebrari tse kang phpagi, PAGI

  • AMI - mongolo oa TCP sokete o sebetsang ho latela molao-motheo oa ho ngolisa liketsahalong le ho kenya litaelo tsa mongolo, o tšoana le SMTP ho tloha ka hare, o ka lekola liketsahalo le ho laola mehala, ho na le laebrari. PAMI - e tsebahalang haholo bakeng sa ho theha khokahano le Asterisk

Mohlala oa tlhahiso ea AMI

Ketsahalo: Channel e ncha
Tokelo: letsetsa, kaofela
Channel: PJSIP/VMS_pjsip-0000078b
Boemo ba Channel: 4
ChannelStateDesc: Letsetsa
Nomoro ea Mohala: 111222
Lebitso la Mohala: 111222
ConnectedLineNum:
lebitso le amanang:
Puo: en
khoutu ea akhaonto:
Moelelo: ho tloha-pstn
Eketsa: s
Ntho ea bohlokoa ka ho fetisisa: 1
E ikhethang: 1599589046.5244
Khokahano: 1599589046.5244

  • ARI ke motsoako oa bobeli, kaofela ka REST, WebSocket, ka sebopeho sa JSON - empa ka lilaebrari tse ncha le li-wrappers, tse seng ntle haholo, tse fumanoeng (phparia, phpari) e ileng ea fetoha tsoelo-pele ea bona hoo e ka bang lilemo tse 3 tse fetileng.

Mohlala oa tlhahiso ea ARI ha mohala o qalisoa

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

Boiketlo kapa tšitiso, monyetla kapa ho se khonehe ho sebetsa le API e itseng ho khethoa ke mesebetsi e lokelang ho rarolloa. Mesebetsi ea ho kopanngoa le CRM ke e latelang:

  • Latela qalo ea mohala, moo e fetiselitsoeng teng, ntša CallerID, DID, nako ea ho qala le ea ho qetela, mohlomong data ho tsoa bukeng (ho batla khokahano lipakeng tsa mohala le mosebelisi oa CRM)

  • Qala 'me u qete ho rekota mohala, o boloke ka mokhoa oo u o batlang, tsebisa qetellong ea ho rekota moo faele e leng teng.

  • Qala ho letsetsa ketsahalong e ka ntle (ho tloha lenaneong), letsetsa nomoro ea ka hare, nomoro ea ka ntle 'me u li kopanye

  • Boikhethelo: ikopanye le CRM, lihlopha tsa dialer le FollowME bakeng sa phetisetso ea othomathike ea mehala ha ho na sebaka (ho latela CRM)

Mesebetsi ena kaofela e ka rarolloa ka AMI kapa ARI, empa ARI e fana ka boitsebiso bo fokolang haholo, ha ho na liketsahalo tse ngata, mefuta e mengata eo AMI e ntseng e e-na le eona (mohlala, li-call tsa macro, ho beha mefuta-futa ka hare ho macros, ho kenyelletsa le ho rekota mohala) ha li lateloe. Ka hona, bakeng sa ho lata ka nepo le ka nepo, ha re khetheng AMI hajoale (empa eseng ka botlalo). Ho phaella moo (hantle, e ka be e le hokae ntle le sena, re batho ba botsoa) - mosebetsing oa pele (sengoloa ho habr) sebelisa PAMI. *Ebe o hloka ho leka ho ngolla ARI hape, empa eseng taba ea hore e tla sebetsa.

Ho kopanya bocha

E le hore FreePBX ea rona e khone ho tlaleha ho AMI ka litsela tse bonolo mabapi le tšimoloho ea mohala, nako ea ho qetela, linomoro, mabitso a lifaele tse rekotiloeng, ho bonolo ho bala nako ea mohala o sebelisa maqheka a tšoanang le a bangoli ba pele. - kenya mefuta ea hau 'me u hlalose tlhahiso bakeng sa boteng ba bona. PAMI e fana ka maikutlo a ho etsa sena ka mokhoa oa ho hloekisa.

Mohlala ke ona oa ho ipehela mofuta oa hau bakeng sa nako eo mohala o qalang ka eona (s ke nomoro e ikhethileng ho "dialplan" e etsoang PELE ho qala patlo ea DID

[ext-did-custom]

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

Mohlala oa ketsahalo ea AMI bakeng sa mohala ona

Ketsahalo: Channel e ncha

Tokelo: letsetsa, kaofela

Channel: PJSIP/VMS_pjsip-0000078b

Boemo ba Channel: 4

ChannelStateDesc: Letsetsa

Nomoro ea Mohala: 111222

Lebitso la Mohala: 111222

ConnectedLineNum:

lebitso le amanang:

Puo: en

khoutu ea akhaonto:

Moelelo: ho tloha-pstn

Eketsa: s

Ntho ea bohlokoa ka ho fetisisa: 1

E ikhethang: 1599589046.5244

Khokahano: 1599589046.5244

Kopo: Seta AppData:

CallStart=1599571046

Hobane FreePBX e fetisa lifaele tsa extention.conf le extention_eketsehileng.conf, re tla sebelisa faele boholo_tloaelo.conf

Khouto e felletseng ea 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

Tšobotsi le phapang ho tloha ho "dialplan" ea mantlha ea bangoli ba sengoloa sa mantlha -

  • Dialplan ka sebopeho sa .conf, joalo ka ha FreePBX e batla (e, e ka .ael, empa eseng liphetolelo tsohle mme ha se kamehla e leng bonolo)

  • Sebakeng sa ho sebetsa pheletso ka exten=>h, ts'ebetso e ile ea hlahisoa ka hangup_handler, hobane FreePBX dialplan e sebelitse le eona feela.

  • Mohala o tsitsitseng oa mohala, mantsoe a qotsitsoeng le nomoro ea mohala ea kantle ExtNum

  • Ts'ebetso e isoa maemong a _custom mme e o lumella hore o se ke oa ama kapa oa hlophisa litlhophiso tsa FreePBX - tse tlang ka [ext-did-custom], ho tsoa ka [Tloaelo-tsohle-tsela]

  • Ha ho tlamo ho linomoro - faele ke ea bokahohle mme e hloka feela ho hlophisoa bakeng sa tsela le sehokelo ho seva.

Ho qala, o boetse o hloka ho tsamaisa lingoloa ho AMI ka ho kena le password - bakeng sa sena, FreePBX e boetse e na le _custom file.

manager_custom.conf faele

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

Lifaele tsena ka bobeli li tlameha ho behoa ho /etc/asterisk, ebe u bala li-configs (kapa u qale linaleli hape)

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

Joale ha re feteleng pele ho PHP

Ho qala mangolo le ho theha tšebeletso

Kaha morero oa ho sebetsa le Bitrix 24, tšebeletso bakeng sa AMI, ha o bonolo ka ho feletseng ebile o hlakile, o tlameha ho buisanoa ka thoko. Asterisk, ha AMI e kentsoe, e bula feela boema-kepe 'me ke phetho. Ha moreki a ikopanya, e kopa tumello, ebe moreki o ingolisa ho liketsahalo tse hlokahalang. Liketsahalo li tla ka mongolo o hlakileng, oo PAMI e e fetolelang linthong tse hlophisitsoeng mme e fana ka bokhoni ba ho beha tšebetso ea ho sefa feela bakeng sa liketsahalo tse khahlang, masimo, linomoro, jj.

Hang ha mohala o kena, ketsahalo ea NewExten e lelekoa ho tloha ho motsoali [ho tloha ho-pstn] moelelo oa taba, ebe liketsahalo tsohle li tsamaea ka tatellano ea mela ea maemo. Ha tlhahisoleseding e fumanwa ho tswa ho CallMeCallerIDName le CallStart tse boletsweng ho _custom dialplan,

  1. Mosebetsi oa ho kopa UserID e tsamaellanang le nomoro ea katoloso moo mohala o tlileng. Ho thoe'ng haeba e le sehlopha sa ho daela? Potso ke ea lipolotiki, na u hloka ho etsa mohala ho motho e mong le e mong ka nako e le 'ngoe (ha motho e mong le e mong a letsetsa hang-hang) kapa ho theha kamoo ba bitsang kateng ha ba letsetsa ka nako e le 'ngoe? Boholo ba bareki ba na le leano la Fisrt Available, kahoo ha ho na bothata ka sena, ke mohala o le mong feela. Empa taba e tlameha ho rarolloa.

  2. Ts'ebetso ea ngoliso ea mohala ho Bitrix24, e khutlisang CallID, eo ka nako eo e hlokehang ho tlaleha mehala ea mohala le sehokelo sa ho rekota. E hloka nomoro ea katoloso kapa UserID

Ho utloisisa FreePBX le ho e kopanya le Bitrix24 le tse ling

Kamora ho fela ha mohala, mosebetsi oa ho jarolla rekoto o bitsoa, ​​​​o ka nako e ts'oanang o tlalehang boemo ba ho phethoa ha mohala (Ho phathahane, Ha ho karabo, Katleho), hape o jarolla sehokelo ho faele ea mp3 ka rekoto (haeba e le teng).

Hobane mojule oa CallMeIn.php o hloka ho sebetsa khafetsa, faele ea ho qala ea SystemD e entsoe bakeng sa eona letsa.tshebeletso, e tlamehang ho kenngoa ho /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

ho qala le ho qalisoa ha script ho etsahala ka systemctl kapa tšebeletso

# systemctl enable callme
# systemctl start callme

Ts'ebeletso e tla qala bocha ha ho hlokahala (haeba ho ka ba le likotsi). Ts'ebeletso ea ho latela li-inbox ha e hloke hore seva sa marang-rang se kenngoe, ho hlokahala feela php (eo ka sebele e leng ho seva sa FeePBX). Empa ha ho se na monyetla oa ho fumana lirekoto tsa mohala ka seva sa Websaete (hape le https), ho ke ke ha khoneha ho mamela lirekoto tsa mohala.

Joale ha re bue ka mehala e tsoang. Sengoliloeng sa CallMeOut.php se na le mesebetsi e 'meli:

  • Ho qalisoa ha mohala ha kopo e amoheloa bakeng sa lengolo la php (ho kenyeletsoa ho sebelisa konopo ea "Call" ho Bitrix ka boeona). Ha e sebetse ntle le seva sa marang-rang, kopo e amoheloa ka HTTP POST, kopo e na le letšoao

  • Molaetsa mabapi le mohala, liparamente tsa ona le lirekoto ho Bitrix. E thunngoa ke Asterisk ho [sub-call-internal-ended] dialplan ha mohala o fela

Ho utloisisa FreePBX le ho e kopanya le Bitrix24 le tse ling

Seva sa marang-rang se hlokahala feela bakeng sa lintho tse peli - ho jarolla lifaele tsa rekoto tsa Bitrix (ka HTTPS) le ho bitsa mongolo oa CallMeOut.php. U ka sebelisa seva ea FreePBX e hahelletsoeng, lifaele tseo e leng /var/www/html, o ka kenya seva e' ngoe kapa oa bolela tsela e fapaneng.

Seva ea webo

Ha re tloheleng seta sa seva sa webo bakeng sa boithuto bo ikemetseng (tyts, tyts, tyts). Haeba u sena sebaka, u ka leka FreeDomain( https://www.freenom.com/ru/index.html), e tla u fa lebitso la mahala bakeng sa IP ea hau e tšoeu (u se ke ua lebala ho fetisetsa lipalangoang 80, 443 ka router haeba aterese ea ka ntle e le ho eona feela). Haeba u sa tsoa theha sebaka sa DNS, joale u tlameha ho ema (ho tloha metsotso e 15 ho isa ho lihora tse 48) ho fihlela li-server tsohle li kentsoe. Ho ea ka phihlelo ea ho sebetsa le bafani ba malapeng - ho tloha hora e le 'ngoe ho ea ho letsatsi.

Ho kenya mochine

Sesebelisoa se entsoe ho github ho etsa hore ho be bonolo le ho feta. Empa e ne e le boreleli pampiring - ha re ntse re e kenya kaofela ka letsoho, kaha ka mor'a ho shebana le sena sohle ho ile ha hlaka hore na metsoalle ke mang, ke mang ea eang hokae le hore na a ka e lokisa joang. Ha ho so se kenye letsoho

Docker

Haeba u batla ho potlakela ho leka tharollo - ho na le khetho ka Docker - theha setshelo kapele, u fane ka likou ka ntle, thellela lifaele tsa litlhophiso ebe u leka (ena ke khetho ka setshelo sa LetsEncrypt, haeba u se u ntse u e-na le setifikeiti. Ke hloka feela ho fetisetsa moemeli oa morao-rao ho seva sa marang-rang sa FreePBX (re e file koung e 'ngoe ke 88), LetsEncrypt in docker e thehiloeng ho Sengoloa sena

U hloka ho tsamaisa faele ka har'a foldara ea projeke e jarollotsoeng (kamora git clone), empa qala ka ho kena ka har'a asterisk configs (sefaele sa linaleli) ebe u ngola litsela tsa lirekoto le URL ea sebaka sa hau moo.

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:

Faele ena ea docker-compose.yaml e tsamaisoa ka tsela

docker-compose up -d

Haeba nginx e sa qale, ho na le ho hong ho phoso ka tlhophiso ea nginx/ssl_docker.conf foldareng.

Likopano tse ling

'Me ke hobane'ng ha re sa kenye CRM e meng ka nako e le' ngoe, re ile ra nahana. Re ithutile li-API tse ling tse 'maloa tsa CRM, haholo-holo PBX e hahiloeng mahala - ShugarCRM le Vtiger, mme ho joalo! e, molao-motheo oa tšoana. Empa ena ke pale e 'ngoe, eo hamorao re tla e kenya ho github ka thoko.

litšupiso

Boitlhotlhollo: Ho tšoana leha e le hofe le 'nete ke boikaketsi ebile e ne e se 'na.

Source: www.habr.com

Eketsa ka tlhaloso