Fahimtar FreePBX da haɗa shi tare da Bitrix24 da ƙari

Bitrix24 babban haɗin gwiwa ne wanda ya haɗu da CRM, aikin aiki, lissafin kuɗi da sauran abubuwa da yawa waɗanda manajoji ke so da gaske kuma ma'aikatan IT ba sa son gaske. Kamfanoni da yawa kanana da matsakaita ke amfani da tashar, gami da kananan asibitoci, masana'anta har ma da wuraren kwalliya. Babban aikin da manajoji "ƙauna" shine haɗin kai na wayar tarho da CRM, lokacin da aka rubuta kowane kira nan da nan a cikin CRM, an ƙirƙiri katunan abokin ciniki, lokacin shigowa, ana nuna bayanin game da abokin ciniki kuma nan da nan zaku iya ganin ko wanene shi, menene yake. zai iya sayarwa da nawa ake binsa. Amma wayar tarho daga Bitrix24 da haɗin kai tare da CRM yana kashe kuɗi, wani lokacin da yawa. A cikin labarin zan gaya muku kwarewar haɗawa tare da kayan aiki masu buɗewa da kuma mashahurin IP PBX freepbx, da kuma la'akari da dabaru na aikin sassa daban-daban

Ina aiki a matsayin mai fitar da kaya a cikin kamfani wanda ke siyarwa da daidaitawa, haɗa wayar tarho ta IP. Lokacin da aka tambaye ni ko za mu iya ba da wani abu ga wannan da wannan kamfani don haɗa Bitrix24 tare da PBXs waɗanda abokan ciniki ke da su, da kuma tare da PBXs masu kama da kan kamfanoni daban-daban na VDS, na je Google. Kuma tabbas ya ba ni hanyar haɗi zuwa labarin in habr, inda akwai bayanin, da github, kuma duk abin da alama yana aiki. Amma lokacin ƙoƙarin yin amfani da wannan maganin, ya zama cewa Bitrix24 ba kamar dā ba ne, kuma da yawa yana buƙatar sake gyarawa. Bugu da ƙari, FreePBX ba alamar alama ba ce a gare ku, a nan kuna buƙatar yin tunani game da yadda ake haɗa sauƙin amfani da madaidaicin bugun kira a cikin fayilolin daidaitawa.

Muna nazarin dabaru na aiki

Don haka don farawa, yadda yakamata duk yayi aiki. Lokacin da aka karɓi kira daga wajen PBX (SIP INVITE taron daga mai badawa), aiwatar da tsarin bugun kira (tsarin bugun kira, tsarin dialplan) yana farawa - ƙa'idodin abin da kuma yadda za a yi tare da kiran. Daga fakiti na farko, za ku iya samun bayanai da yawa, waɗanda za a iya amfani da su a cikin dokoki. Kyakkyawan kayan aiki don nazarin abubuwan ciki na SIP shine mai nazari sngrep (mahada) wanda kawai aka sanya shi a cikin shahararrun rabawa ta hanyar shigarwa mai dacewa / yum shigar da makamantansu, amma kuma ana iya gina shi daga tushe. Bari mu kalli log log in sngrep

Fahimtar FreePBX da haɗa shi tare da Bitrix24 da ƙari

A cikin sassauƙan tsari, tsarin bugun kira yana hulɗa da fakiti na farko kawai, wani lokacin kuma yayin tattaunawar, ana canja wurin kira, latsa maɓallin (DTMF), abubuwa masu ban sha'awa iri-iri kamar FollowMe, RingGroup, IVR da sauransu.

Abin da ke cikin Fakitin Gayyata

Fahimtar FreePBX da haɗa shi tare da Bitrix24 da ƙari

A haƙiƙa, mafi sauƙaƙan shirye-shiryen bugun kira suna aiki tare da filaye biyu na farko, kuma gabaɗayan hikimar ta ta'allaka ne akan DID da CallerID. YAYI - inda muke kira, CallerID - wanda ke kira.

Amma bayan haka, muna da kamfani kuma ba waya ɗaya ba - wanda ke nufin cewa PBX mai yiwuwa yana da ƙungiyoyin kira (lokaci ɗaya / a jere na na'urori da yawa) akan lambobin birni (Ring Group), IVR (Sannu, kun kira ... Latsa) daya don ...), Injin amsawa (Jumloli), Sharuɗɗan Lokaci, Gabatarwa zuwa wasu lambobi ko zuwa tantanin halitta (FollowMe, Gaba). Wannan yana nufin cewa yana da matukar wahala a tantance wanda a zahiri zai karɓi kira kuma wanda zai yi magana da lokacin da kira ya zo. Anan akwai misalin farkon kira na yau da kullun a cikin PBX na abokan cinikinmu

Fahimtar FreePBX da haɗa shi tare da Bitrix24 da ƙari

Bayan kiran ya sami nasarar shiga PBX, yana tafiya ta cikin tsarin bugun kira a cikin "maganganun yanayi" daban-daban. Mahallin daga mahangar alamar alama jerin umarni ne masu lamba, kowannensu yana ɗauke da matattara ta lambar da aka buga (ana kiranta exten, don kiran waje a matakin farko exten=DID). Umurnin da ke cikin layin bugun kira na iya zama wani abu - ayyuka na ciki (misali, kira mai biyan kuɗi na ciki - Dial(), ajiye wayar - Hangup()), masu aiki na sharadi (IF, ELSE, ExecIF da makamantansu), canzawa zuwa wasu ƙa'idodin wannan mahallin (Goto, GotoIF), canzawa zuwa wasu mahallin ta hanyar kiran aiki (Gosub, Macro). Umarni dabam include имя_контекста, wanda ke ƙara umarni daga wani mahallin zuwa ƙarshen mahallin na yanzu. Umurnin da aka haɗa ta hanyar haɗawa koyaushe ana aiwatar da su после umarnin mahallin halin yanzu.

An gina dukkan ma'anar FreePBX akan haɗar mahallin daban-daban a cikin juna ta hanyar haɗawa da kira ta hanyar Gosub, Macro da Handler masu kulawa. Yi la'akari da mahallin kiran FreePBX masu shigowa

Fahimtar FreePBX da haɗa shi tare da Bitrix24 da ƙari

Kiran yana tafiya ta kowane mahallin daga sama zuwa kasa bi da bi, a kowane mahallin za a iya yin kira zuwa wasu mahallin kamar macros (Macro), ayyuka (Gosub) ko kawai canzawa (Goto), don haka ainihin bishiyar abin da ake kira zai iya kawai. a sa ido a cikin rajistan ayyukan.

An nuna zane na yau da kullun don PBX na yau da kullun a ƙasa. Lokacin kira, ana bincika DID a cikin hanyoyin da ke shigowa, ana bincika yanayin ɗan lokaci don shi, idan komai yana cikin tsari, an ƙaddamar da menu na murya. Daga gare ta, ta latsa maɓallin 1 ko ƙarewar lokaci, fita zuwa ƙungiyar masu aiki da bugun kira. Bayan kiran ya ƙare, ana kiran macro na hangupcal, bayan haka ba za a iya yin wani abu a cikin tsarin bugun kira ba, sai dai masu kulawa na musamman (mai kula da hangup).

Fahimtar FreePBX da haɗa shi tare da Bitrix24 da ƙari

A ina a cikin wannan algorithm na kira ya kamata mu ba da bayanai game da farkon kiran zuwa CRM, inda za a fara rikodi, inda za a ƙare rikodi da aika shi tare da bayani game da kiran zuwa CRM?

Haɗin kai tare da tsarin waje

Menene haɗin PBX da CRM? Waɗannan su ne saituna da shirye-shiryen da ke canza bayanai da abubuwan da suka faru a tsakanin waɗannan dandamali guda biyu da aika su zuwa juna. Hanyar da ta fi dacewa don sadarwa mai zaman kanta ita ce ta APIs, kuma mafi mashahuri hanyar samun damar API shine HTTP REST. Amma ba don alamar alama ba.

Ciki Taurari shine:

  • AGI - kira na aiki tare na shirye-shirye/bangarori na waje, wanda aka fi amfani da shi a cikin tsarin bugun kira, akwai ɗakunan karatu kamar phpagi, PAGI

  • AMI - soket na TCP na rubutu wanda ke aiki akan ka'idar biyan kuɗi zuwa abubuwan da suka faru da shigar da umarnin rubutu, yayi kama da SMTP daga ciki, yana iya bin abubuwan da suka faru da sarrafa kira, akwai ɗakin karatu. PAMI - mafi mashahuri don ƙirƙirar haɗi tare da Alamar alama

Misalin fitarwa na AMI

Lamarin: Sabon tashar
Gata: kira, duk
Tashar: PJSIP/VMS_pjsip-0000078b
Jihar Channel: 4
ChannelStateDesc: Ring
Lambar waya: 111222
Lambar waya: 111222
ConnectedLineNum:
sunan layin da aka haɗa:
Harshe: en
lambar asusu:
Magana: daga-pstn
Tsawo: s
Fifiko: 1
Na Musamman: 1599589046.5244
Saukewa: 1599589046.5244

  • ARI cakude ne na duka biyun, duk ta hanyar REST, WebSocket, a cikin tsarin JSON - amma tare da sabbin ɗakunan karatu da nade-nade, ba su da kyau sosai, an same su da hannu (pharia, phpari) wanda ya kasance a cikin ci gaban su kimanin shekaru 3 da suka wuce.

Misalin fitowar ARI lokacin da aka fara kira

{"mai canzawa":"CallMeCallerIDName", "darajar":"111222", "nau'in":"ChannelVarset", "timestamp":"2020-09-09T09:38:36.269+0000", "tashar":{"id" »:»1599644315.5334″, «suna»:»PJSIP/VMSpjsip-000007b6″, "jihar":"Ring", "mai kira":{"suna":"111222″, "lambar":"111222″}, "haɗe":{"suna":"", "lamba" :"" }, "accountcode":"", "dialplan":{"context":"from-pstn", "exten":"s", "priority":2, "appname":"Stasis", "appdata":"hello-world"}, "lokacin halitta":"2020-09-09T09:38:35.926+0000", "harshe":"en"}, "alamaid":"48:5b:a:aa:aa:aa", "application":"sannu-duniya"}

Sauƙaƙawa ko rashin jin daɗi, yuwuwar ko rashin yiwuwar aiki tare da takamaiman API an ƙaddara ta ayyukan da ake buƙatar warwarewa. Ayyukan haɗin gwiwa tare da CRM sune kamar haka:

  • Bibiyar farkon kiran, inda aka canza shi, cire CallerID, DID, lokacin farawa da ƙarewa, watakila bayanai daga kundin adireshi (don neman haɗi tsakanin wayar da mai amfani da CRM)

  • Fara da ƙare rikodin kiran, ajiye shi a tsarin da ake so, sanar a ƙarshen rikodin inda fayil ɗin yake.

  • Fara kira akan taron waje (daga shirin), kira lambar ciki, lambar waje kuma haɗa su

  • Zabi: haɗa tare da CRM, ƙungiyoyin dialer da FollowME don canja wurin kira ta atomatik idan babu wuri (bisa ga CRM)

Duk waɗannan ayyuka za a iya warware su ta hanyar AMI ko ARI, amma ARI yana ba da bayanai kaɗan kaɗan, babu abubuwan da suka faru da yawa, yawancin masu canji waɗanda AMI har yanzu suna da (misali, kiran macro, saita masu canji a cikin macros, gami da rikodin kira) ba a sa ido ba. Don haka, don bin diddigin daidai kuma daidai, bari mu zaɓi AMI a yanzu (amma ba gaba ɗaya ba). Bugu da ƙari (da kyau, a ina zai kasance ba tare da wannan ba, mu mutane ne masu kasala) - a cikin aikin asali (labarin in habr) amfani da PAMI. *Sannan kuna buƙatar ƙoƙarin sake rubutawa zuwa ARI, amma ba gaskiyar cewa zai yi aiki ba.

Sake ƙirƙira haɗin kai

Domin FreePBX ɗin mu ya sami damar ba da rahoto ga AMI ta hanyoyi masu sauƙi game da farkon kiran, lokacin ƙarewa, lambobi, sunayen fayilolin da aka yi rikodi, ya fi sauƙi a ƙididdige tsawon lokacin kiran ta amfani da dabara ɗaya kamar yadda mawallafa na asali. - shigar da masu canjin ku kuma ku rarraba abubuwan da aka fitar don kasancewarsu. PAMI tana ba da shawarar yin wannan ta hanyar aikin tacewa.

Anan akwai misalin saita canjin naku don farkon lokacin kiran (s lamba ce ta musamman a cikin tsarin bugun kiran da ake yi KAFIN fara binciken DID)

[ext-did-custom]

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

Misali taron AMI na wannan layin

Lamarin: Sabon tashar

Gata: kira, duk

Tashar: PJSIP/VMS_pjsip-0000078b

Jihar Channel: 4

ChannelStateDesc: Ring

Lambar waya: 111222

Lambar waya: 111222

ConnectedLineNum:

sunan layin da aka haɗa:

Harshe: en

lambar asusu:

Magana: daga-pstn

Tsawo: s

Fifiko: 1

Na Musamman: 1599589046.5244

Saukewa: 1599589046.5244

Aikace-aikace: Saita AppData:

CallStart=1599571046

Domin FreePBX yana sake rubuta fayilolin sizeion.conf da girman_ƙarin.conf, za mu yi amfani da fayil ɗin girma_custom.conf

Cikakken lamba na 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

Siffata da bambanci daga ainihin tsarin bugu na mawallafa na ainihin labarin -

  • Dialplan a cikin tsarin .conf, kamar yadda FreePBX ke so (eh, zai iya .ael, amma ba duka nau'ikan ba ne kuma ba koyaushe ya dace ba)

  • Maimakon sarrafa karshen ta hanyar exten=>h, an gabatar da sarrafawa ta hanyar hangup_handler, saboda FreePBX dialplan yayi aiki da shi kawai.

  • Kafaffen kitin kira na rubutun rubutu, ƙarin ƙididdiga da lambar kiran waje ExtNum

  • Ana matsar da aiwatarwa zuwa mahallin _custom kuma yana ba ku damar taɓa ko gyara saitunan FreePBX - mai shigowa ta hanyar [ext-yi- custom], ta hanyar [waje-allroutes-al'ada]

  • Babu ɗaurin lambobi - fayil ɗin na duniya ne kuma kawai yana buƙatar saita shi don hanya da hanyar haɗi zuwa uwar garken

Don farawa, kuna buƙatar aiwatar da rubutun a cikin AMI ta hanyar shiga da kalmar sirri - don wannan, FreePBX kuma yana da fayil ɗin _custom.

manager_custom.conf fayil

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

Duk waɗannan fayilolin dole ne a sanya su cikin /etc/asterisk, sannan a sake karanta saitunan (ko sake kunna alamar)

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

Yanzu bari mu matsa zuwa PHP

Ƙaddamar da rubutun da ƙirƙirar sabis

Tun da makircin yin aiki tare da Bitrix 24, sabis na AMI, ba cikakke ba ne mai sauƙi da gaskiya, dole ne a tattauna shi daban. Alamar alama, lokacin da aka kunna AMI, kawai buɗe tashar jiragen ruwa kuma shi ke nan. Lokacin da abokin ciniki ya shiga, yana buƙatar izini, sannan abokin ciniki ya yi rajista ga abubuwan da suka dace. Abubuwan da suka faru sun zo cikin rubutu a sarari, wanda PAMI ke jujjuya su zuwa abubuwan da aka tsara kuma yana ba da ikon saita aikin tacewa kawai don abubuwan sha'awa, filayen, lambobi, da sauransu.

Da zarar kiran ya shigo, an kori taron NewExten farawa daga mahallin iyaye [daga-pstn], to, duk abubuwan da suka faru suna tafiya cikin tsari na layin a cikin mahallin. Lokacin da aka karɓi bayanai daga CallMeCallerIDName da masu canji na CallStart da aka ƙayyade a cikin _custom dialplan,

  1. Ayyukan neman UserID daidai da lambar tsawo inda kiran ya zo. Idan ƙungiyar kira ce fa? Tambayar ita ce ta siyasa, shin kuna buƙatar ƙirƙirar kira ga kowa da kowa a lokaci ɗaya (lokacin da kowa ya kira lokaci ɗaya) ko ƙirƙirar yadda suke kira lokacin kiran bi da bi? Yawancin abokan ciniki suna da dabarar Fisrt Available, don haka babu matsala tare da wannan, kira ɗaya kawai. Amma ana bukatar a warware matsalar.

  2. Aikin rajistar kira a cikin Bitrix24, wanda ke dawo da CallID, wanda ake buƙata don bayar da rahoton sigogin kira da hanyar haɗi zuwa rikodi. Yana buƙatar ko dai lambar tsawo ko UserID

Fahimtar FreePBX da haɗa shi tare da Bitrix24 da ƙari

Bayan ƙarshen kiran, ana kiran aikin zazzage rikodin, wanda a lokaci guda yana ba da rahoton matsayin kammala kiran (Aiki, Babu amsa, Nasara), sannan kuma zazzage hanyar haɗi zuwa fayil ɗin mp3 tare da rikodin (idan akwai).

Saboda tsarin CallMeIn.php yana buƙatar ci gaba da gudana, an ƙirƙiri fayil ɗin farawa na SystemD don shi callme.sabis, wanda dole ne a saka a /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

farawa da ƙaddamar da rubutun yana faruwa ta hanyar systemctl ko sabis

# systemctl enable callme
# systemctl start callme

Sabis ɗin zai sake farawa da kansa kamar yadda ake buƙata (idan ya faru). Sabis ɗin bin akwatin saƙo mai shiga baya buƙatar shigar da sabar gidan yanar gizo, php kawai ake buƙata (wanda tabbas yana kan sabar FeePBX). Amma idan babu damar yin amfani da rikodin kira ta hanyar uwar garken gidan yanar gizo (kuma tare da https), ba zai yiwu a saurari bayanan kira ba.

Yanzu bari muyi magana game da kira masu fita. Rubutun CallMeOut.php yana da ayyuka guda biyu:

  • Ƙaddamar da kira lokacin da aka karɓi buƙatu don rubutun php (ciki har da amfani da maɓallin "Kira" a cikin Bitrix kanta). Ba ya aiki ba tare da sabar yanar gizo ba, ana karɓar buƙatar ta hanyar HTTP POST, buƙatar ta ƙunshi alama

  • Saƙo game da kiran, sigoginsa da bayanansa a cikin Bitrix. An kori ta Asterisk a cikin tsarin bugun kiran [ƙarshen kiran-cikin-ƙare] lokacin da kira ya ƙare.

Fahimtar FreePBX da haɗa shi tare da Bitrix24 da ƙari

Ana buƙatar sabar gidan yanar gizon don abubuwa biyu kawai - zazzage fayilolin rikodin Bitrix (ta hanyar HTTPS) da kiran rubutun CallMeOut.php. Za ka iya amfani da ginannen uwar garken FreePBX, fayilolin da suke /var/www/html, za ka iya shigar da wata uwar garken ko saka wata hanya ta daban.

Sabar yanar gizo

Mu bar saitin sabar gidan yanar gizo don nazari mai zaman kansa (tyts, tyts, tyts). Idan ba ku da yanki, kuna iya gwada FreeDomain( https://www.freenom.com/ru/index.html), wanda zai ba ku suna kyauta don farar IP ɗinku (kar ku manta da tura tashar jiragen ruwa 80, 443 ta hanyar na'ura mai ba da hanya tsakanin hanyoyin sadarwa idan adireshin waje yana kan sa kawai). Idan kawai ka ƙirƙiri yankin DNS, to dole ne ka jira (daga mintuna 15 zuwa sa'o'i 48) har sai an loda duk sabobin. Bisa ga kwarewar aiki tare da masu samar da gida - daga 1 hour zuwa rana.

Shigarwa ta atomatik

An haɓaka mai sakawa akan github don sauƙaƙe shigarwa. Amma ya kasance santsi a kan takarda - yayin da muke shigar da shi duka da hannu, tun bayan tinkering tare da duk wannan ya zama bayyananne ga abin da abokai suke tare da wanda, wanda ke zuwa inda kuma yadda za a gyara shi. Babu mai sakawa tukuna

Docker

Idan kuna son gwada maganin da sauri - akwai zaɓi tare da Docker - da sauri ƙirƙirar akwati, ba shi tashar jiragen ruwa zuwa waje, zame fayilolin saitunan kuma gwada (wannan zaɓi ne tare da akwati na LetsEncrypt, idan kun riga kuna da takaddun shaida. , kawai kuna buƙatar tura wakili na baya zuwa sabar gidan yanar gizon FreePBX (mun ba shi wata tashar jiragen ruwa 88), LetsEncrypt a cikin docker dangane da wannan labarin

Kuna buƙatar gudanar da fayil ɗin a cikin babban fayil ɗin aikin da aka zazzage (bayan git clone), amma da farko shiga cikin saitunan alamar alama (babban fayil ɗin alamar) kuma rubuta hanyoyin zuwa bayanan da URL na rukunin yanar gizon ku a can.

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:

Ana gudanar da wannan fayil ɗin docker-compose.yaml ta hanyar

docker-compose up -d

Idan nginx bai fara ba, to, wani abu ba daidai ba tare da daidaitawa a cikin babban fayil nginx/ssl_docker.conf

Sauran haɗin kai

Kuma me yasa ba a sanya wasu CRM a cikin rubutun lokaci guda ba, mun yi tunani. Mun yi nazarin wasu APIs na CRM da yawa, musamman PBX ginannen kyauta - ShugarCRM da Vtiger, kuma a! a, ka'ida ɗaya ce. Amma wannan wani labari ne, wanda daga baya za mu loda zuwa github daban.

nassoshi

Disclaimer: Duk wani kamance da gaskiya gaskiya ne kuma ba ni bane.

source: www.habr.com

Add a comment