Π—Π°ΠΏΠΎΠ·Π½Π°ΠΉΡ‚Π΅ сС с FreePBX ΠΈ Π³ΠΎ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π°ΠΉΡ‚Π΅ с Битрикс24 ΠΈ Π½Π΅ само Ρ‚ΠΎΠ²Π°

Битрикс24 Π΅ ΠΌΠΎΠ³ΡŠΡ‰ инструмСнт, ΠΊΠΎΠΉΡ‚ΠΎ ΡΡŠΡ‡Π΅Ρ‚Π°Π²Π° CRM, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈ, счСтоводство ΠΈ мноТСство Π΄Ρ€ΡƒΠ³ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ харСсват Π½Π° ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡŠΡ€ΠΈΡ‚Π΅, Π½ΠΎ Π½Π΅ Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° Π½Π° ИВ спСциалиститС. ΠŸΠΎΡ€Ρ‚Π°Π»ΡŠΡ‚ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΎΡ‚ ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ°Π»ΠΊΠΈ ΠΈ срСдни fΓΆretag, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΌΠ°Π»ΠΊΠΈ ΠΊΠ»ΠΈΠ½ΠΈΠΊΠΈ, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΠΈ ΠΈ Π΄ΠΎΡ€ΠΈ салони Π·Π° красота. ΠžΡΠ½ΠΎΠ²Π½Π°Ρ‚Π° функция, която ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡŠΡ€ΠΈΡ‚Π΅ β€žΠΎΠ±ΠΈΡ‡Π°Ρ‚β€œ, Π΅ интСграцията Π½Π° тСлСфонията с CRM, ΠΏΡ€ΠΈ която всСки ΠΎΠ±Π°ΠΆΠ΄Π°Π½Π΅ сС записва Π²Π΅Π΄Π½Π°Π³Π° Π² CRM, ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚ сС клиСнтски ΠΊΠ°Ρ€Ρ‚ΠΈ, информацията Π·Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° сС ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΏΡ€ΠΈ входящо ΠΎΠ±Π°ΠΆΠ΄Π°Π½Π΅ ΠΈ Π²Π΅Π΄Π½Π°Π³Π° сС Π²ΠΈΠΆΠ΄Π° какъв Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡŠΡ‚, ΠΊΠ°ΠΊΠ²ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΌΡƒ сС ΠΏΡ€ΠΎΠ΄Π°Π΄Π΅ ΠΈ ΠΊΠΎΠ»ΠΊΠΎ дълТи. Но тСлСфонията ΠΎΡ‚ Битрикс24 ΠΈ Π½Π΅ΠΉΠ½Π°Ρ‚Π° интСграция с CRM Π΅ ΠΏΠ»Π°Ρ‚Π΅Π½Π°, понякога Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ. Π’ статията Ρ‰Π΅ сподСля ΠΎΠΏΠΈΡ‚ Π·Π° интСграция с ΠΎΡ‚ΠΊΡ€ΠΈΡ‚ΠΈ инструмСнти ΠΈ популярна IP АВБ FreePBX, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Ρ‰Π΅ Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌ Π»ΠΎΠ³ΠΈΠΊΠ°Ρ‚Π° Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈΡ‚Π΅ части

Работя Π½Π° аутсорс Π² компания, която сС Π·Π°Π½ΠΈΠΌΠ°Π²Π° с ΠΏΡ€ΠΎΠ΄Π°ΠΆΠ±Π°, настройка ΠΈ интСграция Π½Π° IP тСлСфония. ΠšΠΎΠ³Π°Ρ‚ΠΎ ΠΌΠ΅ ΠΏΠΎΠΏΠΈΡ‚Π°Ρ…Π°, ΠΌΠΎΠΆΠ΅ΠΌ Π»ΠΈ Π΄Π° ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠΌ Π½Π΅Ρ‰ΠΎ Π·Π° интСграция Π½Π° Битрикс24 с АВБ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅ ΠΈΠΌΠ°Ρ‚, Π° ΡΡŠΡ‰ΠΎ ΠΈ с Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½ΠΈ АВБ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ VDS Π½Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, Π°Π· сС насочих към Π“ΡƒΠ³ΡŠΠ». И Ρ‚ΠΎΠΉ ΠΌΠΈ Π΄Π°Π΄Π΅ Π»ΠΈΠ½ΠΊ Π½Π° статия Π² Π₯Π°Π±Ρ€, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ имашС описаниС, GitHub ΠΈ всичко изглСТдашС Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ. Но ΠΏΡ€ΠΈ ΠΎΠΏΠΈΡ‚ Π·Π° ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Ρ‚ΠΎΠ²Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ стана ясно, Ρ‡Π΅ Битрикс24 Π²Π΅Ρ‡Π΅ Π½Π΅ Π΅ Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ бСшС, ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅Ρ‰Π° трябва Π΄Π° сС прСработят. ОсвСн Ρ‚ΠΎΠ²Π°, FreePBX Π½Π΅ Π΅ просто Π³ΠΎΠ»Π° Asterisk, Ρ‚ΡƒΠΊ трябва Π΄Π° сС мисли ΠΊΠ°ΠΊ Π΄Π° сС ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π° удобството Π½Π° ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π° с хардкорния Π΄ΠΈΠ°Π»ΠΏΠ»Π°Π½ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅.

Π˜Π·ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° Π»ΠΎΠ³ΠΈΠΊΠ°Ρ‚Π° Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°

И Ρ‚Π°ΠΊΠ°, Π·Π° Π½Π°Ρ‡Π°Π»ΠΎ, ΠΊΠ°ΠΊ трябва Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ всичко Ρ‚ΠΎΠ²Π°. ΠšΠΎΠ³Π°Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΎΠ±Π°ΠΆΠ΄Π°Π½Π΅ ΠΎΡ‚ вън Π½Π° АВБ (ΡΡŠΠ±ΠΈΡ‚ΠΈΠ΅ SIP INVITE ΠΎΡ‚ доставчика), Π·Π°ΠΏΠΎΡ‡Π²Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° Π΄ΠΈΠ°Π»ΠΏΠ»Π°Π½Π° (ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΊΠ°ΠΊΠ²ΠΎ ΠΈ Π² какъв Ρ€Π΅Π΄ Π΄Π° сС ΠΏΡ€Π°Π²ΠΈ с ΠΎΠ±Π°ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ). ΠžΡ‚ ΠΏΡŠΡ€Π²ΠΈΡ ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΌΠ½ΠΎΠ³ΠΎ информация, която слСд Ρ‚ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° Π² ΠΏΡ€Π°Π²ΠΈΠ»Π°Ρ‚Π°. ΠžΡ‚Π»ΠΈΡ‡Π΅Π½ инструмСнт Π·Π° ΠΈΠ·ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΎΡΡ‚ΠΈΡ‚Π΅ Π½Π° SIP Π΅ Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΡŠΡ‚ sngrep (Π»ΠΈΠ½ΠΊ) ΠΊΠΎΠΉΡ‚ΠΎ лСсно сС инсталира Π½Π° популярни дистрибуции Ρ‡Ρ€Π΅Π· apt install/yum install ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ, Π½ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π° ΠΈ ΠΎΡ‚ ΠΈΠ·Ρ…ΠΎΠ΄Π΅Π½ ΠΊΠΎΠ΄. НСка Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ Π»ΠΎΠ³ Π½Π° ΠΎΠ±Π°ΠΆΠ΄Π°Π½Π΅ Π² sngrep.

Π—Π°ΠΏΠΎΠ·Π½Π°ΠΉΡ‚Π΅ сС с FreePBX ΠΈ Π³ΠΎ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π°ΠΉΡ‚Π΅ с Битрикс24 ΠΈ Π½Π΅ само Ρ‚ΠΎΠ²Π°

Π’ простото Π΄ΠΈΠ°Π»ΠΏΠ»Π°Π½ΡŠΡ‚ сС Π·Π°Π½ΠΈΠΌΠ°Π²Π° само с ΠΏΡŠΡ€Π²ΠΈΡ ΠΏΠ°ΠΊΠ΅Ρ‚, понякога ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€Π° сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° ΠΈ прСнасочванС Π½Π° повиквания, натисканС Π½Π° Π±ΡƒΡ‚ΠΎΠ½ΠΈ (DTMF), Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ интСрСсни Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΊΠ°Ρ‚ΠΎ FollowMe, RingGroup, IVR ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ.

Какво ΠΈΠΌΠ° Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π° Invite

Π—Π°ΠΏΠΎΠ·Π½Π°ΠΉΡ‚Π΅ сС с FreePBX ΠΈ Π³ΠΎ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π°ΠΉΡ‚Π΅ с Битрикс24 ΠΈ Π½Π΅ само Ρ‚ΠΎΠ²Π°

По ΡΡŠΡ‰Π΅ΡΡ‚Π²ΠΎ ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ прости Π΄ΠΈΠ°Π»ΠΏΠ»Π°Π½ΠΈ работят с ΠΏΡŠΡ€Π²ΠΈΡ‚Π΅ Π΄Π²Π΅ ΠΏΠΎΠ»Π΅Ρ‚Π°, Π° всичката Π»ΠΎΠ³ΠΈΠΊΠ° Π΅ фокусирана ΠΎΠΊΠΎΠ»ΠΎ DID ΠΈ CallerID. DID Π΅ Π½ΠΎΠΌΠ΅Ρ€ΡŠΡ‚, Π½Π° ΠΊΠΎΠΉΡ‚ΠΎ звъним, CallerID Π΅ Π½ΠΎΠΌΠ΅Ρ€ΡŠΡ‚, ΠΎΡ‚ ΠΊΠΎΠΉΡ‚ΠΎ Π·Π²ΡŠΠ½ΡΡ‚.

Но Π½ΠΈΠ΅ смС Ρ„ΠΈΡ€ΠΌΠ°, Π° Π½Π΅ само Π΅Π΄ΠΈΠ½ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ β€” Π·Π½Π°Ρ‡ΠΈ вСроятно Π² АВБ ΠΈΠΌΠ° Π³Ρ€ΡƒΠΏΠΈ Π·Π° повиквания (ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΎ/послСдоватСлно звънянС Π½Π° няколко устройства) Π½Π° градски Π½ΠΎΠΌΠ΅Ρ€Π° (Ring Group), IVR (Π—Π΄Ρ€Π°Π²Π΅ΠΉΡ‚Π΅, Π·Π²ΡŠΠ½Π½Π°Ρ…Ρ‚Π΅ на… НатиснСтС Π΅Π΄Π½ΠΎ за…), Автоотговорници (Phrases), Π’Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈ условия (Time Conditions), ΠŸΡ€Π΅Π½Π°ΡΠΎΡ‡Π²Π°Π½Π΅ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈ Π½ΠΎΠΌΠ΅Ρ€Π° ΠΈΠ»ΠΈ Π½Π° ΠΌΠΎΠ±ΠΈΠ»Π΅Π½ (FollowMe, Forward). Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π΄Π° сС ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈ ΠΊΠΎΠΉ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‰Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈ ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½Π΅Ρ‚ΠΎ ΠΈ с ΠΊΠΎΠ³ΠΎ Ρ‰Π΅ разговаря ΠΏΡ€ΠΈ ΠΏΠΎΡΡ‚ΡŠΠΏΠ²Π°Π½Π΅ Π½Π° ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½Π΅Ρ‚ΠΎ. Π•Ρ‚ΠΎ Π΅Π΄ΠΈΠ½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° Π½Π°Ρ‡ΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΠΉΡ‚ΠΎ Ρ‚ΠΈΠΏΠΈΡ‡Π½ΠΎ ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½Π΅ ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π° Π² АВБ Π½Π° Π½Π°ΡˆΠΈΡ‚Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ.

Π—Π°ΠΏΠΎΠ·Π½Π°ΠΉΡ‚Π΅ сС с FreePBX ΠΈ Π³ΠΎ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π°ΠΉΡ‚Π΅ с Битрикс24 ΠΈ Π½Π΅ само Ρ‚ΠΎΠ²Π°

Π‘Π»Π΅Π΄ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΡ‚ΠΎ Π²Π»ΠΈΠ·Π°Π½Π΅ Π½Π° ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½Π΅Ρ‚ΠΎ Π² АВБ, Ρ‚ΠΎ ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π° ΠΏΡ€Π΅Π· Π΄ΠΈΠ°Π»ΠΏΠ»Π°Π½Π° Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ "контСксти". ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚ΡŠΡ‚ ΠΎΡ‚ Π³Π»Π΅Π΄Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° Asterisk Π΅ Π½ΠΎΠΌΠ΅Ρ€ΠΈΡ€Π°Π½ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ, всяка ΠΎΡ‚ ΠΊΠΎΠΈΡ‚ΠΎ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° Ρ„ΠΈΠ»Ρ‚ΡŠΡ€ ΠΏΠΎ набрания Π½ΠΎΠΌΠ΅Ρ€ (Ρ‚ΠΎΠ·ΠΈ Ρ„ΠΈΠ»Ρ‚ΡŠΡ€ сС Π½Π°Ρ€ΠΈΡ‡Π° exten, Π·Π° външно ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½Π΅ Π² Π½Π°Ρ‡Π°Π»Π΅Π½ Π΅Ρ‚Π°ΠΏ exten=DID). ΠšΠΎΠΌΠ°Π½Π΄ΠΈΡ‚Π΅ Π² Ρ€Π΅Π΄Π° Π½Π° Π΄ΠΈΠ°Π»ΠΏΠ»Π°Π½Π° ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΊΠ°ΠΊΠ²ΠΈΡ‚ΠΎ ΠΈ Π΄Π° Π±ΠΈΠ»ΠΎ β€” Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π΄Π° звъни Π½Π° Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ΅Π½ Π°Π±ΠΎΠ½Π°Ρ‚ β€” Dial(), Π΄Π° ΠΏΠΎΠ»ΠΎΠΆΠΈ ΡΠ»ΡƒΡˆΠ°Π»ΠΊΠ°Ρ‚Π° β€” Hangup()), условни ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ (IF, ELSE, ExecIF ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ), ΠΏΡ€Π΅Ρ…ΠΎΠ΄ΠΈ към Π΄Ρ€ΡƒΠ³ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π° Π½Π° Ρ‚ΠΎΠ·ΠΈ контСкст (Goto, GotoIF), ΠΏΡ€Π΅Ρ…ΠΎΠ΄ към Π΄Ρ€ΡƒΠ³ΠΈ контСксти ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° повиквания Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (Gosub, Macro). ΠžΡ‚Π΄Π΅Π»Π½ΠΎ Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π°Ρ‚Π° include ΠΈΠΌΠ΅_контСкста, която добавя ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ контСкст Π² края Π½Π° тСкущия контСкст. ΠšΠΎΠΌΠ°Π½Π΄ΠΈΡ‚Π΅, Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈ Ρ‡Ρ€Π΅Π· include, сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ Π²ΠΈΠ½Π°Π³ΠΈ слСд Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° тСкущия контСкст.

Цялата Π»ΠΎΠ³ΠΈΠΊΠ° Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° Π½Π° FreePBX Π΅ ΠΈΠ·Π³Ρ€Π°Π΄Π΅Π½Π° Π½Π° Π²ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅Ρ‚ΠΎ Π΅Π΄ΠΈΠ½ Π² Π΄Ρ€ΡƒΠ³ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ контСксти Ρ‡Ρ€Π΅Π· include ΠΈ повиквания Ρ‡Ρ€Π΅Π· Gosub, Macro ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ Handler. НСка Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ контСкста Π½Π° входящитС повиквания Π½Π° FreePBX.

Π—Π°ΠΏΠΎΠ·Π½Π°ΠΉΡ‚Π΅ сС с FreePBX ΠΈ Π³ΠΎ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π°ΠΉΡ‚Π΅ с Битрикс24 ΠΈ Π½Π΅ само Ρ‚ΠΎΠ²Π°

ΠŸΠΎΠ²ΠΈΠΊΠ²Π°Π½Π΅Ρ‚ΠΎ ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π° ΠΏΡ€Π΅Π· всички контСксти ΠΎΡ‚Π³ΠΎΡ€Π΅ Π½Π°Π΄ΠΎΠ»Ρƒ ΠΏΠΎ Ρ€Π΅Π΄Π°, Π² ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° повиквания Π½Π° Π΄Ρ€ΡƒΠ³ΠΈ контСксти ΠΊΠ°Ρ‚ΠΎ макроси (Macro), Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (Gosub) ΠΈΠ»ΠΈ просто ΠΏΡ€Π΅Ρ…ΠΎΠ΄ΠΈ (Goto), Π·Π°Ρ‚ΠΎΠ²Π° Ρ€Π΅Π°Π»Π½ΠΎΡ‚ΠΎ Π΄ΡŠΡ€Π²ΠΎ Π½Π° Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ сС ΠΈΠ·Π²ΠΈΠΊΠ²Π°, ΠΌΠΎΠΆΠ΅ Π΄Π° сС прослСди само Π² Π»ΠΎΠ³ΠΎΠ²Π΅Ρ‚Π΅.

Π’ΠΈΠΏΠΎΠ²Π° схСма Π·Π° настройка Π½Π° Ρ‚ΠΈΠΏΠΈΡ‡Π΅Π½ офис AΠ’Π‘ Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Π° ΠΏΠΎ-Π΄ΠΎΠ»Ρƒ. ΠŸΡ€ΠΈ входящи обаТдания сС Ρ‚ΡŠΡ€ΡΠΈ DID, ΠΏΠΎ ΠΊΠΎΠΉΡ‚ΠΎ сС провСряват Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈΡ‚Π΅ условия; Π°ΠΊΠΎ всичко Π΅ Π½Π°Ρ€Π΅Π΄ β€” стартира сС гласово мСню. ΠžΡ‚ Π½Π΅Π³ΠΎ Ρ‡Ρ€Π΅Π· натисканС Π½Π° Π±ΡƒΡ‚ΠΎΠ½ 1 ΠΈΠ»ΠΈ ΠΏΠΎ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚ сС ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π° към Π³Ρ€ΡƒΠΏΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ. Π‘Π»Π΅Π΄ края Π½Π° Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€Π° сС ΠΈΠ·Π²ΠΈΠΊΠ²Π° макрос hangupcall, слСд ΠΊΠΎΠΉΡ‚ΠΎ Π½ΠΈΡ‰ΠΎ Π΄Ρ€ΡƒΠ³ΠΎ Π² Π΄ΠΈΠ°Π»ΠΏΠ»Π°Π½Π° Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС изпълни, освСн спСциални ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ (hangup handler).

Π—Π°ΠΏΠΎΠ·Π½Π°ΠΉΡ‚Π΅ сС с FreePBX ΠΈ Π³ΠΎ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π°ΠΉΡ‚Π΅ с Битрикс24 ΠΈ Π½Π΅ само Ρ‚ΠΎΠ²Π°

КъдС Π² Ρ‚ΠΎΠ·ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌ Π·Π° ΠΎΠ±Π°ΠΆΠ΄Π°Π½Π΅ трябва Π΄Π° прСдоставямС информация Π·Π° Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ Π½Π° ΠΎΠ±Π°ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ Π² CRM, къдС Π΄Π° Π·Π°ΠΏΠΎΡ‡Π²Π°ΠΌΠ΅ запис, къдС Π΄Π° ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡Π²Π°ΠΌΠ΅ записа ΠΈ Π΄Π° Π³ΠΎ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°ΠΌΠ΅ Π·Π°Π΅Π΄Π½ΠΎ с информацията Π·Π° ΠΎΠ±Π°ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ Π½Π° CRM?

Π˜Ρ‚Π΅Ρ€Π°Ρ†ΠΈΡ с външни систСми

Какво Π΅ интСграция ΠΌΠ΅ΠΆΠ΄Ρƒ AΠ’Π‘ ΠΈ CRM? Π’ΠΎΠ²Π° са настройки ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°Ρ‚ Π΄Π°Π½Π½ΠΈ ΠΈ ΡΡŠΠ±ΠΈΡ‚ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Π΄Π²Π΅Ρ‚Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΈ ΠΈ Π³ΠΈ ΠΏΡ€Π΅Π΄Π°Π²Π°Ρ‚ ΠΏΠΎΠΌΠ΅ΠΆΠ΄Ρƒ си. Най-разпространСният Π½Π°Ρ‡ΠΈΠ½ Π·Π° взаимодСйствиС Π½Π° нСзависими систСми Π΅ Ρ‡Ρ€Π΅Π· API, Π° Π½Π°ΠΉ-популярният Π½Π°Ρ‡ΠΈΠ½ Π·Π° Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ API Π΅ HTTP REST. Но Π½Π΅ ΠΈ Π·Π° asterisk.

Π’ΡŠΡ‚Ρ€Π΅ Π² Asterisk ΠΈΠΌΠ°:

  • AGI β€” синхронно ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° външни ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ/ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° сС основно Π² Π΄ΠΈΠ°Π»ΠΏΠ»Π°Π½Π°, ΠΈΠΌΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΊΠ°Ρ‚ΠΎ phpagi, PAGI

  • AMI β€” тСкстов TCP сокСт, ΠΊΠΎΠΉΡ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π½Π° ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° Π½Π° подписванС Π½Π° ΡΡŠΠ±ΠΈΡ‚ΠΈΡ ΠΈ въвСТданС Π½Π° тСкстови ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ, напомня Π½Π° SMTP ΠΎΡ‚ Π²ΡŠΡ‚Ρ€Π΅, ΠΌΠΎΠΆΠ΅ Π΄Π° прослСдява ΡΡŠΠ±ΠΈΡ‚ΠΈΡ ΠΈ Π΄Π° управлява повиквания, ΠΈΠΌΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° PAMI β€” Π½Π°ΠΉ-популярната Π·Π° създаванС Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ с Asterisk

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π΅Π½ ΠΈΠ·Ρ…ΠΎΠ΄ ΠΎΡ‚ AMI

Π‘ΡŠΠ±ΠΈΡ‚ΠΈΠ΅: Newchannel
ΠŸΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ: call,all
Канал: PJSIP/VMS_pjsip-0000078b
ChannelState: 4
ChannelStateDesc: Ring
CallerIDNum: 111222
CallerIDName: 111222
ConnectedLineNum:
ConnectedLineName:
Π•Π·ΠΈΠΊ: en
AccountCode:
ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚: from-pstn
Exten: s
ΠŸΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚: 1
Uniqueid: 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", "name":"PJSIP/VMSpjsip-000007b6", "state":"Ring", "caller":{ "name":"111222", "number":"111222" }, "connected":{ "name":"", "number":"" }, "accountcode":"", "dialplan":{ "context":"from-pstn", "exten":"s", "priority":2, "appname":"Stasis", "appdata":"hello-world" }, "creationtime":"2020-09-09T09:38:35.926+0000", "language":"ru" }, "asteriskid":"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 ΡΡŠΠ±ΠΈΡ‚ΠΈΠ΅ ΠΏΠΎ Ρ‚Π°Π·ΠΈ линия

Π‘ΡŠΠ±ΠΈΡ‚ΠΈΠ΅: Newchannel

ΠŸΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ: call,all

Канал: PJSIP/VMS_pjsip-0000078b

ChannelState: 4

ChannelStateDesc: Ring

CallerIDNum: 111222

CallerIDName: 111222

ConnectedLineNum:

ConnectedLineName:

Π•Π·ΠΈΠΊ: en

AccountCode:

ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚: from-pstn

Exten: s

ΠŸΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚: 1

Uniqueid: 1599589046.5244

Linkedid: 1599589046.5244

Application: Set AppData:

CallStart=1599571046

ПонСТС FreePBX прСзаписва Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ extention.conf ΠΈ extention_additional.conf, Ρ‰Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Ρ„Π°ΠΉΠ»Π° extention_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' към Π½ΠΎΠΌΠ΅Ρ€Π°
nexten =>  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)})

;; Най-Π²Π°ΠΆΠ½ΠΎΡ‚ΠΎ! ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π½Π° края Π½Π° Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€Π°.
;; ΠžΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ‚Π΅ ΠΏΡŠΡ‚ΠΈΡ‰Π° Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° края Π½Π΅ работят - 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

Π₯арактСристика ΠΈ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π΄ΠΈΠ°Π»ΠΏΠ»Π°Π½Π° Π°Π²Ρ‚ΠΎΡ€ΠΎΠ² исходной ΡΡ‚Π°Ρ‚ΡŒΠΈ β€”

  • Π”ΠΈΠ°Π»ΠΏΠ»Π°Π½ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ .conf, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ FreePBX этого Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ (Π΄Π°, ΠΎΠ½ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ .ael, Π½ΠΎ Π½Π΅ всС вСрсии ΠΈ Π½Π΅ всСгда это ΡƒΠ΄ΠΎΠ±Π½ΠΎ)

  • ВмСсто ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ окончания Ρ‡Π΅Ρ€Π΅Π· exten=>h Π²Π²Π΅Π΄Π΅Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ‡Π΅Ρ€Π΅Π· hangup_handler, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π΄ΠΈΠ°Π»ΠΏΠ»Π°Π½ FreePBX Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π» Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с Π½ΠΈΠΌ

  • Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° строка Π²Ρ‹Π·ΠΎΠ²Π° скрипта, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ ΠΈ внСшний Π½ΠΎΠΌΠ΅Ρ€ Π·Π²ΠΎΠ½ΠΊΠ° ExtNum

  • ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ вынСсСны Π² _custom контСксты ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π½Π΅ Ρ‚Ρ€ΠΎΠ³Π°Ρ‚ΡŒ ΠΈ Π½Π΅ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΈ FreePBX β€” входящиС Ρ‡Π΅Ρ€Π΅Π· [ext-did-custom], исходящиС Ρ‡Π΅Ρ€Π΅Π· [outbound-allroutes-custom]

  • НСт привязки ΠΊ Π½ΠΎΠΌΠ΅Ρ€Π°ΠΌ β€” Ρ„Π°ΠΉΠ» унивСрсалСн ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ настройки Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡƒΡ‚ΠΈ ΠΈ ссылки Π½Π° сСрвСр

Для Π½Π°Ρ‡Π°Π»Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½ΡƒΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ скрипты Π² 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, Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΈ (ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ 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

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ скриптов ΠΈ созданиС сСрвиса

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ схСма Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Битрикс 24, сСрвисом для AMI, Π½Π΅ совсСм проста ΠΈ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Π°, Π΅ΠΉ слСдуСт ΡƒΠ΄Π΅Π»ΠΈΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅. Asterisk ΠΏΡ€ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ AMI просто ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎΡ€Ρ‚ ΠΈ всС. ΠŸΡ€ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΎΠ½ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΡŽ, Π·Π°Ρ‚Π΅ΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ подписываСтся Π½Π° Π½ΡƒΠΆΠ½Ρ‹Π΅ события. Бобытия приходят Π² простом тСкстовом Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ PAMI ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Π² структурированныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈ прСдоставляСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ задания Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰ΠΈΠΌ событиям, полям, Π½ΠΎΠΌΠ΅Ρ€Π°ΠΌ ΠΈ Ρ‚.Π΄.

Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ поступаСт Π·Π²ΠΎΠ½ΠΎΠΊ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ событиС NewExten, начиная с Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ контСкста [from-pstn], Π·Π°Ρ‚Π΅ΠΌ ΠΈΠ΄ΡƒΡ‚ всС события Π² порядкС слСдования строк Π² контСкстах. ΠŸΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈΠ· Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… Π² Π΄ΠΈΠ°Π»ΠΏΠ»Π°Π½Π΅ _custom ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… CallMeCallerIDName ΠΈ CallStart вызываСтся.

  1. Ѐункцията Π·Π° Π·Π°ΠΏΠΈΡ‚Π²Π°Π½Π΅ UserID, ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π°Ρ‰Π° Π½Π° Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΈΡ Π½ΠΎΠΌΠ΅Ρ€, към ΠΊΠΎΠΉΡ‚ΠΎ Π΅ ΠΏΠΎΡΡ‚ΡŠΠΏΠΈΠ»ΠΎ ΠΎΠ±Π°ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ. А Π°ΠΊΠΎ Ρ‚ΠΎΠ²Π° Π΅ Π³Ρ€ΡƒΠΏΠ° повиквания? Π’ΡŠΠΏΡ€ΠΎΡΡŠΡ‚ Π΅ политичСски, трябва Π»ΠΈ Π΄Π° сС Π½Π°ΠΏΡ€Π°Π²ΠΈ ΠΎΠ±Π°ΠΆΠ΄Π°Π½Π΅ Π΄ΠΎ всички навСднъТ (ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π·Π²ΡŠΠ½ΡΡ‚ всички Π΅Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ) ΠΈΠ»ΠΈ Π΄Π° сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° ΠΏΠΎΠ΅Ρ‚Π°ΠΏΠ½ΠΎ, ΠΏΡ€ΠΈ Π΅Π΄Π½ΠΎ слСд Π΄Ρ€ΡƒΠ³ΠΎ ΠΎΠ±Π°ΠΆΠ΄Π°Π½Π΅? ΠŸΡ€ΠΈ ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ Π΅ Π·Π°Π΄Π°Π΄Π΅Π½Π° стратСгията First Available, Π·Π°Ρ‚ΠΎΠ²Π° нямамС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ, звъни само Π΅Π΄ΠΈΠ½ Ρ‡ΠΎΠ²Π΅ΠΊ. Но Π²ΡŠΠΏΡ€ΠΎΡΡŠΡ‚ трябва Π΄Π° сС Ρ€Π΅ΡˆΠΈ.

  2. Ѐункцията Π·Π° рСгистрация Π½Π° ΠΎΠ±Π°ΠΆΠ΄Π°Π½Π΅ Π² Битрикс24, която Π²Ρ€ΡŠΡ‰Π° CallID, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ ΠΏΠΎ-късно Π·Π° Π΄ΠΎΠΊΠ»Π°Π΄Π²Π°Π½Π΅ Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅ Π½Π° ΠΎΠ±Π°ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ ΠΈ Π»ΠΈΠ½ΠΊΠ° към записа. Изисква ΠΈΠ»ΠΈ Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ΅Π½ Π½ΠΎΠΌΠ΅Ρ€, ΠΈΠ»ΠΈ UserID.

Π—Π°ΠΏΠΎΠ·Π½Π°ΠΉΡ‚Π΅ сС с FreePBX ΠΈ Π³ΠΎ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π°ΠΉΡ‚Π΅ с Битрикс24 ΠΈ Π½Π΅ само Ρ‚ΠΎΠ²Π°

Π‘Π»Π΅Π΄ ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΎΠ±Π°ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ сС ΠΈΠ·Π²ΠΈΠΊΠ²Π° функцията Π·Π° Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° записа, която Π΅Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΡΡŠΠΎΠ±Ρ‰Π°Π²Π° статуса Π½Π° ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ Π½Π° ΠΎΠ±Π°ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ (Π—Π°Π΅Ρ‚, Няма ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€, УспСх), Π° ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π·Π°Ρ€Π΅ΠΆΠ΄Π° Π»ΠΈΠ½ΠΊ към 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 ΠΈΠ»ΠΈ service.

# systemctl enable callme
# systemctl start callme

Π‘Π΅Ρ€Π²ΠΈΡΡŠΡ‚ Ρ‰Π΅ сС пСрСзапуска ΠΏΠΎ нСобходимост (ΠΏΡ€ΠΈ падания). Π‘Π΅Ρ€Π²ΠΈΠ·ΡŠΡ‚ Π·Π° наблюдСниС Π½Π° входящи обаТдания Π½Π΅ изисква инсталиранС Π½Π° ΡƒΠ΅Π± ΡΡŠΡ€Π²ΡŠΡ€, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ Π΅ само PHP (ΠΊΠΎΠΉΡ‚ΠΎ със сигурност Π΅ Π½Π°Π»ΠΈΡ‡Π΅Π½ Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π° FeePBX). Но ΠΏΡ€ΠΈ липса Π½Π° Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ записитС Π½Π° обаТданията Ρ‡Ρ€Π΅Π· ΡƒΠ΅Π± ΡΡŠΡ€Π²ΡŠΡ€ (ΠΎΡ‰Π΅ ΠΈ с https) няма Π΄Π° ΠΈΠΌΠ° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠ²Π°Π½Π΅ Π½Π° записитС Π½Π° Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚Π΅.

Π‘Π΅Π³Π° Π΄Π° ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π·Π° изходящитС обаТдания. Π‘ΠΊΡ€ΠΈΠΏΡ‚ΡŠΡ‚ CallMeOut.php ΠΈΠΌΠ° Π΄Π²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

  • Π˜Π½ΠΈΡ†ΠΈΠΈΡ€Π°Π½Π΅ Π½Π° ΠΎΠ±Π°ΠΆΠ΄Π°Π½Π΅ ΠΏΡ€ΠΈ ΠΏΠΎΡΡ‚ΡŠΠΏΠ²Π°Π½Π΅ Π½Π° Π·Π°ΠΏΠΈΡ‚Π²Π°Π½Π΅ към PHP скрипта (Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΠΎ Π±ΡƒΡ‚ΠΎΠ½Π° β€žΠŸΠΎΠ·Π²ΡŠΠ½ΠΈβ€œ Π² самия Битрикс). Π‘Π΅Π· ΡƒΠ΅Π± ΡΡŠΡ€Π²ΡŠΡ€ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ, Π·Π°ΠΏΠΈΡ‚Π²Π°Π½Π΅Ρ‚ΠΎ ΠΏΠΎΡΡ‚ΡŠΠΏΠ²Π° Ρ‡Ρ€Π΅Π· HTTP POST, Π² Π·Π°ΠΏΠΈΡ‚Π²Π°Π½Π΅Ρ‚ΠΎ сС ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° Ρ‚ΠΎΠΊΠ΅Π½.

  • Π‘ΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ Π·Π° ΠΎΠ±Π°ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ, Π½Π΅Π³ΠΎΠ²ΠΈΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ ΠΈ записи Π² Битрикс. Π‘Ρ‚Π°Π²Π° ΠΏΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΈΠ²Π° Π½Π° Asterisk Π² Π΄ΠΈΠ°Π»ΠΏΠ»Π°Π½Π° [sub-call-internal-ended] ΠΏΡ€ΠΈ ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ Π½Π° ΠΎΠ±Π°ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ.

Π—Π°ΠΏΠΎΠ·Π½Π°ΠΉΡ‚Π΅ сС с FreePBX ΠΈ Π³ΠΎ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π°ΠΉΡ‚Π΅ с Битрикс24 ΠΈ Π½Π΅ само Ρ‚ΠΎΠ²Π°

Π£Π΅Π± ΡΡŠΡ€Π²ΡŠΡ€ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ само Π·Π° Π΄Π²Π΅ Π½Π΅Ρ‰Π° β€” Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ с записи ΠΎΡ‚ Битрикс (ΠΏΠΎ HTTPS) ΠΈ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° скрипта CallMeOut.php. МоТС Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π²Π³Ρ€Π°Π΄Π΅Π½ ΡΡŠΡ€Π²ΡŠΡ€ FreePBX, Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ Π·Π° ΠΊΠΎΠΉΡ‚ΠΎ сС Π½Π°ΠΌΠΈΡ€Π°Ρ‚ Π² /var/www/html, ΠΌΠΎΠΆΠ΅ Π΄Π° сС инсталира Π΄Ρ€ΡƒΠ³ ΡΡŠΡ€Π²ΡŠΡ€ ΠΈΠ»ΠΈ Π΄Π° сС Π·Π°Π΄Π°Π΄Π΅ Π΄Ρ€ΡƒΠ³ ΠΏΡŠΡ‚.

Π£Π΅Π± ΡΡŠΡ€Π²ΡŠΡ€

ΠžΡΡ‚Π°Π²ΡΠΌΠ΅ настройката Π½Π° ΡƒΠ΅Π± ΡΡŠΡ€Π²ΡŠΡ€Π° Π·Π° самостоятСлно ΠΈΠ·ΡƒΡ‡Π°Π²Π°Π½Π΅ (Ρ†ΡŠΠΊ, Ρ†ΡŠΠΊ, Ρ†ΡŠΠΊ). Ако няматС Π΄ΠΎΠΌΠ΅ΠΉΠ½, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΎΠΏΠΈΡ‚Π°Ρ‚Π΅ FreeDomain( https://www.freenom.com/ru/index.html), ΠΊΠΎΠΈΡ‚ΠΎ Π±Π΅Π·ΠΏΠ»Π°Ρ‚Π½ΠΎ Ρ‰Π΅ Π²ΠΈ прСдоставят ΠΈΠΌΠ΅ Π·Π° вашия бял IP (Π½Π΅ забравяйтС Π΄Π° прСнасочитС ΠΏΠΎΡ€Ρ‚ΠΎΠ²Π΅Ρ‚Π΅ 80, 443 ΠΏΡ€Π΅Π· Ρ€ΡƒΡ‚Π΅Ρ€Π°, Π°ΠΊΠΎ Π²ΡŠΠ½ΡˆΠ½ΠΈΡΡ‚ адрСс Π΅ само Π½Π° Π½Π΅Π³ΠΎ). Ако Ρ‚ΠΎΠΊΡƒ-Ρ‰ΠΎ стС създали DNS Π΄ΠΎΠΌΠ΅ΠΉΠ½, трябва Π΄Π° ΠΈΠ·Ρ‡Π°ΠΊΠ°Ρ‚Π΅ (ΠΎΡ‚ 15 ΠΌΠΈΠ½ΡƒΡ‚ΠΈ Π΄ΠΎ 48 часа), Π΄ΠΎΠΊΠ°Ρ‚ΠΎ всички ΡΡŠΡ€Π²ΡŠΡ€ΠΈ сС зарСдят. Π‘ΠΏΠΎΡ€Π΅Π΄ ΠΎΠΏΠΈΡ‚ΠΈΡ‚Π΅ с мСстни доставчици - ΠΎΡ‚ 1 час Π΄ΠΎ 24 часа.

Автоматизация Π½Π° инсталацията

Π’ GitHub Π΅ Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° инсталатор, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° сС инсталира ΠΎΡ‰Π΅ ΠΏΠΎ-лСсно. Но Π³Π»Π°Π΄ΠΊΠΎ бСшС само Π½Π° хартия β€” Π·Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° инсталирамС всичко Ρ€ΡŠΡ‡Π½ΠΎ, Π½ΠΎ слСд Ρ€Π°Π±ΠΎΡ‚Π° с всичко Ρ‚ΠΎΠ²Π° стана кристално ясно, ΠΊΠΎΠΉ с ΠΊΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠΆΠΈ, ΠΊΠΎΠΉ накъдС Ρ…ΠΎΠ΄ΠΈ ΠΈ ΠΊΠ°ΠΊ Π΄Π° Π³ΠΎ дСбъгвамС. ВсС ΠΎΡ‰Π΅ няма инсталатор (

Docker

Ако искатС Π±ΡŠΡ€Π·ΠΎ Π΄Π° тСстватС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ β€” ΠΈΠΌΠ° опция с Docker β€” Π±ΡŠΡ€Π·ΠΎ ΡΡŠΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, Π΄Π°ΠΉΡ‚Π΅ ΠΌΡƒ ΠΏΠΎΡ€Ρ‚ΠΎΠ²Π΅ навън, ΠΏΠΎΠ΄Π°ΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ с настройки ΠΈ ΠΎΠΏΠΈΡ‚Π°ΠΉΡ‚Π΅ (Ρ‚ΠΎΠ²Π° Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ с ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Π½Π° LetsEncrypt, Π°ΠΊΠΎ ΡΠ΅Ρ€Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΡŠΡ‚ Π²Π΅Ρ‡Π΅ Π΅ Π½Π°Π»ΠΈΡ‡Π΅Π½, просто трябва Π΄Π° прСнасочитС обратния прокси към ΡƒΠ΅Π± ΡΡŠΡ€Π²ΡŠΡ€Π° FreePBX (Π½Π° Π½Π΅Π³ΠΎ смС Π΄Π°Π»ΠΈ Π΄Ρ€ΡƒΠ³ ΠΏΠΎΡ€Ρ‚ β€” 88), LetsEncrypt Π² Docker ΠΏΠΎ ΠΌΠΎΡ‚ΠΈΠ²ΠΈ Ρ‚Π°Π·ΠΈ статия

Π€Π°ΠΉΠ»ΡŠΡ‚ трябва Π΄Π° сС стартира Π² ΠΈΠ·Ρ‚Π΅Π³Π»Π΅Π½Π°Ρ‚Π° ΠΏΠ°ΠΏΠΊΠ° Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (слСд git clone), Π½ΠΎ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ трябва Π΄Π° сС ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈΡ‚Π΅ Π½Π° Asterisk (ΠΏΠ°ΠΏΠΊΠ° asterisk) ΠΈ Π΄Π° сС Π·Π°Π΄Π°Π΄Π°Ρ‚ ΠΏΡŠΡ‚ΠΈΡ‰Π° към записитС ΠΈ 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 Π² скриптовСтС, помислихмС. Π˜Π·ΡƒΡ‡ΠΈΡ…ΠΌΠ΅ няколко API Π½Π° Π΄Ρ€ΡƒΠ³ΠΈ CRM, особСно Π±Π΅Π·ΠΏΠ»Π°Ρ‚Π½Π°Ρ‚Π°, Π²Π³Ρ€Π°Π΄Π΅Π½Π° Π² някои АВБ β€” ShugarCRM ΠΈ Vtiger, ΠΈ Π΄Π°! ΠΌΠΎΠΆΠ΅, ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡŠΡ‚ Π΅ ΡΡŠΡ‰ΠΈΡΡ‚. Но Ρ‚ΠΎΠ²Π° Π΅ Π΄Ρ€ΡƒΠ³Π° история, която послС Ρ‰Π΅ ΠΊΠ°Ρ‡ΠΈΠΌ Π½Π° GitHub ΠΎΡ‚Π΄Π΅Π»Π½ΠΎ.

Π’Ρ€ΡŠΠ·ΠΊΠΈ

ДисклСймСр: всякакви съвпадСния с рСалността са измислСни ΠΈ Π°Π· Π½Π΅ съм Π±ΠΈΠ» Ρ‚Π°ΠΌ,

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster