Kumvetsetsa FreePBX ndikuphatikiza ndi Bitrix24 ndi zina zambiri

Bitrix 24 ndi kuphatikiza kwakukulu komwe kumaphatikiza CRM, kayendedwe ka ntchito, kuwerengera ndalama ndi zinthu zina zambiri zomwe oyang'anira amakonda komanso ogwira ntchito ku IT sakonda. Khomoli limagwiritsidwa ntchito ndi makampani ang'onoang'ono ndi apakatikati, kuphatikiza zipatala zazing'ono, opanga komanso ma salons okongola. Ntchito yayikulu yomwe oyang'anira "amakonda" ndikuphatikizana kwa telephony ndi CRM, pomwe kuyimba kulikonse kumalembedwa mu CRM, makadi amakasitomala amapangidwa, akabwera, zidziwitso za kasitomala zimawonetsedwa ndipo mutha kuwona nthawi yomweyo yemwe ali, zomwe ali. akhoza kugulitsa ndi kuchuluka kwa ngongole yomwe ali nayo. Koma telefoni yochokera ku Bitrix24 ndi kuphatikiza kwake ndi CRM kumawononga ndalama, nthawi zina zambiri. M'nkhaniyi ndikuwuzani zomwe zachitika pakuphatikiza ndi zida zotseguka komanso IP PBX yotchuka ufulupbx, komanso lingalirani zomveka za ntchito ya magawo osiyanasiyana

Ndimagwira ntchito ngati wogulitsa kunja ku kampani yomwe imagulitsa ndikukonza, imagwirizanitsa IP telephony. Nditafunsidwa ngati tingapereke chinachake kwa izi ndi kampani iyi kuti iphatikize Bitrix24 ndi PBXs omwe makasitomala ali nawo, komanso ma PBX enieni pamakampani osiyanasiyana a VDS, ndinapita ku Google. Ndipo ndithudi adandipatsa ulalo nkhani mu habr, komwe kuli kufotokozera, ndi github, ndipo chirichonse chikuwoneka chikugwira ntchito. Koma poyesa kugwiritsa ntchito yankho ili, zidapezeka kuti Bitrix24 salinso chimodzimodzi ndi kale, ndipo zambiri ziyenera kukonzedwanso. Kuonjezera apo, FreePBX si nyenyezi yopanda kanthu kwa inu, apa muyenera kuganizira za momwe mungagwirizanitse mosavuta kugwiritsa ntchito ndi hardcore dialplan mumafayilo osintha.

Timaphunzira malingaliro a ntchito

Chifukwa chake, poyambira, zonse ziyenera kugwira ntchito. Kuitana kulandiridwa kuchokera kunja kwa PBX (SIP INVITE chochitika kuchokera kwa wothandizira), kukonza kwa dialplan (dial plan, dialplan) kumayamba - malamulo a zomwe ndi momwe angachitire ndi kuyitana. Kuchokera pa paketi yoyamba, mukhoza kupeza zambiri, zomwe zingagwiritsidwe ntchito m'malamulo. Chida chabwino kwambiri chophunzirira zamkati mwa SIP ndi analyzer sngrep (ссылка) yomwe imangoyikidwa pamagawidwe otchuka kudzera pa apt install/yum install ndi zina zotero, koma imathanso kumangidwa kuchokera kugwero. Tiyeni tiwone chipika choyimba mu sngrep

Kumvetsetsa FreePBX ndikuphatikiza ndi Bitrix24 ndi zina zambiri

Mu mawonekedwe osavuta, dialplan imagwira ntchito ndi paketi yoyamba, nthawi zinanso panthawi yokambirana, mafoni amasamutsidwa, makina osindikizira (DTMF), zinthu zosiyanasiyana zosangalatsa monga FollowMe, RingGroup, IVR ndi ena.

Zomwe zili mkati mwa Invite Pack

Kumvetsetsa FreePBX ndikuphatikiza ndi Bitrix24 ndi zina zambiri

Kwenikweni, ma dialplans osavuta amagwira ntchito ndi magawo awiri oyamba, ndipo malingaliro onse amazungulira DID ndi CallerID. KODI - komwe tikuyitana, CallerID - yemwe akuyimba.

Koma pambuyo pa zonse, tili ndi kampani osati foni imodzi - zomwe zikutanthauza kuti PBX nthawi zambiri imakhala ndi magulu oyitanitsa (kuyimba nthawi imodzi / motsatizana kwa zida zingapo) pamanambala amizinda (Ring Group), IVR (Moni, mudayitana ... Press imodzi ya ...), Kuyankha makina (Mawu), Nthawi Zochita, Kutumiza ku manambala ena kapena ku selo (FollowMe, Forward). Izi zikutanthauza kuti ndizovuta kwambiri kudziwa mosabisa yemwe angalandire foni komanso yemwe angakambirane naye foni ikafika. Nachi chitsanzo cha chiyambi cha kuyimba wamba mu PBX makasitomala athu

Kumvetsetsa FreePBX ndikuphatikiza ndi Bitrix24 ndi zina zambiri

Kuyitana kukalowa bwino mu PBX, kumadutsa mu dialplan mu "context" zosiyanasiyana. Nkhani kuchokera pakuwona kwa Asterisk ndi malamulo owerengeka, aliwonse omwe ali ndi fyuluta ndi nambala yomwe idayimbidwa (imatchedwa exten, kwa kuyimba kwakunja pagawo loyambirira exten=DID). Malamulo omwe ali pamzere wa dialplan akhoza kukhala chilichonse - ntchito zamkati (mwachitsanzo, itanani wolembetsa wamkati - Dial(), ikani foni pansi - Hangup()), ogwira ntchito zovomerezeka (IF, ELSE, ExecIF ndi zina zotero), kusintha kwa malamulo ena a nkhaniyi (Goto, GotoIF), kusinthira kuzinthu zina monga kuyimba foni (Gosub, Macro). Lamulo losiyana include имя_контекста, zomwe zimawonjezera malamulo kuchokera kuzinthu zina mpaka kumapeto kwa nkhani yamakono. Malamulo ophatikizidwa ndi kuphatikiza amachitidwa nthawi zonse после malamulo a zochitika zamakono.

Lingaliro lonse la FreePBX limamangidwa pakuphatikizika kwa zochitika zosiyanasiyana wina ndi mnzake kudzera pakuphatikiza ndi kuyimba kudzera pa Gosub, Macro ndi Handler handlers. Ganizirani nkhani ya mafoni a FreePBX omwe akubwera

Kumvetsetsa FreePBX ndikuphatikiza ndi Bitrix24 ndi zina zambiri

Kuitana kumadutsa muzochitika zonse kuchokera pamwamba mpaka pansi motsatizana, muzochitika zilizonse pakhoza kukhala kuyitana kuzinthu zina monga macros (Macro), ntchito (Gosub) kapena kusintha (Goto), kotero mtengo weniweni wa zomwe zimatchedwa ukhoza kokha. kutsatiridwa mu zolemba.

Chojambula chokhazikika cha PBX chikuwonetsedwa pansipa. Poyimba, DID imafufuzidwa m'njira zomwe zikubwera, zochitika zosakhalitsa zimafufuzidwa, ngati zonse zili bwino, menyu ya mawu imayambitsidwa. Kuchokera pamenepo, pokanikiza batani 1 kapena kutha kwa nthawi, tulukani kupita ku gulu la oyimba. Kuyitana kutatha, hangupcall macro imatchedwa, pambuyo pake palibe chomwe chingachitike mu dialplan, kupatula othandizira apadera (othandizira).

Kumvetsetsa FreePBX ndikuphatikiza ndi Bitrix24 ndi zina zambiri

Kodi ndi pati mu aligorivimu yoyimbayi pomwe tikuyenera kupereka zambiri za kuyambika kwa kuyimba kwa CRM, komwe mungayambire kujambula, komwe tingatsilize kujambula ndikutumiza limodzi ndi zambiri zakuyimbira ku CRM?

Kuphatikizana ndi machitidwe akunja

Kodi kuphatikiza kwa PBX ndi CRM ndi chiyani? Izi ndizo zoikamo ndi mapulogalamu omwe amasintha deta ndi zochitika pakati pa nsanja ziwirizi ndikuzitumiza kwa wina ndi mzake. Njira yodziwika bwino yolumikizirana ndi machitidwe odziyimira pawokha ndi kudzera mu ma API, ndipo njira yotchuka kwambiri yopezera ma API ndi HTTP REST. Koma osati kwa asterisk.

Mkati mwa Asterisk ndi:

  • AGI - kuyimba kolumikizana kwa mapulogalamu / zigawo zakunja, zomwe zimagwiritsidwa ntchito makamaka mu dialplan, pali malaibulale ngati phpagi, PAGI

  • AMI - socket ya TCP yomwe imagwira ntchito pa mfundo yolembetsa ku zochitika ndikulowetsa malamulo a malemba, amafanana ndi SMTP kuchokera mkati, amatha kufufuza zochitika ndikuyendetsa mafoni, pali laibulale. PAMI - otchuka kwambiri popanga kulumikizana ndi Asterisk

Chitsanzo cha AMI

Chochitika: Njira yatsopano
Mwayi: kuitana, nonse
Njira: PJSIP/VMS_pjsip-0000078b
Chigawo cha Channel: 4
ChannelStateDesc: mphete
Nambala ya Caller: 111222
Dzina Loyimba: 111222
ConnectedLineNum:
dzina lolumikizidwa:
Chiyankhulo: en
akaunti kodi:
Zolemba: kuchokera-pstn
Kuwonjezera: s
Choyambirira: 1
Zosiyana: 1599589046.5244
Zogwirizana: 1599589046.5244

  • ARI ndi chisakanizo cha onse awiri, kudzera pa REST, WebSocket, mu mtundu wa JSON - koma ndi malaibulale atsopano ndi zokutira, osati zabwino kwambiri, zomwe zapezeka (phparia, phpari) zomwe zidakhala mukukula kwawo pafupifupi zaka 3 zapitazo.

Chitsanzo cha kutulutsa kwa ARI pamene kuyimba kwayambika

{ "variable":"CallMeCallerIDName", "value":"111222", "type":"ChannelVarset", "timestamp":"2020-09-09T09:38:36.269+0000", "channel":{ "id »:»1599644315.5334″, «dzina»:»PJSIP/VMSpjsip-000007b6″, "state":"Imbani", "woyimba":{"name":"111222″, "nambala":"111222″ }, "connected":{"name":"", "nambala" :"" }, "accountcode":"", "dialplan":{ "context":"from-pstn", "exten":"s", "priority":2, "appdzina":"Stasis", "appdata":"moni-dziko" }, "nthawi yolenga":"2020-09-09T09:38:35.926+0000", "language":"en" }, "asteriskid":"48:5b:aa:aa:aa:aa", "ntchito":"moni-dziko" }

Kusavuta kapena kusokoneza, kuthekera kapena kosatheka kugwira ntchito ndi API inayake kumatsimikiziridwa ndi ntchito zomwe ziyenera kuthetsedwa. Ntchito zophatikizana ndi CRM ndi izi:

  • Tsatani chiyambi cha kuyimba, komwe idasamutsidwa, tulutsani CallerID, DID, nthawi zoyambira ndi zomaliza, mwina deta kuchokera m'ndandanda (kufufuza kugwirizana pakati pa foni ndi wogwiritsa ntchito CRM)

  • Yambitsani ndikumaliza kujambula kuyimba, sungani momwe mukufunira, dziwitsani kumapeto kwa kujambula komwe kuli fayilo.

  • Yambitsani kuyimba pa chochitika chakunja (kuchokera ku pulogalamu), imbani nambala yamkati, nambala yakunja ndikulumikiza

  • Unsankhula: kuphatikiza ndi CRM, magulu oyimba foni ndi FollowME kuti musamutsire mafoni pakalibe malo (malinga ndi CRM)

Ntchito zonsezi zitha kuthetsedwa kudzera mu AMI kapena ARI, koma ARI imapereka chidziwitso chochepa kwambiri, palibe zochitika zambiri, zosintha zambiri zomwe AMI ikadali nazo (mwachitsanzo, ma macro, kukhazikitsa zosintha mkati mwa macros, kuphatikiza kujambula kuyimba) sizitsatiridwa. Chifukwa chake, pakutsata kolondola komanso kolondola, tiyeni tisankhe AMI pakadali pano (koma osati kwathunthu). Kuphatikiza apo (chabwino, zikanakhala kuti popanda izi, ndife anthu aulesi) - mu ntchito yoyambirira (nkhani mu habr) gwiritsani ntchito PAMI. *Ndiye muyenera kuyesa kulemberanso ku ARI, koma osati kuti igwira ntchito.

Kuyambitsanso kuphatikiza

Kuti FreePBX yathu izitha kupereka lipoti kwa AMI m'njira zosavuta za chiyambi cha kuyimba, nthawi yomaliza, manambala, mayina a mafayilo ojambulidwa, ndizosavuta kuwerengera nthawi yakuyimbira pogwiritsa ntchito chinyengo chofanana ndi olemba oyambirira. - lowetsani zosintha zanu ndikuwunika zomwe zatuluka. PAMI ikuwonetsa kuchita izi kudzera muzosefera.

Nachi chitsanzo chokhazikitsa kusintha kwanu pa nthawi yoyambira kuyimba (s ndi nambala yapadera mu dialplan yomwe imachitidwa MUSANAYAMBA kusaka kwa DID)

[ext-did-custom]

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

Chitsanzo cha chochitika cha AMI pamzerewu

Chochitika: Njira yatsopano

Mwayi: kuitana, nonse

Njira: PJSIP/VMS_pjsip-0000078b

Chigawo cha Channel: 4

ChannelStateDesc: mphete

Nambala ya Caller: 111222

Dzina Loyimba: 111222

ConnectedLineNum:

dzina lolumikizidwa:

Chiyankhulo: en

akaunti kodi:

Zolemba: kuchokera-pstn

Kuwonjezera: s

Choyambirira: 1

Zosiyana: 1599589046.5244

Zogwirizana: 1599589046.5244

Ntchito: Khazikitsani AppData:

CallStart=1599571046

Chifukwa FreePBX imachotsa mafayilo a extention.conf ndi extention_zowonjezera.conf, tidzagwiritsa ntchito fayilo kukula_mwambo.conf

Nambala yathunthu ya 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

Chiwonetsero ndi kusiyana kuchokera ku dialplan yoyambirira ya olemba nkhani yoyambirira -

  • Dialplan mu mtundu wa .conf, monga FreePBX ikufunira (inde, ikhoza .ael, koma osati matembenuzidwe onse ndipo sikophweka nthawi zonse)

  • M'malo mokonza mapeto kudzera exten=>h, processing inayambika kudzera hangup_handler, chifukwa FreePBX dialplan inagwira ntchito ndi izo zokha.

  • Chingwe choyimba chokhazikika, mawu owonjezera ndi nambala yoyimba kunja ExtNum

  • Kukonza kumasunthidwa ku _custom contexts ndikukulolani kuti musakhudze kapena kusintha masinthidwe a FreePBX - obwera kudzera [ext-did-custom], kutuluka [zotuluka-zonse-mwambo]

  • Palibe kumangiriza manambala - fayiloyo ndi yapadziko lonse lapansi ndipo imangofunika kukonzedwa kuti igwirizane ndi njirayo ndikulumikizana ndi seva.

Kuti muyambe, muyeneranso kuyendetsa zolemba mu AMI polowera ndi mawu achinsinsi - chifukwa cha izi, FreePBX ilinso ndi _custom file.

manager_custom.conf file

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

Mafayilo onsewa ayenera kuyikidwa mu /etc/asterisk, kenako werenganinso zosintha (kapena kuyambitsanso nyenyezi)

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

Tsopano tiyeni tipitirire ku PHP

Kuyambitsa zolemba ndikupanga ntchito

Popeza chiwembu chogwirira ntchito ndi Bitrix 24, ntchito ya AMI, sichiri chophweka komanso chowonekera, chiyenera kukambidwa mosiyana. Asterisk, AMI ikatsegulidwa, imangotsegula doko ndipo ndi momwemo. Wogula akalowa nawo, amapempha chilolezo, ndiye kuti kasitomala amalembetsa zochitika zofunika. Zochitika zimabwera m'mawu omveka bwino, omwe PAMI amawatembenuza kukhala zinthu zokonzedwa bwino ndipo amapereka mwayi wokonza zosefera pazochitika zokondweretsa, minda, manambala, ndi zina zotero.

Kuyimbako kukangobwera, chochitika cha NewExten chimachotsedwa kuyambira kwa kholo [kuchokera ku-pstn] nkhani, ndiye zochitika zonse zimayendera ndondomeko ya mizere muzochitikazo. Chidziwitso chikalandiridwa kuchokera ku CallMeCallerIDName ndi CallStart zosinthika zomwe zafotokozedwa mu _custom dialplan,

  1. Ntchito yofunsira UserID yogwirizana ndi nambala yowonjezera komwe kuyimba kudabwera. Bwanji ngati liri gulu loyimba? Funso ndi ndale, kodi muyenera kuyitanitsa aliyense nthawi imodzi (pamene aliyense akuyimba nthawi imodzi) kapena kupanga momwe amatchulira poyimbanso? Makasitomala ambiri ali ndi njira ya Fisrt Available, kotero palibe vuto ndi izi, kuyimba kamodzi kokha. Koma nkhaniyo iyenera kuthetsedwa.

  2. Ntchito yolembetsa kuyimba mu Bitrix24, yomwe imabweza CallID, yomwe imafunika kuti ifotokoze zoyimba ndi ulalo wojambulira. Imafunika nambala yowonjezera kapena UserID

Kumvetsetsa FreePBX ndikuphatikiza ndi Bitrix24 ndi zina zambiri

Itatha kuyimba, ntchito yotsitsa nyimbo imatchedwa, yomwe nthawi yomweyo imafotokoza za kumaliza kuyimba (Kutanganidwa, Palibe yankho, Kupambana), ndikutsitsanso ulalo wa fayilo ya mp3 yokhala ndi mbiri (ngati ilipo).

Chifukwa CallMeIn.php module ikufunika kuthamanga mosalekeza, fayilo yoyambira ya SystemD yapangidwira callme.service, zomwe ziyenera kuyikidwa mu /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

kuyambitsa ndi kukhazikitsa script kumachitika kudzera mu systemctl kapena service

# systemctl enable callme
# systemctl start callme

Ntchitoyi iyambiranso yokha ngati ikufunika (ngati zitawonongeka). Ntchito yolondolera ma inbox sikutanthauza kuti seva yapaintaneti iyikidwe, php yokha ndiyofunikira (yomwe ilidi pa seva ya FeePBX). Koma ngati palibe mwayi woyimba ma rekodi kudzera pa seva yapaintaneti (komanso ndi https), sikutheka kumvera ma rekodi.

Tsopano tiyeni tikambirane za mafoni otuluka. Zolemba za CallMeOut.php zili ndi ntchito ziwiri:

  • Kuyambitsa kuyimba pamene pempho lalandiridwa la php script (kuphatikiza kugwiritsa ntchito batani la "Imbani" mu Bitrix yokha). Sichigwira ntchito popanda seva yapaintaneti, pempho limalandiridwa kudzera pa HTTP POST, pempholi lili ndi chizindikiro

  • Uthenga wokhudza kuyimba, magawo ake ndi zolemba mu Bitrix. Kuthamangitsidwa ndi Asterisk mu [sub-call-internal-ended] kuyimba foni ikatha

Kumvetsetsa FreePBX ndikuphatikiza ndi Bitrix24 ndi zina zambiri

Seva yapaintaneti ikufunika pazinthu ziwiri zokha - kutsitsa mafayilo a Bitrix (kudzera pa HTTPS) ndikuyitanitsa script CallMeOut.php. Mutha kugwiritsa ntchito seva ya FreePBX yomangidwa, mafayilo omwe ali /var/www/html, mutha kukhazikitsa seva ina kapena tchulani njira ina.

Seva yapaintaneti

Tiyeni tisiye kukhazikitsidwa kwa seva yapaintaneti kuti tiphunzire paokha (tyts, tyts, tyts). Ngati mulibe domain, mutha kuyesa FreeDomain( https://www.freenom.com/ru/index.html), yomwe idzakupatsani dzina laulere la IP yanu yoyera (musaiwale kutumiza madoko 80, 443 kudzera pa rauta ngati adilesi yakunja ili pamenepo). Ngati mwangopanga gawo la DNS, ndiye kuti muyenera kudikirira (kuyambira mphindi 15 mpaka maola 48) mpaka ma seva onse atsitsidwa. Malinga ndi zomwe zachitika pogwira ntchito ndi othandizira apakhomo - kuyambira ola limodzi mpaka tsiku.

Kukhazikitsa zokha

Woyikirapo wapangidwa pa github kuti kukhazikitsa kosavuta. Koma zinali zosalala pamapepala - pamene tikuyiyika zonse pamanja, popeza titatha kukambirana ndi zonsezi zinamveka bwino kuti ndi abwenzi omwe ali nawo, omwe amapita kuti athetse bwanji. Palibe choyikira pano

Docker

Ngati mukufuna kuyesa yankho mwachangu - pali njira ndi Docker - pangani chidebe mwachangu, perekani madoko kunja, tsitsani mafayilo ndikuyesa (iyi ndiye njira yokhala ndi chidebe cha LetsEncrypt, ngati muli ndi satifiketi. , mukungofunika kuwongolera mayendedwe obwerera ku seva ya FreePBX (tinapatsa doko lina ndi 88), LetsEncrypt mu docker kutengera Nkhani iyi

Muyenera kuyendetsa fayilo mufoda yotsitsa polojekiti (pambuyo pa git clone), koma choyamba lowani mu asterisk configs (foda ya nyenyezi) ndikulemba njira zopita ku zolemba ndi ulalo wa tsamba lanu pamenepo.

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:

Fayilo iyi ya docker-compose.yaml imayendetsedwa kudzera

docker-compose up -d

Ngati nginx siinayambe, ndiye kuti pali cholakwika ndi kasinthidwe mufoda ya nginx/ssl_docker.conf

Zophatikiza zina

Ndipo bwanji osayika CRM ina muzolemba nthawi yomweyo, tidaganiza. Tidaphunzira ma API ena angapo a CRM, makamaka PBX yaulere yomangidwa - ShugarCRM ndi Vtiger, ndipo inde! inde, mfundo ndi yofanana. Koma iyi ndi nkhani ina, yomwe tidzayika pambuyo pake ku github mosiyana.

powatsimikizira

Chodzikanira: Kufanana kulikonse ndi zenizeni ndizopeka ndipo sindinali ine.

Source: www.habr.com

Kuwonjezera ndemanga