ื”ื‘ื ืช FreePBX ื•ืฉื™ืœื•ื‘ื” ืขื Bitrix24 ื•ืขื•ื“

ื‘ื™ื˜ืจื™ืงืก24 ื”ื•ื ืงื•ืžื‘ื™ื ื” ืขื ืงื™ืช ื”ืžืฉืœื‘ืช CRM, ื–ืจื™ืžืช ืขื‘ื•ื“ื”, ื”ื ื”ืœืช ื—ืฉื‘ื•ื ื•ืช ื•ืขื•ื“ ื”ืจื‘ื” ื“ื‘ืจื™ื ืฉืžื ื”ืœื™ื ืžืื•ื“ ืื•ื”ื‘ื™ื ื•ืฆื•ื•ืช IT ืœื ืžืžืฉ ืื•ื”ื‘. ื”ืคื•ืจื˜ืœ ื ืžืฆื ื‘ืฉื™ืžื•ืฉ ืฉืœ ื”ืจื‘ื” ื—ื‘ืจื•ืช ืงื˜ื ื•ืช ื•ื‘ื™ื ื•ื ื™ื•ืช, ื›ื•ืœืœ ืžืจืคืื•ืช ืงื˜ื ื•ืช, ื™ืฆืจื ื™ื ื•ืืคื™ืœื• ืžื›ื•ื ื™ ื™ื•ืคื™. ื”ืคื•ื ืงืฆื™ื” ื”ืขื™ืงืจื™ืช ืฉืžื ื”ืœื™ื "ืื•ื”ื‘ื™ื" ื”ื™ื ืฉื™ืœื•ื‘ ื˜ืœืคื•ื ื™ื” ื•-CRM, ื›ืืฉืจ ื›ืœ ืฉื™ื—ื” ืžื•ืงืœื˜ืช ืžื™ื“ ื‘-CRM, ื ื•ืฆืจื™ื ื›ืจื˜ื™ืกื™ ืœืงื•ื—, ื›ืฉื ื›ื ืกื™ื ืžื•ืฆื’ ืžื™ื“ืข ืขืœ ื”ืœืงื•ื— ื•ื ื™ืชืŸ ืœืจืื•ืช ืžื™ื“ ืžื™ ื”ื•ื, ืžื” ื”ื•ื ื™ื›ื•ืœ ืœืžื›ื•ืจ ื•ื›ืžื” ื”ื•ื ื—ื™ื™ื‘. ืื‘ืœ ื˜ืœืคื•ื ื™ื” ืžื‘ื™ืช Bitrix24 ื•ื”ืฉื™ืœื•ื‘ ืฉืœื” ืขื CRM ืขื•ืœื” ื›ืกืฃ, ืœืคืขืžื™ื ื”ืจื‘ื”. ื‘ืžืืžืจ ืืกืคืจ ืœื›ื ืขืœ ื—ื•ื•ื™ืช ื”ืื™ื ื˜ื’ืจืฆื™ื” ืขื ื›ืœื™ื ืคืชื•ื—ื™ื ื•ืžืจื›ื–ื™ื™ืช ื”-IP ื”ืคื•ืคื•ืœืจื™ืช FreePBX, ื•ื’ื ืœืฉืงื•ืœ ืืช ื”ื”ื™ื’ื™ื•ืŸ ืฉืœ ื”ืขื‘ื•ื“ื” ืฉืœ ื—ืœืงื™ื ืฉื•ื ื™ื

ืื ื™ ืขื•ื‘ื“ ื›ืžื™ืงื•ืจ ื—ื•ืฅ ื‘ื—ื‘ืจื” ืฉืžื•ื›ืจืช ื•ืžื’ื“ื™ืจื”, ืžืฉืœื‘ืช ื˜ืœืคื•ื ื™ื” IP. ื›ืฉืฉืืœื• ืื•ืชื™ ืื ื ื•ื›ืœ ืœื”ืฆื™ืข ืžืฉื”ื• ืœื—ื‘ืจื” ื”ื–ื• ื•ืœื–ื• ื›ื“ื™ ืœืฉืœื‘ ืืช Bitrix24 ืขื ืžืจื›ื–ื™ื•ืช ืฉื™ืฉ ืœืœืงื•ื—ื•ืช, ื›ืžื• ื’ื ืขื ืžืจื›ื–ื™ื•ืช ื•ื™ืจื˜ื•ืืœื™ื•ืช ื‘ื—ื‘ืจื•ืช VDS ืฉื•ื ื•ืช, ื”ืœื›ืชื™ ืœื’ื•ื’ืœ. ื•ื›ืžื•ื‘ืŸ ืฉื”ื•ื ื ืชืŸ ืœื™ ืงื™ืฉื•ืจ ืœ ืžืืžืจ ื‘ื”ื‘ืจ, ืฉื‘ื• ื™ืฉ ืชื™ืื•ืจ, ื•-github, ื•ื ืจืื” ืฉื”ื›ืœ ืขื•ื‘ื“. ืื‘ืœ ื›ืฉื ื™ืกื™ื ื• ืœื”ืฉืชืžืฉ ื‘ืคืชืจื•ืŸ ื”ื–ื”, ื”ืชื‘ืจืจ ืฉ-Bitrix24 ื›ื‘ืจ ืœื ื–ื”ื” ืœื‘ืขื‘ืจ, ื•ืฆืจื™ืš ืœืขืฉื•ืช ื”ืจื‘ื” ืžื—ื“ืฉ. ื‘ื ื•ืกืฃ, FreePBX ื”ื™ื ืœื ื›ื•ื›ื‘ื™ืช ื—ืฉื•ืคื” ืขื‘ื•ืจืš, ื›ืืŸ ืืชื” ืฆืจื™ืš ืœื—ืฉื•ื‘ ืื™ืš ืœืฉืœื‘ ืงืœื•ืช ืฉื™ืžื•ืฉ ื•ืชื•ื›ื ื™ืช ื—ื™ื•ื’ ื”ืืจื“ืงื•ืจ ื‘ืงื‘ืฆื™ ืชืฆื•ืจื”.

ืื ื• ืœื•ืžื“ื™ื ืืช ื”ื”ื™ื’ื™ื•ืŸ ืฉืœ ื”ืขื‘ื•ื“ื”

ืื– ื‘ืชื•ืจ ื”ืชื—ืœื”, ืื™ืš ื”ื›ืœ ืฆืจื™ืš ืœืขื‘ื•ื“. ื›ืืฉืจ ืžืชืงื‘ืœืช ืฉื™ื—ื” ืžื‘ื—ื•ืฅ ื‘ืžืจื›ื–ื™ื™ื” (ืื™ืจื•ืข SIP INVITE ืžื”ืกืคืง), ืžืชื—ื™ืœ ืขื™ื‘ื•ื“ ื”-dialplan (dialplan, dialplan) - ื”ื›ืœืœื™ื ืฉืœ ืžื” ื•ื‘ืื™ื–ื” ืกื“ืจ ืœืขืฉื•ืช ืขื ื”ืฉื™ื—ื”. ืžื”ื—ื‘ื™ืœื” ื”ืจืืฉื•ื ื”, ืืชื” ื™ื›ื•ืœ ืœืงื‘ืœ ืžื™ื“ืข ืจื‘, ืืฉืจ ืœืื—ืจ ืžื›ืŸ ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ื• ื‘ื—ื•ืงื™ื. ื›ืœื™ ืžืฆื•ื™ืŸ ืœืœื™ืžื•ื“ ื”ืคื ื™ืžื™ื•ืช ืฉืœ SIP ื”ื•ื ื”ื ืชื— sngrep (ืงืฉืจ) ืฉืžื•ืชืงืŸ ื‘ืคืฉื˜ื•ืช ื‘ื”ืคืฆื•ืช ืคื•ืคื•ืœืจื™ื•ืช ื‘ืืžืฆืขื•ืช apt install/yum install ื•ื›ื“ื•ืžื”, ืืš ื ื™ืชืŸ ืœื‘ื ื•ืช ืื•ืชื• ื’ื ืžืžืงื•ืจ. ื‘ื•ืื• ื ืกืชื›ืœ ืขืœ ื™ื•ืžืŸ ื”ืฉื™ื—ื•ืช ื‘-sngrep

ื”ื‘ื ืช FreePBX ื•ืฉื™ืœื•ื‘ื” ืขื Bitrix24 ื•ืขื•ื“

ื‘ืฆื•ืจื” ืคืฉื•ื˜ื”, ื”-dialplan ืขื•ืกืง ืจืง ื‘ื—ื‘ื™ืœื” ื”ืจืืฉื•ื ื”, ืœืคืขืžื™ื ื’ื ื‘ืžื”ืœืš ื”ืฉื™ื—ื”, ืฉื™ื—ื•ืช ืžื•ืขื‘ืจื•ืช, ืœื—ื™ืฆื•ืช ื›ืคืชื•ืจื™ื (DTMF), ื“ื‘ืจื™ื ืžืขื ื™ื™ื ื™ื ืฉื•ื ื™ื ื›ืžื• FollowMe, RingGroup, IVR ื•ืื—ืจื™ื.

ืžื” ื™ืฉ ื‘ืชื•ืš ื—ื‘ื™ืœืช ื”ื”ื–ืžื ื•ืช

ื”ื‘ื ืช FreePBX ื•ืฉื™ืœื•ื‘ื” ืขื Bitrix24 ื•ืขื•ื“

ืœืžืขืฉื”, ืจื•ื‘ ืชื•ื›ื ื™ื•ืช ื”ื—ื™ื•ื’ ื”ืคืฉื•ื˜ื•ืช ืคื•ืขืœื•ืช ืขื ืฉื ื™ ื”ืฉื“ื•ืช ื”ืจืืฉื•ื ื™ื, ื•ื›ืœ ื”ื”ื™ื’ื™ื•ืŸ ืกื•ื‘ื‘ ืกื‘ื™ื‘ DID ื•-CallerID. DID - ืœืืŸ ืื ื—ื ื• ืžืชืงืฉืจื™ื, CallerID - ืžื™ ืžืชืงืฉืจ.

ืื‘ืœ ืื—ืจื™ ื”ื›ืœ, ื™ืฉ ืœื ื• ื—ื‘ืจื” ื•ืœื ื˜ืœืคื•ืŸ ืื—ื“ - ืžื” ืฉืื•ืžืจ ืฉื‘ืžืจื›ื–ื™ื™ื” ื™ืฉ ื›ื›ืœ ื”ื ืจืื” ืงื‘ื•ืฆื•ืช ืฉื™ื—ื•ืช (ืฆืœืฆื•ืœ ืกื™ืžื•ืœื˜ื ื™ / ืจืฆื•ืฃ ืฉืœ ืžืกืคืจ ืžื›ืฉื™ืจื™ื) ื‘ืžืกืคืจื™ ืขืจื™ื (Ring Group), IVR (ืฉืœื•ื, ื”ืชืงืฉืจืช... ืœื—ืฅ ืื—ื“ ืขื‘ื•ืจ ...), ืžืฉื™ื‘ื•ื ื™ื (ื‘ื™ื˜ื•ื™ื™ื), ืชื ืื™ ื–ืžืŸ, ื”ืขื‘ืจื” ืœืžืกืคืจื™ื ืื—ืจื™ื ืื• ืœืชื (FollowMe, Forward). ื”ืžืฉืžืขื•ืช ื”ื™ื ืฉืงืฉื” ืžืื•ื“ ืœืงื‘ื•ืข ื‘ืื•ืคืŸ ื—ื“ ืžืฉืžืขื™ ืžื™ ื‘ืืžืช ื™ืงื‘ืœ ืฉื™ื—ื” ื•ืขื ืžื™ ื™ืงื™ื™ื ืฉื™ื—ื” ื›ืฉืชื’ื™ืข ืฉื™ื—ื”. ื”ื ื” ื“ื•ื’ืžื” ืœืชื—ื™ืœืชื” ืฉืœ ืฉื™ื—ื” ื˜ื™ืคื•ืกื™ืช ื‘ืžืจื›ื–ื™ื” ืฉืœ ืœืงื•ื—ื•ืชื™ื ื•

ื”ื‘ื ืช FreePBX ื•ืฉื™ืœื•ื‘ื” ืขื Bitrix24 ื•ืขื•ื“

ืœืื—ืจ ืฉื”ืฉื™ื—ื” ื ื›ื ืกืช ื‘ื”ืฆืœื—ื” ืœืžืจื›ื–ื™ื™ื”, ื”ื™ื ืขื•ื‘ืจืช ื“ืจืš ืชื•ื›ื ื™ืช ื”ื—ื™ื•ื’ ื‘"ื”ืงืฉืจื™ื" ืฉื•ื ื™ื. ื”ื”ืงืฉืจ ืžื ืงื•ื“ืช ื”ืžื‘ื˜ ืฉืœ ื›ื•ื›ื‘ื™ืช ื”ื•ื ืงื‘ื•ืฆื” ืžืžื•ืกืคืจืช ืฉืœ ืคืงื•ื“ื•ืช ืฉื›ืœ ืื—ืช ืžื”ืŸ ืžื›ื™ืœื” ืžืกื ืŸ ืœืคื™ ื”ืžืกืคืจ ืฉื—ื•ื™ื™ื’ (ื”ื•ื ื ืงืจื exten, ืœืฉื™ื—ื” ื—ื™ืฆื•ื ื™ืช ื‘ืฉืœื‘ ื”ืจืืฉื•ื ื™ exten=DID). ื”ืคืงื•ื“ื•ืช ื‘ืฉื•ืจืช ื”ื—ื™ื•ื’ ื™ื›ื•ืœื•ืช ืœื”ื™ื•ืช ื›ืœ ื“ื‘ืจ - ืคื•ื ืงืฆื™ื•ืช ืคื ื™ืžื™ื•ืช (ืœื“ื•ื’ืžื”, ื”ืชืงืฉืจ ืœืžื ื•ื™ ืคื ื™ืžื™ - Dial(), ืชื ื™ื— ืืช ื”ื˜ืœืคื•ืŸ - Hangup()), ืื•ืคืจื˜ื•ืจื™ื ืžื•ืชื ื™ื (IF, ELSE, ExecIF ื•ื›ื“ื•ืžื”), ืžืขื‘ืจื™ื ืœื›ืœืœื™ื ืื—ืจื™ื ื‘ื”ืงืฉืจ ื–ื” (Goto, GotoIF), ืžืขื‘ืจ ืœื”ืงืฉืจื™ื ืื—ืจื™ื ื‘ืฆื•ืจื” ืฉืœ ืงืจื™ืืช ืคื•ื ืงืฆื™ื” (Gosub, Macro). ื”ื ื—ื™ื” ื ืคืจื“ืช include ะธะผั_ะบะพะฝั‚ะตะบัั‚ะฐ, ืžื” ืฉืžื•ืกื™ืฃ ืคืงื•ื“ื•ืช ืžื”ืงืฉืจ ืื—ืจ ืœืกื•ืฃ ื”ื”ืงืฉืจ ื”ื ื•ื›ื—ื™. ืคืงื•ื“ื•ืช ื”ื›ืœื•ืœื•ืช ื“ืจืš include ืžื‘ื•ืฆืขื•ืช ืชืžื™ื“ ืœืื—ืจ ืคืงื•ื“ื•ืช ืฉืœ ื”ื”ืงืฉืจ ื”ื ื•ื›ื—ื™.

ื›ืœ ื”ื”ื™ื’ื™ื•ืŸ ืฉืœ FreePBX ื‘ื ื•ื™ ืขืœ ื”ื›ืœืœืช ื”ืงืฉืจื™ื ืฉื•ื ื™ื ื–ื” ื‘ื–ื” ื‘ืืžืฆืขื•ืช ื”ื›ืœืœื” ื•ื”ืชืงืฉืจื•ืช ื“ืจืš ืžื˜ืคืœื™ Gosub, ืžืืงืจื• ื•- Handler. ืฉืงื•ืœ ืืช ื”ื”ืงืฉืจ ืฉืœ ืฉื™ื—ื•ืช PBX ื ื›ื ืกื•ืช

ื”ื‘ื ืช FreePBX ื•ืฉื™ืœื•ื‘ื” ืขื Bitrix24 ื•ืขื•ื“

ื”ืงืจื™ืื” ืขื•ื‘ืจืช ืขืœ ื›ืœ ื”ื”ืงืฉืจื™ื ืžืœืžืขืœื” ืœืžื˜ื” ื‘ืชื•ืจื•, ื‘ื›ืœ ื”ืงืฉืจ ื™ื›ื•ืœื•ืช ืœื”ื™ื•ืช ืงืจื™ืื•ืช ืœื”ืงืฉืจื™ื ืื—ืจื™ื ื›ืžื• ืžืืงืจื• (ืžืืงืจื•), ืคื•ื ืงืฆื™ื•ืช (ื’ื•ืกื•ื‘) ืื• ืกืชื ืžืขื‘ืจื™ื (ื’ื•ื˜ื•), ื›ืš ืฉื”ืขืฅ ื”ืืžื™ืชื™ ืฉืœ ืžื” ืฉื ืงืจื ื™ื›ื•ืœ ืจืง ืœื”ื™ื•ืช ื‘ืžืขืงื‘ ื‘ื™ื•ืžื ื™ื.

ืชืจืฉื™ื ื”ื’ื“ืจื” ื˜ื™ืคื•ืกื™ ืขื‘ื•ืจ ืžืจื›ื–ื™ื” ื˜ื™ืคื•ืกื™ืช ืžื•ืฆื’ ืœื”ืœืŸ. ื›ืฉืžืชืงืฉืจื™ื ืžื—ืคืฉื™ื DID ื‘ื ืชื™ื‘ื™ื ื ื›ื ืกื™ื, ื‘ื•ื“ืงื™ื ืขื‘ื•ืจื• ืชื ืื™ื ื–ืžื ื™ื™ื, ืื ื”ื›ืœ ืชืงื™ืŸ, ืžื•ืคืขืœ ื”ืชืคืจื™ื˜ ื”ืงื•ืœื™. ืžืžื ื•, ืขืœ ื™ื“ื™ ืœื—ื™ืฆื” ืขืœ ื›ืคืชื•ืจ 1 ืื• ืคืกืง ื–ืžืŸ, ืฆื ืœืงื‘ื•ืฆืช ืžืคืขื™ืœื™ ื”ื—ื™ื•ื’. ืœืื—ืจ ืกื™ื•ื ื”ืฉื™ื—ื”, ืงื•ืจืื™ื ืœืžืืงืจื• ื”-hangupcall, ืฉืœืื—ืจื™ื• ืœื ื ื™ืชืŸ ืœืขืฉื•ืช ื“ื‘ืจ ื‘-dialplan, ืœืžืขื˜ ืžื˜ืคืœื™ื ืžื™ื•ื—ื“ื™ื (hangup handler).

ื”ื‘ื ืช FreePBX ื•ืฉื™ืœื•ื‘ื” ืขื Bitrix24 ื•ืขื•ื“

ื”ื™ื›ืŸ ื‘ืืœื’ื•ืจื™ืชื ื”ืฉื™ื—ื” ื”ื–ื” ืขืœื™ื ื• ืœืกืคืง ืžื™ื“ืข ืขืœ ืชื—ื™ืœืช ื”ืฉื™ื—ื” ืœ-CRM, ื”ื™ื›ืŸ ืœื”ืชื—ื™ืœ ืœื”ืงืœื™ื˜, ื”ื™ื›ืŸ ืœืกื™ื™ื ืืช ื”ื”ืงืœื˜ื” ื•ืœืฉืœื•ื— ืื•ืชื” ื™ื—ื“ ืขื ืžื™ื“ืข ืขืœ ื”ืฉื™ื—ื” ืœ-CRM?

ืื™ื ื˜ื’ืจืฆื™ื” ืขื ืžืขืจื›ื•ืช ื—ื™ืฆื•ื ื™ื•ืช

ืžื”ื™ ืฉื™ืœื•ื‘ ืžืจื›ื–ื™ื•ืช ื•-CRM? ืืœื• ื”ืŸ ื”ื’ื“ืจื•ืช ื•ืชื•ื›ื ื™ื•ืช ื”ืžืžื™ืจื•ืช ื ืชื•ื ื™ื ื•ืื™ืจื•ืขื™ื ื‘ื™ืŸ ืฉืชื™ ื”ืคืœื˜ืคื•ืจืžื•ืช ื”ืœืœื• ื•ืฉื•ืœื—ื•ืช ืื•ืชื ื–ื• ืœื–ื•. ื”ื“ืจืš ื”ื ืคื•ืฆื” ื‘ื™ื•ืชืจ ืœืชืงืฉื•ืจืช ืฉืœ ืžืขืจื›ื•ืช ืขืฆืžืื™ื•ืช ื”ื™ื ื‘ืืžืฆืขื•ืช ืžืžืฉืงื™ API, ื•ื”ื“ืจืš ื”ืคื•ืคื•ืœืจื™ืช ื‘ื™ื•ืชืจ ืœื’ืฉืช ืœืžืžืฉืงื™ API ื”ื™ื HTTP REST. ืื‘ืœ ืœื ื‘ื’ืœืœ ื›ื•ื›ื‘ื™ืช.

ื‘ืชื•ืš ื”ื›ื•ื›ื‘ื™ืช ื”ื•ื:

  • AGI - ืงืจื™ืื” ืกื™ื ื›ืจื•ื ื™ืช ืœืชื•ื›ื ื™ื•ืช/ืจื›ื™ื‘ื™ื ื—ื™ืฆื•ื ื™ื™ื, ืžืฉืžืฉืช ื‘ืขื™ืงืจ ื‘ืชื•ื›ื ื™ืช ื”ื—ื™ื•ื’, ื™ืฉ ืกืคืจื™ื•ืช ื›ืžื• phpagi, PAGI

  • AMI - ืฉืงืข TCP ื˜ืงืกื˜ ืฉืขื•ื‘ื“ ืขืœ ืขื™ืงืจื•ืŸ ื”ืจืฉืžื” ืœืื™ืจื•ืขื™ื ื•ื”ื–ื ืช ืคืงื•ื“ื•ืช ื˜ืงืกื˜, ื“ื•ืžื” ืžื‘ืคื ื™ื ืœ-SMTP, ื™ื›ื•ืœ ืœืขืงื•ื‘ ืื—ืจ ืื™ืจื•ืขื™ื ื•ืœื ื”ืœ ืฉื™ื—ื•ืช, ื™ืฉ ืกืคืจื™ื” PAMI - ื”ืคื•ืคื•ืœืจื™ ื‘ื™ื•ืชืจ ืœื™ืฆื™ืจืช ื—ื™ื‘ื•ืจ ืขื ื›ื•ื›ื‘ื™ืช

ื“ื•ื’ืžื” ืœืคืœื˜ AMI

ืื™ืจื•ืข: ืขืจื•ืฅ ื—ื“ืฉ
ื–ื›ื•ืช: ืœื”ืชืงืฉืจ, ื”ื›ืœ
ืขืจื•ืฅ: PJSIP/VMS_pjsip-0000078b
ืžืฆื‘ ืขืจื•ืฅ: 4
ChannelStateDesc: ืฆืœืฆื•ืœ
ืžืกืคืจ ื–ื™ื”ื•ื™ ืžืชืงืฉืจ: 111222
ืฉื ื”ืžืชืงืฉืจ: 111222
ConnectedLineNum:
ืฉื ืงื• ืžื—ื•ื‘ืจ:
ืฉืคื”: en
ืงื•ื“ ื—ืฉื‘ื•ืŸ:
ื”ืงืฉืจ: ืž-pstn
ื”ืจื—ื‘ื”: ืก
ืขื“ื™ืคื•ืช: 1
ื™ื™ื—ื•ื“ื™: 1599589046.5244
Linkedid: 1599589046.5244

  • ARI ื”ื•ื ืชืขืจื•ื‘ืช ืฉืœ ืฉื ื™ื”ื, ื›ื•ืœื ื“ืจืš REST, WebSocket, ื‘ืคื•ืจืžื˜ JSON - ืื‘ืœ ืขื ืกืคืจื™ื•ืช ื•ืขื˜ื™ืคื•ืช ื˜ืจื™ื•ืช, ืœื ื˜ื•ื‘ื•ืช ื‘ืžื™ื•ื—ื“, ื ืžืฆืื• ืžื™ื™ื“ื™ืช (phparia, phpari) ืฉื”ืคื›ื• ื‘ืคื™ืชื•ื—ื ืœืคื ื™ ื›-3 ืฉื ื™ื.

ื“ื•ื’ืžื” ืœืคืœื˜ ARI ื‘ืขืช ืชื—ื™ืœืช ืฉื™ื—ื”

{ "variable":"CallMeCallerIDName", "value":"111222", "type":"ChannelVarset", "timestamp":"2020-09-09T09:38:36.269+0000", "channel":{ "id" ยป:ยป1599644315.5334โ€ณ, ยซืฉืยป:ยปPJSIP/VMSpjsip-000007b6โ€ณ, "state":"ืฆืœืฆื•ืœ", "ืžืชืงืฉืจ":{ "ืฉื":"111222", "ืžืกืคืจ":"111222" }, "ืžื—ื•ื‘ืจื™ื":{ "ืฉื":"", "ืžืกืคืจ" :"" }, "accountcode":"", "dialplan":{ "context":"from-pstn", "exten":"s", "priority":2, "appname":"Stasis", "appdata":"hello-world" }, "creationtime":"2020-09-09T09:38:35.926+0000", "language":"he" }, "ื›ื•ื›ื‘ื™ืชid":"48:5b:aa:aa:aa:aa", "application":"hello-world" }

ื ื•ื—ื•ืช ืื• ืื™ ื ื•ื—ื•ืช, ื”ืืคืฉืจื•ืช ืื• ื—ื•ืกืจ ื”ืืคืฉืจื•ืช ืœืขื‘ื•ื“ ืขื API ืžืกื•ื™ื ื ืงื‘ืขื™ื ืœืคื™ ื”ืžืฉื™ืžื•ืช ืฉืฆืจื™ืš ืœืคืชื•ืจ. ื”ืžืฉื™ืžื•ืช ืœืฉื™ืœื•ื‘ ืขื CRM ื”ืŸ ื›ื“ืœืงืžืŸ:

  • ืขืงื•ื‘ ืื—ืจ ืชื—ื™ืœืช ื”ืฉื™ื—ื”, ืœืืŸ ื”ื™ื ื”ื•ืขื‘ืจื”, ืฉืœืฃ CallerID, DID, ื–ืžื ื™ ื”ืชื—ืœื” ื•ืกื™ื•ื, ืื•ืœื™ ื ืชื•ื ื™ื ืžื”ืกืคืจื™ื™ื” (ืœื—ื™ืคื•ืฉ ื—ื™ื‘ื•ืจ ื‘ื™ืŸ ื”ื˜ืœืคื•ืŸ ืœืžืฉืชืžืฉ ื”-CRM)

  • ืœื”ืชื—ื™ืœ ื•ืœืกื™ื™ื ืืช ื”ืงืœื˜ืช ื”ืฉื™ื—ื”, ืœืฉืžื•ืจ ืื•ืชื” ื‘ืคื•ืจืžื˜ ื”ืจืฆื•ื™, ืœื”ื•ื“ื™ืข โ€‹โ€‹ื‘ืกื•ืฃ ื”ื”ืงืœื˜ื” ื”ื™ื›ืŸ ื ืžืฆื ื”ืงื•ื‘ืฅ

  • ื”ืชื—ืœ ืฉื™ื—ื” ื‘ืื™ืจื•ืข ื—ื™ืฆื•ื ื™ (ืžื”ืชื•ื›ื ื™ืช), ื”ืชืงืฉืจ ืœืžืกืคืจ ืคื ื™ืžื™, ืœืžืกืคืจ ื—ื™ืฆื•ื ื™ ื•ื—ื‘ืจ ืื•ืชื

  • ืื•ืคืฆื™ื•ื ืœื™: ืฉื™ืœื•ื‘ ืขื CRM, ืงื‘ื•ืฆื•ืช ื—ื™ื™ื’ืŸ ื•-FollowME ืœื”ืขื‘ืจืช ืฉื™ื—ื•ืช ืื•ื˜ื•ืžื˜ื™ืช ื‘ื”ื™ืขื“ืจ ืžืงื•ื (ืœืคื™ CRM)

ืืช ื›ืœ ื”ืžืฉื™ืžื•ืช ื”ืœืœื• ืืคืฉืจ ืœืคืชื•ืจ ื“ืจืš AMI ืื• ARI, ืื‘ืœ ARI ืžืกืคืงืช ื”ืจื‘ื” ืคื—ื•ืช ืžื™ื“ืข, ืื™ืŸ ื”ืจื‘ื” ืื™ืจื•ืขื™ื, ื”ืจื‘ื” ืžืฉืชื ื™ื ืฉืขื“ื™ื™ืŸ ื™ืฉ ืœ-AMI (ืœืžืฉืœ ืงืจื™ืื•ืช ืžืืงืจื•, ื”ื’ื“ืจืช ืžืฉืชื ื™ื ื‘ืชื•ืš ืคืงื•ื“ื•ืช ืžืืงืจื•, ื›ื•ืœืœ ื”ืงืœื˜ืช ืฉื™ื—ื•ืช) ืœื ืขื•ื‘ืจื™ื ืžืขืงื‘. ืœื›ืŸ, ืœืžืขืงื‘ ื ื›ื•ืŸ ื•ืžื“ื•ื™ืง, ื‘ื•ืื• ืœื‘ื—ื•ืจ ื‘-AMI ืœืขืช ืขืชื” (ืืš ืœื ืœื’ืžืจื™). ื‘ื ื•ืกืฃ (ื˜ื•ื‘, ืื™ืคื” ื–ื” ื”ื™ื” ื‘ืœื™ ื–ื”, ืื ื—ื ื• ืื ืฉื™ื ืขืฆืœื ื™ื) - ื‘ืขื‘ื•ื“ื” ื”ืžืงื•ืจื™ืช (ืžืืžืจ ื‘ื”ื‘ืจ) ื”ืฉืชืžืฉ ื‘-PAMI. *ืื– ืืชื” ืฆืจื™ืš ืœื ืกื•ืช ืœื›ืชื•ื‘ ืžื—ื“ืฉ ืœ-ARI, ืื‘ืœ ืœื ืืช ื”ืขื•ื‘ื“ื” ืฉื–ื” ื™ืขื‘ื•ื“.

ื”ืžืฆืื” ืžื—ื“ืฉ ืฉืœ ืื™ื ื˜ื’ืจืฆื™ื”

ืขืœ ืžื ืช ืฉื”- FreePBX ืฉืœื ื• ื™ื•ื›ืœ ืœื“ื•ื•ื— ืœ-AMI ื‘ื“ืจื›ื™ื ืคืฉื•ื˜ื•ืช ืขืœ ืชื—ื™ืœืช ื”ืฉื™ื—ื”, ืฉืขืช ืกื™ื•ื, ืžืกืคืจื™ื, ืฉืžื•ืช ืงื‘ืฆื™ื ืžื•ืงืœื˜ื™ื, ื”ื›ื™ ืงืœ ืœื—ืฉื‘ ืืช ืžืฉืš ื”ืฉื™ื—ื” ื‘ืืžืฆืขื•ืช ืื•ืชื• ื˜ืจื™ืง ื›ืžื• ื”ืžื—ื‘ืจื™ื ื”ืžืงื•ืจื™ื™ื - ื”ื–ืŸ ืืช ื”ืžืฉืชื ื™ื ืฉืœืš ื•ื ืชื— ืืช ื”ืคืœื˜ ืขื‘ื•ืจ ื ื•ื›ื—ื•ืชื. PAMI ืžืฆื™ืขื” ืœืขืฉื•ืช ื–ืืช ืคืฉื•ื˜ ื‘ืืžืฆืขื•ืช ืคื•ื ืงืฆื™ื™ืช ืกื™ื ื•ืŸ.

ื”ื ื” ื“ื•ื’ืžื” ืœื”ื’ื“ืจืช ืžืฉืชื ื” ืžืฉืœืš ืœืฉืขืช ื”ื”ืชื—ืœื” ืฉืœ ื”ืฉื™ื—ื” (s ื”ื•ื ืžืกืคืจ ืžื™ื•ื—ื“ ื‘ืชื•ื›ื ื™ืช ื”ื—ื™ื•ื’ ืฉืžืชื‘ืฆืขืช ืœืคื ื™ ืชื—ื™ืœืช ื”ื—ื™ืคื•ืฉ DID)

[ext-did-custom]

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

ืื™ืจื•ืข AMI ืœื“ื•ื’ืžื” ืขื‘ื•ืจ ืงื• ื–ื”

ืื™ืจื•ืข: ืขืจื•ืฅ ื—ื“ืฉ

ื–ื›ื•ืช: ืœื”ืชืงืฉืจ, ื”ื›ืœ

ืขืจื•ืฅ: PJSIP/VMS_pjsip-0000078b

ืžืฆื‘ ืขืจื•ืฅ: 4

ChannelStateDesc: ืฆืœืฆื•ืœ

ืžืกืคืจ ื–ื™ื”ื•ื™ ืžืชืงืฉืจ: 111222

ืฉื ื”ืžืชืงืฉืจ: 111222

ConnectedLineNum:

ืฉื ืงื• ืžื—ื•ื‘ืจ:

ืฉืคื”: en

ืงื•ื“ ื—ืฉื‘ื•ืŸ:

ื”ืงืฉืจ: ืž-pstn

ื”ืจื—ื‘ื”: ืก

ืขื“ื™ืคื•ืช: 1

ื™ื™ื—ื•ื“ื™: 1599589046.5244

Linkedid: 1599589046.5244

ื™ื™ืฉื•ื: ื”ื’ื“ืจ AppData:

CallStart=1599571046

ืžื›ื™ื•ื•ืŸ ืฉ-FreePBX ืžื—ืœื™ืฃ ืืช ืงื‘ืฆื™ extension.conf ื•-extension_additional.conf, ื ืฉืชืžืฉ ื‘ืงื•ื‘ืฅ ื”ืจื—ื‘ื”_ืžื ื”ื’.conf

ื”ืงื•ื“ ื”ืžืœื ืฉืœ 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

ืชื›ื•ื ื” ื•ื”ื‘ื“ืœ ืžืชื•ื›ื ื™ืช ื”ื—ื™ื•ื’ ื”ืžืงื•ืจื™ืช ืฉืœ ืžื—ื‘ืจื™ ื”ืžืืžืจ ื”ืžืงื•ืจื™ -

  • Dialplan ื‘ืคื•ืจืžื˜ .conf, ื›ืคื™ ืฉ- FreePBX ืจื•ืฆื” ืืช ื–ื” (ื›ืŸ, ื–ื” ื™ื›ื•ืœ .ael, ืื‘ืœ ืœื ื‘ื›ืœ ื”ื’ืจืกืื•ืช ื•ื–ื” ืœื ืชืžื™ื“ ื ื•ื—)

  • ื‘ืžืงื•ื ืœืขื‘ื“ ืืช ื”ืกื•ืฃ ื“ืจืš exten=>h, ื”ืขื™ื‘ื•ื“ ื”ื•ื›ื ืก ื“ืจืš hangup_handler, ืžื›ื™ื•ื•ืŸ ืฉืชื•ื›ื ื™ืช ื”ื—ื™ื•ื’ ืฉืœ FreePBX ืขื‘ื“ื” ืจืง ืื™ืชื•

  • ืžื—ืจื•ื–ืช ืฉื™ื—ื•ืช ืกืงืจื™ืคื˜ ืงื‘ื•ืขื”, ื ื•ืกืคื• ื”ืฆืขื•ืช ืžื—ื™ืจ ื•ืžืกืคืจ ืฉื™ื—ื” ื—ื™ืฆื•ื ื™ ExtNum

  • ื”ืขื™ื‘ื•ื“ ืžื•ืขื‘ืจ ืœื”ืงืฉืจื™ื ืžื•ืชืืžื™ื ืื™ืฉื™ืช ื•ืžืืคืฉืจ ืœืš ืœื ืœื’ืขืช ืื• ืœืขืจื•ืš ืชืฆื•ืจื•ืช FreePBX - ื ื›ื ืกื•ืช ื“ืจืš [ext-ืขืฉื”-ืžื•ืชืื ืื™ืฉื™ืช], ื™ื•ืฆื ื“ืจืš [ื™ื•ืฆื-allroutes-ืžื•ืชืื ืื™ืฉื™ืช]

  • ืื™ืŸ ืงืฉื™ืจื” ืœืžืกืคืจื™ื - ื”ืงื•ื‘ืฅ ื”ื•ื ืื•ื ื™ื‘ืจืกืœื™ ื•ื™ืฉ ืœื”ื’ื“ื™ืจ ืจืง ืขื‘ื•ืจ ื”ื ืชื™ื‘ ื•ื”ืงื™ืฉื•ืจ ืœืฉืจืช

ื›ื“ื™ ืœื”ืชื—ื™ืœ, ืืชื” ืฆืจื™ืš ื’ื ืœื”ืคืขื™ืœ ืกืงืจื™ืคื˜ื™ื ื‘-AMI ืขืœ ื™ื“ื™ ื”ืชื—ื‘ืจื•ืช ื•ืกื™ืกืžื” - ื‘ืฉื‘ื™ืœ ื–ื”, ืœ-FreePBX ื™ืฉ ื’ื ืงื•ื‘ืฅ _custom

ืงื•ื‘ืฅ 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

ื™ืฉ ืœืžืงื ืืช ืฉื ื™ ื”ืงื‘ืฆื™ื ื”ืœืœื• ื‘-/etc/asterisk, ื•ืœืื—ืจ ืžื›ืŸ ืœืงืจื•ื ืžื—ื“ืฉ ืืช ื”ื”ื’ื“ืจื•ืช (ืื• ืœื”ืคืขื™ืœ ืžื—ื“ืฉ ืืช ื”ื›ื•ื›ื‘ื™ืช)

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

ื›ืขืช ื ืขื‘ื•ืจ ืœ-PHP

ืืชื—ื•ืœ ืกืงืจื™ืคื˜ื™ื ื•ื™ืฆื™ืจืช ืฉื™ืจื•ืช

ืžื›ื™ื•ื•ืŸ ืฉืชื›ื ื™ืช ื”ืขื‘ื•ื“ื” ืขื Bitrix 24, ืฉื™ืจื•ืช ืขื‘ื•ืจ AMI, ืื™ื ื” ืคืฉื•ื˜ื” ื•ืฉืงื•ืคื” ืœื—ืœื•ื˜ื™ืŸ, ื™ืฉ ืœื“ื•ืŸ ื‘ื” ื‘ื ืคืจื“. ื›ื•ื›ื‘ื™ืช, ื›ืืฉืจ AMI ืžื•ืคืขืœืช, ืคืฉื•ื˜ ืคื•ืชื—ืช ืืช ื”ืคื•ืจื˜ ื•ื–ื”ื•. ื›ืืฉืจ ืœืงื•ื— ืžืฆื˜ืจืฃ, ื”ื•ื ืžื‘ืงืฉ ื”ืจืฉืื”, ื•ืื– ื”ืœืงื•ื— ื ืจืฉื ืœืื™ืจื•ืขื™ื ื”ื“ืจื•ืฉื™ื. ืื™ืจื•ืขื™ื ืžื’ื™ืขื™ื ื‘ื˜ืงืกื˜ ืจื’ื™ืœ, ืฉ-PAMI ืžืžื™ืจื” ืœืื•ื‘ื™ื™ืงื˜ื™ื ืžื•ื‘ื ื™ื ื•ืžืกืคืงืช ืืช ื”ื™ื›ื•ืœืช ืœื”ื’ื“ื™ืจ ืืช ืคื•ื ืงืฆื™ื™ืช ื”ืกื™ื ื•ืŸ ืจืง ืขื‘ื•ืจ ืื™ืจื•ืขื™ื ื‘ืขืœื™ ืขื ื™ื™ืŸ, ืฉื“ื•ืช, ืžืกืคืจื™ื ื•ื›ื•'.

ื‘ืจื’ืข ืฉื”ืงืจื™ืื” ื ื›ื ืกืช, ื”ืื™ืจื•ืข NewExten ืžื•ืคืขืœ ื”ื—ืœ ืžื”ืงืฉืจ ื”ืื‘ [from-pstn], ื•ืื– ื›ืœ ื”ืื™ืจื•ืขื™ื ืขื•ื‘ืจื™ื ืœืคื™ ืกื“ืจ ื”ืฉื•ืจื•ืช ื‘ื”ืงืฉืจื™ื. ื›ืืฉืจ ืžื™ื“ืข ืžืชืงื‘ืœ ืžื”ืžืฉืชื ื™ื CallMeCallerIDName ื•-CallStart ืฉืฆื•ื™ื ื• ื‘-_custom dialplan,

  1. ื”ืคื•ื ืงืฆื™ื” ืฉืœ ื‘ืงืฉืช ื”-UserID ื”ืชื•ืื ืœืžืกืคืจ ื”ืฉืœื•ื—ื” ืฉืืœื™ื” ื”ื’ื™ืขื” ื”ืฉื™ื—ื”. ืžื” ืื ื–ื• ืงื‘ื•ืฆืช ื—ื™ื•ื’? ื”ืฉืืœื” ื”ื™ื ืคื•ืœื™ื˜ื™ืช, ื”ืื ืฆืจื™ืš ืœื™ืฆื•ืจ ืฉื™ื—ื” ืœื›ื•ืœื ื‘ื‘ืช ืื—ืช (ื›ืฉื›ื•ืœื ืžืชืงืฉืจื™ื ื‘ื‘ืช ืื—ืช) ืื• ืœื™ืฆื•ืจ ื›ืžื• ืฉื”ื ืงื•ืจืื™ื ื›ืฉืžืชืงืฉืจื™ื ื‘ืชื•ืจื•? ืœืจื•ื‘ ื”ืœืงื•ื—ื•ืช ื™ืฉ ืืกื˜ืจื˜ื’ื™ื™ืช Fisrt Available, ื›ืš ืฉืื™ืŸ ื‘ืขื™ื” ืขื ื–ื”, ืจืง ืžืชืงืฉืจืช ืื—ืช. ืื‘ืœ ื”ื ื•ืฉื ืฆืจื™ืš ืœื”ื™ืคืชืจ.

  2. ืคื•ื ืงืฆื™ื™ืช ืจื™ืฉื•ื ื”ืฉื™ื—ื” ื‘-Bitrix24, ื”ืžื—ื–ื™ืจื” ืืช ื”-CallID, ืืฉืจ ืœืื—ืจ ืžื›ืŸ ื ื“ืจืฉืช ืœื“ื•ื•ื— ืขืœ ืคืจืžื˜ืจื™ ื”ืฉื™ื—ื” ื•ืงื™ืฉื•ืจ ืœื”ืงืœื˜ื”. ื“ื•ืจืฉ ืžืกืคืจ ืฉืœื•ื—ื” ืื• UserID

ื”ื‘ื ืช FreePBX ื•ืฉื™ืœื•ื‘ื” ืขื Bitrix24 ื•ืขื•ื“

ืœืื—ืจ ืกื™ื•ื ื”ืฉื™ื—ื”, ื ืงืจืืช ืคื•ื ืงืฆื™ื™ืช ื”ื•ืจื“ืช ื”ืจืฉื•ืžื•ืช, ื”ืžื“ื•ื•ื—ืช ื‘ื•-ื–ืžื ื™ืช ืขืœ ืžืฆื‘ ืกื™ื•ื ื”ืฉื™ื—ื” (ืขืกื•ืง, ืื™ืŸ ืžืขื ื”, ื”ืฆืœื—ื”), ื•ื›ืŸ ืžื•ืจื™ื“ื” ืงื™ืฉื•ืจ ืœืงื•ื‘ืฅ ื”-mp3 ืขื ื”ืจืฉื•ืžื” (ืื ื™ืฉ).

ืžื›ื™ื•ื•ืŸ ืฉืžื•ื“ื•ืœ CallMeIn.php ืฆืจื™ืš ืœืคืขื•ืœ ื‘ืจืฆื™ืคื•ืช, ื ื•ืฆืจ ืขื‘ื•ืจื• ืงื•ื‘ืฅ ืืชื—ื•ืœ SystemD callme.service, ืื•ืชื• ื™ืฉ ืœืฉื™ื ื‘- /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

ืืชื—ื•ืœ ื•ื”ืฉืงื” ืฉืœ ื”ืกืงืจื™ืคื˜ ืžืชืจื—ืฉื™ื ื‘ืืžืฆืขื•ืช systemctl ืื• ืฉื™ืจื•ืช

# systemctl enable callme
# systemctl start callme

ื”ืฉื™ืจื•ืช ื™ืคืขื™ืœ ืืช ืขืฆืžื• ืžื—ื“ืฉ ืœืคื™ ื”ืฆื•ืจืš (ื‘ืžืงืจื” ืฉืœ ืงืจื™ืกื•ืช). ืฉื™ืจื•ืช ืžืขืงื‘ ืชื™ื‘ืช ื”ื“ื•ืืจ ื”ื ื›ื ืก ืื™ื ื• ืžืฆืจื™ืš ื”ืชืงื ืช ืฉืจืช ืื™ื ื˜ืจื ื˜, ื™ืฉ ืฆื•ืจืš ืจืง ื‘-php (ืฉื–ื” ื‘ื”ื—ืœื˜ ื ืžืฆื ื‘ืฉืจืช FeePBX). ืืš ื‘ื”ื™ืขื“ืจ ื’ื™ืฉื” ืœืจืฉื•ืžื•ืช ืฉื™ื—ื•ืช ื“ืจืš ืฉืจืช ื”ืื™ื ื˜ืจื ื˜ (ื’ื ืขื https), ืœื ื ื™ืชืŸ ื™ื”ื™ื” ืœื”ืื–ื™ืŸ ืœืจืฉื•ืžื•ืช ืฉื™ื—ื•ืช.

ืขื›ืฉื™ื• ื‘ื•ืื• ื ื“ื‘ืจ ืขืœ ืฉื™ื—ื•ืช ื™ื•ืฆืื•ืช. ืœืกืงืจื™ืคื˜ CallMeOut.php ื™ืฉ ืฉืชื™ ืคื•ื ืงืฆื™ื•ืช:

  • ื”ืคืขืœืช ืฉื™ื—ื” ื›ืืฉืจ ืžืชืงื‘ืœืช ื‘ืงืฉื” ืœืกืงืจื™ืคื˜ php (ื›ื•ืœืœ ืฉื™ืžื•ืฉ ื‘ื›ืคืชื•ืจ "ื”ืชืงืฉืจ" ื‘-Bitrix ืขืฆืžื•). ื–ื” ืœื ืขื•ื‘ื“ ื‘ืœื™ ืฉืจืช ืื™ื ื˜ืจื ื˜, ื”ื‘ืงืฉื” ืžืชืงื‘ืœืช ื‘ืืžืฆืขื•ืช HTTP POST, ื”ื‘ืงืฉื” ืžื›ื™ืœื” ืืกื™ืžื•ืŸ

  • ื”ื•ื“ืขื” ืขืœ ื”ืฉื™ื—ื”, ื”ืคืจืžื˜ืจื™ื ื•ื”ืจืฉื•ืžื•ืช ืฉืœื” ื‘-Bitrix. ืžื•ืคืขืœืช ืขืœ ื™ื“ื™ ื›ื•ื›ื‘ื™ืช ื‘ืชื•ื›ื ื™ืช ื”ื—ื™ื•ื’ [ืชืช-ืฉื™ื—ื”-ืคื ื™ืžื™ืช-ืกืชื™ื™ืžื”] ื›ืืฉืจ ืฉื™ื—ื” ืžืกืชื™ื™ืžืช

ื”ื‘ื ืช FreePBX ื•ืฉื™ืœื•ื‘ื” ืขื Bitrix24 ื•ืขื•ื“

ืฉืจืช ื”ืื™ื ื˜ืจื ื˜ ื ื—ื•ืฅ ืจืง ืœืฉื ื™ ื“ื‘ืจื™ื - ื”ื•ืจื“ืช ืงื‘ืฆื™ ืจืฉื•ืžื•ืช Bitrix (ื‘ืืžืฆืขื•ืช HTTPS) ื•ืงืจื™ืื” ืœืกืงืจื™ืคื˜ CallMeOut.php. ืืชื” ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘ืฉืจืช FreePBX ื”ืžื•ื‘ื ื”, ืฉื”ืงื‘ืฆื™ื ืขื‘ื•ืจื ื”ื /var/www/html, ืืชื” ื™ื›ื•ืœ ืœื”ืชืงื™ืŸ ืฉืจืช ืื—ืจ ืื• ืœืฆื™ื™ืŸ ื ืชื™ื‘ ืื—ืจ.

ืฉืจืช ืื™ื ื˜ืจื ื˜

ื‘ื•ืื• ื ืฉืื™ืจ ืืช ื”ื’ื“ืจืช ืฉืจืช ื”ืื™ื ื˜ืจื ื˜ ืœืœื™ืžื•ื“ ืขืฆืžืื™ (ื˜ื™ื™ื˜ืก, ื˜ื™ื™ื˜ืก, ื˜ื™ื™ื˜ืก). ืื ืื™ืŸ ืœืš ื“ื•ืžื™ื™ืŸ, ืืชื” ื™ื›ื•ืœ ืœื ืกื•ืช ืืช FreeDomain( https://www.freenom.com/ru/index.html), ืฉื™ื™ืชืŸ ืœืš ืฉื ื—ื™ื ืžื™ ืขื‘ื•ืจ ื”-IP ื”ืœื‘ืŸ ืฉืœืš (ืืœ ืชืฉื›ื— ืœื”ืขื‘ื™ืจ ื™ืฆื™ืื•ืช 80, 443 ื“ืจืš ื”ื ืชื‘ ืื ื”ื›ืชื•ื‘ืช ื”ื—ื™ืฆื•ื ื™ืช ื ืžืฆืืช ืจืง ื‘ื•). ืื ืจืง ื™ืฆืจืช ื“ื•ืžื™ื™ืŸ DNS, ืขืœื™ืš ืœื”ืžืชื™ืŸ (ืž-15 ื“ืงื•ืช ืขื“ 48 ืฉืขื•ืช) ืขื“ ืฉื›ืœ ื”ืฉืจืชื™ื ื™ื™ื˜ืขื ื•. ืขืœ ืคื™ ื ื™ืกื™ื•ืŸ ื”ืขื‘ื•ื“ื” ืขื ืกืคืงื™ื ืžืงื•ืžื™ื™ื - ืžืฉืขื” ืขื“ ื™ื•ื.

ืื•ื˜ื•ืžืฆื™ื” ืฉืœ ื”ืชืงื ื”

ืชื•ื›ื ืช ื”ืชืงื ื” ืคื•ืชื—ื” ื‘-github ื›ื“ื™ ืœื”ืงืœ ืขื•ื“ ื™ื•ืชืจ ืขืœ ื”ื”ืชืงื ื”. ืื‘ืœ ื–ื” ื”ื™ื” ื—ืœืง ืขืœ ื”ื ื™ื™ืจ - ื‘ื–ืžืŸ ืฉืื ื—ื ื• ืžืชืงื™ื ื™ื ื”ื›ืœ ื‘ืื•ืคืŸ ื™ื“ื ื™, ืฉื›ืŸ ืœืื—ืจ ื”ืชืขืกืงื•ืช ืขื ื›ืœ ื–ื” ื ืขืฉื” ื‘ืจื•ืจ ืœื’ืžืจื™ ืžื” ื—ื‘ืจ ืขื ืžื™, ืžื™ ื”ื•ืœืš ืœืืŸ ื•ืื™ืš ืœื ืคื•ืช ืืช ื–ื”. ืื™ืŸ ืขื“ื™ื™ืŸ ืžืชืงื™ืŸ

ืกึทื•ึธืจ

ืื ืืชื” ืจื•ืฆื” ืœื ืกื•ืช ื‘ืžื”ื™ืจื•ืช ืืช ื”ืคืชืจื•ืŸ - ื™ืฉ ืืคืฉืจื•ืช ืขื Docker - ืฆื•ืจ ื‘ืžื”ื™ืจื•ืช ืงื•ื ื˜ื™ื™ื ืจ, ืชืŸ ืœื• ื™ืฆื™ืื•ืช ื‘ื—ื•ืฅ, ื”ื—ืœื™ืง ืืช ืงื‘ืฆื™ ื”ื”ื’ื“ืจื•ืช ื•ื ืกื” (ื–ื• ื”ืืคืฉืจื•ืช ืขื ื”ืงื•ื ื˜ื™ื™ื ืจ LetsEncrypt, ืื ื›ื‘ืจ ื™ืฉ ืœืš ืื™ืฉื•ืจ, ืืชื” ืจืง ืฆืจื™ืš ืœื”ืคื ื•ืช ืืช ื”-proxy ื”ื”ืคื•ืš ืœืฉืจืช ื”ืื™ื ื˜ืจื ื˜ ืฉืœ FreePBX (ื ืชื ื• ืœื• ื™ืฆื™ืื” ืื—ืจืช ื”ื™ื 88), LetsEncrypt ื‘-docker ืžื‘ื•ืกืก ืขืœ ื‘ืžืืžืจ ื–ื”

ืืชื” ืฆืจื™ืš ืœื”ืจื™ืฅ ืืช ื”ืงื•ื‘ืฅ ื‘ืชื™ืงื™ื™ืช ื”ืคืจื•ื™ืงื˜ ืฉื”ื•ืจื“ืช (ืื—ืจื™ git clone), ืื‘ืœ ืชื—ื™ืœื” ื”ื™ื›ื ืก ืœ-asterisk configs (ืชื™ืงื™ื™ืช ื›ื•ื›ื‘ื™ืช) ื•ื›ืชื•ื‘ ืืช ื”ื ืชื™ื‘ื™ื ืœืจืฉื•ืžื•ืช ื•ืืช ื›ืชื•ื‘ืช ื”ืืชืจ ืฉืœืš ืฉื

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:

ืงื•ื‘ืฅ docker-compose.yaml ื–ื” ืžื•ืคืขืœ ื‘ืืžืฆืขื•ืช

docker-compose up -d

ืื nginx ืœื ืžื•ืคืขืœ, ืื– ืžืฉื”ื• ืœื ื‘ืกื“ืจ ื‘ืชืฆื•ืจื” ื‘ืชื™ืงื™ื™ื” nginx/ssl_docker.conf

ืื™ื ื˜ื’ืจืฆื™ื•ืช ืื—ืจื•ืช

ื•ืœืžื” ืœื ืœื”ื›ื ื™ืก ืงืฆืช CRM ืœืกืงืจื™ืคื˜ื™ื ื‘ืื•ืชื• ื”ื–ืžืŸ, ื—ืฉื‘ื ื•. ืœืžื“ื ื• ืขื•ื“ ื›ืžื” ืžืžืฉืงื™ API ืฉืœ CRM, ื‘ืžื™ื•ื—ื“ ืืช ื”ืžืจื›ื–ื™ื” ื”ืžื•ื‘ื ื™ืช ื”ื—ื™ื ืžื™ืช - ShugarCRM ื•-Vtiger, ื•ื›ืŸ! ื›ืŸ, ื”ืขื™ืงืจื•ืŸ ื–ื”ื”. ืื‘ืœ ื–ื” ืกื™ืคื•ืจ ืื—ืจ, ืฉื ืขืœื” ืžืื•ื—ืจ ื™ื•ืชืจ ืœ-github ื‘ื ืคืจื“.

ืชื–ื›ื•ืจ

ื›ืชื‘ ื•ื™ืชื•ืจ: ื›ืœ ื“ืžื™ื•ืŸ ืœืžืฆื™ืื•ืช ื”ื•ื ืคื™ืงื˜ื™ื‘ื™ ื•ื–ื” ืœื ื”ื™ื™ืชื™ ืื ื™.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”