Hoʻomaopopo i ka FreePBX a hoʻohui pū me Bitrix24 a ʻoi aku
Bitrix24 he hui nui e hoʻohui i ka CRM, ka holo palapala, ka helu helu a me nā mea ʻē aʻe he nui i makemake nui ʻia e nā luna a ʻaʻole makemake nui nā limahana IT. Hoʻohana ʻia ka portal e nā ʻoihana liʻiliʻi a me nā ʻoihana liʻiliʻi, me nā keʻena liʻiliʻi liʻiliʻi, nā mea hana a me nā salon nani. ʻO ka hana nui a nā mana "aloha" ʻo ia ka hoʻohui ʻana o ke kelepona a me CRM, ke hoʻopaʻa koke ʻia kekahi kelepona i CRM, hana ʻia nā kāleka mea kūʻai aku, hōʻike ʻia ka ʻike e pili ana i ka mea kūʻai aku i ka wā e komo mai ai a hiki iā ʻoe ke ʻike koke ʻo wai ʻo ia, he aha ka mea hiki. kuai aku ia ia a me ka nui o kana aie. Akā ʻo ke kelepona mai Bitrix24 a me kona hoʻohui ʻana me CRM e uku kālā, i kekahi manawa he nui. Ma kēiaʻatikala e haʻi wau iā ʻoe e pili ana i ka ʻike o ka hoʻohui ʻana me nā mea hana wehe a me ka IP PBX kaulana freepbx, a e noʻonoʻo pū i ka loiloi o nā ʻāpana like ʻole
Hana wau ma ke ʻano he outsourcer no kahi hui kūʻai, hoʻonohonoho, a hoʻohui i ke kelepona IP. I koʻu nīnau ʻia inā hiki iā mākou ke hāʻawi i kēia a me kēia hui i mea no ka hoʻohui ʻana iā Bitrix24 me nā PBX i loaʻa i nā mea kūʻai aku, a me nā PBX virtual ma nā ʻoihana VDS like ʻole, hele wau i Google. A ʻoiaʻiʻo ua hāʻawi ʻo ia iaʻu i kahi loulou i ʻatikala ma Habr, aia kahi wehewehe a me github, a me he mea lā e hana ana nā mea a pau. Akā i koʻu hoʻāʻo ʻana e hoʻohana i kēia hoʻonā, ua ʻike ʻia ʻaʻole ʻo Bitrix24 ka mea ma mua, a he nui nā mea e pono e hana hou. Eia kekahi, ʻaʻole ʻo FreePBX kahi asterisk; pono ʻoe e noʻonoʻo e pili ana i ka hoʻohui ʻana i ka maʻalahi o ka hoʻohana ʻana a me kahi dialplan hardcore i nā faila config.
Ke aʻo ʻana i ka loiloi o ka hana
No laila ʻo ka mea mua, pehea e hana ai kēia. Ke hiki mai kahi kelepona mai waho i ka PBX (SIP INVITE event from the provider), hoʻomaka ka hana ʻana o ka dialplan (dial plan) - nā lula no ka mea e hana ai me ke kelepona a me ke ʻano o ke kauoha. Mai ka ʻeke mua hiki iā ʻoe ke loaʻa i ka ʻike he nui, a laila hiki ke hoʻohana ʻia i nā lula. ʻO kahi mea hana maikaʻi loa no ka hoʻopaʻa ʻana i nā internals o SIP ʻo ia ka mea loiloi sngrep (loulou) ka mea i hoʻokomo wale ʻia i nā māhele kaulana ma o apt install/yum install a me nā mea like, akā hiki iā ʻoe ke kūkulu iā ia mai ka code kumu. E nānā kāua i ka log call in sngrep
Ma kahi ʻano maʻalahi, pili wale ka dialplan i ka ʻeke mua, i kekahi manawa i ka wā o ke kamaʻilio ʻana e hoʻololi pū i nā kelepona, nā pihi pihi (DTMF), nā mea hoihoi like ʻole FollowMe, RingGroup, IVR a me nā mea ʻē aʻe.
He aha ka mea i loko o ka pūʻolo kono
ʻOiaʻiʻo, ʻo ka hapa nui o nā dialplans maʻalahi e hana me nā māla mua ʻelua a ʻo nā loina āpau e hoʻopuni ana iā DID a me CallerID. DID - kahi a mākou e kāhea nei, CallerID - nāna e kāhea.
Akā, he hui kā mākou a ʻaʻole hoʻokahi kelepona - a ʻo ia hoʻi, ʻo ka PBX ka mea i loaʻa i nā hui kelepona (kahea like/sequential mai nā mea like ʻole) ma nā helu kūlanakauhale (Ring Group), IVR (Aloha, kāhea ʻoe ... E kaomi i hoʻokahi no ...), Nā mīkini pane ( Nā ʻōlelo ), Nā Kūlana Manawa, Ke hoʻouna ʻana i nā helu ʻē aʻe a i ʻole kelepona kelepona (FollowMe, Forward). ʻO ia ke ʻano he paʻakikī loa ka hoʻoholo ʻana i ka mea e loaʻa maoli ke kelepona a me ka mea e kamaʻilio ana i ka wā e hiki mai ai ke kelepona. Eia kahi laʻana o ka hoʻomaka ʻana o kahi kelepona maʻamau i kā mākou mea kūʻai aku PBX
Ma hope o ke komo ʻana o ke kelepona i ka PBX, hele ʻo ia ma ka dialplan ma nā "contexts" like ʻole. ʻO ka ʻatikala mai ka ʻaoʻao Asterisk he pūʻulu helu o nā kauoha, aia kēlā me kēia me kahi kānana e pili ana i ka helu i kāhea ʻia (ua kapa ʻia ʻo exten, no kahi kelepona waho ma ka pae mua exten=DID). Hiki i nā kauoha ma ka laina dialplan ke ʻano - nā hana kūloko (no ka laʻana, e kāhea i kahi mea kākau kūloko - Dial(), waiho i ke kelepona i lalo - Hangup()), nā ʻōlelo kūlana (IF, ELSE, ExecIF a me nā mea like), hoʻololi i nā lula ʻē aʻe o kēia pōʻaiapili (Goto, GotoIF), hoʻololi i nā pōʻaiapili ʻē aʻe ma ke ʻano o nā kelepona hana (Gosub, Macro). Aia kekahi kuhikuhi kaʻawale include имя_контекста, ka mea e hoʻopili i nā kauoha mai kekahi pōʻaiapili a hiki i ka hopena o ka pōʻaiapili o kēia manawa. Hoʻokō mau ʻia nā kauoha i hoʻokomo ʻia ma o ka hoʻokomo mahope nā kauoha pōʻaiapili o kēia manawa.
Kūkulu ʻia ka manaʻo holoʻokoʻa o FreePBX ma ka hoʻokomo ʻana i nā pōʻaiapili like ʻole i kekahi i kekahi ma o ka hoʻopili ʻana a me ke kelepona ʻana ma o Gosub, Macro a me Handler handler. E noʻonoʻo i ka pōʻaiapili o nā kelepona FreePBX e hiki mai ana
Ke hele nei ke kelepona i nā pōʻaiapili a pau mai luna a lalo i ka huli ʻana, i kēlā me kēia pōʻaiapili hiki ke kāhea ʻia i nā pōʻaiapili ʻē aʻe e like me macros (Macro), functions (Gosub) a i ʻole nā hoʻololi wale ʻana (Goto), no laila hiki i ka lāʻau maoli o ka mea i kapa ʻia. e nānā wale ʻia ma nā lāʻau.
Hōʻike ʻia kahi kiʻi hoʻonohonoho maʻamau no kahi keʻena maʻamau PBX ma lalo nei. Ke kelepona ʻana, ʻimi ʻia ka DID ma nā ala e hiki mai ana, nānā ʻia nā kūlana manawa kūʻē iā ia, inā pololei nā mea āpau, hoʻomaka ka papa kuhikuhi leo. Mai laila mai, e hoʻohana i ka pihi 1 a i ʻole ka manawa e komo ai i ka hui kelepona ʻana. Ma hope o ka pau ʻana o ke kelepona, kāhea ʻia ka hangupcall macro, a laila ʻaʻohe mea e hiki ke hoʻokō ʻia i ka dialplan koe wale nō nā mea lima kūikawā (hangup handler).
Ma hea ma kēia kelepona algorithm e hāʻawi ai mākou i ka ʻike e pili ana i ka hoʻomaka ʻana o ke kelepona i ka CRM, ma hea mākou e hoʻomaka ai i ka hoʻopaʻa ʻana, ma hea mākou e hoʻopau ai i ka hoʻopaʻa ʻana a hoʻouna pū me ka ʻike e pili ana i ke kelepona i ka CRM?
Hoʻohui me nā ʻōnaehana waho
He aha ka PBX a me CRM hoʻohui? ʻO kēia nā hoʻonohonoho a me nā papahana e hoʻololi i ka ʻikepili a me nā hanana ma waena o kēia mau paepae ʻelua a hoʻouna iā lākou i kekahi i kekahi. ʻO ke ala maʻamau no nā ʻōnaehana kūʻokoʻa e kamaʻilio ma o kahi API, a ʻo ke ala kaulana loa e komo ai i kahi API ʻo HTTP REST. Akā ʻaʻole no ka asterisk.
Aia i loko o Asterisk:
AGI - ke kelepona hui pū ʻana o nā papahana / ʻāpana o waho, hoʻohana nui ʻia i ka dialplan, aia nā hale waihona puke e like me phpagi, PAGI
ʻO AMI kahi kikokikona TCP e hana ana ma ke kumu o ke kau inoa ʻana i nā hanana a me ke komo ʻana i nā kauoha kikokikona, e like me SMTP mai loko mai, hiki ke nānā i nā hanana a mālama i nā kelepona, aia kahi waihona. PAMI - ka mea kaulana loa no ka hana ʻana i kahi pilina me Asterisk
Laʻana AMI hoʻopuka
Hanana: Kanal hou
Pono: kelepona, a pau
Kaila: PJSIP/VMS_pjsip-0000078b
Mokuʻāina Channel: 4
ChannelStateDesc: Ring
Ka helu kelepona: 111222
CallerIDIna: 111222
ConnectedLineNum:
ConnectedLineName:
ʻŌlelo: en
Code moʻokāki:
Hōʻike: mai-pstn
Hoʻonui: s
Mea makakoho: 1
Kūʻokoʻa: 1599589046.5244
Ka loulou: 1599589046.5244
ʻO ARI kahi hui ʻana o kēia a me kēlā, ma o REST, WebSocket, ma JSON format - akā me nā hale waihona puke hou loa a me nā mea hoʻopili ʻaʻole maikaʻi loa, ʻike mākou iā ia ma waho (phparia, phpari) i ko lākou ulu ʻana ma kahi o 3 mau makahiki i hala.
Ka laʻana o ka hoʻopuka ARI i ka wā e hoʻomaka ai i kahi kelepona
ʻO ka maʻalahi a iʻole ka pilikia, ka hiki a iʻole ka hikiʻole ke hana me kahi API kūikawā e hoʻoholoʻia e nā hana e pono e hoʻoholo. ʻO nā hana no ka hoʻohui ʻana me CRM penei:
E hahai i ka hoʻomaka ʻana o ke kelepona, kahi i hoʻoili ʻia ai, huki iā CallerID, DID, hoʻomaka a hoʻopau i nā manawa, malia paha ka ʻikepili mai ka papa kuhikuhi (e ʻike i ka pilina ma waena o ke kelepona a me ka mea hoʻohana CRM)
E hoʻomaka a hoʻōki i ka hoʻopaʻa ʻana i kahi kelepona, mālama iā ia ma ke ʻano i koi ʻia, a hōʻike i kahi o ka faila ke pau ka hoʻopaʻa ʻana
E hoʻomaka i kahi kelepona e pili ana i kahi hanana waho (mai ka papahana), e kāhea i kahi helu kūloko, kahi helu waho a hoʻohui iā lākou
Ponoʻole: hoʻohui pū me CRM, kelepona pūʻulu a me FollowME no ka hoʻololi maʻalahi o nā kelepona i waho o ke keʻena (e like me ka ʻike CRM)
Hiki ke hoʻopau ʻia kēia mau hana a pau ma o AMI a i ʻole ARI, akā hāʻawi ʻo ARI i ka ʻike liʻiliʻi, nui nā hanana i nalo, a ʻaʻole ʻike ʻia nā ʻano hoʻololi he nui i loaʻa iā AMI (no ka laʻana, nā kelepona macro, ka hoʻonohonoho ʻana i nā loli i loko o nā macros, me ka hoʻopaʻa ʻana i nā kelepona). No laila, no ka huli pololei a pololei, e koho mākou iā AMI i kēia manawa (akā ʻaʻole holoʻokoʻa). Eia kekahi (maikaʻi, ma hea mākou me ka ʻole o kēia, he poʻe palaualelo mākou) - i ka hana kumu (ʻatikala ma Habr) hoʻohana i ka PAMI. *A laila pono ʻoe e hoʻāʻo e kākau hou iā ia ma ARI, akā ʻaʻole maopopo ia e hana.
Hoʻopili hou i ka hoʻohui
I mea e hiki ai i kā mākou FreePBX ke hōʻike i ka AMI ma nā ala maʻalahi e pili ana i ka hoʻomaka ʻana o ke kelepona, ka manawa hope, nā helu, nā inoa o nā faila i hoʻopaʻa ʻia, a me ke ala maʻalahi e helu ai i ka lōʻihi o ke kāhea ʻana, ʻo ia ka hoʻohana ʻana i ka hoʻopunipuni like. nā mea kākau kumu - e hoʻokomo i kāu mau mea hoʻololi a hoʻokaʻawale i ka hopena no ko lākou hele ʻana. Manaʻo ʻo PAMI e hana i kēia ma o ka hana kānana.
Eia kahi laʻana o ka hoʻonohonoho ʻana i kāu hoʻololi ponoʻī no ka manawa hoʻomaka o ke kelepona (s he helu kūikawā ma ka dialplan i hoʻokō ʻia ma mua o ka hoʻomaka ʻana o ka hulina DID)
No ka mea, ua kākau ʻo FreePBX i nā faila extension.conf a me extention_additional.conf, e hoʻohana mākou i ka faila extension_Ua maa no.conf
Hoʻopau code extension_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
ʻO ka hiʻohiʻona a me ka ʻokoʻa mai ka dialplan mua o nā mea kākau o ka ʻatikala kumu -
Dialplan ma ka .conf format, e like me ka FreePBX makemake ia (ʻae, hiki iā ia ke hana .ael, akā ʻaʻole nā mana āpau a ʻaʻole kūpono i nā manawa a pau)
Ma kahi o ka hoʻoponopono ʻana i ka hopena ma o exten => h, ua hoʻokomo ʻia ka hoʻoili ʻana ma o hangup_handler, no ka mea, ua hana wale ka dialplan FreePBX me ia.
ʻO ka laina kelepona paʻa paʻa, nā huaʻōlelo i hoʻohui ʻia a me ka helu kelepona waho ExtNum
Hana ʻia ke kaʻina hana ma _poʻomanaʻo maʻamau a hiki iā ʻoe ke hoʻopā a hoʻoponopono i nā config FreePBX - i hoʻokomo ʻia ma o [ext-did-custom], e puka ana ma o [outbound-allroutes-maʻamau]
ʻAʻohe paʻa i nā helu - ʻo ka faila ke ao holoʻokoʻa a pono e hoʻonohonoho ʻia me nā ala a me kahi loulou i ke kikowaena.
No ka hoʻomaka ʻana, pono ʻoe e holo i nā palapala i ka AMI me ka hoʻohana ʻana i kāu login a me ka ʻōlelo huna - no kēia FreePBX he faila _custom.
waihona manager_custom.conf
;; это логин
[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
Pono e waiho ʻia kēia mau faila ʻelua i /etc/asterisk, a laila heluhelu hou i nā configs (a i ʻole e hoʻomaka hou i ka asterisk)
# astrisk -rv
Connected to Asterisk 16.6.2 currently running on freepbx (pid = 31629)
#freepbx*CLI> dialplan reload
Dialplan reloaded.
#freepbx*CLI> exit
I kēia manawa e neʻe kākou i ka PHP
Hoʻomaka i nā palapala a me ka hana ʻana i kahi lawelawe
No ka mea ʻaʻole maʻalahi a maʻalahi ka hoʻolālā o ka hana ʻana me Bitrix 24, ka lawelawe no AMI, pono e kūkākūkā kaʻawale. ʻO Asterisk, i ka wā e hoʻoulu ai i ka AMI, wehe wale i ke awa a ʻo ia nō. Ke hui ka mea kūʻai aku, noi ʻo ia i ka ʻae, a laila kau inoa ka mea kūʻai aku i nā hanana kūpono. Hiki mai nā hanana i loko o ka kikokikona maʻalahi, ka PAMI i hoʻololi i nā mea i kūkulu ʻia a hāʻawi i ka hiki ke hoʻonohonoho i kahi hana kānana wale nō e nā hanana, nā kahua, nā helu, a me nā mea hoihoi.
I ka hiki ʻana mai o kahi kelepona, hoʻomaka ka hanana NewExten mai ka pōʻaiapili makua [mai-pstn], a laila hahai nā hanana a pau ma ke ʻano o nā laina i loko o nā pōʻaiapili. I ka loaʻa ʻana o ka ʻike mai nā _custom variables i hōʻike ʻia ma ka dialplan, kāhea ʻia ʻo CallMeCallerIDName a me CallStart.
ʻO ka hana noi UserID e pili ana i ka helu hoʻonui kahi i hele mai ai ke kelepona. Pehea inā he hui kelepona kēia? ʻO ka nīnau pili politika, pono anei iaʻu e hana i kahi kelepona no nā mea a pau i ka manawa hoʻokahi (ke kāhea ʻia nā mea a pau i ka manawa hoʻokahi) a i ʻole e hana e like me kā lākou kāhea ʻana, i ke kāhea ʻana i kēlā me kēia? Loaʻa ka hapa nui o nā mea kūʻai aku i ka hoʻolālā Fisrt Available, no laila ʻaʻohe pilikia me kēia, hoʻokahi wale nō kelepona. Akā, pono e hoʻoponopono ʻia ka pilikia
ʻO kahi hana no ka hoʻopaʻa inoa ʻana i kahi kelepona ma Bitrix24, e hoʻihoʻi i CallID, a laila pono e hōʻike i nā ʻāpana kelepona a me kahi loulou i ka hoʻopaʻa ʻana. Pono ka helu hoʻonui a i ʻole UserID
Ma hope o ka pau ʻana o ke kelepona, kāhea ʻia ka hana hoʻoiho hoʻopaʻa ʻana, e hōʻike ana i ke kūlana hoʻopau kelepona (Busy, ʻAʻohe pane, Success), a hoʻoiho pū i kahi loulou i ka faila mp3 me ka hoʻopaʻa ʻana (inā loaʻa).
No ka holo mau ʻana o ka module CallMeIn.php, ua hana ʻia kahi faila hoʻomaka SystemD no ia callme.service, pono e kau ʻia ma /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
ka hoʻomaka ʻana a me ka hoʻomaka ʻana o ka palapala ma o systemctl a i ʻole lawelawe
E hoʻomaka hou ka lawelawe iā ia iho e like me ka mea e pono ai (inā he ulia). ʻAʻole pono ka lawelawe ʻana i ka hoʻokomo ʻana i kahi kikowaena pūnaewele, pono wale ʻoe i php (ʻo ia ka mea i loaʻa ma ka kikowaena FeePBX). Akā inā ʻaʻole hiki ke hoʻopaʻa inoa ma o ka pūnaewele pūnaewele (me https), ʻaʻole hiki ke hoʻolohe i nā kelepona kelepona.
E kamaʻilio kākou e pili ana i nā kelepona puka. ʻElua mau hana o ka palapala CallMeOut.php:
Ke hoʻomaka nei i kahi kelepona ke loaʻa kahi noi no kahi palapala php (me ka hoʻohana ʻana i ke pihi "Call" ma Bitrix ponoʻī). ʻAʻole hana me ka ʻole o kahi kikowaena pūnaewele, hele mai ka noi ma HTTP POST, aia ka noi i kahi hōʻailona
Nā memo e pili ana i ke kelepona, kona mau palena a me nā moʻolelo ma Bitrix. Hana ʻia ma ka hoʻomaka ʻana o Asterisk i ka dialplan [sub-call-internal-ended] ke pau ke kelepona.
Pono ka pūnaewele pūnaewele no nā mea ʻelua wale nō - ka hoʻoiho ʻana i nā faila me Bitrix (ma HTTPS) a me ke kāhea ʻana i ka palapala CallMeOut.php. Hiki iā ʻoe ke hoʻohana i ka kikowaena FreePBX i kūkulu ʻia, nā faila nona /var/www/html, hiki iā ʻoe ke hoʻokomo i kahi kikowaena ʻē aʻe a i ʻole ke kuhikuhi ʻana i kahi ala ʻē aʻe.
Pūnaewele pūnaewele
E haʻalele kāua i ka hoʻonohonoho ʻana i kahi kikowaena pūnaewele no ke aʻo kūʻokoʻa (nā ʻōlelo, nā ʻōlelo, nā ʻōlelo). Inā ʻaʻohe āu kikowaena, hiki iā ʻoe ke hoʻāʻo iā FreeDomain( https://www.freenom.com/ru/index.html), ka mea e hāʻawi iā ʻoe i inoa no kāu IP keʻokeʻo no ka manuahi (mai poina e hoʻouna i nā awa 80, 443 ma o ke alalai inā aia ka helu waho ma luna wale nō). Inā ʻoe i hana i kahi kikowaena DNS, a laila pono ʻoe e kali (mai 15 mau minuke a 48 mau hola) a hiki i ka hoʻouka ʻana o nā kikowaena āpau. Ma muli o ka ʻike e hana pū ana me nā mea hoʻolako uku home - mai 1 hola a XNUMX mau hola.
ʻO ka hoʻokomo ʻana
Ua hoʻomaka ka hoʻomohala ʻana i kahi installer ma github e maʻalahi ka hoʻonohonoho ʻana. Akā ua maʻalahi ma ka pepa - ʻoiai mākou e kau nei i kēia mau mea me ka lima, ʻoi aku ka maikaʻi, ma hope o ka tinkering me kēia mau mea a pau, ua ʻike maopopo ʻia ʻo wai nā hoaaloha me wai, ʻo wai ka mea e hele ai a pehea e debug. ʻAʻohe mea hoʻokomo i kēia manawa (
Docker
Inā makemake ʻoe e hoʻāʻo wikiwiki i kahi hopena, aia kahi koho me Docker - hana wikiwiki i kahi ipu, hāʻawi iā ia i nā awa waho, hoʻokomo i nā faila hoʻonohonoho a hoʻāʻo (he koho kēia me kahi pahu LetsEncrypt, inā loaʻa iā ʻoe kahi palapala hōʻoia, ʻo ʻoe wale nō. Pono e hoʻihoʻi hou i ka mea koho hope i ka pūnaewele pūnaewele FreePBX (hāʻawi mākou iā ia i kahi awa ʻē aʻe ʻo 88), LetsEncrypt ma Docker ma muli o keia 'atikala
Pono ʻoe e holo i ka faila ma ka waihona papahana i hoʻoiho ʻia (ma hope o git clone), akā e hele mua i ka asterisk configs (asterisk folder) a komo i nā ala i nā mea komo a me ka URL o kāu pūnaewele ma laila.
Inā ʻaʻole hoʻomaka ka nginx, ʻo ia hoʻi, ua hewa kekahi mea i ka hoʻonohonoho ʻana i ka folder nginx/ssl_docker.conf.
Nā hoʻohui ʻē aʻe
A no ke aha e hoʻokomo ʻole ai i kekahi mau CRM i nā palapala i ka manawa like, manaʻo mākou. Ua aʻo mākou i kekahi mau API o nā CRM ʻē aʻe, ʻoi aku nā mea manuahi i kūkulu ʻia i loko o kekahi mau PBX - ShugarCRM a me Vtiger, a ʻae! ʻAe, ua like ke kumukānāwai. Akā he moʻolelo ʻē aʻe kēia, a mākou e hoʻouka hou aku ai iā GitHub.