เบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเปƒเบˆเบเปˆเบฝเบงเบเบฑเบš FreePBX เปเบฅเบฐเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบกเบฑเบ™เบเบฑเบš Bitrix24 เปเบฅเบฐเบญเบทเปˆเบ™เป†เบญเบตเบ

Bitrix24 เปเบกเปˆเบ™เบเบฒเบ™เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เบญเบฑเบ™เปƒเบซเบเปˆเบซเบผเบงเบ‡เบ—เบตเปˆเบฅเบงเบก CRM, เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบ, เบเบฒเบ™เบšเบฑเบ™เบŠเบตเปเบฅเบฐเบชเบดเปˆเบ‡เบญเบทเปˆเบ™เป†เบซเบผเบฒเบเบ—เบตเปˆเบœเบนเป‰เบˆเบฑเบ”เบเบฒเบ™เบกเบฑเบเปเบฅเบฐเบžเบฐเบ™เบฑเบเบ‡เบฒเบ™ IT เบšเปเปˆเบกเบฑเบ. เบ›เบฐเบ•เบนเป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป‚เบ”เบเบซเบผเบฒเบเบšเปเบฅเบดเบชเบฑเบ”เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเปเบฅเบฐเบ‚เบฐเบซเบ™เบฒเบ”เบเบฒเบ‡, เบฅเบงเบกเบ—เบฑเบ‡เบ„เบฅเบตเบ™เบดเบเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ, เบœเบนเป‰เบœเบฐเบฅเบดเบ”เปเบฅเบฐเปเบกเป‰เบเบฐเบ—เบฑเป‰เบ‡เบฎเป‰เบฒเบ™เป€เบชเบตเบกเบชเบงเบ. เบซเบ™เป‰เบฒเบ—เบตเปˆเบ•เบปเป‰เบ™เบ•เปเบ—เบตเปˆเบœเบนเป‰เบˆเบฑเบ”เบเบฒเบ™ "เบฎเบฑเบ" เปเบกเปˆเบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบ‚เบญเบ‡เป‚เบ—เบฅเบฐเบชเบฑเบšเปเบฅเบฐ CRM, เป€เบกเบทเปˆเบญเบเบฒเบ™เป‚เบ—เปƒเบ”เป†เบ–เบทเบเบšเบฑเบ™เบ—เบถเบเป„เบงเป‰เปƒเบ™ CRM, เบšเบฑเบ”เบฅเบนเบเบ„เป‰เบฒเบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™, เป€เบกเบทเปˆเบญเป€เบ‚เบปเป‰เบฒเบกเบฒ, เบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบฅเบนเบเบ„เป‰เบฒเบˆเบฐเบ–เบทเบเบชเบฐเปเบ”เบ‡เปเบฅเบฐเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™เป„เบ”เป‰เบ—เบฑเบ™เบ—เบตเบงเปˆเบฒเบฅเบฒเบงเปเบกเปˆเบ™เปƒเบœ, เบฅเบฒเบงเปเบกเปˆเบ™เบซเบเบฑเบ‡. เบชเบฒเบกเบฒเบ”เบ‚เบฒเบเป„เบ”เป‰ เปเบฅเบฐเป€เบ›เบฑเบ™เปœเบตเป‰เบซเบผเบฒเบเบ›เบฒเบ™เปƒเบ”. เปเบ•เปˆเป‚เบ—เบฅเบฐเบชเบฑเบšเบˆเบฒเบ Bitrix24 เปเบฅเบฐเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบเบฑเบš CRM เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบ, เบšเบฒเบ‡เบ„เบฑเป‰เบ‡เบเปเปˆเบซเบผเบฒเบ. เปƒเบ™เบšเบปเบ”เบ„เบงเบฒเบกเบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบˆเบฐเบšเบญเบเบ—เปˆเบฒเบ™เบ›เบฐเบชเบปเบšเบเบฒเบ™เบ‚เบญเบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เบกเบทเป€เบ›เบตเบ”เปเบฅเบฐ IP PBX เบ—เบตเปˆเบ™เบดเบเบปเบก freepbx, เปเบฅเบฐเบเบฑเบ‡เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเป€เบซเบ”เบœเบปเบ™เบ‚เบญเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡เบžเบฒเบเบชเปˆเบงเบ™เบ•เปˆเบฒเบ‡เป†

เบ‚เป‰เบญเบเป€เบฎเบฑเบ”เบงเบฝเบเป€เบ›เบฑเบ™ outsourcer เปƒเบ™เบšเปเบฅเบดเบชเบฑเบ”เบ—เบตเปˆเบ‚เบฒเบเปเบฅเบฐ configure, เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เป‚เบ—เบฅเบฐเบชเบฑเบš IP. เป€เบกเบทเปˆเบญเบ‚เป‰เบญเบเบ–เบทเบเบ–เบฒเบกเบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบชเบฐเป€เบซเบ™เบตเบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบ™เบตเป‰เปเบฅเบฐเบšเปเบฅเบดเบชเบฑเบ”เบ™เบตเป‰เป€เบžเบทเปˆเบญเบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™ Bitrix24 เบเบฑเบš PBXs เบ—เบตเปˆเบฅเบนเบเบ„เป‰เบฒเบกเบต, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบš PBXs virtual เปƒเบ™เบšเปเบฅเบดเบชเบฑเบ” VDS เบ•เปˆเบฒเบ‡เป†, เบ‚เป‰เบญเบเป„เบ”เป‰เป„เบ›เบซเบฒ Google. เปเบฅเบฐเปเบ™เปˆเบ™เบญเบ™เบฅเบฒเบงเป„เบ”เป‰เปƒเบซเป‰เบ‚เป‰เบญเบเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ เบšเบปเบ”เบ„เบงเบฒเบกเปƒเบ™ habr, เบšเปˆเบญเบ™เบ—เบตเปˆเบกเบตเบ„เปเบฒเบญเบฐเบ—เบดเบšเบฒเบ, เปเบฅเบฐ github, เปเบฅเบฐเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบˆเบฐเป€เบฎเบฑเบ”เบงเบฝเบ. เปเบ•เปˆเป€เบกเบทเปˆเบญเบžเบฐเบเบฒเบเบฒเบกเปƒเบŠเป‰เบงเบดเบ—เบตเปเบเป‰เป„เบ‚เบ™เบตเป‰, เบกเบฑเบ™เป„เบ”เป‰เบซเบฑเบ™เบญเบญเบเบงเปˆเบฒ Bitrix24 เบˆเบฐเบšเปเปˆเบ„เบทเบเบฑเบ™เบเบฑเบšเบเปˆเบญเบ™, เปเบฅเบฐเบซเบผเบฒเบเบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เปเบเป‰เป„เบ‚เบ„เบทเบ™เปƒเบซเบกเปˆ. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, FreePBX เบšเปเปˆเปเบกเปˆเบ™เบฎเบนเบšเบ”เบฒเบงเป€เบ›เบปเปˆเบฒเบชเปเบฒเบฅเบฑเบšเบ—เปˆเบฒเบ™, เปƒเบ™เบ—เบตเปˆเบ™เบตเป‰เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ„เบดเบ”เบเปˆเบฝเบงเบเบฑเบšเบงเบดเบ—เบตเบฅเบงเบกเป€เบญเบปเบฒเบ„เบงเบฒเบกเบชเบฐเบ”เบงเบเปƒเบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เปเบฅเบฐ dialplan hardcore เปƒเบ™เป„เบŸเบฅเปŒ config.

เบžเบงเบเป€เบฎเบปเบฒเบชเบถเบเบชเบฒเป€เบซเบ”เบœเบปเบ™เบ‚เบญเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบ

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบกเบฑเบ™เบ„เบงเบ™เบˆเบฐเป€เบฎเบฑเบ”เบงเบฝเบเปเบ™เบงเปƒเบ”. เป€เบกเบทเปˆเบญเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เป‚เบ—เบˆเบฒเบเบžเบฒเบเบ™เบญเบเบขเบนเปˆเบ—เบตเปˆ PBX (เป€เบซเบ”เบเบฒเบ™ SIP INVITE เบˆเบฒเบเบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™), เบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบ‚เบญเบ‡ dialplan (เปเบœเบ™เบเบฒเบ™เป‚เบ—, dialplan) เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ - เบเบปเบ”เบฅเบฐเบšเบฝเบšเบ‚เบญเบ‡เบชเบดเปˆเบ‡เบ—เบตเปˆเปเบฅเบฐเปƒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”เปเบ™เบงเปƒเบ”เบเบฑเบšเบเบฒเบ™เป‚เบ—. เบˆเบฒเบเบŠเบธเบ”เบ—เปเบฒเบญเบดเบ”, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป„เบ”เป‰เบฎเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบซเบผเบฒเบ, เป€เบŠเบดเปˆเบ‡เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบเบปเบ”เบฅเบฐเบšเบฝเบš. เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ—เบตเปˆเบ”เบตเป€เบฅเบตเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเบถเบเบชเบฒเบžเบฒเบเปƒเบ™เบ‚เบญเบ‡ SIP เปเบกเปˆเบ™เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐ sngrep (เบซเบ™เป‰เบฒเบ—เปเบฒเบญเบดเบ”) เป€เบŠเบดเปˆเบ‡เบ–เบทเบเบ•เบดเบ”เบ•เบฑเป‰เบ‡เบ‡เปˆเบฒเบเป†เปƒเบ™เบเบฒเบ™เปเบˆเบเบขเบฒเบเบ—เบตเปˆเบ™เบดเบเบปเบกเป‚เบ”เบเบœเปˆเบฒเบ™เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ apt install / yum เปเบฅเบฐเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™, เปเบ•เปˆเบกเบฑเบ™เบเปเปˆเบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡เป„เบ”เป‰เบˆเบฒเบเปเบซเบผเปˆเบ‡. เบฅเบญเบ‡เป€เบšเบดเปˆเบ‡เบšเบฑเบ™เบ—เบถเบเบเบฒเบ™เป‚เบ—เปƒเบ™ sngrep

เบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเปƒเบˆเบเปˆเบฝเบงเบเบฑเบš FreePBX เปเบฅเบฐเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบกเบฑเบ™เบเบฑเบš Bitrix24 เปเบฅเบฐเบญเบทเปˆเบ™เป†เบญเบตเบ

เปƒเบ™เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบ‡เปˆเบฒเบเบ”เบฒเบ, dialplan เบˆเบฑเบ”เบเบฒเบ™เบเบฑเบšเบŠเบธเบ”เบ—เปเบฒเบญเบดเบ”เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™, เบšเบฒเบ‡เบ„เบฑเป‰เบ‡เบเปเปˆเบขเบนเปˆเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบชเบปเบ™เบ—เบฐเบ™เบฒ, เบเบฒเบ™เป‚เบ—เบ–เบทเบเป‚เบญเบ™, เบเบฒเบ™เบเบปเบ”เบ›เบธเปˆเบก (DTMF), เบชเบดเปˆเบ‡เบ—เบตเปˆเบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆเบ•เปˆเบฒเบ‡เป†เป€เบŠเบฑเปˆเบ™ FollowMe, RingGroup, IVR เปเบฅเบฐเบญเบทเปˆเบ™เป†.

เบชเบดเปˆเบ‡เบ—เบตเปˆเบขเบนเปˆเปƒเบ™เบŠเบญเบ‡เป€เบŠเบตเบ™

เบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเปƒเบˆเบเปˆเบฝเบงเบเบฑเบš FreePBX เปเบฅเบฐเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบกเบฑเบ™เบเบฑเบš Bitrix24 เปเบฅเบฐเบญเบทเปˆเบ™เป†เบญเบตเบ

เปเบ—เป‰เบˆเบดเบ‡เปเบฅเป‰เบง, diaalplans เบ‡เปˆเบฒเบเบ”เบฒเบเบชเปˆเบงเบ™เปƒเบซเบเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบชเบญเบ‡เบžเบฒเบเบชเบฐเบซเบ™เบฒเบกเบ—เปเบฒเบญเบดเบ”, เปเบฅเบฐเป€เบซเบ”เบœเบปเบ™เบ—เบฑเบ‡เบซเบกเบปเบ” revolves เบ›เบฐเบกเบฒเบ™ DID เปเบฅเบฐ CallerID. DID - เบšเปˆเบญเบ™เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบฅเบฑเบ‡เป‚เบ—เบซเบฒ, CallerID - เบœเบนเป‰เบ—เบตเปˆเป‚เบ—เบซเบฒ.

เปเบ•เปˆเบซเบผเบฑเบ‡เบˆเบฒเบเบ—เบฑเบ‡เบซเบกเบปเบ”, เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบšเปเบฅเบดเบชเบฑเบ”เปเบฅเบฐเบšเปเปˆเบกเบตเป‚เบ—เบฅเบฐเบชเบฑเบšเบซเบ™เบถเปˆเบ‡ - เบŠเบถเปˆเบ‡เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒ PBX เบชเปˆเบงเบ™เบซเบผเบฒเบเบกเบฑเบเบกเบตเบเบธเปˆเบกเบเบฒเบ™เป‚เบ— (เบชเบฝเบ‡เบ”เบฑเบ‡เบžเป‰เบญเบกเป†เบเบฑเบ™ / เบ•เบดเบ”เบ•เปเปˆเบเบฑเบ™เบ‚เบญเบ‡เบญเบธเบ›เบฐเบเบญเบ™เบˆเปเบฒเบ™เบงเบ™เบซเบ™เบถเปˆเบ‡) เบขเบนเปˆเปƒเบ™เบˆเปเบฒเบ™เบงเบ™เป€เบกเบทเบญเบ‡ (Ring Group), IVR (เบชเบฐเบšเบฒเบเบ”เบต, เบ—เปˆเบฒเบ™เป€เบญเบตเป‰เบ™เบงเปˆเบฒ ... เบเบปเบ”. one for ...), เป€เบ„เบทเปˆเบญเบ‡เบ•เบญเบš (เบ›เบฐเป‚เบซเบเบ), เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เป€เบงเบฅเบฒ, เบเบฒเบ™เบชเบปเปˆเบ‡เบ•เปเปˆเป„เบ›เบซเบฒเบ•เบปเบงเป€เบฅเบเบญเบทเปˆเบ™ เบซเบผเบทเป„เบ›เบซเบฒเป€เบŠเบฅ (FollowMe, Forward). เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบกเบฑเบ™เป€เบ›เบฑเบ™เบเบฒเบ™เบเบฒเบเบซเบผเบฒเบเบ—เบตเปˆเบˆเบฐเบเปเบฒเบ™เบปเบ”เบขเปˆเบฒเบ‡เบšเปเปˆเบŠเบฑเบ”เป€เบˆเบ™เบงเปˆเบฒเปƒเบœเบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบชเบฒเบเบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡เปเบฅเบฐเบœเบนเป‰เบ—เบตเปˆเบˆเบฐเบชเบปเบ™เบ—เบฐเบ™เบฒเบเบฑเบšเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เป‚เบ—เบกเบฒเบฎเบญเบ”. เบ™เบตเป‰เปเบกเปˆเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบเบฒเบ™เป‚เบ—เปเบšเบšเบ›เบปเบเบเบฐเบ•เบดเปƒเบ™ PBX เบ‚เบญเบ‡เบฅเบนเบเบ„เป‰เบฒเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ

เบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเปƒเบˆเบเปˆเบฝเบงเบเบฑเบš FreePBX เปเบฅเบฐเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบกเบฑเบ™เบเบฑเบš Bitrix24 เปเบฅเบฐเบญเบทเปˆเบ™เป†เบญเบตเบ

เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เป‚เบ—เบซเบฒเบชเบปเบšเบœเบปเบ™เบชเปเบฒเป€เบฅเบฑเบ”เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ PBX, เบกเบฑเบ™เบˆเบฐเป€เบ”เบตเบ™เบ—เบฒเบ‡เบœเปˆเบฒเบ™ Dialplan เปƒเบ™ "เบชเบฐเบžเบฒเบšเบเบฒเบ™". เบšเปเบฅเบดเบšเบปเบ”เบˆเบฒเบเบกเบธเบกเป€เบšเบดเปˆเบ‡เบ‚เบญเบ‡เบ”เบฒเบงเปเบกเปˆเบ™เบŠเบธเบ”เบ„เปเบฒเบชเบฑเปˆเบ‡เบ•เบปเบงเป€เบฅเบ, เปเบ•เปˆเบฅเบฐเบญเบฑเบ™เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบ•เบปเบงเบเบญเบ‡เป‚เบ”เบเบซเบกเบฒเบเป€เบฅเบเป‚เบ—เบญเบญเบ (เบกเบฑเบ™เบ–เบทเบเป€เบญเบตเป‰เบ™เบงเปˆเบฒ exten, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป‚เบ—เบžเบฒเบเบ™เบญเบเบขเบนเปˆเปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™ exten=DID). เบ„เปเบฒเบชเบฑเปˆเบ‡เบขเบนเปˆเปƒเบ™เป€เบชเบฑเป‰เบ™ dialplan เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™เบญเบฑเบ™เปƒเบ”เบเปเป„เบ”เป‰ - เบซเบ™เป‰เบฒเบ—เบตเปˆเบžเบฒเบเปƒเบ™ (เบ•เบปเบงเบขเปˆเบฒเบ‡, เป‚เบ—เบซเบฒเบœเบนเป‰เบˆเบญเบ‡เบžเบฒเบเปƒเบ™ - Dial()เบงเบฒเบ‡โ€‹เป‚เบ—เบฅเบฐโ€‹เบชเบฑเบšโ€‹เบฅเบปเบ‡ - Hangup()), เบœเบนเป‰เบ›เบฐเบเบญเบšเบเบฒเบ™เบ—เบตเปˆเบกเบตเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚ (IF, ELSE, ExecIF เปเบฅเบฐโ€‹เป€เบŠเบฑเปˆเบ™โ€‹เบ”เบฝเบงโ€‹เบเบฑเบ™โ€‹) เบเบฒเบ™โ€‹เบซเบฑเบ™โ€‹เป„เบ›โ€‹เบชเบนเปˆโ€‹เบฅเบฐโ€‹เบšเบฝเบšโ€‹เบเบฒเบ™โ€‹เบญเบทเปˆเบ™เป†โ€‹เบ‚เบญเบ‡โ€‹เบชเบฐโ€‹เบžเบฒเบšโ€‹เบเบฒเบ™โ€‹เบ™เบตเป‰ (Goto, GotoIF), เบเบฒเบ™เบซเบฑเบ™เบ›เปˆเบฝเบ™เป„เบ›เบชเบนเปˆเบชเบฐเบžเบฒเบšเบเบฒเบ™เบญเบทเปˆเบ™เป†เปƒเบ™เบฎเบนเบšเปเบšเบšเบเบฒเบ™เป€เบญเบตเป‰เบ™เบŸเบฑเบ‡เบŠเบฑเบ™ (Gosub, Macro). เบ„เปเบฒเบชเบฑเปˆเบ‡เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ include ะธะผั_ะบะพะฝั‚ะตะบัั‚ะฐ, เป€เบŠเบดเปˆเบ‡เป€เบžเบตเปˆเบกเบ„เปเบฒเบชเบฑเปˆเบ‡เบˆเบฒเบเบšเปเบฅเบดเบšเบปเบ”เบญเบทเปˆเบ™เป„เบ›เบซเบฒเบˆเบธเบ”เบชเบดเป‰เบ™เบชเบธเบ”เบ‚เบญเบ‡เบšเปเบฅเบดเบšเบปเบ”เบ›เบฐเบˆเบธเบšเบฑเบ™. เบ„เปเบฒเบชเบฑเปˆเบ‡เบ—เบตเปˆเบฅเบงเบกเบœเปˆเบฒเบ™เบ›เบฐเบเบญเบšเบกเบตเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบชเบฐเป€เบซเบกเบต ะฟะพัะปะต เบ„เปเบฒเบชเบฑเปˆเบ‡เบ‚เบญเบ‡เบชเบฐเบžเบฒเบšเบเบฒเบ™เปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™.

เป€เบซเบ”เบœเบปเบ™เบ—เบฑเบ‡เปเบปเบ”เบ‚เบญเบ‡ FreePBX เปเบกเปˆเบ™เบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบ”เป‰เบงเบเบเบฒเบ™เบฅเบงเบกเป€เบญเบปเบฒเบšเปเบฅเบดเบšเบปเบ”เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เป€เบ‚เบปเป‰เบฒเบกเบฒเป€เบŠเบดเปˆเบ‡เบเบฑเบ™เปเบฅเบฐเบเบฑเบ™เป‚เบ”เบเบœเปˆเบฒเบ™เบเบฒเบ™เบฅเบงเบกเป€เบญเบปเบฒ เปเบฅเบฐเป‚เบ—เบซเบฒเบœเปˆเบฒเบ™เบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™ Gosub, Macro เปเบฅเบฐ Handler. เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบชเบฐเบžเบฒเบšเบเบฒเบ™เบ‚เบญเบ‡เบเบฒเบ™เป‚เบ— FreePBX เบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบกเบฒ

เบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเปƒเบˆเบเปˆเบฝเบงเบเบฑเบš FreePBX เปเบฅเบฐเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบกเบฑเบ™เบเบฑเบš Bitrix24 เปเบฅเบฐเบญเบทเปˆเบ™เป†เบญเบตเบ

เบเบฒเบ™เป€เบญเบตเป‰เบ™เบœเปˆเบฒเบ™เบชเบฐเบžเบฒเบšเบเบฒเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบˆเบฒเบเป€เบ—เบดเบ‡เบซเบฒเบฅเบธเปˆเบก, เปƒเบ™เปเบ•เปˆเบฅเบฐเบชเบฐเบžเบฒเบšเบเบฒเบ™เบชเบฒเบกเบฒเบ”เป‚เบ—เบซเบฒเบชเบฐเบžเบฒเบšเบเบฒเบ™เบญเบทเปˆเบ™เป†เป€เบŠเบฑเปˆเบ™: เบกเบฐเบซเบฒเบžเบฒเบ (Macro), เบซเบ™เป‰เบฒเบ—เบตเปˆ (Gosub) เบซเบผเบทเบžเบฝเบ‡เปเบ•เปˆเบเบฒเบ™เบซเบฑเบ™เบ›เปˆเบฝเบ™ (Goto), เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ•เบปเป‰เบ™เป„เบกเป‰เบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡เบ‚เบญเบ‡เบชเบดเปˆเบ‡เบ—เบตเปˆเป€เบญเบตเป‰เบ™เบงเปˆเบฒเบžเบฝเบ‡เปเบ•เปˆเบชเบฒเบกเบฒเบ”. เบ–เบทเบเบ•เบดเบ”เบ•เบฒเบกเบขเบนเปˆเปƒเบ™เบšเบฑเบ™เบ—เบถเบ.

เปเบœเบ™เบงเบฒเบ”เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ›เบปเบเบเบฐเบ•เบดเบชเปเบฒเบฅเบฑเบš PBX เบ›เบปเบเบเบฐเบ•เบดเปเบกเปˆเบ™เบชเบฐเปเบ”เบ‡เบขเบนเปˆเบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰. เป€เบกเบทเปˆเบญเป‚เบ—เบซเบฒ, DID เบ–เบทเบเบ„เบปเป‰เบ™เบซเบฒเบขเบนเปˆเปƒเบ™เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบกเบฒ, เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบŠเบปเปˆเบงเบ„เบฒเบงเบ–เบทเบเบเบงเบ”เบชเบญเบšเบชเปเบฒเบฅเบฑเบšเบกเบฑเบ™, เบ–เป‰เบฒเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบขเบนเปˆเปƒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡, เป€เบกเบ™เบนเบชเบฝเบ‡เบˆเบฐเป€เบ›เบตเบ”เบ•เบปเบง. เบˆเบฒเบเบกเบฑเบ™, เป‚เบ”เบเบเบฒเบ™เบเบปเบ”เบ›เบธเปˆเบก 1 เบซเบผเบทเบซเบกเบปเบ”เป€เบงเบฅเบฒ, เบญเบญเบเบˆเบฒเบเบเบธเปˆเบกเบ‚เบญเบ‡เบ•เบปเบงเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป‚เบ—เบซเบฒ. เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบเบฒเบ™โ€‹เป‚เบ—โ€‹เบชเบดเป‰เบ™โ€‹เบชเบธเบ”โ€‹เบฅเบปเบ‡, macro hangupcall เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เป€เบญเบตเป‰เบ™, เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบ™เบฑเป‰เบ™โ€‹เบšเปเปˆโ€‹เบกเบตโ€‹เบซเบเบฑเบ‡โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เป€เบฎเบฑเบ”โ€‹เป„เบ”เป‰โ€‹เบขเบนเปˆโ€‹เปƒเบ™ dialplan เป„เบ”เป‰, เบเบปเบโ€‹เป€เบงเบฑเป‰เบ™โ€‹เบชเปเบฒโ€‹เบฅเบฑเบš handlers เบžเบดโ€‹เป€เบชเบ” (hangup handler).

เบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเปƒเบˆเบเปˆเบฝเบงเบเบฑเบš FreePBX เปเบฅเบฐเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบกเบฑเบ™เบเบฑเบš Bitrix24 เปเบฅเบฐเบญเบทเปˆเบ™เป†เบญเบตเบ

เบšเปˆเบญเบ™เบ—เบตเปˆเบขเบนเปˆเปƒเบ™เบชเบนเบ”เบเบฒเบ™เป‚เบ—เบซเบฒเบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเบ„เบงเบ™เบชเบฐเบซเบ™เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบเบฒเบ™เป‚เบ—เป„เบ›เบซเบฒ CRM, เบšเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบเบฒเบ™เบšเบฑเบ™เบ—เบถเบ, เบšเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบชเบดเป‰เบ™เบชเบธเบ”เบเบฒเบ™เบšเบฑเบ™เบ—เบถเบเปเบฅเบฐเบชเบปเปˆเบ‡เบกเบฑเบ™เบžเป‰เบญเบกเบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เป‚เบ—เบซเบฒ CRM?

เบเบฒเบ™เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เบเบฑเบšเบฅเบฐเบšเบปเบšเบžเบฒเบเบ™เบญเบ

เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡ PBX เปเบฅเบฐ CRM เปเบกเปˆเบ™เบซเบเบฑเบ‡? เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปเบฅเบฐเป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเปเบ›เบ‡เบ‚เปเป‰เบกเบนเบ™เปเบฅเบฐเป€เบซเบ”เบเบฒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบชเบญเบ‡เปเบžเบฅเบฐเบ•เบฐเบŸเบญเบกเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบฅเบฐเบชเบปเปˆเบ‡เป„เบ›เบซเบฒเบเบฑเบ™เปเบฅเบฐเบเบฑเบ™. เบงเบดเบ—เบตเบ—เบปเปˆเบงเป„เบ›เบ—เบตเปˆเบชเบธเบ”เบชเปเบฒเบฅเบฑเบšเบฅเบฐเบšเบปเบšเป€เบญเบเบฐเบฅเบฒเบ”เปƒเบ™เบเบฒเบ™เบชเบทเปˆเบชเบฒเบ™เปเบกเปˆเบ™เบœเปˆเบฒเบ™ APIs, เปเบฅเบฐเบงเบดเบ—เบตเบ—เบตเปˆเบ™เบดเบเบปเบกเบ—เบตเปˆเบชเบธเบ”เปƒเบ™เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡ APIs เปเบกเปˆเบ™ HTTP REST. เปเบ•เปˆเบšเปเปˆเปเบกเปˆเบ™เบชเปเบฒเบฅเบฑเบšเบ”เบฒเบง.

เบžเบฒเบเปƒเบ™เบ”เบฒเบงเปเบกเปˆเบ™:

  • AGI - เบเบฒเบ™เป‚เบ— synchronous เบเบฑเบšเบšเบฑเบ™เบ”เบฒเป‚เบ„เบ‡เบเบฒเบ™ / เบญเบปเบ‡เบ›เบฐเบเบญเบšเบžเบฒเบเบ™เบญเบ, เบ™เปเบฒเปƒเบŠเป‰เบชเปˆเบงเบ™เปƒเบซเบเปˆเปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™ dialplan, เบกเบตเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เป€เบŠเบฑเปˆเบ™: phpagi, PAGI

  • AMI - เป€เบ•เบปเป‰เบฒเบฎเบฑเบš TCP เบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบเปˆเบฝเบงเบเบฑเบšเบซเบผเบฑเบเบเบฒเบ™เบ‚เบญเบ‡เบเบฒเบ™เบชเบฐเบซเบกเบฑเบเป€เบซเบ”เบเบฒเบ™เปเบฅเบฐเปƒเบชเปˆเบ„เปเบฒเบชเบฑเปˆเบ‡เบ‚เปเป‰เบ„เบงเบฒเบก, เบ„เป‰เบฒเบเบ„เบทเบเบฑเบš SMTP เบˆเบฒเบเบžเบฒเบเปƒเบ™, เบชเบฒเบกเบฒเบ”เบ•เบดเบ”เบ•เบฒเบกเป€เบซเบ”เบเบฒเบ™เปเบฅเบฐเบˆเบฑเบ”เบเบฒเบ™เบเบฒเบ™เป‚เบ—, เบกเบตเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” PAMI - เบ—เบตเปˆเบ™เบดเบเบปเบกเบ—เบตเปˆเบชเบธเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเป‰เบฒเบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบš Asterisk

เบ•เบปเบงเบขเปˆเบฒเบ‡เบœเบปเบ™เบœเบฐเบฅเบดเบ” AMI

เป€เบซเบ”เบเบฒเบ™: เบŠเปˆเบญเบ‡เบ—เบฒเบ‡เปƒเบซเบกเปˆ
เบชเบดเบ”เบ—เบดเบžเบดเป€เบชเบ”: เป‚เบ—, เบ—เบฑเบ‡เบซเบกเบปเบ”
เบŠเปˆเบญเบ‡: PJSIP/VMS_pjsip-0000078b
เบชเบฐเบ–เบฒเบ™เบฐเบŠเปˆเบญเบ‡: 4
ChannelStateDesc: Ring
CallerIDNum: 111222
CallerIDName: 111222
ConnectedLineNum:
เบŠเบทเปˆเบชเบฒเบเบ—เบตเปˆเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ:
เบžเบฒเบชเบฒ: en
เบฅเบฐเบซเบฑเบ”เบšเบฑเบ™เบŠเบต:
เป€เบ™เบทเป‰เบญเปƒเบ™: เบˆเบฒเบ-pstn
เบ‚เบฐเบซเบเบฒเบ: s
เบšเบธเบฅเบดเบกเบฐเบชเบดเบ”: 1
เป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฑเบ: 1599589046.5244
Linkedid: 1599589046.5244

  • ARI เปเบกเปˆเบ™เบเบฒเบ™เบ›เบฐเบชเบปเบกเบ‚เบญเบ‡เบ—เบฑเบ‡เบชเบญเบ‡, เบ—เบฑเบ‡เบซเบกเบปเบ”เป‚เบ”เบเบœเปˆเบฒเบ™ REST, WebSocket, เปƒเบ™เบฎเบนเบšเปเบšเบš JSON - เปเบ•เปˆเบกเบตเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบชเบปเบ”เปเบฅเบฐ wrappers, เบšเปเปˆเบ”เบตเบซเบผเบฒเบ, offhand เบžเบปเบš (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โ€ณ, "เบชเบฐเบ–เบฒเบ™เบฐ":"เปเบซเบงเบ™", "เบœเบนเป‰เป‚เบ—":{ "เบŠเบทเปˆ":"111222", "number":"111222โ€ณ }, "เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ":{ "เบŠเบทเปˆ":"", "เบˆเปเบฒเบ™เบงเบ™" :"" }, "accountcode":"", "dialplan":{ "context":"from-pstn", "exten":"s", "priority":2, "appname":"Stasis", "appdata":"hello-world" }, "creationtime":"2020-09-09T09:38:35.926+0000", "language":"en" }, "เบ”เบฒเบงid":"48:5b:aa:aa:aa:aa", "application":"hello-world" }

เบ„เบงเบฒเบกเบšเปเปˆเบชเบฐเบ”เบงเบเบซเบผเบทเบ„เบงเบฒเบกเบšเปเปˆเบชเบฐเบ”เบงเบ, เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบซเบผเบทเป€เบ›เบฑเบ™เป„เบ›เบšเปเปˆเป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบš API เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเปเบกเปˆเบ™เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป‚เบ”เบเบงเบฝเบเบ‡เบฒเบ™เบ—เบตเปˆเบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เปเบเป‰เป„เบ‚. เบงเบฝเบเบ‡เบฒเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบเบฑเบš CRM เบกเบตเบ”เบฑเปˆเบ‡เบ™เบตเป‰:

  • เบ•เบดเบ”เบ•เบฒเบกเบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบเบฒเบ™เป‚เบ—, เบšเปˆเบญเบ™เบ—เบตเปˆเบกเบฑเบ™เบ–เบทเบเป‚เบญเบ™, เบ”เบถเบ‡ CallerID, DID, เป€เบงเบฅเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบฅเบฐเบชเบดเป‰เบ™เบชเบธเบ”, เบšเบฒเบ‡เบ—เบตเบ‚เปเป‰เบกเบนเบ™เบˆเบฒเบเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบต (เป€เบžเบทเปˆเบญเบ„เบปเป‰เบ™เบซเบฒเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบฅเบฐเบซเบงเปˆเบฒเบ‡เป‚เบ—เบฅเบฐเบชเบฑเบšเปเบฅเบฐเบœเบนเป‰เปƒเบŠเป‰ CRM)

  • เป€เบฅเบตเปˆเบกโ€‹เบ•เบปเป‰เบ™โ€‹เปเบฅเบฐโ€‹เบชเบดเป‰เบ™โ€‹เบชเบธเบ”โ€‹เบเบฒเบ™โ€‹เบšเบฑเบ™โ€‹เบ—เบถเบโ€‹เบเบฒเบ™โ€‹เป‚เบ—โ€‹, เบšเบฑเบ™โ€‹เบ—เบถเบโ€‹เป„เบงเป‰โ€‹เปƒเบ™โ€‹เบฎเบนเบšโ€‹เปเบšเบšโ€‹เบ—เบตเปˆโ€‹เบ•เป‰เบญเบ‡โ€‹เบเบฒเบ™โ€‹, เปเบˆเป‰เบ‡โ€‹เบเบฒเบ™โ€‹เปƒเบ™โ€‹เบ•เบญเบ™โ€‹เบ—เป‰เบฒเบโ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบšเบฑเบ™โ€‹เบ—เบถเบโ€‹เบ—เบตเปˆโ€‹เป„เบŸเบฅโ€‹เปŒโ€‹เบ•เบฑเป‰เบ‡โ€‹เบขเบนเปˆโ€‹.

  • เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบเบฒเบ™เป‚เบ—เปƒเบ™เป€เบซเบ”เบเบฒเบ™เบžเบฒเบเบ™เบญเบ (เบˆเบฒเบเป‚เบ„เบ‡เบเบฒเบ™), เป‚เบ—เบซเบฒเป€เบšเบตเบžเบฒเบเปƒเบ™, เป€เบšเบตเบžเบฒเบเบ™เบญเบเปเบฅเบฐเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบžเบงเบเป€เบ‚เบปเบฒ

  • เบ—เบฒเบ‡เป€เบฅเบทเบญเบ: เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เบเบฑเบš CRM, เบเบธเปˆเบก dialer เปเบฅเบฐ FollowME เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป‚เบญเบ™เบชเบฒเบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบšเปเปˆเบกเบตเบชเบฐเบ–เบฒเบ™เบ—เบตเปˆ (เบญเบตเบ‡เบ•เบฒเบก CRM)

เบงเบฝเบเบ‡เบฒเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ—เบฑเบ‡เบซเบกเบปเบ”เบชเบฒเบกเบฒเบ”เปเบเป‰เป„เบ‚เป„เบ”เป‰เป‚เบ”เบเบœเปˆเบฒเบ™ AMI เบซเบผเบท ARI, เปเบ•เปˆ ARI เบชเบฐเบซเบ™เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบซเบ™เป‰เบญเบเบซเบผเบฒเบ, เบšเปเปˆเบกเบตเป€เบซเบ”เบเบฒเบ™เบซเบผเบฒเบ, เบ•เบปเบงเปเบ›เบซเบผเบฒเบเบ—เบตเปˆ AMI เบเบฑเบ‡เบกเบต (เบ•เบปเบงเบขเปˆเบฒเบ‡, เบเบฒเบ™เป‚เบ—เบกเบฐเบซเบฒเบžเบฒเบ, เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ•เบปเบงเปเบ›เบžเบฒเบเปƒเบ™ macros, เบฅเบงเบกเบ—เบฑเบ‡เบเบฒเบ™เบšเบฑเบ™เบ—เบถเบเบเบฒเบ™เป‚เบ—) เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบ•เบดเบ”เบ•เบฒเบก. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เปเบฅเบฐเบ–เบทเบเบ•เป‰เบญเบ‡, เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเป€เบฅเบทเบญเบ AMI เบชเปเบฒเบฅเบฑเบšเปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™ (เปเบ•เปˆเบšเปเปˆเปเบกเปˆเบ™เบซเบกเบปเบ”). เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™ (เบ”เบต, เบšเปˆเบญเบ™เบ—เบตเปˆเบกเบฑเบ™เบˆเบฐเบšเปเปˆเบกเบตเบ™เบตเป‰, เบžเบงเบเป€เบฎเบปเบฒเป€เบ›เบฑเบ™เบ„เบปเบ™เบ‚เบตเป‰เบเบฝเบ”) - เปƒเบ™เบงเบฝเบเบ‡เบฒเบ™เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบš (เบšเบปเบ”เบ„เบงเบฒเบกเปƒเบ™ habr) เปƒเบŠเป‰ PAMI. *เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบžเบฐเบเบฒเบเบฒเบกเบ‚เบฝเบ™เบ„เบทเบ™เปƒเบซเบกเปˆเปƒเบ™ ARI, เปเบ•เปˆเบšเปเปˆเปเบกเปˆเบ™เบ„เบงเบฒเบกเบˆเบดเบ‡เบ—เบตเปˆเบงเปˆเบฒเบกเบฑเบ™เบˆเบฐเป€เบฎเบฑเบ”เบงเบฝเบ.

เบเบฒเบ™เบชเป‰เบฒเบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบ„เบทเบ™เปƒเปเปˆ

เป€เบžเบทเปˆเบญเปƒเบซเป‰ FreePBX เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบฅเบฒเบเบ‡เบฒเบ™เบเบฑเบš AMI เบ”เป‰เบงเบเบงเบดเบ—เบตเบ‡เปˆเบฒเบเป†เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบเบฒเบ™เป‚เบ—, เป€เบงเบฅเบฒเบชเบดเป‰เบ™เบชเบธเบ”, เบ•เบปเบงเป€เบฅเบ, เบŠเบทเปˆเบ‚เบญเบ‡เป„เบŸเบฅเปŒเบ—เบตเปˆเบšเบฑเบ™เบ—เบถเบเป„เบงเป‰, เบกเบฑเบ™เบ‡เปˆเบฒเบเบ—เบตเปˆเบชเบธเบ”เบ—เบตเปˆเบˆเบฐเบ„เบดเบ”เป„เบฅเปˆเป„เบฅเบเบฐเป€เบงเบฅเบฒเบ‚เบญเบ‡เบเบฒเบ™เป‚เบ—เป‚เบ”เบเปƒเบŠเป‰ trick เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบœเบนเป‰เบ‚เบฝเบ™เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบš. - เปƒเบชเปˆเบ•เบปเบงเปเบ›เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เปเบฅเบฐเบงเบดเป€เบ„เบฒเบฐเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบเบปเบ”เบ•เบปเบงเบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ. PAMI เปเบ™เบฐ เบ™เบณ เปƒเบซเป‰เป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เบ™เบตเป‰เบ‡เปˆเบฒเบเป†เป‚เบ”เบเบœเปˆเบฒเบ™เบŸเบฑเบ‡เบŠเบฑเบ™เบ•เบปเบงเบเบญเบ‡.

เบ™เบตเป‰เปเบกเปˆเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ•เบปเบงเปเบ›เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป€เบญเบ‡เบชเปเบฒเบฅเบฑเบšเป€เบงเบฅเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบเบฒเบ™เป‚เบ— (s เปเบกเปˆเบ™เบ•เบปเบงเป€เบฅเบเบžเบดเป€เบชเบ”เปƒเบ™ dialplan เบ—เบตเปˆเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเป€เบฅเบตเปˆเบกเบเบฒเบ™เบ„เบปเป‰เบ™เบซเบฒ DID)

[ext-did-custom]

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

เบ•เบปเบงเบขเปˆเบฒเบ‡เป€เบซเบ”เบเบฒเบ™ AMI เบชเปเบฒเบฅเบฑเบšเบชเบฒเบเบ™เบตเป‰

เป€เบซเบ”เบเบฒเบ™: เบŠเปˆเบญเบ‡เบ—เบฒเบ‡เปƒเบซเบกเปˆ

เบชเบดเบ”เบ—เบดเบžเบดเป€เบชเบ”: เป‚เบ—, เบ—เบฑเบ‡เบซเบกเบปเบ”

เบŠเปˆเบญเบ‡: PJSIP/VMS_pjsip-0000078b

เบชเบฐเบ–เบฒเบ™เบฐเบŠเปˆเบญเบ‡: 4

ChannelStateDesc: Ring

CallerIDNum: 111222

CallerIDName: 111222

ConnectedLineNum:

เบŠเบทเปˆเบชเบฒเบเบ—เบตเปˆเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ:

เบžเบฒเบชเบฒ: en

เบฅเบฐเบซเบฑเบ”เบšเบฑเบ™เบŠเบต:

เป€เบ™เบทเป‰เบญเปƒเบ™: เบˆเบฒเบ-pstn

เบ‚เบฐเบซเบเบฒเบ: s

เบšเบธเบฅเบดเบกเบฐเบชเบดเบ”: 1

เป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฑเบ: 1599589046.5244

Linkedid: 1599589046.5244

เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™: เบ•เบฑเป‰เบ‡ AppData:

CallStart=1599571046

เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒ FreePBX เบ‚เบฝเบ™เบ—เบฑเบšเป„เบŸเบฅเปŒ extention.conf เปเบฅเบฐ extention_additional.conf, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเปƒเบŠเป‰เป„เบŸเบฅเปŒ เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ_custom.conf

เบฅเบฐเบซเบฑเบ”เป€เบ•เบฑเบกเบ‚เบญเบ‡ extention_custom.conf

[globals]	
;; ะŸั€ะพะฒะตั€ัŒั‚ะต ะฟัƒั‚ะธ ะธ ะฟั€ะฐะฒะฐ ะฝะฐ ะฟะฐะฟะบะธ - ัŽะทะตั€ asterisk ะดะพะปะถะตะฝ ะธะผะตั‚ัŒ ะฟั€ะฐะฒะฐ ะฝะฐ ะทะฐะฟะธััŒ
;; ะกัŽะดะฐ ะฑัƒะดะตั‚ ะฟะธัะฐั‚ัŒัั ั€ะฐะทะณะพะฒะพั€ั‹
WAV=/var/www/html/callme/records/wav 
MP3=/var/www/html/callme/records/mp3

;; ะŸะพ ัั‚ะธะผ ะฟัƒั‚ัะผ ะฑัƒะดะตั‚ ะฒะพัะฟั€ะพะธะทะฒะพะดะธั‚ัั ะธ ัะบะฐั‡ะธะฒะฐั‚ัŒัั ะทะฐะฟะธััŒ
URLRECORDS=https://www.host.ru/callmeplus/records/mp3

;; ะะดั€ะตั ะดะปั ะบะฐะปะฑะตะบะฐ ะฟั€ะธ ะธัั…ะพะดัั‰ะตะผ ะฒั‹ะทะพะฒะต
URLPHP=https://www.host.ru/callmeplus

;; ะ”ะฐ ะฟะธัˆะตะผ ั€ะฐะทะณะพะฒะพั€ั‹
RECORDING=1

;; ะญั‚ะพ ะผะฐะบั€ะพั ะดะปั ะทะฐะฟะธัะธ ั€ะฐะทะณะพะฒะพั€ะพะฒ ะฒ ะฝะฐัˆัƒ ะฟะฐะฟะบัƒ. 
;; ะœะพะถะฝะพ ะธัะฟะพะปัŒะทะพะฒะฐั‚ัŒ ะธ ัะธัั‚ะตะผะฝัƒัŽ ะทะฐะฟะธััŒ, ะฝะพ ะฟะพะบะฐ ะฟัƒัั‚ัŒ ะฑัƒะดะตั‚ ัั‚ะฐ - 
;; ะพะฝะฐ ั€ะฐะฑะพั‚ะฐะตั‚
[recording]
exten => ~~s~~,1,Set(LOCAL(calling)=${ARG1})
exten => ~~s~~,2,Set(LOCAL(called)=${ARG2})
exten => ~~s~~,3,GotoIf($["${RECORDING}" = "1"]?4:14)
exten => ~~s~~,4,Set(fname=${UNIQUEID}-${STRFTIME(${EPOCH},,%Y-%m-%d-%H_%M)}-${calling}-${called})
exten => ~~s~~,5,Set(datedir=${STRFTIME(${EPOCH},,%Y/%m/%d)})
exten => ~~s~~,6,System(mkdir -p ${MP3}/${datedir})
exten => ~~s~~,7,System(mkdir -p ${WAV}/${datedir})
exten => ~~s~~,8,Set(monopt=nice -n 19 /usr/bin/lame -b 32  --silent "${WAV}/${datedir}/${fname}.wav"  "${MP3}/${datedir}/${fname}.mp3" && rm -f "${WAV}/${fname}.wav" && chmod o+r "${MP3}/${datedir}/${fname}.mp3")
exten => ~~s~~,9,Set(FullFname=${URLRECORDS}/${datedir}/${fname}.mp3)
exten => ~~s~~,10,Set(CDR(filename)=${fname}.mp3)
exten => ~~s~~,11,Set(CDR(recordingfile)=${fname}.wav)
exten => ~~s~~,12,Set(CDR(realdst)=${called})
exten => ~~s~~,13,MixMonitor(${WAV}/${datedir}/${fname}.wav,b,${monopt})
exten => ~~s~~,14,NoOp(Finish if_recording_1)
exten => ~~s~~,15,Return()


;; ะญั‚ะพ ะพัะฝะพะฒะฝะพะน ะบะพะฝั‚ะตะบัั‚ ะดะปั ะฝะฐั‡ะฐะปะฐ ั€ะฐะทะณะพะฒะพั€ะฐ
[ext-did-custom]

;; ะญั‚ะพ ั…ัƒะปะธะณะฐะฝัั‚ะฒะพ, ะดะตะปะฐั‚ัŒ ัั‚ะพ ั‚ะฐะบ ะธ ะทะดะตััŒ, ะฝะพ ั€ะฐะฑะพั‚ะฐะตั‚ - ะดะพะฑะฐะฒะปัะตะผ ะบ ะฝะพะผะตั€ัƒ '8'
exten =>  s,1,Set(CALLERID(num)=8${CALLERID(num)})

;; ะขัƒั‚ ะฒััะบะธะต ะฟะตั€ะตะผะตะฝะฝั‹ะต ะดะปั ัะบั€ะธะฟั‚ะฐ
exten =>  s,n,Gosub(recording,~~s~~,1(${CALLERID(number)},${EXTEN}))
exten =>  s,n,ExecIF(${CallMeCallerIDName}?Set(CALLERID(name)=${CallMeCallerIDName}):NoOp())
exten =>  s,n,Set(CallStart=${STRFTIME(epoch,,%s)})
exten =>  s,n,Set(CallMeDISPOSITION=${CDR(disposition)})

;; ะกะฐะผะพะต ะณะปะฐะฒะฝะพะต! ะžะฑั€ะฐะฑะพั‚ั‡ะธะบ ะพะบะพะฝั‡ะฐะฝะธั ั€ะฐะทะณะพะฒะพั€ะฐ. 
;; ะžะฑั‹ั‡ะฝั‹ะต ะฟัƒั‚ะธ ะพะฑั€ะฐะฑะพั‚ะบะธ ะบะพะฝั†ะฐ ั‡ะตั€ะตะท (exten=>h,1,ั‡ั‚ะพั‚ะพั‚ัƒั‚) ะฒ FreePBX ะฝะต ั€ะฐะฑะพั‚ะฐัŽั‚ - Macro(hangupcall,) ะฒัะต ะฟะพั€ั‚ะธั‚. 
;; ะŸะพัั‚ะพะผัƒ ะฒะตัˆะฐะตะผ Hangup_Handler ะฝะฐ ะพะบะพะฝั‡ะฐะฝะธะต ะทะฒะพะฝะบะฐ
exten => s,n,Set(CHANNEL(hangup_handler_push)=sub-call-from-cid-ended,s,1(${CALLERID(num)},${EXTEN}))

;; ะžะฑั€ะฐะฑะพั‚ั‡ะธะบ ะพะบะพะฝั‡ะฐะฝะธั ะฒั…ะพะดัั‰ะตะณะพ ะฒั‹ะทะพะฒะฐ
[sub-call-from-cid-ended]

;; ะกะพะพะฑั‰ะฐะตะผ ะพ ะทะฝะฐั‡ะตะฝะธัั… ะฟั€ะธ ะบะพะฝั†ะต ะทะฒะพะฝะบะฐ
exten => s,1,Set(CDR_PROP(disable)=true)
exten => s,n,Set(CallStop=${STRFTIME(epoch,,%s)})
exten => s,n,Set(CallMeDURATION=${MATH(${CallStop}-${CallStart},int)})

;; ะกั‚ะฐั‚ัƒั ะฒั‹ะทะพะฒะฐ - ะžั‚ะฒะตั‚, ะฝะต ะพั‚ะฒะตั‚...
exten => s,n,Set(CallMeDISPOSITION=${CDR(disposition)})
exten => s,n,Return


;; ะžะฑั€ะฐะฑะพั‚ั‡ะธะบ ะธัั…ะพะดัั‰ะธั… ะฒั‹ะทะพะฒะพะฒ - ะฒัะต ะฐะฝะฐะปะพะณะธั‡ะตะฝะพ
[outbound-allroutes-custom]

;; ะ—ะฐะฟะธััŒ
exten => _.,1,Gosub(recording,~~s~~,1(${CALLERID(number)},${EXTEN}))
;; ะŸะตั€ะตะผะตะฝะฝั‹ะต
exten => _.,n,Set(__CallIntNum=${CALLERID(num)})
exten => _.,n,Set(CallExtNum=${EXTEN})
exten => _.,n,Set(CallStart=${STRFTIME(epoch,,%s)})
exten => _.,n,Set(CallmeCALLID=${SIPCALLID})

;; ะ’ะตัˆะฐะตะผ Hangup_Handler ะฝะฐ ะพะบะพะฝั‡ะฐะฝะธะต ะทะฒะพะฝะบะฐ
exten => _.,n,Set(CHANNEL(hangup_handler_push)=sub-call-internal-ended,s,1(${CALLERID(num)},${EXTEN}))

;; ะžะฑั€ะฐะฑะพั‚ั‡ะธะบ ะพะบะพะฝั‡ะฐะฝะธั ะธัั…ะพะดัั‰ะตะณะพ ะฒั‹ะทะพะฒะฐ
[sub-call-internal-ended]

;; ะฟะตั€ะตะผะตะฝะฝั‹ะต
exten => s,1,Set(CDR_PROP(disable)=true)
exten => s,n,Set(CallStop=${STRFTIME(epoch,,%s)})
exten => s,n,Set(CallMeDURATION=${MATH(${CallStop}-${CallStart},int)})
exten => s,n,Set(CallMeDISPOSITION=${CDR(disposition)})

;; ะ’ั‹ะทะพะฒ ัะบั€ะธะฟั‚ะฐ, ะบะพั‚ะพั€ั‹ะน ัะพะพะฑั‰ะธั‚ ะพ ะทะฒะพะฝะบะต ะฒ CRM - ัั‚ะพ ะธัั…ะพะดัั‰ะธะน, 
;; ั‚ะฐะบ ั‡ั‚ะพ ะฟะพ ั„ะฐะบั‚ัƒ ะพะบะพะฝั‡ะฐะฝะธั
exten => s,n,System(curl -s ${URLPHP}/CallMeOut.php --data action=sendcall2b24 --data ExtNum=${CallExtNum} --data call_id=${SIPCALLID} --data-urlencode FullFname='${FullFname}' --data CallIntNum=${CallIntNum} --data CallDuration=${CallMeDURATION} --data-urlencode CallDisposition='${CallMeDISPOSITION}')
exten => s,n,Return

เบ„เบธเบ™โ€‹เบ™เบฐโ€‹เบชเบปเบกโ€‹เบšเบฑเบ”โ€‹เปเบฅเบฐโ€‹เบ„เบงเบฒเบกโ€‹เปเบ•เบโ€‹เบ•เปˆเบฒเบ‡โ€‹เบˆเบฒเบ dialplan เบ•เบปเป‰เบ™โ€‹เบชเบฐโ€‹เบšเบฑเบšโ€‹เบ‚เบญเบ‡โ€‹เบœเบนเป‰โ€‹เบ‚เบฝเบ™โ€‹เบ‚เบญเบ‡โ€‹เบšเบปเบ”โ€‹เบ„เบงเบฒเบกโ€‹เบ•เบปเป‰เบ™โ€‹เบชเบฐโ€‹เบšเบฑเบš -

  • Dialplan เปƒเบ™เบฎเบนเบšเปเบšเบš .conf, เบ•เบฒเบกเบ—เบตเปˆ FreePBX เบ•เป‰เบญเบ‡เบเบฒเบ™ (เปเบกเปˆเบ™เปเบฅเป‰เบง, เบกเบฑเบ™เบชเบฒเบกเบฒเบ” .ael, เปเบ•เปˆเบšเปเปˆเปเบกเปˆเบ™เบ—เบธเบเบฅเบธเป‰เบ™ เปเบฅเบฐเบกเบฑเบ™เบšเปเปˆเบชเบฐเบ”เบงเบเบชเบฐเป€เปเบตเป„เบ›)

  • เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบ›เบฐเบกเบงเบ™เบœเบปเบ™เปƒเบ™เบ•เบญเบ™เบ—เป‰เบฒเบเบœเปˆเบฒเบ™ exten=>h, เบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเบชเบฐเป€เบซเบ™เบตเบœเปˆเบฒเบ™ hangup_handler, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒ FreePBX dialplan เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบกเบฑเบ™เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™

  • เปเบเป‰เป„เบ‚เบชเบฒเบเป‚เบ—เบชเบฐเบ„เบฃเบดเบš, เป€เบžเบตเปˆเบกเบงเบปเบ‡เบขเบทเบก เปเบฅเบฐเปเบฒเบเป€เบฅเบเป‚เบ—เบžเบฒเบเบ™เบญเบ ExtNum

  • เบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบ–เบทเบเบเป‰เบฒเบเป„เบ› _custom contexts เปเบฅเบฐเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบšเปเปˆเปเบ•เบฐเบซเบผเบทเปเบเป‰เป„เบ‚เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ FreePBX - เบ‚เบฒเป€เบ‚เบปเป‰เบฒเบœเปˆเบฒเบ™ [ext-did-custom], เบ‚เบฒเบญเบญเบเป‚เบ”เบเบœเปˆเบฒเบ™ [outbound-allroutes-custom]

  • เบšเปเปˆเบกเบตเบเบฒเบ™เบœเบนเบเบกเบฑเบ”เบเบฑเบšเบ•เบปเบงเป€เบฅเบ - เป„เบŸเบฅเปŒเปเบกเปˆเบ™เบ—เบปเปˆเบงเป„เบ›เปเบฅเบฐเบžเบฝเบ‡เปเบ•เปˆเบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบเปเบฒเบซเบ™เบปเบ”เบ„เปˆเบฒเบชเปเบฒเบฅเบฑเบšเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เปเบฅเบฐเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ.

เป€เบžเบทเปˆเบญเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบ—เปˆเบฒเบ™เบเบฑเบ‡เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ scripts เปƒเบ™ 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, เบˆเบฒเบเบ™เบฑเป‰เบ™เบญเปˆเบฒเบ™ configs เบ„เบทเบ™เปƒเปเปˆ (เบซเบผเบท restart the 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 เบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบšเบซเบกเบฒเบเป€เบฅเบเบ™เบฒเบกเบชเบฐเบเบธเบ™เบ—เบตเปˆเบเบฒเบ™เป‚เบ—เบกเบฒ. เบˆเบฐเป€เบ›เบฑเบ™เปเบ™เบงเปƒเบ”เบ–เป‰เบฒเบกเบฑเบ™เป€เบ›เบฑเบ™เบเบธเปˆเบก dial-up? เบ„เปเบฒเบ–เบฒเบกเปเบกเปˆเบ™เบ—เบฒเบ‡เบ”เป‰เบฒเบ™เบเบฒเบ™เป€เบกเบทเบญเบ‡, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบชเป‰เบฒเบ‡เบเบฒเบ™เป‚เบ—เป„เบ›เบซเบฒเบ—เบธเบเบ„เบปเบ™เปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบง (เป€เบกเบทเปˆเบญเบ—เบธเบเบ„เบปเบ™เป‚เบ—เบซเบฒเปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบง) เบซเบผเบทเบชเป‰เบฒเบ‡เบ•เบฒเบกเบ—เบตเปˆเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเป‚เบ—เบซเบฒเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป‚เบ—เบซเบฒเบเบฑเบ™? เบฅเบนเบเบ„เป‰เบฒเบชเปˆเบงเบ™เปƒเบซเบเปˆเบกเบตเบเบปเบ™เบฅเบฐเบเบธเบ” 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

เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบฅเบฐเบเบฒเบ™เป€เบ›เบตเบ”เบ•เบปเบงเบ‚เบญเบ‡ script เป€เบเบตเบ”เบ‚เบทเป‰เบ™เบœเปˆเบฒเบ™ systemctl เบซเบผเบทเบšเปเบฅเบดเบเบฒเบ™

# systemctl enable callme
# systemctl start callme

เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบˆเบฐเบ›เบดเบ”เป€เบ›เบตเบ”เบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡เบ•เบฒเบกเบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™ (เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบเบฒเบ™เบ‚เบฑเบ”เบ‚เป‰เบญเบ‡). เบšเปเบฅเบดเบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบก inbox เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ•เบดเบ”เบ•เบฑเป‰เบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเป€เบงเบฑเบš, เบžเบฝเบ‡เปเบ•เปˆเบ•เป‰เบญเบ‡เบเบฒเบ™ php (เป€เบŠเบดเปˆเบ‡เปเบ™เปˆเบ™เบญเบ™เบขเบนเปˆเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ FeePBX). เปเบ•เปˆเปƒเบ™เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบšเปเปˆเบกเบตเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบšเบฑเบ™เบ—เบถเบเบเบฒเบ™เป‚เบ—เบœเปˆเบฒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเป€เบงเบฑเบš (เบเบฑเบ‡เบเบฑเบš https), เบกเบฑเบ™เบˆเบฐเบšเปเปˆเบชเบฒเบกเบฒเบ”เบŸเบฑเบ‡เบšเบฑเบ™เบ—เบถเบเบเบฒเบ™เป‚เบ—เป„เบ”เป‰.

เบ•เบญเบ™เบ™เบตเป‰เปƒเบซเป‰เป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เป‚เบ—เบญเบญเบ. script CallMeOut.php เบกเบตเบชเบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆ:

  • เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบเบฒเบ™เป‚เบ—เป€เบกเบทเปˆเบญเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบชเปเบฒเบฅเบฑเบš php script (เบฅเบงเบกเบ—เบฑเบ‡เบเบฒเบ™เปƒเบŠเป‰เบ›เบธเปˆเบก "Call" เปƒเบ™ Bitrix เบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡). เบกเบฑเบ™เบšเปเปˆเป€เบฎเบฑเบ”เบงเบฝเบเป‚เบ”เบเบšเปเปˆเบกเบตเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเป€เบงเบฑเบšเป„เบŠเบ•เปŒ, เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเปเบกเปˆเบ™เป„เบ”เป‰เบฎเบฑเบšเบœเปˆเบฒเบ™ HTTP POST, เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบ›เบฐเบเบญเบšเบกเบต token

  • เบ‚เปเป‰เบ„เบงเบฒเบกเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เป‚เบ—, เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เปเบฅเบฐเบšเบฑเบ™เบ—เบถเบเบ‚เบญเบ‡เบกเบฑเบ™เบขเบนเปˆเปƒเบ™ Bitrix. เบ–เบทเบเบเบดเบ‡เป‚เบ”เบ Asterisk เปƒเบ™ dialplan [sub-call-internal-ended] เป€เบกเบทเปˆเบญเบเบฒเบ™เป‚เบ—เบชเบดเป‰เบ™เบชเบธเบ”เบฅเบปเบ‡

เบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเปƒเบˆเบเปˆเบฝเบงเบเบฑเบš FreePBX เปเบฅเบฐเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบกเบฑเบ™เบเบฑเบš Bitrix24 เปเบฅเบฐเบญเบทเปˆเบ™เป†เบญเบตเบ

เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเป€เบงเบฑเบšเปเบกเปˆเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบžเบฝเบ‡เปเบ•เปˆเบชเบญเบ‡เบขเปˆเบฒเบ‡ - เบเบฒเบ™เบ”เบฒเบงเป‚เบซเบฅเบ”เป„เบŸเบฅเปŒเบšเบฑเบ™เบ—เบถเบ Bitrix (เบœเปˆเบฒเบ™ HTTPS) เปเบฅเบฐเบเบฒเบ™เป‚เบ—เบซเบฒเบชเบฐเบ„เบดเบš CallMeOut.php. เบ—เปˆเบฒเบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เป€เบ„เบทเปˆเบญเบ‡โ€‹เปเบกเปˆโ€‹เบ‚เปˆเบฒเบโ€‹เบ‚เบญเบ‡ FreePBX เบ—เบตเปˆโ€‹เบกเบตโ€‹เบขเบนเปˆโ€‹เปƒเบ™โ€‹, เป„เบŸเบฅโ€‹เปŒโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™ /var/www/htmlโ€‹, เบ—เปˆเบฒเบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบ•เบดเบ”โ€‹เบ•เบฑเป‰เบ‡โ€‹เป€เบ„เบทเปˆเบญเบ‡โ€‹เปเบกเปˆโ€‹เบ‚เปˆเบฒเบโ€‹เบญเบทเปˆเบ™โ€‹เบซเบผเบทโ€‹เบฅเบฐโ€‹เบšเบธโ€‹เป€เบชเบฑเป‰เบ™โ€‹เบ—เบฒเบ‡โ€‹เบ—เบตเปˆโ€‹เปเบ•เบโ€‹เบ•เปˆเบฒเบ‡โ€‹เบเบฑเบ™โ€‹.

เป€เบŠเบตเบšเป€เบงเบตเป€เบงเบฑเบš

เปƒเบซเป‰เบญเบญเบเบˆเบฒเบเบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเป€เบงเบฑเบšเป„เบŠเบ•เปŒเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเบถเบเบชเบฒเป€เบญเบเบฐเบฅเบฒเบ” (tyts, tyts, tyts). เบ–เป‰เบฒเป€เบˆเบปเป‰เบฒเบšเปเปˆเบกเบตเป‚เบ”เป€เบกเบ™, เป€เบˆเบปเป‰เบฒเบชเบฒเบกเบฒเบ”เบฅเบญเบ‡เปƒเบŠเป‰ FreeDomain( https://www.freenom.com/ru/index.html), เป€เบŠเบดเปˆเบ‡เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบกเบตเบŠเบทเปˆเบŸเบฃเบตเบชเปเบฒเบฅเบฑเบš IP เบชเบตเบ‚เบฒเบงเบ‚เบญเบ‡เบ—เปˆเบฒเบ™ (เบขเปˆเบฒเบฅเบทเบกเบชเบปเปˆเบ‡เบ•เปเปˆเบžเบญเบ” 80, 443 เบœเปˆเบฒเบ™ router เบ–เป‰เบฒเบ—เบตเปˆเบขเบนเปˆเบžเบฒเบเบ™เบญเบเบžเบฝเบ‡เปเบ•เปˆเบขเบนเปˆเปƒเบ™เบกเบฑเบ™). เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบžเบฝเบ‡เปเบ•เปˆเบชเป‰เบฒเบ‡เป‚เบ”เป€เบกเบ™ DNS, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบฅเปเบ–เป‰เบฒ (เบˆเบฒเบ 15 เบ™เบฒเบ—เบตเป€เบ–เบดเบ‡ 48 เบŠเบปเปˆเบงเป‚เบกเบ‡) เบˆเบปเบ™เบเปˆเบงเบฒเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ—เบฑเบ‡เบซเบกเบปเบ”เบ–เบทเบเป‚เบซเบฅเบ”. เบญเบตเบ‡เบ•เบฒเบกเบ›เบฐเบชเบปเบšเบเบฒเบ™เบ‚เบญเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™เบžเบฒเบเปƒเบ™ - เบˆเบฒเบ 1 เบŠเบปเปˆเบงเป‚เบกเบ‡เบ•เปเปˆเบกเบทเป‰.

เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”

เบ•เบปเบงเบ•เบดเบ”เบ•เบฑเป‰เบ‡เป„เบ”เป‰เบ–เบทเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบขเบนเปˆเปƒเบ™ github เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบ‡เปˆเบฒเบเบ‚เบถเป‰เบ™. เปเบ•เปˆเบกเบฑเบ™เบเป‰เบฝเบ‡เบขเบนเปˆเปƒเบ™เบเบฐเบ”เบฒเบ” - เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบ•เบดเบ”เบ•เบฑเป‰เบ‡เบกเบฑเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡, เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเบซเบผเบฑเบ‡เบˆเบฒเบ tinkering เบเบฑเบšเบชเบดเปˆเบ‡เบ—เบฑเบ‡เบซเบกเบปเบ”เบ™เบตเป‰, เบกเบฑเบ™เป„เบ”เป‰เบเบฒเบเป€เบ›เบฑเบ™เบ—เบตเปˆเบŠเบฑเบ”เป€เบˆเบ™เบงเปˆเบฒเป€เบžเบทเปˆเบญเบ™เบเบฑเบšเปƒเบœ, เปƒเบœเป„เบ›เปƒเบชเปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™ debug เบกเบฑเบ™. เบเบฑเบ‡เบšเปเปˆเบกเบตเบ•เบปเบงเบ•เบดเบ”เบ•เบฑเป‰เบ‡เป€เบ—เบทเปˆเบญ

Docker

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเบฐเบžเบฐเบเบฒเบเบฒเบกเปเบเป‰เป„เบ‚เบขเปˆเบฒเบ‡เป„เบงเบงเบฒ - เบกเบตเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบกเบต Docker - เบชเป‰เบฒเบ‡เบ•เบนเป‰เบ„เบญเบ™เป€เบ—เบ™เป€เบ™เบตเบขเปˆเบฒเบ‡เป„เบงเบงเบฒ, เปƒเบซเป‰เบกเบฑเบ™เบžเบญเบ”เบžเบฒเบเบ™เบญเบ, เป€เบฅเบทเปˆเบญเบ™เป„เบŸเบฅเปŒเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปเบฅเบฐเบžเบฐเบเบฒเบเบฒเบก (เบ™เบตเป‰เปเบกเปˆเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบกเบตเบเปˆเบญเบ‡ LetsEncrypt, เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบกเบตเปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™เปเบฅเป‰เบง, เบ—เปˆเบฒเบ™. เบžเบฝเบ‡เปเบ•เปˆเบ•เป‰เบญเบ‡เบเบฒเบ™ redirect proxy reverse เบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเป€เบงเบฑเบšเป„เบŠเบ•เปŒ FreePBX (เบžเบงเบเป€เบฎเบปเบฒเปƒเบซเป‰เบกเบฑเบ™เบžเบญเบ”เบญเบทเปˆเบ™เปเบกเปˆเบ™ 88), LetsEncrypt เปƒเบ™ docker เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ เบซเบปเบงโ€‹เบ‚เปเป‰โ€‹เบ™เบตเป‰

เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป„เบŸเบฅเปŒเปƒเบ™เป‚เบŸเบ™เป€เบ”เบตเป‚เบ„เบ‡เบเบฒเบ™เบ”เบฒเบงเป‚เบซเบผเบ” (เบซเบผเบฑเบ‡เบˆเบฒเบ git clone), เปเบ•เปˆเบ—เปเบฒเบญเบดเบ”เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ configs เบ”เบฒเบง (เป‚เบŸเบ™เป€เบ”เบตเบ”เบฒเบง) เปเบฅเบฐเบ‚เบฝเบ™เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เป„เบ›เบซเบฒเบšเบฑเบ™เบ—เบถเบเปเบฅเบฐ URL เบ‚เบญเบ‡เป€เบงเบฑเบšเป„เบŠเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบกเบต.

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 เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบชเบฐเบ„เบดเบšเปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™, เบžเบงเบเป€เบฎเบปเบฒเบ„เบดเบ”. เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบชเบถเบเบชเบฒ CRM APIs เบญเบทเปˆเบ™เป†เบซเบผเบฒเบเบญเบฑเบ™, เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเปเบกเปˆเบ™ PBX เบ—เบตเปˆเบกเบตเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบŸเบฃเบต - ShugarCRM เปเบฅเบฐ Vtiger, เปเบฅเบฐเปเบกเปˆเบ™เปเบฅเป‰เบง! เปเบกเปˆเบ™เปเบฅเป‰เบง, เบซเบผเบฑเบเบเบฒเบ™เปเบกเปˆเบ™เบ„เบทเบเบฑเบ™. เปเบ•เปˆเบ™เบตเป‰เปเบกเปˆเบ™เป€เบฅเบทเปˆเบญเบ‡เบญเบทเปˆเบ™, เป€เบŠเบดเปˆเบ‡เบ•เปเปˆเบกเบฒเบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบญเบฑเบšเบฅเบปเบ‡เปƒเบ™ github เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ.

เป€เบญเบเบฐเบชเบฒเบ™

  • เบฅเบฐเบซเบฑเบ”เบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡เปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™ github - https://github.com/CrezZ/bitrix24-freepbx-php

  • เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™เบชเปเบฒเบฅเบฑเบšเปเบเปˆเบ™ https://habr.com/ru/post/349316/

เบเบฒเบ™เบ›เบฐเบ•เบดเป€เบชเบ”เบ„เบงเบฒเบกเบฎเบฑเบšเบœเบดเบ”เบŠเบญเบš: เบ„เบงเบฒเบกเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบšเบ„เบงเบฒเบกเป€เบ›เบฑเบ™เบˆเบดเบ‡เปเบกเปˆเบ™เบชเบปเบกเบกเบธเบ”เบ•เบดเบ–เบฒเบ™เปเบฅเบฐเบกเบฑเบ™เบšเปเปˆเปเบกเปˆเบ™เบ‚เป‰เบญเบ.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™