dia mitambatra goavana izay manambatra ny CRM, ny workflow, ny kaonty ary ny zavatra maro hafa izay tena tian'ny mpitantana ary tsy tena tian'ny mpiasan'ny IT. Ny vavahadin-tserasera dia ampiasain'ny orinasa madinika sy salantsalany maro, ao anatin'izany ny toeram-pitsaboana kely, mpanamboatra ary na dia ny salon hatsaran-tarehy aza. Ny tena asa izay "tia" mpitantana dia ny fampidirana ny telephony sy ny CRM, rehefa misy antso voarakitra avy hatrany ao amin'ny CRM, ny mpanjifa karatra dia noforonina, rehefa tonga, ny vaovao momba ny mpanjifa dia aseho ary ho hitanao avy hatrany hoe iza izy, inona izy. afaka mivarotra ary ohatrinona ny trosany. Fa ny telefaona avy amin'ny Bitrix24 sy ny fampidirana azy amin'ny CRM dia mandany vola, indraindray be. Ao amin'ny lahatsoratra dia hilaza aminao ny traikefa amin'ny fampidirana amin'ny fitaovana misokatra sy ny IP PBX malaza aho , ary diniho koa ny lojikan'ny asan'ny faritra samihafa
Miasa toy ny outsourcer aho amin'ny orinasa mivarotra sy manamboatra, mampiditra IP telephony. Rehefa nanontaniana aho raha afaka manolotra zavatra ho an'ity sy ity orinasa ity izahay mba hampidirana ny Bitrix24 amin'ny PBX izay ananan'ny mpanjifa, ary koa amin'ny PBX virtoaly amin'ny orinasa VDS isan-karazany, dia nankany amin'ny Google aho. Ary mazava ho azy fa nomeny rohy mankany aho , izay misy famaritana, ary github, ary toa mandeha ny zava-drehetra. Saingy rehefa nanandrana nampiasa an'io vahaolana io dia hita fa tsy mitovy amin'ny teo aloha intsony ny Bitrix24, ary maro no mila averina. Fanampin'izany, FreePBX dia tsy asterisk miboridana ho anao, eto dia mila mieritreritra ny fomba hanambatra mora ny fampiasana sy ny hardcore dialplan amin'ny config rakitra.
Mandalina ny lojikan'ny asa isika
Noho izany, ho an'ny fanombohana, ny fomba tokony hiasana rehetra. Rehefa misy antso voaray avy any ivelany ao amin'ny PBX (SIP INVITE hetsika avy amin'ny mpamatsy), dia manomboka ny fanodinana ny dialplan (dial plan, dialplan) - ny fitsipiky ny inona sy ny tokony hatao amin'ny antso. Avy amin'ny fonosana voalohany dia afaka mahazo fampahalalana be dia be ianao, izay azo ampiasaina amin'ny fitsipika. Ny fitaovana tsara indrindra amin'ny fandalinana ny anatiny SIP dia ny analyzer sngrep () izay apetraka fotsiny amin'ny fizarana malaza amin'ny alàlan'ny apt install/yum install sy ny toy izany, fa azo amboarina avy amin'ny loharano ihany koa. Andeha hojerentsika ny log in sngrep

Amin'ny endrika tsotra, ny dialplan dia tsy miresaka afa-tsy amin'ny fonosana voalohany, indraindray mandritra ny resaka ihany koa, dia afindra ny antso, fanindriana bokotra (DTMF), zavatra mahaliana isan-karazany toa ny FollowMe, RingGroup, IVR sy ny hafa.
Inona no ao anatin'ny Invite Pack

Raha ny marina, ny ankamaroan'ny dialplans tsotra dia miasa miaraka amin'ireo saha roa voalohany, ary ny lojika manontolo dia mihodina manodidina ny DID sy CallerID. DID - izay iantsoanay, CallerID - iza no miantso.
Fa na izany na tsy izany, manana orinasa izahay fa tsy telefaona iray - izay midika fa ny PBX dia mety manana vondrona fiantsoana (marika / misesy amin'ny fitaovana maromaro) amin'ny laharan'ny tanàna (Ring Group), IVR (Manahoana, niantso anao ... Press iray ho an'ny ...), milina famaliana ( Andian-teny), fepetran'ny fotoana, fandefasana amin'ny isa hafa na amin'ny sela (Araho aho, mandroso). Midika izany fa sarotra be ny mamaritra mazava tsara hoe iza no tena handray antso ary iza no hifampiresaka rehefa tonga ny antso. Ity misy ohatra iray amin'ny fiandohan'ny antso mahazatra amin'ny PBX an'ny mpanjifanay

Rehefa tafiditra soa aman-tsara ao amin'ny PBX ny antso dia mandeha amin'ny alàlan'ny dialplan amin'ny "contexte" samihafa. Ny teny manodidina avy amin'ny fomba fijerin'ny Asterisk dia andian-baiko voaisa, izay samy misy sivana amin'ny laharana nalaina (antsoina hoe exten, ho an'ny antso ivelany amin'ny dingana voalohany exten=DID). Ny baiko ao amin'ny tsipika dialplan dia mety ho na inona na inona - fiasa anatiny (ohatra, miantsoa mpanjifa anatiny - Dial(), apetraho ny telefaona - Hangup()), mpandraharaha misy fepetra (IF, ELSE, ExecIF sy ny toy izany), fifindrana amin'ny fitsipika hafa amin'ity contexte ity (Goto, GotoIF), fifindrana mankany amin'ny toe-javatra hafa amin'ny endrika antso (Gosub, Macro). Directive misaraka include имя_контекста, izay manampy baiko avy amin'ny contexte hafa mankany amin'ny faran'ny contexte ankehitriny. Ny baiko tafiditra amin'ny alalan'ny fampidirana dia tanterahina foana после baikon'ny contexte ankehitriny.
Ny lojika manontolo amin'ny FreePBX dia naorina amin'ny fampidirana ireo toe-javatra samihafa amin'ny tsirairay amin'ny alàlan'ny fampidirana sy antso amin'ny alàlan'ny Gosub, Macro ary Handler. Diniho ny tontolon'ny antso FreePBX miditra

Ny antso dia mamakivaky ny contexte rehetra avy any ambony ka hatrany ambany, isaky ny contexte dia mety misy antso amin'ny contexte hafa toy ny macros (Macro), functions (Gosub) na transitions fotsiny (Goto), ka ny tena hazo amin'ilay antsoina dia afaka ihany. hojerena ao amin'ny logs.
Ny kisary fanaingoana mahazatra ho an'ny PBX mahazatra dia aseho eto ambany. Rehefa miantso ny DID dia karohina amin'ny lalana ho avy, ny fepetra vonjimaika no jerena, raha milamina ny zava-drehetra, dia alefa ny menio feo. Avy eo, amin'ny alàlan'ny fanindriana ny bokotra 1 na ny fiafaran'ny fotoana, mivoaha mankany amin'ny vondron'ny mpandraharaha miantso. Rehefa tapitra ny antso, dia antsoina ny macro hangupcall, ary aorian'izay dia tsy misy azo atao ao amin'ny dialplan, afa-tsy ireo mpitantana manokana (hangup handler).

Aiza amin'ity algorithm antso ity no tokony hanome vaovao momba ny fiandohan'ny antso ho an'ny CRM, aiza no hanombohana firaketana, aiza no hamarana ny fandraisam-peo ary handefa izany miaraka amin'ny fampahalalana momba ny antso amin'ny CRM?
Fampidirana amin'ny rafitra ivelany
Inona no atao hoe PBX sy CRM integration? Ireo dia fandrindrana sy programa izay mamadika angona sy hetsika eo amin'ireo sehatra roa ireo ary mandefa azy ireo. Ny fomba mahazatra indrindra amin'ny rafitra tsy miankina dia amin'ny alàlan'ny API, ary ny fomba malaza indrindra hidirana amin'ny API dia ny HTTP REST. Fa tsy ho an'ny asterisk.
Ao anatin'ny Asterisk dia:
AGI - antso an-tariby amin'ny programa / singa ivelany, ampiasaina indrindra amin'ny dialplan, misy tranomboky toy ny ,
AMI - socket TCP text izay miasa amin'ny fitsipiky ny famandrihana hetsika sy fampidirana baiko an-tsoratra, mitovy amin'ny SMTP avy ao anatiny, afaka manara-maso ny hetsika sy mitantana antso, misy tranomboky. - ny malaza indrindra amin'ny famoronana fifandraisana amin'ny Asterisk
Ohatra avy amin'ny AMI
Hetsika: Fantsona vaovao
Tombontsoa: miantso, rehetra
Channel: PJSIP/VMS_pjsip-0000078b
Fanjakana Channel: 4
ChannelStateDesc: Ring
Antsoy: 111222
Anaran'ny mpiantso: 111222
ConnectedLineNum:
anarana andalana mifandray:
Fiteny: mg
kaonty kaonty:
Toe-javatra: avy-pstn
Exten : s
Laharam-pahamehana: 1
Ny tokana: 1599589046.5244
Loharano: 1599589046.5244
Ny ARI dia fifangaroan'ny roa tonta, amin'ny alàlan'ny REST, WebSocket, amin'ny endrika JSON - fa miaraka amin'ny tranomboky sy fonosana vaovao, tsy dia tsara loatra, tsy hita (, ) izay lasa teo amin'ny fivoarany tokony ho 3 taona lasa izay.
Ohatra amin'ny famoahana ARI rehefa misy antso
{ "variable": "CallMeCallerIDName", "value":"111222", "type":"ChannelVarset", "timestamp":"2020-09-09T09:38:36.269+0000", "channel":{ "id »:»1599644315.5334″, «anarana»:»PJSIP/VMSpjsip-000007b6″, "state": "Ring", "caller":{ "name":"111222″, "number":"111222″ }, "connected":{ "name":"", "numero" :"" }, "accountcode":"", "dialplan":{ "context":"from-pstn", "exten":"s", "priority":2, "appanarana":"Stasis", "appdata":"hello-world" }, "creationtime":"2020-09-09T09:38:35.926+0000", "language":"en" }, "asteriskid":"48:5b:aa:aa:aa:aa", "application":"hello-world" }
Ny fahasahiranana na ny fahasahiranana, ny mety na ny tsy fahafahana miasa amin'ny API manokana dia voafaritra amin'ny asa tokony hovahana. Ny asa ho an'ny fampidirana amin'ny CRM dia toy izao manaraka izao:
Araho ny fiandohan'ny antso, izay nafindrany, esory CallerID, DID, fanombohana sy fiafarana, angamba angona avy amin'ny lahatahiry (hikarohana fifandraisana eo amin'ny telefaona sy ny mpampiasa CRM)
Atombohy ary farano ny firaketana ny antso, tehirizo amin'ny endrika irina, ampahafantaro amin'ny faran'ny fandraketana ny toerana misy ny rakitra
Manomboha antso amin'ny hetsika ivelany (avy amin'ny fandaharana), miantsoa laharana anatiny, laharana ivelany ary mampifandray azy ireo
tsy voatery: ampifandraiso amin'ny CRM, vondrona dialer ary FollowME ho an'ny famindrana antso ho azy raha tsy misy toerana (araka ny CRM)
Ireo asa rehetra ireo dia azo vahana amin'ny alàlan'ny AMI na ARI, fa ny ARI dia manome fampahalalana kely kokoa, tsy dia misy hetsika maro, maro ny variables izay mbola ananan'ny AMI (ohatra, ny antso an-tariby, ny fametrahana ny fari-pahaizana ao anatin'ny macro, anisan'izany ny firaketana an-tsoratra) dia tsy arahina. Noho izany, ho an'ny fanaraha-maso marina sy marina, andao hifidy AMI amin'izao fotoana izao (fa tsy tanteraka). Fanampin'izany (eny, aiza ho aiza raha tsy misy an'ity, kamo isika) - amin'ny asa tany am-boalohany () mampiasa PAMI. *Avy eo ianao dia mila miezaka ny manoratra indray amin'ny ARI, fa tsy ny zava-misy fa hiasa.
Reinventing integration
Mba hahafahan'ny FreePBX afaka mitatitra amin'ny AMI amin'ny fomba tsotra momba ny fiandohan'ny antso, ny ora farany, ny isa, ny anaran'ireo rakitra voarakitra, dia mora indrindra ny manao kajy ny faharetan'ny antso amin'ny fampiasana fitaka mitovy amin'ireo mpanoratra tany am-boalohany. - ampidiro ny fari-piainanao ary zarao ny vokatra ho an'ny fisiany. Manoro hevitra ny PAMI hanao izany amin'ny alàlan'ny fanivanana tsotra.
Ity misy ohatra iray amin'ny fametrahana ny fari-piainanao manokana amin'ny ora fanombohan'ny antso (s dia isa manokana ao amin'ny dialplan izay atao alohan'ny hanombohana ny fikarohana DID)
[ext-did-custom]
exten => s,1,Set(CallStart=${STRFTIME(epoch,,%s)})Hetsika AMI ohatra ho an'ity andalana ity
Hetsika: Fantsona vaovao
Tombontsoa: miantso, rehetra
Channel: PJSIP/VMS_pjsip-0000078b
Fanjakana Channel: 4
ChannelStateDesc: Ring
Antsoy: 111222
Anaran'ny mpiantso: 111222
ConnectedLineNum:
anarana andalana mifandray:
Fiteny: mg
kaonty kaonty:
Toe-javatra: avy-pstn
Exten : s
Laharam-pahamehana: 1
Ny tokana: 1599589046.5244
Loharano: 1599589046.5244
Fampiharana: Mametraha AppData:
CallStart=1599571046
Satria ny FreePBX dia misolo ny rakitra extention.conf sy extention_fanampiny.conf, hampiasainay ny rakitra fanitarana_fanao.conf
Kaody feno amin'ny 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,ReturnNy endri-javatra sy ny fahasamihafan'ny drafitra dial tany am-boalohany an'ny mpanoratra ny lahatsoratra tany am-boalohany -
Dialplan amin'ny endrika .conf, araka izay irin'ny FreePBX (eny, afaka .ael, fa tsy ny dikan-teny rehetra ary tsy mety foana)
Raha tokony ho fanodinana ny farany amin'ny alalan'ny exten => h, ny fanodinana dia nampidirina tamin'ny alalan'ny hangup_handler, satria ny FreePBX dialplan dia niasa tamin'izany ihany.
Tady fiantsoana script raikitra, teny nindramina fanampiny ary laharan'ny antso ivelany ExtNum
Ny fanodinana dia afindra amin'ny _contexte custom ary mamela anao tsy hikasika na hanova ny config FreePBX - miditra amin'ny [ext-did-custom], mivoaka amin'ny [outbound-allroutes-custom]
Tsy mifamatotra amin'ny isa - ny rakitra dia manerana izao rehetra izao ary mila amboarina ho an'ny lalana sy rohy mankany amin'ny mpizara ihany
Raha vao manomboka dia mila mandefa script ao amin'ny AMI ihany koa ianao amin'ny alàlan'ny fidirana sy ny tenimiafina - ho an'ity, FreePBX dia manana rakitra _custom ihany koa.
manager_custom.conf rakitra
;; это логин
[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,originateIreo rakitra roa ireo dia tsy maintsy apetraka ao amin'ny /etc/asterisk, dia avereno vakiana ny configs (na avereno indray ny asterisk)
# astrisk -rv
Connected to Asterisk 16.6.2 currently running on freepbx (pid = 31629)
#freepbx*CLI> dialplan reload
Dialplan reloaded.
#freepbx*CLI> exitAndeha isika hifindra amin'ny PHP
Mamorona script ary mamorona serivisy
Satria tsy tsotra sy mangarahara tanteraka ny drafitra hiarahana amin'ny Bitrix 24, serivisy ho an'ny AMI, dia tsy maintsy resahina misaraka. Asterisk, rehefa mihetsika ny AMI dia sokafy fotsiny ny seranan-tsambo dia izay. Rehefa miditra ny mpanjifa dia mangataka fanomezan-dàlana izy, avy eo ny mpanjifa dia misoratra anarana amin'ny hetsika ilaina. Ny hetsika dia tonga amin'ny lahatsoratra tsotra, izay avadika ho zavatra voarafitra ny PAMI ary manome ny fahafahana mametraka ny fanivanana ho an'ny hetsika mahaliana, saha, isa, sns.
Raha vantany vao tonga ny antso, ny hetsika NewExten dia alefa manomboka amin'ny parent [avy amin'ny-pstn] context, avy eo ny hetsika rehetra dia mandeha amin'ny filaharan'ny andalana ao amin'ny contextes. Rehefa voaray ny fampahalalana avy amin'ny fari-pahaizan'ny CallMeCallerIDName sy CallStart voatondro ao amin'ny _drafi-peonina mahazatra, dia
Ny asan'ny fangatahana ny UserID mifanaraka amin'ny laharan'ny fanitarana izay nahatongavan'ny antso. Ahoana raha vondrona dial-up? Politika ny fanontaniana, mila mamorona antso ho an'ny rehetra indray ve ianao (rehefa miantso ny rehetra) sa mamorona araka ny antsony rehefa miantso? Ny ankamaroan'ny mpanjifa dia manana ny paikady Fisrt Available, noho izany dia tsy misy olana amin'izany fa iray ihany no miantso. Mila vahana anefa ny olana.
Ny asa fisoratana anarana amin'ny antso ao amin'ny Bitrix24, izay mamerina ny CallID, izay takiana amin'ny tatitra ny mari-pamantarana antso sy rohy mankany amin'ny fandraisam-peo. Mila isa fanitarana na UserID

Aorian'ny fiafaran'ny antso dia antsoina ny asa fampidinana rakitsoratra, izay mitatitra ny satan'ny fahavitan'ny antso (Busy, Tsy misy valiny, Fahombiazana), ary misintona rohy mankany amin'ny rakitra mp3 miaraka amin'ny rakitsoratra (raha misy).
Satria mila mandeha tsy an-kijanona ny maody CallMeIn.php, dia noforonina ho azy ny rakitra fanombohana SystemD callme.service, izay tsy maintsy apetraka ao amin'ny /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.targetNy fanombohana sy ny fandefasana ny script dia mitranga amin'ny systemctl na serivisy
# systemctl enable callme
# systemctl start callmeHanomboka indray ny serivisy raha ilaina (raha misy fianjerana). Ny serivisy fanaraha-maso ny boaty dia tsy mitaky mpizara tranonkala hapetraka, php ihany no ilaina (izay azo antoka fa ao amin'ny mpizara FeePBX). Saingy raha tsy misy ny fidirana amin'ny firaketana antso amin'ny alàlan'ny mpizara Web (miaraka amin'ny https ihany koa), dia tsy azo atao ny mihaino ny firaketana antso.
Andeha isika hiresaka momba ny antso mivoaka. Ny script CallMeOut.php dia manana fiasa roa:
Fanombohana antso rehefa voaray ny fangatahana script php (anisan'izany ny fampiasana ny bokotra "Call" ao amin'ny Bitrix mihitsy). Tsy mandeha raha tsy misy mpizara tranonkala, voaray amin'ny HTTP POST ny fangatahana, misy marika ny fangatahana
Hafatra momba ny antso, ny mari-pamantarana ary ny firaketana ao amin'ny Bitrix. Notifirin'ny Asterisk tao amin'ny planina [sub-call-internal-ended] rehefa tapitra ny antso

Zavatra roa ihany no ilaina ny mpizara tranonkala - ny fampidinana ny rakitra firaketana Bitrix (amin'ny alàlan'ny HTTPS) ary ny fiantsoana ny script CallMeOut.php. Azonao atao ny mampiasa ny mpizara FreePBX naorina, ny rakitra misy azy dia /var/www/html, azonao atao ny mametraka mpizara hafa na manondro lalana hafa.
Mpizara tranonkala
Andao hiala amin'ny fametrahana ny mpizara tranonkala mba hianatra tsy miankina (, , ). Raha tsy manana sehatra ianao dia afaka manandrana FreeDomain( ), izay hanome anarana maimaim-poana ho an'ny IP fotsy anao (aza adino ny mandefa ports 80, 443 amin'ny alàlan'ny router raha toa ka eo amin'io ihany ny adiresy ivelany). Raha vao namorona sehatra DNS ianao dia tsy maintsy miandry (15 minitra ka hatramin'ny 48 ora) mandra-pahatongan'ny mpizara rehetra. Araka ny traikefan'ny fiaraha-miasa amin'ny mpamatsy an-trano - hatramin'ny adiny 1 ka hatramin'ny iray andro.
Fametrahana automation
Nisy installer novolavolaina tao amin'ny github mba hanamora kokoa ny fametrahana azy. Saingy nilamina teo amin'ny taratasy izany - raha nametraka azy rehetra tamin'ny tanana izahay, satria taorian'ny nandinihana an'izany rehetra izany dia nanjary mazava tsara hoe inona no namana miaraka amin'iza, iza no mandeha any ary ahoana no hanaisotra azy. Tsy mbola misy installer
Docker
Raha te hanandrana haingana ny vahaolana ianao - misy safidy miaraka amin'i Docker - mamorona container haingana, omeo seranana any ivelany izy io, aforeto ny fisie ary andramo (io no safidy miaraka amin'ny container LetsEncrypt, raha efa manana taratasy fanamarinana ianao , mila mamindra fotsiny ny proxy mifamadika amin'ny mpizara tranonkala FreePBX ianao (nomenay seranana hafa izy io dia 88), LetsEncrypt amin'ny docker mifototra amin'ny
Mila mihazakazaka ny rakitra ao amin'ny lahatahiry tetikasa alaina ianao (aorian'ny git clone), fa midira ao amin'ny asterisk configs (folder asterisk) ary soraty ny lalana mankany amin'ny firaketana sy ny URL an'ny tranokalanao.
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:
Ity rakitra docker-compose.yaml ity dia mandeha amin'ny
docker-compose up -d
Raha tsy manomboka ny nginx, dia misy zavatra tsy mety amin'ny fanamafisana ao amin'ny lahatahiry nginx/ssl_docker.conf
Fampidirana hafa
Ary maninona raha mametraka CRM ao anaty script miaraka amin'izay, hoy izahay. Nianatra API CRM hafa izahay, indrindra fa ny PBX naorina maimaim-poana - ShugarCRM sy Vtiger, ary eny! eny, mitovy ny fitsipika. Saingy tantara iray hafa ity, izay halefantsika misaraka amin'ny github.
soratra masina
Ny kaody mihitsy dia ao amin'ny github -
Loharano lahatsoratra momba ny voa
Disclaimer: Ny fitoviana amin'ny zava-misy rehetra dia foronina ary tsy izaho.
Source: www.habr.com
