Fahamka FreePBX iyo ku-daridda Bitrix24 iyo in ka badan

Bitrix24 waa isku-dar weyn oo isku dhafan CRM, socodka shaqada, xisaabaadka iyo waxyaabo kale oo badan oo maamulayaasha runtii jecel yihiin iyo shaqaalaha IT-ga aysan runtii jeclayn. Bogga internetka waxaa isticmaala shirkado badan oo yaryar iyo kuwa dhexdhexaad ah, oo ay ku jiraan rugaha caafimaadka yaryar, warshadeeyayaasha iyo xitaa goobaha qurxinta. Shaqada ugu weyn ee maareeyayaasha "jacaylka" waa isdhexgalka telefanka iyo CRM, marka wicista isla markiiba lagu qoro CRM, kaararka macmiilka ayaa la sameeyaa, marka la soo galo, macluumaadka ku saabsan macmiilka ayaa la soo bandhigay oo isla markiiba waxaad arki kartaa cidda uu yahay, waxa uu yahay. iibin karo iyo inta lagu leeyahay. Laakin taleefoonka Bitrix24 iyo ku biirintiisa CRM waxay ku kacdaa lacag, mararka qaarkood aad u badan. Maqaalka waxaan kuu sheegi doonaa waayo-aragnimada isdhexgalka ee qalabka furan iyo IP-ga caanka ah ee PBX freepbx, iyo sidoo kale tixgeli macquulka ah ee shaqada qaybo kala duwan

Waxaan u shaqeeyaa sidii shaqaale dibadda ah shirkad iibisa oo habaysa, isku xidha telefoonnada IP. Markii la i weydiiyay haddii aan wax u soo bandhigi karno tan iyo shirkaddan si ay u dhexgalaan Bitrix24 iyo PBX-yada ay macaamiishu haystaan, iyo sidoo kale PBX-yada casriga ah ee shirkadaha VDS ee kala duwan, waxaan aaday Google. Oo dabcan wuxuu i siiyay xiriir maqaalka habr, halkaas oo ay jirto sharraxaad, iyo github, iyo wax kasta oo u muuqda inay shaqeeyaan. Laakiin markii la isku dayay in la isticmaalo xalkan, waxaa soo baxday in Bitrix24 aysan ahayn sidii hore, oo wax badan loo baahan yahay in dib loo soo celiyo. Intaa waxaa dheer, FreePBX maaha mid adiga kuu gaar ah, halkan waxaad u baahan tahay inaad ka fikirto sida loo isku daro fududaynta isticmaalka iyo garaacista adag ee faylasha qaabeynta.

Waxaan baranaa macquulnimada shaqada

Markaa bilawga, sida ay tahay inay dhammaan u shaqeeyaan. Marka dibeda laga soo waco PBX (SIP CAYMI dhacdo ka socota bixiyaha), habaynta qorshaha dialplan (qorshaha garaacista, dialplan) wuxuu bilaabmaa - xeerarka waxa iyo sida loo sameeyo wicitaanka. Laga soo bilaabo xirmada koowaad, waxaad ka heli kartaa macluumaad badan, kaas oo markaa loo isticmaali karo sharciyada. Qalab aad u fiican oo lagu baranayo gudaha SIP waa falanqaynta sngrep (ссылка) kaas oo si fudud loogu rakibo qaybinta caanka ah iyada oo loo sii marayo apt install/yum install iyo wixii la mid ah, laakiin sidoo kale waxaa laga dhisi karaa isha. Aynu eegno log call in sngrep

Fahamka FreePBX iyo ku-daridda Bitrix24 iyo in ka badan

Qaab la fududeeyay, dialplangu wuxuu la macaamilaa baakidhka ugu horreeya oo keliya, mararka qaarkood sidoo kale inta lagu jiro wadahadalka, wicitaannada waa la wareejiyaa, tafatirka badhanka (DTMF), waxyaabo xiiso leh oo kala duwan sida FollowMe, RingGroup, IVR iyo kuwa kale.

Maxaa ku jira Xidhmada Casuumada

Fahamka FreePBX iyo ku-daridda Bitrix24 iyo in ka badan

Dhab ahaantii, inta badan dialplants fudud waxay la shaqeeyaan labada goobood ee ugu horreeya, caqliguna wuxuu ku wareegayaa DID iyo CallerID. MAY - meesha aan waceyno, CallerID - yaa soo wacaya.

Laakiin ka dib oo dhan, waxaan leenahay shirkad oo ma aha hal telefoon - taas oo macnaheedu yahay in PBX ay u badan tahay in ay leeyihiin kooxaha call (isku mar / isku xigta ringing ee dhowr qalab) on lambarada magaalada (Ring Group), IVR (Hello, aad wacday ... Press mid loogu talagalay ...), Mashiinnada ka jawaabaya (Weedhaha), Xaaladaha Waqtiga, U gudbinta lambaro kale ama unug (FollowMe, Forward). Tani waxay ka dhigan tahay inay aad u adag tahay in si aan mugdi lahayn loo go'aamiyo cidda dhab ahaantii heli doonta wicitaanka iyo cidda la hadli doonta marka wicitaanku yimaado. Halkan waxaa ah tusaale bilowga wicitaanka caadiga ah ee PBX ee macaamiisheena

Fahamka FreePBX iyo ku-daridda Bitrix24 iyo in ka badan

Ka dib markii wicitaanku si guul leh u galo PBX, wuxuu dhex maraa dialplanka "xaalad" kala duwan. Macnaha guud marka loo eego aragtida Asterisk waa amarro nambaraysan, mid walbana wuxuu ka kooban yahay shaandheyn lambarka la garaacay (waxaa loo yaqaan 'exten, wicitaan dibadda ah heerka bilowga exten=DID). Amarada ku jira khadka dialplan waxay noqon karaan wax kasta - hawlaha gudaha (tusaale ahaan, wac macmiilka gudaha - Dial(), dhig telefoonka - Hangup()), hawlwadeeno shuruudaysan (IF, ELSE, ExecIF iyo wixii la mid ah), u gudubka xeerarka kale ee macnaha guud (Goto, GotoIF), u gudubka xaaladaha kale ee qaabka wicitaanka shaqada (Gosub, Macro). Dardaaran gaar ah include имя_контекста, kaas oo ku dara amarrada macnaha guud ilaa dhamaadka macnaha guud. Awaamiirta lagu soo daray via waxaa ka mid ah had iyo jeer la fuliyo после amarrada macnaha guud ee hadda jira.

Macnaha guud ee FreePBX wuxuu ku dhisan yahay ka mid noqoshada xaaladaha kala duwan ee midba midka kale iyada oo lagu daro laguna wacayo maamulayaasha Gosub, Macro iyo Handler. Tixgeli macnaha guud ee wicitaanada FreePBX ee imanaya

Fahamka FreePBX iyo ku-daridda Bitrix24 iyo in ka badan

Wicitaanku waxa uu maraa dhammaan mawduucyada kor ilaa hoos marba marka la eego, xaalad kasta waxa laga yaabaa in loo yeedho xaaladaha kale sida macros (Macro), functional (Gosub) ama kaliya kala guur (Goto), markaa geedka dhabta ah ee waxa loogu yeero kaliya. lagu daba galo.

Jaantuska habaynta caadiga ah ee PBX caadiga ah ayaa hoos lagu muujiyay. Markaad wacdo, DID waxaa laga baaraa dariiqyada soo galaya, xaaladaha ku meel gaadhka ah ayaa la hubiyaa, haddii wax walba ay hagaagsan yihiin, liiska codka ayaa la bilaabay. Halkaa, adiga oo riixaya badhanka 1 ama wakhtigu ka baxay, u bax kooxda wadayaasha garaacida. Kadib marka wicitaanku dhamaado, hangupcal macro ayaa la wacaa, ka dib waxba lagama qaban karo dialplanka, marka laga reebo kuwa gacanta ku haya (hangup handler).

Fahamka FreePBX iyo ku-daridda Bitrix24 iyo in ka badan

Halkee ku dhex jira algorithm-ka wicitaankan aan ku siino macluumaadka ku saabsan bilowga wicitaanka CRM, halka laga bilaabayo duubista, meesha laga saarayo duubista oo aan u dirno macluumaadka ku saabsan wacitaanka CRM?

Isdhexgalka nidaamyada dibadda

Waa maxay is dhexgalka PBX iyo CRM? Kuwani waa goobaha iyo barnaamijyada beddela xogta iyo dhacdooyinka u dhexeeya labadan goobood oo isku dira midba midka kale. Habka ugu caansan ee nidaamyada madax-bannaan lagu wada xiriiro waa API-yada, iyo habka ugu caansan ee loo galo API-yada waa HTTP REST. Laakin ma aha calaamad.

Gudaha xidigta waa:

  • AGI - wicitaan isku mid ah oo loogu talagalay barnaamijyada / qaybaha dibadda, oo inta badan loo isticmaalo qorshaha dialplan, waxaa jira maktabado sida phpagi, PAGI

  • AMI - godad TCP qoraal ah oo ku shaqeeya mabda'a is-diiwaangelinta dhacdooyinka iyo gelitaanka amarrada qoraalka, u eg SMTP gudaha, la socon kara dhacdooyinka oo maamuli kara wicitaannada, waxaa jira maktabad. PAMI - kan ugu caansan ee abuurista xiriir la leh Asterisk

Tusaalaha wax soo saarka AMI

Dhacdo: Channel cusub
Mudnaanta: wac, dhammaan
Kanaalka: PJSIP/VMS_pjsip-0000078b
Gobolka Kanaalka: 4
ChannelStateDesc: Ring
Soo wacIDNum: 111222
Magaca qofka soo wacaya: 111222
ConnectedLineNum:
Magaca khadka ku xiran:
Luqadda: en
Koodhka xisaabta:
Dulucda: from-pstn
Kordhi: s
Mudnaanta: 1
Gaarka ah: 1599589046.5244
Linkedid: 1599589046.5244

  • ARI waa isku dhafka labadaba, dhammaan iyada oo loo sii marayo REST, WebSocket, qaabka JSON - laakiin leh maktabado cusub iyo duubo, aan aad u fiicneyn, laga helayphaparia, phpari) kaas oo noqday horumarkooda 3 sano ka hor.

Tusaale wax soo saarka ARI marka wicitaan la bilaabayo

{"variable":"CallMeCallerIDName", "qiimaha":"111222", "nooca":"ChannelVarset", "timestamp":"2020-09-09T09:38:36.269+0000", "channel":{"id »:»1599644315.5334″, «magaca»:»PJSIP/VMSpjsip-000007b6 ″, "state":" giraan", "soo wacey": {"magac":"111222″, "lambar":"111222″}, "ku xiran":{"name":"", "lambar" :"" }, "accountcode":"", "dialplan":{"context":"from-pstn", "exten":"s", "priority":2, "appname":"Stasis", "appdata":"hello-world"}, "waqtiga abuurista":"2020-09-09T09:38:35.926+0000", "language":"ru"}, "asteriskid":"48:5b:aa:aa:aa:aa", "application":"hello-world"}

Fududeynta ama dhib la'aanta, suurtagalnimada ama suurtogalnimada la shaqeynta API gaar ah waxaa lagu go'aamiyaa hawlaha u baahan in la xalliyo. Hawlaha la qabsiga CRM waa sida soo socota:

  • Raad raac bilawga wacitaanka, halka lagu wareejiyay, soo saar CallerID, DID, bilawga iyo dhamaadka wakhtiyada, laga yaabee xogta laga helo tusaha (si aad u raadiso xidhiidhka ka dhexeeya taleefanka iyo isticmaalaha CRM)

  • Bilow oo jooji duubista wicitaanka, ku keydi qaabka la rabo, ogeysii dhamaadka duubista halka uu faylku yaallo.

  • Ka bilow wacitaanka dhacdo dibadda ah (barnaamijka), wac nambar gudaha ah, nambar dibadda ah oo ku xidh

  • IkhtiyaarKu biir CRM, kooxaha dialer iyo FollowME si toos ah wicitaanada loogu gudbiyo meel la'aan (sida uu qabo CRM)

Dhammaan hawlahan waxaa lagu xallin karaa iyada oo loo marayo AMI ama ARI, laakiin ARI waxay bixisaa macluumaad aad u yar, ma jiraan dhacdooyin badan, doorsoomayaal badan oo AMI weli haysato (tusaale, wicitaanada macro, dejinta doorsoomayaasha gudaha macros, oo ay ku jiraan duubista wicitaanka) lama raad raaco. Sidaa darteed, raadraaca saxda ah ee saxda ah, aan doorano AMI hadda (laakin si buuxda maaha). Intaa waxaa dheer (si fiican, meesha ay noqon lahayd tan la'aanteed, waxaan nahay dad caajis ah) - shaqada asalka ah (maqaalka habr) isticmaal PAMI. *Markaa waxaad u baahan tahay inaad isku daydo inaad dib ugu qorto ARI, laakiin maaha xaqiiqda inay shaqayn doonto.

Dib u soo noolaynta isdhexgalka

Si aan FreePBX-keena ugu warrami karno AMI siyaabo fudud oo ku saabsan bilowga wicitaanka, dhammaadka wakhtiga, nambarada, magacyada faylalka la duubay, waxaa ugu fudud in la xisaabiyo muddada wicitaanka iyadoo la adeegsanayo khiyaamo la mid ah qorayaashii asalka ahaa. - Geli doorsoomayaashaada oo kala saar wax soo saarka joogitaankooda. PAMI waxay soo jeedinaysaa in tan lagu sameeyo si fudud iyada oo loo marayo shaqada shaandhada.

Halkan waxa ah tusaale dejinta doorsoomiyahaaga wakhtiga bilawga ah ee wacitaanka (s waa nambar gaar ah oo ku jira dialplanka kaas oo la sameeyo KA HOR inta aanad bilaabin raadinta SID)

[ext-did-custom]

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

Tusaale ahaan dhacdada AMI ee khadkan

Dhacdo: Channel cusub

Mudnaanta: wac, dhammaan

Kanaalka: PJSIP/VMS_pjsip-0000078b

Gobolka Kanaalka: 4

ChannelStateDesc: Ring

Soo wacIDNum: 111222

Magaca qofka soo wacaya: 111222

ConnectedLineNum:

Magaca khadka ku xiran:

Luqadda: en

Koodhka xisaabta:

Dulucda: from-pstn

Kordhi: s

Mudnaanta: 1

Gaarka ah: 1599589046.5244

Linkedid: 1599589046.5244

Codsiga: Deji AppData:

CallStart=1599571046

Sababtoo ah FreePBX waxay dib u qortaa faylalka sizeion.conf iyo xaddiga_dheeraad ah.conf, waxaan isticmaali doonaa faylka xadka_caadadii.kulka

Koodhka buuxa ee 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

Farqiga iyo farqiga u dhexeeya qoritaanka asalka ah ee qorayaasha maqaalka asalka ah -

  • Dialplan oo ah qaabka .conf, sida FreePBX ay rabto (haa, way .ael, laakiin ma aha dhammaan noocyada oo mar walba ma habboona)

  • Halkii laga samayn lahaa dhamaadka ilaa exten=>h, habaynta waxa lagu soo bandhigay hangup_handler, sababtoo ah FreePBX dialplan ayaa la shaqeeyay oo kaliya

  • Xarigga wicitaanka qoraalka go'an, xigashooyin lagu daray iyo lambarka wicitaanka dibadda ExtNum

  • Habayntu waxa loo raray _caado caadi ah waxayna kuu ogolaanaysaa inaadan taaban ama wax ka beddelin qaabaynta FreePBX - soo galext-qabtay-caado], ka baxaysa [ka baxsan-allroutes-caado]

  • Ma jiro ku xidhidh tirooyin - feylku waa mid caalami ah oo kaliya waxa uu u baahan yahay in loo habeeyo jidka iyo isku xidhka serverka

Si aad u bilowdo, waxa kale oo aad u baahan tahay in aad ku socodsiiso qoraallada AMI adiga oo gelaya iyo erayga sirta ah - tan, FreePBX waxa kale oo ay leedahay faylka _custom

manager_custom.conf faylka

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

Labadan faylal waa in lagu dhejiyaa /etc/asterisk, ka dibna dib u akhri qaabeynta (ama dib u bilow astaanta)

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

Hadda aan u gudubno PHP

Bilaabida qoraalada iyo abuurista adeeg

Mar haddii nidaamka lagula shaqaynayo Bitrix 24, oo ah adeegga AMI, aanu ahayn mid fudud oo hufan, waa in si gaar ah looga doodo. Asterisk, marka AMI la hawlgeliyo, si fudud ayay u furtaa dekedda waana taas. Marka macmiilku ku biiro, waxa uu codsadaa oggolaansho, ka dibna macmiilku waxa uu ku biiraa dhacdooyinka lagama maarmaanka ah. Dhacdooyinku waxay ku yimaadaan qoraal cad, kaas oo PAMI u beddelo walxo habaysan oo bixiya awoodda lagu dejiyo shaqada shaandhaynta oo keliya dhacdooyinka xiisaha, beeraha, tirooyinka, iwm.

Isla marka wicitaanku soo galo, dhacdada NewExten waa la eryaa laga bilaabo waalidka [laga bilaabo-pstn] macnaha guud, ka dibna dhammaan dhacdooyinka waxay u socdaan siday u kala horreeyaan xariiqyada macnaha guud. Marka macluumaadka laga helo CallMeCallerIDName iyo doorsoomayaasha CallStart ee lagu cayimay _custom dialplan,

  1. Shaqada codsashada UserID ee u dhiganta nambarka kordhinta meesha wicitaanku ka yimid. Maxaa dhacaya haddii ay tahay kooxda garaacista? Su'aashu waxay tahay siyaasad, ma u baahan tahay inaad qof walba wacdo hal mar u abuurto (marka qof kastaa hal mar wacdo) ama aad u abuurto sida ay ugu yeeraan marka ay soo wacayaan? Macaamiisha intooda badani waxay leeyihiin istaraatiijiyada Fisrt Available, markaa wax dhib ah kama jiraan arrintan, hal wicitaan oo keliya. Laakiin arrintu waxay u baahan tahay in wax laga qabto

  2. Shaqada diiwaangelinta wicitaanka ee Bitrix24, oo soo celisa CallID, ka dibna looga baahan yahay inay ka warbixiso cabbirrada wicitaanka iyo isku xirka duubista. Waxay u baahan tahay nambarka kordhinta ama UserID midkood

Fahamka FreePBX iyo ku-daridda Bitrix24 iyo in ka badan

Ka dib dhamaadka wicitaanka, shaqada soo dejinta rikoorka ayaa la wacaa, kaas oo isla mar ahaantaana ka warbixiya xaaladda dhamaystirka wicitaanka (Mashquul, Jawaab la'aan, Guusha), sidoo kale soo dejisa isku xirka faylka mp3 ee diiwaanka (haddii uu jiro).

Sababtoo ah moduleka CallMeIn.php wuxuu u baahan yahay inuu si joogto ah u shaqeeyo, faylka bilowga SystemD ayaa loo sameeyay callme.adeeg, kaas oo ay tahay in la geliyo /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

bilaabista iyo bilaabista qoraalka waxay ku dhacdaa systemctl ama adeeg

# systemctl enable callme
# systemctl start callme

Adeeggu dib ayuu isu bilaabi doonaa marka loo baahdo (haddii shilal dhaco). Adeegga raadinta sanduuqa uma baahna in la rakibo server-ka shabakadda, kaliya php ayaa loo baahan yahay (taas oo xaqiiqdii ku jirta server-ka FeePBX). Laakin maqnaanshaha helitaanka diiwaanada wacitaanka iyada oo loo marayo server-ka Webka (sidoo kale leh https), suurtagal ma noqon doonto in la dhageysto diiwaannada wicitaanka.

Hadda aan ka hadalno wicitaanada baxaya. Qoraalka CallMeOut.php wuxuu leeyahay laba hawlood:

  • Bilaabida wicitaanka marka la helo codsiga qoraalka php (oo ay ku jirto adeegsiga badhanka "Wicista" ee Bitrix laftiisa). Ma shaqeeyo la'aanteed server-ka shabakadda, codsiga waxaa lagu helaa HTTP POST, codsigu wuxuu ka kooban yahay calaamad

  • Farriinta ku saabsan wacitaanka, xaddidaadyadiisa iyo diiwaannada ku jira Bitrix. Ku eryay Asterisk gudaha qorshaha wicitaanka [wici- hoosaadka-gudaha-dhamaadka] marka wicitaanku dhammaado

Fahamka FreePBX iyo ku-daridda Bitrix24 iyo in ka badan

Adeegga shabakada waxa looga baahan yahay laba shay oo keliya - soo dejinta faylalka diiwaanka Bitrix (iyada oo loo marayo HTTPS) iyo wacitaanka qoraalka CallMeOut.php. Waxaad isticmaali kartaa server-ka FreePBX ee ku dhex jira, faylalka ay yihiin /var/www/html, waxaad ku rakibi kartaa server kale ama waxaad cayimi kartaa waddo kale.

Adeegaha shabakadda

Aan u dhaafno habaynta server-ka shabakadda si aan u samayno daraasad madaxbannaan (tyts, tyts, tyts). Haddii aadan lahayn domain, waxaad isku dayi kartaa FreeDomain https://www.freenom.com/ru/index.html), kaas oo ku siin doona magac bilaash ah IP-gaaga cad (ha ilaawin inaad u gudbiso dekedaha 80, 443 iyada oo loo marayo router haddii ciwaanka dibadda uu ku yaal oo keliya). Haddii aad hadda abuurtay domain-ka DNS, markaa waa inaad sugtaa (laga bilaabo 15 daqiiqo ilaa 48 saacadood) ilaa dhammaan server-yada la buuxiyo. Marka loo eego khibradda la shaqeynta bixiyeyaasha guriga - laga bilaabo 1 saac ilaa maalin.

Qalabka rakibida

Rakiye ayaa lagu sameeyay github si loo fududeeyo rakibidda. Laakiin waxa ay ahayd siman warqad - inta aan ku rakiban oo dhan gacanta, tan iyo ka dib markii la tinkering waxaas oo dhan waxa ay noqotay crystal cad waxa saaxiibo la leh cidda, kuwaas oo tagaa meesha iyo sida loo saxo. Weli ma jiro rakibe

Docker

Haddii aad rabto inaad si dhakhso ah u tijaabiso xalka - waxaa jira ikhtiyaar Docker ah - si deg deg ah u samee weel, sii dekedo dibadda ah, simbiriirixa faylasha dejinta oo isku day (tani waa ikhtiyaarka weelka LetsEncrypt, haddii aad hore u haysatay shahaado, adiga Kaliya waxaan u baahanahay inaad u wareejiso wakiilka gadaal u ah server-ka FreePBX (waxaan siinay deked kale waa 88), LetsEncrypt in docker maqaalkan

Waxaad u baahan tahay inaad ku socodsiiso faylka galka mashruuca la soo dejiyey (ka dib git clone), laakiin marka hore gal qaab-dhismeedka asterisk (faylka astaanta) oo ku qor waddooyinka diiwaannada iyo URL-ka goobtaada

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:

Faylkan docker-compose.yaml waxa lagu maamulaa

docker-compose up -d

Haddii nginx uusan bilaabin, markaa waxbaa ka qaldan qaabeynta gudaha nginx/ssl_docker.conf

Isdhexgalka kale

Oo maxaa diiday in qaar ka mid ah CRM isku mar la geliyo qoraallada, waxaan u maleynay. Waxaan barannay dhowr API-yo kale oo CRM ah, gaar ahaan PBX-ga ku dhex-jira ee bilaashka ah - ShugarCRM iyo Vtiger, iyo haa! haa, mabda'a waa isku mid. Laakin tani waa sheeko kale, oo aan hadhow github-ka si gaar ah ugu shubi doono.

tixraacyada

Afeef: Wax kasta oo u ekaanshaha xaqiiqada waa male-awaal oo aniga ma ahayn.

Source: www.habr.com

Add a comment