áá»áœááºá¯ááºááẠIP áááºáá®áá¯ááºážááᯠáá±á«ááºážá
ááºážáá±á¬ááºážáá»ááŒá®áž á
á®á
ááºáááºááŸááºáá±ážáá±á¬ áá¯áá¹ááá®áá
áºáá¯ááœáẠááŒááºáá¡áááºážá¡ááŒá
áºá¡áá¬ááŸááá
áºáŠážá¡áá±ááŒáá·áº á¡áá¯ááºáá¯ááºáá«áááºá áá«ááᯠáá
áºáá¯áᯠáá±ážááá¯ááºááá¬ážá áá®áá¯áá¹ááá®á áá±á¬ááºáááºááœá±ááŸááá²á· PBXs ááœá±áá²á· Bitrix24 ááᯠáá±á«ááºážá
ááºážááá¯á·á VDS áá¯áá¹ááá® á¡áá®ážáá®ážááŸá¬ virtual PBXs ááœá±áá²á· áá±á«ááºážá
ááºážááá¯á· áá« Google ááᯠááœá¬ážáá²á·áááºá áá¯ááºáá«ááẠáá°áá»áœááºáá±á¬á·áºááᯠááá·áºááºáá
áºáá¯áá±ážáááºá
á¡áá¯ááºáá²á·áá¯áá¹ááááᯠáá±á·áá¬áááºá
áá®áá±á¬á· á¡á
ááá¯ááºážááŸá¬áá±á¬á· á¡á¬ážáá¯á¶ážá áááºááá¯á¡áá¯ááºáá¯ááºááá·áºáá²á PBX (áááºáá±á¬ááºááŸá¯áá±ážáá°áá¶á០SIP ááááºáá±á«áºááŒááºážááŒá
áºáááº) ááœáẠááŒááºáááŸáá±á«áºááá¯ááŸá¯ááᯠáááºáá¶áááŸááá±á¬á¡áá«á ááá¯ááºáá¬áááẠ(áá¯ááºážáá±á«áºááá¯ááŸá¯á¡á
á®á¡á
ááºá áá±á«áºááá¯ááŸá¯á¡á
á®á¡á
ááº) á
áááºáá¯ááºáá±á¬ááºááẠ- áá±á«áºááá¯ááŸá¯ááŸáá·áºáááºáááºá áááºááá·áºáááºážááŸáá·áºáá¯ááºáá±á¬ááºááááºáááºážá ááááá¯ááºááá¯ážááŸá¯á០á¡áá»ááºá¡áááºáá»á¬ážá
áœá¬ááᯠáááºáááá¯ááºáááºá ááá¯á·áá±á¬áẠá
ááºážáá»ááºážáá»á¬ážááœáẠá¡áá¯á¶ážááŒá¯ááá¯ááºáááºá SIP áá¡ááœááºážááá¯ááºážááá¯áá±á·áá¬áááºá¡áá±á¬ááºážáá¯á¶ážáááááá¬ááŸá¬ááœá²ááŒááºážá
áááºááŒá¬áá°ááŒá
áºáááºá sngrep (
ááá¯ážááŸááºážáá±á¬áá¯á¶á á¶ááŒáá·áºá dialplan ááẠááá packet ááŸáá·áºáᬠáááºáá¶áááºá áá áºáá«áá áºáá¶ááœáẠá áá¬ážá ááŒááºááŒá±á¬áá±á ááºá áá±á«áºááá¯ááŸá¯áá»á¬áž ááœáŸá²ááŒá±á¬ááºážáá±ážáááºá ááá¯ááºááŸáááºááŒááºáž (DTMF)á FollowMeá RingGroupá IVR ááŸáá·áº á¡ááŒá¬ážá¡áá¬áá»á¬ážáá²á·ááá¯á· á áááºáááºá á¬ážááœááºáᬠá¡áá»áá¯ážáá»áá¯ážááŸááááºá
Invite Pack áá²ááŸá¬ áá¬ááœá±áá«áá²á
ááááºáá±á¬á·á ááá¯ážááŸááºážáá±á¬ dialplans á¡áá»á¬ážá á¯ááẠááááááºáááºááŸá áºáá¯ááŸáá·áº á¡áá¯ááºáá¯ááºááŒááŒá®áž áá¯áá¹áááá±ááá áºáá¯áá¯á¶ážááẠDID ááŸáá·áº CallerID ááá¯á·ááᯠááŸáá·áºáááºáá±áááºá DID - áá»áœááºá¯ááºááá¯á·áá±á«áºááá¯áá±ááá·áºáá±áá¬á CallerID - áá±á«áºááá¯áá±áá±á¬áá°á
ááá¯á·áá±á¬áº áá±á¬ááºáá¯á¶ážááœááºá áá»áœááºá¯ááºááá¯á·ááœáẠáá¯áá¹ááá®áá áºáá¯ááŸáááŒá®áž áá¯ááºážáá áºáá¯á¶ážá០ááá¯ááºáá²á ááá¯ááá¯áááºááŸá¬ PBX ááœáẠááŒá áºááá¯ááºááŒá±á¡ááŸááá¯á¶ážááŸá¬ áá±á«áºááá¯ááŸá¯á¡á¯ááºá á¯áá»á¬áž (á ááºá¡áá»á¬ážá¡ááŒá¬ážá áá áºááŒáá¯ááºááẠ/ áááºááá¯ááºááŒááºáá±ááŒááºáž) ááœáẠááŒáá¯á·áá¶áá«ááºáá»á¬áž (Ring Group)á IVR (áá²ááá¯á áááºáá±á«áºááẠ... á á¬áááºáááºážá one for ...), ááŒá±ááá¯ááŒááºážá ááºáá»á¬áž (á á¬ááá¯ááºááá¯áá»á¬áž)á á¡áá»áááºá¡ááŒá±á¡áá±áá»á¬ážá á¡ááŒá¬ážáá¶áá«ááºáá»á¬ážááá¯á· áááºááá·áºááŒááºáž ááá¯á·ááá¯áẠáá²ááºáá áºáá¯ááá¯á· (FollowMeá Forward)á ááá¯ááá¯áááºááŸá¬ áá±á«áºááá¯ááŸá¯ááᯠá¡ááŸááºááááºáááºáá¶ááá·áºáá°ááŸáá·áº áá±á«áºááá¯ááŸá¯áá±á¬ááºááŸááá¬ááá·áºá¡áá« áááºáá°ááŸáá·áº á áá¬ážááŒá±á¬ááá¯áááºááᯠááŸááºážááŸááºážáááºážáááºáž áá¯á¶ážááŒááºááẠá¡ááœááºáááºáá²áá«áááºá á€áááºááŸá¬ áá»áœááºá¯ááºááá¯á·ááá±á¬ááºáááºáá»á¬ážá PBX ááœáẠáá¯á¶ááŸááºáá±á«áºááá¯ááŸá¯áá áºáá¯áá¡á á á¥ááá¬áá áºáá¯ááŒá áºáááºá
áá±á«áºááá¯ááŸá¯á¡á±á¬ááºááŒááºá
áœá¬ PBX ááá¯á·áááºáá±á¬ááºááŒá®ážáá±á¬ááºá áááºážááẠááá°áá®áá±á¬ "á¡ááŒá±á¬ááºážá¡áá¬áá»á¬áž" ááœáẠdialplan ááŸáááá·áº ááŒááºáááºážááœá¬ážáááºá Asterisk áááŸá¯áá±á¬áá·áºá០áááºá
ááºá¡ááŒá±á¬ááºážá¡áá¬ááẠáá¶áá«ááºáááºáá¬ážáá±á¬ command áá»á¬ážááŒá
áºááŒá®áž áá
áºáá¯á
á®ááœáẠáá±á«áºááá¯áá¬ážáá±á¬áá¶áá«ááºááŒáá·áº filter áá
áºáá¯áá«ááŸáááẠ(áááºážááᯠexten áá¯áá±á«áºáááºá áááŠážá¡ááá·áºááœáẠexten=DID áá¯áá±á«áºáá±á¬ ááŒááºááá±á«áºááá¯ááŸá¯á¡ááœááº)á dialplan ááá¯ááºážááŸá command áá»á¬ážááẠáááºááá·áºá¡áá¬áááᯠááŒá
áºááá¯ááºááẠ- á¡ááœááºážááá¯ááºážáá¯ááºáá±á¬ááºáá»ááºáá»á¬áž (á¥ááá¬á internal subscriber ááᯠáá±á«áºáá« - Dial()
áá¯ááºážááá¯áá»ááá¯ááº- Hangup()
) á¡ááŒá±á¡áá±ááá¯ááºáᬠá¡á±á¬áºááá±áá¬áá»á¬áž (IF, ELSE, ExecIF
ááŸáá·áº á¡áá¬ážáá°) á€á¡ááŒá±á¬ááºážá¡áá¬á á¡ááŒá¬ážá
ááºážáá»ááºážáá»á¬ážááá¯á· áá°ážááŒá±á¬ááºážááŒááºáž (Goto, GotoIF
) áá¯ááºáá±á¬ááºáá»ááºáá±á«áºááá¯ááŸá¯áá¯á¶á
ᶠ(Gosubá Macro) á០á¡ááŒá¬ážá¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážááá¯á· áá°ážááŒá±á¬ááºážááŒááºážá áá®ážááŒá¬ážááœáŸááºááŒá¬ážáá»áẠinclude ОЌÑ_кПМÑекÑÑа
, áááºážááẠá¡ááŒá¬ážá¡ááŒá±á¬ááºážá¡áá¬á០ááœáŸááºááŒá¬ážáá»ááºáá»á¬ážááᯠáááºááŸáá¡ááŒá±á¡áá±áá¡áá¯á¶ážááá¯á· áá±á«ááºážááá·áºáááºá áá«áááºáá±á¬ command áá»á¬ážááᯠá¡ááŒá²áá¯ááºáá±á¬ááºáá«áááºá пПÑле áááºááŸáá¡ááŒá±á¡áá±áá¡áááá·áºáá»á¬ážá
FreePBX á áá¯áá¹áááá±á áá áºáá¯áá¯á¶ážááẠGosubá Macro ááŸáá·áº Handler ááá¯ááºááœááºáá°áá»á¬ážááŸáááá·áº áá±á«áºááá¯ááŒááºážááŸáá·áº áá±á«áºááá¯ááŒááºážáá»á¬ážááŸáááá·áº ááá°áá®áá±á¬ áááºá ááºá¡ááŒá±á¬ááºážá¡áá¬áá»á¬áž áá áºáá¯ááŸáá·áºáá áºáᯠáá±á«ááºážá ááºááŸá¯ááœáẠáááºáá±á¬ááºáá¬ážáááºá á¡ááẠFreePBX áá±á«áºááá¯ááŸá¯áá»á¬ážá á¡ááŒá±á¬ááºážá¡áá¬ááᯠáá¯á¶ážáááºááŒáá·áºáá«á
áá±á«áºááá¯ááŸá¯ááẠá¡áá±á«áºááŸá¡á±á¬ááºááŒá±á¡áá á¡ááŸáá·áºá¡ááŒá±á¬ááºážáá áºáá¯á á®ááœáẠáááºá ááºááŸá¯áá áºáá¯á á®ááœáẠmacros (Macro)á áá¯ááºáá±á¬ááºáá»ááºáá»á¬áž (Gosub) ááá¯á·ááá¯áẠá¡ááœááºáá°ážááŒá±á¬ááºážááŸá¯áá»áŸáᬠ(Goto) áá²á·ááá¯á·áá±á¬ á¡ááŒá±á¬ááºážá¡áá¬áá áºáá¯á á®ááœáẠáá±á«áºááá¯ááŸá¯áá»á¬ážááŸáááá¯ááºááẠááŸááºáááºážáá»á¬ážááœáẠááŒá±áá¬áá¶áá«á
áá¯á¶ááŸáẠPBX á¡ááœáẠáá¯á¶ááŸáẠáááºáááºááŸá¯ áá¯á¶ááŒááºážááᯠá¡á±á¬ááºááœáẠááŒáá¬ážáááºá áá±á«áºááá¯ááá·áºá¡áá«á DID ááᯠá¡áááºáááºážááŒá±á¬ááºážáá»á¬ážááœáẠááŸá¬ááœá±áááºá áááºážá¡ááœáẠáá¬áá®á¡ááŒá±á¡áá±áá»á¬ážááᯠá á áºáá±ážááŒá®ážá á¡á¬ážáá¯á¶ážá¡áááºááŒá±áá«áá á¡áá¶áá®áá°ážááᯠá áááºáá«áááºá áááºážá០ááá¯áẠ1 ááá¯á·ááá¯áẠá¡áá»áááºáá¯ááºááœá¬ážááŒááºážááŒáá·áº áá¯ááºážáá±á«áºááá¯ááá·áº á¡á±á¬áºááá±áá¬áá»á¬ážá¡á¯ááºá á¯ááá¯á· ááœááºáá«á áá±á«áºááá¯ááŸá¯ááŒá®ážáá¯á¶ážááŒá®ážáá±á¬ááºá á¡áá°ážáááºááá¯ááºáááááá¬áá»á¬áž (hangup handler) ááŸááœá²á dialplan ááœáẠáááºááá·áºá¡áá¬á០áá¯ááºáá±á¬ááºááááá«á
á€áá±á«áºááá¯ááŸá¯ á¡ááºáááá¯áá®áááºááœáẠáá»áœááºá¯ááºááá¯á·ááẠCRM ááá¯á·áá±á«áºááá¯ááŸá¯áá¡á ááá¯ááºážááŸáá·áºáááºáááºááá·áº á¡áá»ááºá¡áááºáá»á¬ážááᯠáááºááá·áºáá±áá¬ááœáẠáá¶á·ááá¯ážááá·áºáááºá áááºááá·áºáá±áá¬ááœáẠááŸááºáááºážáááºááááºá áááºááá·áºáá±áá¬ááœáẠá¡áá¶ááœááºážááŒááºážááᯠá¡áá¯á¶ážáááºáááºááŸáá·áº CRM ááá¯á·áá±á«áºááá¯ááŸá¯ááá¯ááºáᬠá¡áá»ááºá¡áááºááŸáá·áºá¡áá° áááºážááᯠáá±ážááá¯á·ááá·áºááááºážá
ááŒááºáá áá áºáá»á¬ážááŸáá·áº áá±á«ááºážá ááºááŒááºážá
PBX ááŸáá·áº CRM áá±á«ááºážá ááºááŒááºážáá°ááẠá¡áááºáááºážá áááºážááá¯á·ááẠá€ááááºáá±á¬ááºážááŸá áºáá¯ááŒá¬ážááŸá áá±áá¬ááŸáá·áº á¡ááŒá áºá¡áá»ááºáá»á¬ážááᯠááŒá±á¬ááºážáá²áᬠá¡áá»ááºážáá»ááºážáá¶ááá¯á· áá±ážááá¯á·ááá·áº áááºáááºáá»á¬ážááŸáá·áº áááá¯ááááºáá»á¬ážááŒá áºáááºá á¡ááŸá®á¡ááá¯áááºážáá±á¬á áá áºáá»á¬ážáááºááœááºáááºá¡áá¯á¶ážá¡áá»á¬ážáá¯á¶ážáááºážáááºážááŸá¬ APIs áá»á¬ážááŸáááá·áºááŒá áºááŒá®áž API áá»á¬ážááá¯áááºáá±á¬ááºáááºáá±áááºážá¡á á¬ážáá¯á¶ážáááºážáááºážááŸá¬ HTTP REST ááŒá áºáááºá áá«áá±ááá·áº ááá±ááœáá·áºá¡ááœáẠááá¯ááºáá«áá°ážá
ááŒááºááœáá·áºá¡ááœááºážááá¯ááºážáááº-
-
AGI - ááŒááºááááá¯ááááºáá»á¬áž / á¡á áááºá¡ááá¯ááºážáá»á¬ážááá¯á· áá áºááŒáá¯ááºáááºáž áá±á«áºááá¯ááŒááºáž á dialplan ááœáẠá¡áááá¡á¬ážááŒáá·áº á¡áá¯á¶ážááŒá¯áááºá áá²á·ááá¯á·áá±á¬ á á¬ááŒáá·áºááá¯ááºáá»á¬áž ááŸááá«áááºá
phpagi ,PAGI -
AMI - ááŒá áºáááºáá»á¬ážá á¬áááºážááœááºážááŒááºážááŸáá·áº á á¬áá¬ážá¡áááá·áºáá±ážáá»ááºáá»á¬ážááᯠááá·áºááœááºážááŒááºážááá¯ááºáᬠáááá¬áá¡á áá¯ááºáá±á¬ááºááá·áº á á¬áá¬áž TCP áá±á«ááºáá±á«ááºááẠá¡ááœááºážá០SMTP ááŸáá·áº áááºáá°áááºá ááŒá áºáááºáá»á¬ážááᯠááŒá±áá¬áá¶ááá¯ááºááŒá®áž áá±á«áºááá¯ááŸá¯áá»á¬ážááᯠá á®áá¶ááá·áºááœá²ááá¯ááºáááºá á á¬ááŒáá·áºááá¯ááºáá áºáá¯áá«ááŸááááº
PAMI - Asterisk ááŸáá·áºáá»áááºáááºááŸá¯áááºáá®ážáááºá¡ááœáẠáá±áááºážá¡á á¬ážáá¯á¶áž
AMI output á¥ááá¬
á¡á
á®á¡á
ááº- áá»ááºáááºá¡áá
áº
áá¶á
á¬ážááœáá·áº- áá¯ááºážáá±á«áºááá¯ááŸá¯á á¡á¬ážáá¯á¶áž
áá»ááºáááº- PJSIP/VMS_pjsip-0000078b
áá»ááºáááºááŒááºáááº- á
ChannelStateDesc- á¡áá¶ááŒááºááŒááºážá
áá±á«áºááá¯áá°IDNum- 111222
CallerIDName: 111222
áá»áááºáááºáá¬ážáá±á¬ááá¯ááºážáá¶áá«ááº-
áá»áááºáááºáá¬ážáá±á¬ááá¯ááºážá¡áááº-
áá¬áá¬á
áá¬áž- en
á¡áá±á¬áá·áºáá¯ááº-
á¡ááŒá±á¬ááºážá¡áá¬- pstn ááŸ
Exten: s
áŠáž á
á¬ážáá±áž: 1
áá°ážááŒá¬ážáá±á¬- 1599589046.5244
Linkedid: 1599589046.5244
-
ARI ááẠRESTá WebSocket ááŸáá áºááá·áº JSON áá±á¬áºáááºááŸá ááŸá áºáá¯áá¯á¶ážá áá±á¬á ááºááŸá¯ááŒá áºááẠ- ááá¯á·áá±á¬áº áááºáááºáá±á¬ áá áºáá»á áºáááºáá»á¬ážááŸáá·áº áá¯ááºááá¯ážááŸá¯áá»á¬ážááŒáá·áºá á¡ááœááºáá±á¬ááºážááœááºááŒááºážáááŸáá ááœááºá áœá¬ááœá±á·ááŸááááẠ(
phparia ,phpari ) ááœááºáá²á·áá²á· á ááŸá áºááá·áºá áá°ááá¯á·áá²á· ááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯ááŸá¬ ááŒá áºáá¬áá²á·áá«áááºá
áá±á«áºááá¯ááŸá¯á áááºáá±á¬á¡áá« ARI á¡ááœááºáááá°áá¬
{ "variable":"CallMeCallerIDName", "value":"111222", "type":"ChannelVarset", "timestamp":"2020-09-09T09:38:36.269+0000", "channel":{ "id »:»1599644315.5334", "á¡áááº":"PJSIP/VMSpjsip-000007b6â³, "state":"áá¯ááºážááŒááºááŒááºáž", "áá±á«áºááá¯áá°":{ "name":"111222", "number":"111222â³ }, "áá»áááºáááºáá¬ážáááº":{ "name":"", "number" :"" }, "accountcode":"", "dialplan":{ "context":"from-pstn", "exten":"s", "priority":2, "á¡ááºááºá¡áááº":"Stasis", "á¡ááºááºdata":"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 á¡áá¯á¶ážááŒá¯áá°ááŒá¬ážáá»áááºáááºááŸá¯ááᯠááŸá¬ááœá±áááº)
-
áá±á«áºááá¯ááŸá¯á á¡áá¶ááœááºážááŒááºážááᯠá áááºááŒá®áž á¡áá¯á¶ážáááºáá«á áááºážááᯠá¡ááá¯ááŸááá±á¬ áá±á¬áºáááºááœáẠááááºážáááºážáá«á ááá¯ááºáááºáá±áá¬ááᯠá¡áá¶ááœááºážááŒááºážá á¡áá¯á¶ážááœáẠá¡áááá±ážáá«á
-
ááŒááºáááŒá áºáááºáá áºáᯠ(áááá¯ááááºááŸ) áá±á«áºááá¯ááŸá¯áá áºáá¯ááᯠá áááºáá«á á¡ááœááºážáá¶áá«ááºáá áºáá¯á ááŒááºááá¶áá«ááºáá áºáá¯ááᯠáá±á«áºááŒá®áž áááºážááá¯á·ááᯠáá»áááºáááºáá«á
-
optional ááá¯: áá±áá¬áááŸááá«á CRMá áá¯ááºážáá±á«áºááá¯áá°á¡á¯ááºá á¯áá»á¬ážááŸáá·áº FollowME ááá¯á·ááŸáá·áº áá±á«ááºážá ááºážáá« (CRM á¡á)
á€áá¯ááºáá±á¬ááºá
áá¬áá»á¬ážá¡á¬ážáá¯á¶ážááᯠAMI ááá¯á·ááá¯áẠARI ááŸáá
áºááá·áº ááŒá±ááŸááºážááá¯ááºáá±á¬áºáááºáž ARI ááẠá¡áá»ááºá¡áááºáá»á¬ážá
áœá¬ááᯠáá»á±á¬á·áááºážá
á±áááºá ááŒá
áºáááºáá»á¬ážá
áœá¬áááŸááá«á AMI ááœááºáá»ááºááŸááá±áá±á¬ ááááºážááŸááºáá»á¬ážá
áœá¬ (á¥ááá¬á áááºáááá¯áá±á«áºááá¯ááŸá¯áá»á¬ážá áá±á«áºááá¯ááŸá¯ááŸááºáááºážáááºááŒááºážá¡áá«á¡ááẠáááºáááá¯á¡ááœááºážá ááááºážááŸááºáá»á¬ážáááºááŸááºááŒááºáž) ááᯠááŒá±áá¬áá¶ááá¬ážáá«á ááá¯á·ááŒá±á¬áá·áºá ááŸááºáááºááŒá®áž áááá»áá±á¬ááŒá±áá¬áá¶áááºá¡ááœááºá ááá¯áá±á¬áá±á¬áááºááœáẠAMI ááᯠááœá±ážááŒáá«á
áá¯á· (ááá¯á·áá±á¬áº áá¯á¶ážáááá¯ááºáá«)á ááá¯á·á¡ááŒáẠ(áá±á¬ááºážááŒá®á á¡á²áá«áááŸáááẠáááºááŸá¬áá²á áá«ááá¯á·á áá»ááºážáá²á·áá°ááœá±) - áá°áááºážá¡áá¯ááºááŸá¬ (
áá±á«ááºážá ááºážááŸá¯ááᯠááŒááºáááºáá®ááœááºááŒááºážá
áá»áœááºá¯ááºááá¯á·á FreePBX ááẠáá¯ááºážáá±á«áºááá¯ááŸá¯á¡á á á¡áá¯á¶ážá¡áá»áááºá áá¶áá«ááºáá»á¬ážá ááŸááºáááºážáááºáá¬ážáá±á¬ááá¯ááºáá»á¬ážáá¡áááºáá»á¬ážá¡ááŒá±á¬ááºáž ááá¯ážááŸááºážáá±á¬áááºážáááºážáá»á¬ážááŒáá·áº AMI ááá¯á· á¡á á®áááºáá¶ááá¯ááºá á±áááºá¡ááœáẠáá°áááºážá á¬áá±ážááá¬áá»á¬ážáá²á·ááá¯á· ááŸáá·áºááœááºááá¯á¡áá¯á¶ážááŒá¯á áá±á«áºááá¯ááŸá¯ááŒá¬áá»áááºááᯠá¡ááœááºáá°áá¯á¶ážááœááºáá»ááºáááºááŒá áºáá«áááºá - áááºáááááºážááŸááºáá»á¬ážááá¯ááá·áºááœááºážááŒá®ážáááºážááá¯á·ááááºááŸáááŸá¯á¡ááœááºá¡ááœááºááá¯ááœá²ááŒááºážá áááºááŒá¬áá«á PAMI ááẠá á áºáá¯ááºááá·áºáá¯ááºáá±á¬ááºáá»ááºááŒáá·áº áááºážááá¯ááá¯ážááŸááºážá áœá¬áá¯ááºáá±á¬ááºááẠá¡ááŒá¶ááŒá¯áá¬ážáááºá
á€áááºááŸá¬ áá±á«áºááá¯ááŸá¯á áááºáá»áááºá¡ááœáẠááá·áºááá¯ááºááá¯áẠvariable ááᯠáááºááŸááºááŒááºážá á¥ááá¬áá áºáá¯ááŒá áºááẠ(s ááẠDID ááŸá¬ááœá±ááŸá¯áá áááºáá® áá¯ááºáá±á¬ááºááá·áº dialplan ááœáẠá¡áá°ážáá¶áá«ááºáá áºáá¯ááŒá áºáááº)
[ext-did-custom]
exten => s,1,Set(CallStart=${STRFTIME(epoch,,%s)})
á€á á¬ááŒá±á¬ááºážá¡ááœáẠá¥ááᬠAMI ááŒá áºáááº
á¡á á®á¡á ááº- áá»ááºáááºá¡áá áº
áá¶á á¬ážááœáá·áº- áá¯ááºážáá±á«áºááá¯ááŸá¯á á¡á¬ážáá¯á¶áž
áá»ááºáááº- PJSIP/VMS_pjsip-0000078b
áá»ááºáááºááŒááºáááº- á
ChannelStateDesc- á¡áá¶ááŒááºááŒááºážá
áá±á«áºááá¯áá°IDNum- 111222
CallerIDName: 111222
áá»áááºáááºáá¬ážáá±á¬ááá¯ááºážáá¶áá«ááº-
áá»áááºáááºáá¬ážáá±á¬ááá¯ááºážá¡áááº-
áá¬áá¬á áá¬áž- en
á¡áá±á¬áá·áºáá¯ááº-
á¡ááŒá±á¬ááºážá¡áá¬- pstn ááŸ
Exten: s
áŠáž á á¬ážáá±áž: 1
áá°ážááŒá¬ážáá±á¬- 1599589046.5244
Linkedid: 1599589046.5244
áá»áŸá±á¬ááºááœáŸá¬- AppData áááºááŸááºáááº-
CallStart=1599571046
FreePBX ááẠextention.conf ááŸáá·áº extention_ ááá¯ááºáá»á¬ážááᯠoverwrite áá¯ááºáá±á¬ááŒá±á¬áá·áºááŒá áºáááºáadditional.conf ááá¯ááºááᯠá¡áá¯á¶ážááŒá¯áá«áááºá ááá¯ážáá»á²á·_áá¯á¶ážá á¶ááá±á·.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
áá°áááºážáá±á¬ááºážáá«ážáá±ážáá¬ážáá°áá»á¬ážá áá°áááºáž dialplalan ááŸáá·áº áá°ážááŒá¬ážáá»ááº-
-
FreePBX ááá¯áá»ááºááá·áºá¡ááá¯ááºáž Dialplan ááẠ.conf áá±á¬áºááẠ(áá¯ááºáá«áááºá áááºážááẠ.ael áá¯ááºááá¯ááºáááºá ááá¯á·áá±á¬áº áá¬ážááŸááºážá¡á¬ážáá¯á¶ážááá¯ááºáá«á á¡ááŒá²áááºážá¡áááºááŒá±áááºááá¯ááºáá«)
-
á¡áá¯á¶ážááᯠexten=>h ááŸáááá·áº áá¯ááºáá±á¬ááºááá·áºá¡á á¬ážá FreePBX dialplan ááẠáááºážááŸáá·áºáá¬á¡áá¯ááºáá¯ááºáá±á¬ááŒá±á¬áá·áºá hangup_handler ááŸáááá·áº á á®áá¶áá±á¬ááºááœááºáá±ážáá²á·áááº
-
ááŒááºáááºáá¬ážáá±á¬ script áá±á«áºááá¯ááŸá¯á á¬ááŒá±á¬ááºážá ááá¯ážáá¬ážáá»ááºáá»á¬ážááŸáá·áº ááŒááºááá±á«áºááá¯ááŸá¯áá¶áá«áẠExtNum ááá¯á·ááᯠááá·áºááœááºážáá¬ážáááºá
-
áá¯ááºáá±á¬ááºááŒááºážá¡á¬áž _custom contexts ááá¯á· ááœáŸá±á·áá¬ážááŒá®áž FreePBX configs ááᯠáááááẠááá¯á·ááá¯áẠáááºážááŒááºááẠááœáá·áºááŒá¯ááẠ- [ ááŸáááá·áº áááºáá¬ááẠáext-did-á áááºááŒáá¯ááº]áoutbound-allroutes-á áááºááŒáá¯ááº]
-
áá¶áá«ááºáá»á¬ážááŸáá·áº áááºá ááºááŸá¯áááŸááá« - ááá¯ááºááẠuniversal ááŒá áºááŒá®áž áá¬áá¬ááá¯á· áááºážááŒá±á¬ááºážááŸáá·áº ááá·áºááºá¡ááœááºáᬠááŒááºáááºáááºááŸááºááẠááá¯á¡ááºáá«áááºá
á áááºáááºá á¡áá±á¬áá·áºáááºááŒááºážááŸáá·áº á áá¬ážááŸááºááŒáá·áº AMI ááœáẠscripts áá»á¬ážááᯠrun ááẠááá¯á¡ááºááẠ- áááºážá¡ááœáẠ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 ááá¯ááŒááºáááºáá« (ááá¯á·ááá¯áẠááá±ááœáá·áºááᯠááŒááºáááºá áááºáá«)
# astrisk -rv
Connected to Asterisk 16.6.2 currently running on freepbx (pid = 31629)
#freepbx*CLI> dialplan reload
Dialplan reloaded.
#freepbx*CLI> exit
áá² PHP ááᯠââáááºááœá¬ážáá¡á±á¬ááº
Script áá»á¬ážááᯠá áááºááŒááºážááŸáá·áº áááºáá±á¬ááºááŸá¯áá áºáᯠáááºáá®ážááŒááºážá
AMI á¡ááœáẠáááºáá±á¬ááºááŸá¯áá áºáá¯ááŒá áºááá·áº Bitrix 24 ááŸáá·áº áá¯ááºáá±á¬ááºááẠá¡á á®á¡á ááºááẠááá¯ážááŸááºážááŒá®áž ááœáá·áºáááºážááŒááºáá¬ááŸá¯ áááŸááá±á¬ááŒá±á¬áá·áº áá®ážááŒá¬ážááœá±ážááœá±ážááááºááŒá áºáááºá AMI ááá¯ááœáá·áºááá¯ááºáá±á¬á¡áá«ááœáẠAsterisk ááẠport ááá¯ááœáá·áºááá¯ááºáááºááŸáá·áºáá«áá«áá²á áá±á¬ááºáááºáá áºáŠážáá«áááºáá±á¬á¡áá«á áááºážááẠááœáá·áºááŒá¯áá»ááºáá±á¬ááºážáááºá ááá¯á·áá±á¬áẠclient ááẠááá¯á¡ááºáá±á¬ááŒá áºáááºáá»á¬ážááᯠá á¬áááºážááœááºážáááºá PAMI ááẠááœá²á·á ááºážáááºáá±á¬ááºáá¬ážáá±á¬ á¡áá¬ááá¹áá¯áá»á¬ážá¡ááŒá áºááá¯á· ááŒá±á¬ááºážáá²áᬠá áááºáááºá á¬ážááœááºááŒá áºáááºáá»á¬ážá á¡ááœááºáá»á¬ážá áá¶áá«ááºáá»á¬áž á áááºááá¯á·á¡ááœááºáᬠá á áºáá¯ááºááŒááºážáá¯ááºáá±á¬ááºáá»ááºááᯠáááºááŸááºááá¯ááºá á±ááá·áº ááá¯ážááŸááºážáá±á¬á á¬áá¬ážááŒáá·áº á¡ááŒá áºá¡áá»ááºáá»á¬áž áá±á¬ááºááŸááá¬áá«áááºá
áá±á«áºááá¯ááŸá¯áááºáá¬áááºááŸáá·áºáááŒáá¯ááºááẠNewExten ááŒá áºáááºááẠparent [from-pstn] context ááŸá áááºááŒá®áž á¡ááŒá áºá¡áá»ááºáá»á¬ážá¡á¬ážáá¯á¶ážááẠáááºá ááºáá±áá±á¬áá»ááºážáá»á¬ážá¡ááá¯ááºážááœá¬ážáá«áááºá _custom dialplan ááœáẠáááºááŸááºáá¬ážáá±á¬ CallMeCallerIDName ááŸáá·áº CallStart variable áá»á¬ážá០á¡áá»ááºá¡áááºáá»á¬ážááᯠáááºáá¶áááŸááá±á¬á¡áá«á
-
áá±á«áºááá¯ááŸá¯áá±á¬ááºáá¬ááá·áº ááá¯ážáá»á²á·áá¶áá«ááºááŸáá·áº áááºááá¯ááºááá·áº UserID ááᯠáá±á¬ááºážááá¯ááá·áº áá¯ááºáá±á¬ááºáá»ááºá ááá¯ááºáá¬á¡ááºá¡ááœá²á·ááŒá áºááẠáááºááá¯áá¯ááºááá²á áá±ážááœááºážááŸá¬ ááá¯ááºáá¶áá±ážááŒá áºáááºá áá°ááá¯ááºážáá¶ááá¯á· áá áºááŒáááºáááºážáá±á«áºááá¯ááẠááá¯á¡ááºáá«ááá¬áž (áá°ááá¯ááºážá áá áºááŒáááºáááºážáá±á«áºááá¯ááá·áºá¡áá«) ááá¯á·ááá¯áẠá¡ááŸáá·áºáá»áá±á«áºááá¯ááá·áºá¡áá«ááœáẠáááºážááá¯á·áá±á«áºááá¯ááá·áºá¡ááá¯ááºáž áááºáá®ážááẠááá¯á¡ááºáá«ááá¬ážá áá±á¬ááºáááºá¡áá»á¬ážá á¯ááœáẠFisrt Available áááºážáá»á°áá¬ááŸááá±á¬ááŒá±á¬áá·áº áááºážá¡ááœáẠááŒá¿áá¬áááŸááá«á áá¯ááºážáá±á«áºááá¯ááŸá¯áá áºáá¯áá¬ááŒá áºáááºá áá«áá±ááá·áº ááŒá¿áá¬ááᯠááŒá±ááŸááºážááá¯á· ááá¯áááºá
-
áá±á«áºááá¯ááŸá¯ááá·áºáááºáá»ááºáá»á¬áž ááŸáá·áº á¡áá¶ááœááºážááŒááºážááá¯á· ááá·áºááºáá áºáá¯ááᯠá¡á á®áááºáá¶ááẠááá¯á¡ááºááá·áº CallID ááᯠááŒááºáá±ážááá·áº Bitrix24 ááœáẠáá±á«áºááá¯ááŸá¯ááŸááºáá¯á¶áááºááŒááºážáá¯ááºáá±á¬ááºáá»ááºá ááá¯ážáá»á²á·áá¶áá«áẠááá¯á·ááá¯áẠUserID áá áºáá¯áᯠááá¯á¡ááºáááºá
áá±á«áºááá¯ááŸá¯ááŒá®ážáá¯á¶ážááŒá®ážáá±á¬ááºá áá±á«áºááá¯ááŸá¯ááŒá®ážá á®ážááŸá¯á¡ááŒá±á¡áá±ááᯠáá áºááŒáá¯ááºáááºáááºáž ááááºážááá¯á·ááá·áº (á¡áá¯ááºáá»á¬ážáá±ááŒááºážá á¡ááŒá±áááŸáááŒááºážá á¡á±á¬ááºááŒááºááŒááºáž) ááŸáá·áº ááŸááºáááºážáá«ááŸááá±á¬ mp3 ááá¯ááºááá¯á· ááá·áºááºáá áºáá¯ááá¯áááºáž áá±á«ááºážáá¯ááºáá¯ááºáá«áááºá
CallMeIn.php module ááẠá¡áááºáááŒááºáááºáááºááẠááá¯á¡ááºáá±á¬ááŒá±á¬áá·áºá áááºážá¡ááœáẠSystemD startup ááá¯ááºááᯠáááºáá®ážáá¬ážáááºá 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
áááºáá±á¬ááºááŸá¯ááẠááá¯á¡ááºáááᯠááŒááºáááºá áááºáá«ááẠ(áá»ááºáá»ááŸá¯áá»á¬ážááŸááá«á)á áááºá á¬áá¯á¶ážááŒá±áá¬áá¶ááŒááºážáááºáá±á¬ááºááŸá¯ááẠáááºáá¬áá¬ááᯠááá·áºááœááºážáááºáááá¯á¡ááºáá«á php áᬠááá¯á¡ááºááẠ(áá±áá»á¬áááºááŸá¬ FeePBX áá¬áá¬ááœááºááŒá áºáááº)á ááá¯á·áá±á¬áº áááºáá¬áᬠ(https ááŸáá·áºáááºáž) áá±á«áºááá¯ááŸá¯ááŸááºáááºážáá»á¬ážááᯠáááºáá±á¬ááºááœáá·áºáááŸááá«á áá±á«áºááá¯ááŸá¯ááŸááºáááºážáá»á¬ážááᯠáá¬ážáá±á¬ááºááẠáááŒá áºááá¯ááºáá«á
á¡áᯠá¡ááœááºáá±á«áºááá¯ááŸá¯ááœá±á¡ááŒá±á¬ááºáž ááŒá±á¬ááŒáá¡á±á¬ááºá CallMeOut.php script ááœáẠáá¯ááºáá±á¬ááºáá»ááºáá»á¬áž ááŸá áºáá¯ááŸááááºá
-
php script á¡ááœáẠáá±á¬ááºážááá¯ááŸá¯áá áºáᯠáááºáá¶áááŸááá±á¬á¡áá« (Bitrix ááá¯ááºááá¯ááºááŸá "Call" ááá¯ááºááᯠá¡áá¯á¶ážááŒá¯ááŒááºážá¡áá«á¡áááº)á áááºáá¬áá¬ááá«áá² á¡áá¯ááºááá¯ááºáá«á áá±á¬ááºážááá¯áá»ááºááᯠHTTP POST ááŸáá áºááá·áº áááºáá¶áááŸááááºá áá±á¬ááºážááá¯áá»ááºááœáẠááá¯áááºáá«ááŸááááºá
-
áá±á«áºááá¯ááŸá¯á áááºážá ááá·áºáááºáá»ááºáá»á¬ážááŸáá·áº ááŸááºáááºážáá»á¬ážááᯠBitrix ááœáẠá¡ááŒá±á¬ááºážááŒá¬ážáá«á áá±á«áºááá¯ááŸá¯áá áºáá¯ááŒá®ážáá¯á¶ážáá±á¬á¡áá« [sub-call-internal-ended] dialplan ááœáẠAsterisk á០á¡áá¯ááºáá¯ááºáááº
áááºáá¬áá¬ááẠá¡áá¬ááŸá áºáá¯á¡ááœááºáᬠááá¯á¡ááºááẠ- Bitrix ááŸááºáááºážááá¯ááºáá»á¬áž ( HTTPS ááŸáááá·áº) áá±á«ááºážáá¯ááºáá¯ááºááŒááºážááŸáá·áº CallMeOut.php script ááá¯áá±á«áºááá¯ááŒááºážá áááºáááºáá¬ážáá±á¬ FreePBX áá¬áá¬ááᯠá¡áá¯á¶ážááŒá¯ááá¯ááºááŒá®ážá /var/www/html ááá¯ááºáá»á¬ážá á¡ááŒá¬ážáá¬áá¬ááᯠááá·áºááœááºážááá¯ááºááẠááá¯á·ááá¯áẠá¡ááŒá¬ážáááºážááŒá±á¬ááºážáá áºáá¯ááᯠáááºááŸááºááá¯ááºáááºá
áááºáá¬áá¬
á¡ááŸá®á¡ááá¯áááºážáá±á¬ áá±á·áá¬ááŸá¯á¡ááœáẠáááºáá¬áᬠáááºáááºááŸá¯ááᯠáá¬ážáá²á·ááŒáá«á
áá¯á· (
áááºáááºááŸá¯ á¡ááá¯á¡áá»á±á¬ááºá áá áº
áááºáááºááŸá¯ááá¯ááá¯ááœááºáá°á á±ááẠgithub ááœáẠinstaller ááá¯áá®ááœááºáá¬ážáááºá áá«áá±ááá·áº á á¬ááœááºáá±á«áºááŸá¬áá±á¬á· áá»á±á¬ááœá±á·áá±áá²á·ááẠ- á¡á²áá«ááœá±á¡á¬ážáá¯á¶ážááᯠááá¯ááºááá¯ááºááá·áºááœááºážáá±áá»áááºááŸá¬áá²á áá«ááœá±á¡á¬ážáá¯á¶ážáá²á· áá±á«ááºážááŒá®ážáá²á·á¡áá« áááºáá°áá²á· áááºáá°áá²á· áááºáá°áááºáá¯á¶ áááºááœá¬ážááœá¬áž áááºááᯠá¡ááŸá¬ážááŸá¬áááá²ááá¯áᬠááŸááºážááŸááºážáááºážáááºáž áááá¬áá²á·áááºá installer áááŸááá±ážáá«á
Docker
ááŒá±ááŸááºážáá»ááºááᯠá¡ááŒááºá
ááºážááŒáá·áºááá¯áá«á - Docker ááœáẠááœá±ážáá»ááºá
áá¬áá
áºáᯠááŸáááẠ- ááœááºááááºáá¬áá
áºáá¯ááᯠá¡ááŒááºáááºáá®ážáá«á áááºážááᯠááŒááºáááá¯á· ááá¯á·ááºáá»á¬ážáá±ážáᬠáááºáááºááá¯ááºáá»á¬ážááᯠáá»á±á¬áºáá²áᬠá
ááºážááŒáá·áºáá« (áááºážááẠáááºááŸááºáá
áºáá¯ááŸáááŒá®ážáá¬ážááŒá
áºáá«á LetsEncrypt ááœááºááááºáá¬ááœáẠá€ááœá±ážáá»ááºááŸá¯áááºá á áááºááẠFreePBX áááºáá¬áá¬ááá¯á· ááŒá±á¬ááºážááŒááºááá±á¬ááºá
á®ááᯠááŒááºááœáŸááºážááẠááá¯á¡ááºááẠ(áá»áœááºá¯ááºááá¯á·á áááºážááᯠá¡ááŒá¬áž port 88 ááŸáá±ážáááº) ááá¯á¡ááŒá±áá¶á Docker ááœáẠLetsEncrypt
áá±á«ááºážáá¯ááºáá¯ááºáá¬ážáá±á¬ ááá±á¬áá»ááºááá¯ááºááœá² (git clone ááŒá®ážáá±á¬ááº) ááœáẠááá¯ááºááᯠrun ááẠááá¯á¡ááºáá±á¬áºáááºáž áŠážá áœá¬ asterisk configs (asterisk folder) áá²ááá¯á·áááºááŒá®áž ááŸááºáááºážáá»á¬ážááŸáá·áº ááá·áºááá¯ááºá 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 ááá¯ááºááŸáááá·áº run áááºá
docker-compose up -d
nginx áá áááºáá«áá nginx/ssl_docker.conf ááá¯ááºááœá²ááŸá ááœá²á·á ááºážááŸá¯áá¯á¶á ᶠáá áºáá¯áᯠááŸá¬ážááœááºážáá±áá«áááºá
á¡ááŒá¬ážáá±á«ááºážá ááºááŸá¯áá»á¬áž
ááŒá®ážáá±á¬á· CRM áá áºáá»áá¯á·ááᯠáá áºáá»áááºáááºážááŸá¬ scripts ááœá±áá¬ááŒá±á¬áá·áºáááá·áºáá¬áá²ááá¯á· áá»áœááºáá±á¬áºááœá±ážáááááºá áá»áœááºá¯ááºááá¯á·ááẠá¡ááŒá¬ážáá±á¬ CRM APIs á¡áá»á¬ážá¡ááŒá¬ážááᯠá¡áá°ážáááŒáá·áº á¡ááá²á· built-in PBX - ShugarCRM ááŸáá·áº Vtiger ááá¯á·ááᯠáá±á·áá¬áá²á·ááŒá®áž áá¯ááºáá«áááºá áá¯ááºáááºá ááá±á¬ááá¬ážá á¡áá°áá°áá²á áá«áá±ááá·áº áá«á áá±á¬ááºáááºáá¬ááºáááºážáá áºáá¯áá«á áá±á¬ááºááá¯ááºážááŸá¬ github ááŸá¬ áá®ážááŒá¬ážáááºáá«áááºá
ááá¯ážáá¬áž
-
áá¯ááºááá¯ááºááá¯ááºá github ááŸá¬ááŸááá«áááº
https://github.com/CrezZ/bitrix24-freepbx-php -
áá»áá¯ážá á±á·á¡ááœááºá¡áááºážá¡ááŒá áºáá±á¬ááºážáá«áž
https://habr.com/ru/post/349316/
ááŒááºážááá¯áá»ááº- áááºááœá±á·ááŸáá·áºáááºáá°ááá·áº áááºááá·áºá¡áá¬áááᯠá áááºáá°ážáááºáááºááŒá®áž áá»áœááºá¯ááºááá¯ááºáá±á
source: www.habr.com