ืืื ืกืคืง ืืจืืื ืืื, ืืืื ื, ืืื ืจืขืืื ืืขืฉืืช ืืฉืื ืืืืืื. ืืืืืจ ืื ืืชืืจ ืืช ืืืขืืืช ืืืคืชืจืื ืืช ืืืื ืืื ืฉืืืืชื ืฆืจืื ืืืชืืืื ืืืชื ืืขืช ืคืืชืื ืืืจืืืื. ืืืื ืื ืืขืืืจ ืืืืฉืื ืืืืืื ืขื ืจืขืืื ืืฉืื, ืืืืืฉืื ืืืืช ืืืจื ืืืืืช, ืื ืื ืื ื ืืจืืืืชื ืื ืืกืืื ื ืฉื ืืืืฆืื.
ืจืขืืื ืืืจืืฉืืช ืืคืชื
ืืืื ืืชืืื ืคืฉืื ืืืืื ื ืืืืืืช (ืืกืืจืช ืืื ืืืช ืืคืืืงืฆืืืช ืชืงืฉืืจืช), ืืืืืืฆืื ืฉื ืืืคืื ืื ืืืชืงื ืืช FreePBX (ืืืฉืง ืืื ืืจื ื ืขืืืจ ืืืืืืช). ืื ืฆืจืื ืืืืจื ืืื ืืกืจื ืคืจืืื ืื ืคืื ืืืกืืจืช ืืืืืืืช FreePBX - ืืื ืืฆืืืื. ืื ืืืชืงื ื ืืชืืฆืขื ืชืื XNUMX ืฉืขืืช, ืืืืจื ืงืืืื ืืจืืืื ืืืืืจืช, ืืืฉืง ืืืืืืชื ืืืืจืื ืงืฆืจื ืืชืืกืคืช ืชืืืื ืื ืชืจืฆื.
ืืื ืืืฉืืืืช ืืืขื ืืื ืืช ืืืืชืจ ืืื ืื ืกืื ืืจืืืืช ืืื ืื ืื ืืื ืื ืื ืืืืื. ืืืืืืช ืืืื ืืขืฉืืช ืืจืื, ืืื ืืื ืืฉืืืจ ืขื ืชืงืื ืืช ืืืฉืง ืืืื ืืจื ื, ืืื ืฆืืจื ืืืฉืงืืข ืืจืื ืคืขืืื ืืืชืจ ืืื. ืื ืคืจื ืงืื ืืืื ืืงืืช ืืจืื ืืืชืจ ืืื ืืืชืงื ืช ืฉืืจ ืืืจืืืืื. ืืื ืงืืื ืืื ืื ืฉืืืงื ืืจืื ืืื ืืืชืื ืืืฉืง ืืื ืืจื ื, ืืื ืื ืงืืื ืืื ืืชืืื ืืช ืืืจืืืืงืืื ืืืช FreePBX. ืืืฉืืช ืืฉืืืืช ืืืจืืืืืช FreePBX ืืื ืืื ื ืืืื php4, ืืืืืชื ืจืืข ืืืจ ืืื php5.6 ืฉืขืืื ืืคืฉืจ ืืื ืืขืฉืืช ืืื ืคืฉืื ืื ืื ืืืชืจ.
ืืงืฉ ืืืืจืื ืืื ืชืืื ืืืช ืืืื ืืจืคืืืช ืืฆืืจื ืฉื ืืืืืจืื. ืืฉื ืืกืืชื ืืื ืืช ืืฉืื ืืื ืืฉืืื FreePBX, ืืื ืชื ืฉืืฆืืจื ืืฉืืชื ืืืชื ืืืืคื ืืฉืืขืืชื ืืืืื ืงื ืืืชืจ ืืื ืืช ืืฉืื ืืืฉ.
ืืืจืืฉืืช ืืขืืงืจืืืช ืืื:
- ืืืืจื ืคืฉืืื, ื ืืืฉื ืืืืคื ืืื ืืืืืืืื ืืคืืื ืืื ืื ืืขืจืืช ืืชืืื. ืืคืืื, ืืืจืืช ืืื ื ืืืจืฉืืช ืชืืืืงื ืฉื ืืจืืืืืช ืืืฆื ืฉืื ื,
- ืฉืื ืื ืงื ืืื ืฉืืืฉืืืืช ืืืคืชืจื ืืืื ืืืื,
- ืงืืืช ืืื ืืืจืฆืื ืขื ืืจืืืื. U FreePBX ืื ืืื API ืืฉืื ืื ืืืืจืืช, ืืืืืจ. ืืชื ืื ืืืื, ืืืฉื, ืืืฆืืจ ืงืืืฆืืช ืื ืชืคืจืืืื ืงืืืืื ืืืคืืืงืฆืื ืฉื ืฆื ืฉืืืฉื, ืจืง ื-API ืขืฆืื ืืืืืืช,
- opensource - ืขืืืจ ืืชืื ืชืื ืื ืืฉืื ืืืืชืจ ืขืืืจ ืฉืื ืืืื ืขืืืจ ืืืงืื.
ืืจืขืืื ืฉื ืคืืชืื ืืืืจ ืืืชืจ ืืื ืฉืื ืืคืื ืงืฆืืื ืืืืช ืชืืื ืืืจืืืช ืืืืืืืื ืืฆืืจืช ืืืืืืงืืื. ืืื ืืืืืืืงืืื ืืื ืฆืจืื ืืืืืช ืืืืงืช ืื ืืฉืืชืคืช, ืืืืืจ ืืฉืืืช ืฉื ืื ืืคืื ืงืฆืืืช ืืขืืงืจืืืช ืืืจ ืืืืขืืช ืืืื ืืฉ ืืืจ ืืืฉืืื ืืจืืจืช ืืืื. ืืืืืืงืืื ืืืคืฉืจื ืื ืืืคืืืช ืืืืคื ืืจืืื ืืช ืืกืคืจ ืืืจืืืื ืืื ืืฆืืจื ืฉื ืืขืจืืื ืืกืืฆืืืืืืืื ืขื ืืงืฉื ืืืจืืืช, ืืืชื ืชืืื ืืืืืช ื FreePBX ืื ืืื ืืคืฉืจื ืขื ืืื ืืืื ืช ืืคืื ืงืฆืื ืืืื ืืคืื ืงืฆืืืช ืืงืื ื ืืช. ืืืงืจื ืฉื ืืืืืืงืืื, ืืฉืืื ืืืืืืืืช ืื ืืืืช ืชืฆืื ืืช ืื ืืืืคืืื ืื, ืืืืืคื ืืืื ืชืคืฉื ืืช ืืืืื ืคื ืืื. ืื ืืกืฃ, ืืจืืฉื ืืืืืจื ืืืืฉ ืืืจ ืคืืชืจืื ืืขืืืช ืจืืืช ืขื ืฉืื ืืืื.
ืืืืจ ืืื ืฉืืื ืืช ืืื ืืขืืืื ืืืืฉ ืืฉืืื ืืืืื ืข ืืื ื ืืื ืืคืืืืช. ืื ืืฉ ืืืืื ืฉืืืจืื ืืืืื ืืขืืื, ืื ืื ืืืืืืืื ืืืืจืื ืฉืฆืจืืืื ืืฉืืื ืฉืืื ืืขืืื ืฆืจืืืื ืืืฉืชืืฉ ืื, ืืื ืืืฆืืจ ืขืืชืงืื ืืฉืืื. ืืื, ืื ืืชื ืฆืจืื ืืฉื ืืช ืืฉืื, ืื ืชืฆืืจื ืืฉื ืืช ืจืง ืืืงืื ืืื ืืืช ืืืืคืืฉ ืืืจ "ืืื ืื ืขืืื" ืฆืจืื ืืืชืืฆืข ืืืงืื ืืื, ืืื ืืืคืฉ ืืืืจื ืื ืืคืจืืืงื.
ืืจืกื ืจืืฉืื ื ืืฉืืืืืช ืจืืฉืื ืืช
ืื ืืืืคืืก ืืจืืฉืื ืืื ืืืื ืชืื ืฉื ื. ืืืจืืืื ืืืื, ืืืชืืื ื, ืืืืชื ืืืืืืจืืช, ืืืืืืืืื ืืืื ืื ืจืง ืืืืกืืฃ ืคืื ืงืฆืืื ืืืืช ืืืฉื ืืขืืืื ืฉืืืืช, ืืื ืื ืืฉื ืืช ืืช ืืืฉืง ืืืื ืืจื ื ืขืฆืื.
ืื, ืืจืขืืื ืฉื ืื ืืืช ืชืื ืืช ืืืื ืืฆืืจื ืฉื ืชืื ืืช ืืื ืืื ืื ืฉืื, ืืื ืืื ืืืื ื ืื ืืขืฉืืชื ืืืชื ืืืจ ืขืืืจ ืืืืืืช.
ืขื ืืื ืืชืืืช ืืืืื, ืืชืื ืชืื ืืืจ ืืืื:
- ืฆืืจ ืคืื ืงืฆืืื ืืืืช ืืฉืื ืืขืืืื ืฉืืืืช, ืฉื ืืชื ืืืงื ืืชืจืฉืื, ืืื ืื ืืชืคืจืื ืืืืื ืืื ืืฉืืื,
- ืฆืืจ ืืคืื ืืฉืื ืขืืืจ ืืืฉืง ืืืื ืืจื ื ืืืืกืฃ ืืช ืืชืื ืืืช ืฉืื ืืืคืื ืงืืืืื (ืื ืืคืชื ืืืคืื ืกืืคืง ืืืช),
- ืืืกืฃ ืืช ืืืืืจืืช ืฉืื ืืืฉืื ืืช ืืืืืจืืช ืืจืืฉืืช ืื ืฆืืจ ืืจืืืกืืืช ืืืืจืืช ืืฉืื,
- ืืืชืื ืช ืืืื ืืจืฉืช ืืืืืื ืงืืื, ืืฉื ืืช ืืืง ืืืคืื ืงืฆืืื ืืืืช ืืืจืฉืื ืืืชื ืืฉื ืืืฉ ืื ืืืืืืฃ ืืช ืืืืืื ืืืงืืจื.
ืืืืืื, ืื ืชืืื ืืืฆืืจ ืชืคืจืื ืงืืื ืืฉืื:
......
class CPBX_MYIVR extends CPBX_IVR
{
function __construct()
{
parent::__construct();
$this->_module = "myivr";
}
}
.....
$myIvrModule = new CPBX_MYIVR();
CPBXEngine::getInstance()->registerModule($myIvrModule,__DIR__); //ะะฐัะตะณะธัััะธัะพะฒะฐัั ะฝะพะฒัะน ะผะพะดัะปั
CPBXEngine::getInstance()->registerModuleExtension($myIvrModule,'ivr',__DIR__); //ะะพะดะผะตะฝะธัั ัััะตััะฒัััะธะน ะผะพะดัะปั
ืืืืืืฉืื ืืืืจืืืื ืืจืืฉืื ืื ืืืืื ืืช ืืืืืื ืืจืืฉืื ื ืืืช ืืืืืืืช ืืจืืฉืื ืืช. ืฉืืืชื ืฉืื ืขืื, ืฉืืืจ ืืฆืืืชื ืืฉืืืจ ืืช ืืชืืื ืืช ืืขืืงืจืืืช FreePBX. ืฉืืืชื ืฉืื ืฉืื ืืืื ืืช ืืจืขืืื ืฉื ืืชืืื ืืช. ืขืืืื ืืื ืืคืฉืจืืืืช ืจืืืช ืืคืฉื ืืช ืืคืืชืื, ืืื ืื ืืืืชื ืืื ืืืง ืืืืฉืืืืช ืืืจ ืืคืื ืืงืืืช ืืืชืจ.
ื-API ืืฉืื ืื ืชืฆืืจืช ื-PBX ืืื ืืืืื โ ืืชืืฆืื ืืืื ืื ืืืืชื ืื ืฉืจืฆืื ื. ืืงืืชื ืืช ืืืชื ืขืืงืจืื ืืื ื FreePBX, ืขื ืืื ืืืืฆื ืขื ืืคืชืืจ ืืื, ืื ืืชืฆืืจื ื ืืฆืจืช ืืืืฉ ืืืืืืืืื ืืืคืขืื ืืืืฉ.
ืื ื ืจืื ืื:
*Dialplan ืืื ืืื (ืืืืืจืืชื) ืฉืืืืฆืขืืชื ืืขืืืืช ืฉืืื.
ืืื ืขื ืืคืฉืจืืช ืื, ืื ืืคืฉืจ ืืืชืื API ืจืืื ืืฉืื ืื ืืืืจืืช ืืืจืืืื. ืจืืฉืืช, ืคืขืืืช ืืืืช ืฉืื ืืืื ื ืืืืืืช ืืจืื ืืื ืืขืชืืจ ืืฉืืืื.
ืฉื ืืช, ืืชื ืื ืืืื ืืงืจืื ืืฉืชื ืคืื ืงืฆืืืช ืื-ืืื ืืช, ืื ืฉื ืืื ืืืฆืจื ืืช ืืชืฆืืจื.
ืฉืืืฉืืช, ืืื ืืืื ืืช ืื ืืืืืจืืช, ืืืื ืืื ืฉื ืขืฉื ืขื ืืื ืืื ืื.
ืืืจืกื ืื, ืืื ื ืืกืงืืืื, ื ืืชื ืืื ืืืฆืืจ ืืช ืืชืฆืืจื ืฉื ืืืืืืื ืฉืืฉืชื ื ืืืื ืืืืคืขืื ืืืืฉ ืจืง ืืช ืืืืืืืื ืืืจืืฉืื, ืืื ืื ืืื ืื ืืฆื ืืืฆืขืื. ืืื ืฆืืจื ืืฉื ืืช ืืช ืืืืฉื.
ืืจืกื ืฉื ืื. ืืืฃ ืฉื ืฉืืฃ ืชืงืืข
ืืจืขืืื ืืคืชืืจ ืืช ืืืขืื ืืื ืื ืืืฆืืจ ืืืืฉ ืืช ืืชืฆืืจื ืืชืืื ืืช ืืืืื ืขืืืจ ืืืืืืช, ืื ืฉืืืจ ืืืืข ืืืกื ืื ืชืื ืื ืืงืจืื ืืืกื ืื ืชืื ืื ืืฉืืจืืช ืชืื ืืื ืขืืืื ืืฉืืื. ืืืืืืช ืืืจ ืืืขืชื ืืงืจืื ืชืฆืืจืืช ืืืืกื, ืคืฉืื ืฉื ื ืืช ืืขืจื ืืืกื ืื ืชืื ืื ืืืงืจืืื ืืืื ืชืขืืื ืชืื ืืชืืฉืืืช ืืฉืื ืืืื, ืืืคืื ืงืฆืื ืืืืชื ืืืฉืืืช ืืงืจืืืช ืคืจืืืจื dialplan REALTIME_HASH.
ืืกืืคื ืฉื ืืืจ, ืื ืืื ืฆืืจื ืืคืืื ืืืคืขืื ืืืืฉ ืืืืืืช ืืขืช ืฉืื ืื ืืืืืจืืช ืืื ืืืืืจืืช ืืืื ืืืืืช ืืืืฉืืืช ืืื ืืืืืืช.
ืืฉืื ืืืื ืืืืืืื ืืชืืื ืืช ืืืืื ืื ืืืกืคืช ืืกืคืจื ืฉืืืืืช ื ืจืืืื. ืืื ืืื ืืื ืฉืื ืืืื ื ืงืืืชืืื ืงืื ืื
exten=>101,1,GoSub(โsub-callusersโ,s,1(1)); - ัะพัะตัะฝะพะต ะธะทะผะตะฝะตะฝะธะต, ะดะพะฑะฐะฒะปัะตััั/ะธะทะผะตะฝัะตััั ัะตัะตะท ami
; sub-callusers โ ัะฝะธะฒะตััะฐะปัะฝะฐั ััะฝะบัะธั ะณะตะฝะตัะธััั ะฟัะธ ัััะฐะฝะพะฒะบะต ะผะพะดัะปั.
[sub-callusers]
exten =>s,1,Noop()
exten =>s,n,Set(LOCAL(TOUSERID)=${ARG1})
exten =>s,n,ClearHash(TOUSERPARAM)
exten =>s,n,Set(HASH(TOUSERPARAM)=${REALTIME_HASH(rl_users,id,${LOCAL(TOUSERID)})})
exten =>s,n,GotoIf($["${HASH(TOUSERPARAM,id)}"=""]?return)
...
ืืชื ืืืื ืืงืืืช ืืืืกืืฃ ืื ืืฉื ืืช ืฉืืจื ืืชืืื ืืช ืืืืื ืืืืฆืขืืช ืขืื (ืืืฉืง ืืงืจื ืืืืืืช) ืืืื ืฆืืจื ืืืชืืื ืืืืฉ ืฉื ืชืืื ืืช ืืืืื ืืืื.
ืื ืคืชืจ ืืช ืืืขืื ืขื ื-API ืฉื ืืชืฆืืจื. ืืชื ืืืื ืืคืืื ืืืืื ืก ืืฉืืจืืช ืืืกื ืื ืชืื ืื ืืืืืกืืฃ ืงืืืฆื ืืืฉื ืื ืืฉื ืืช, ืืืฉื, ืืช ืืื ืืืืื ืืฉืื "ืืื ืืืื" ืืงืืืฆื ืืืฉืืื ืืืื ืืืจ ืชืืืฉื ืืช ืืืื ืฉืฆืืื (ืื ืื ืืืืฆื ืขืืืจ ืคืขืืื, ืืืืืื ืฉืืืง ืืคืขืืืืช API ืืืจืฉืืช ืขืื ืฉืืืืช).
ืืืืืืฉืื ืืงืฉืื ืืจืืฉืื ืื ืืืืื ืฉืื ืืช ืืืืืื ืืืืืืื ืืจืืฉืื ื. ืฉืืืชื ืฉืื ืขืื. ืืกืืก ืื ืชืื ืื ืืคื ืืงืืฉืืจ ืงืจืืื, ืืชืืืช ืืืืกืง ืืืื, ืืื ืืืชืจ ืกืืืื ืื, ืืื ืืื ืขืื ืืืฆืืืืช ืืืื ืืขืืืช. ืืืื ืืฉืื, ืขืืฉืื ืื ืื ืฉืืคืฉืจ ืืขืฉืืช ืืจื ืืืฉืง ืืืื ืืจื ื ืืืื ืืืืขืฉืืช ืืจื ื-API, ืืืฉืชืืฉื ืืืืชื ืฉืืืืช. ืื ืืกืฃ, ืืืฉืง ืืืื ืืจื ื ื ืคืืจ ืืืคืชืืจ "ืืื ืืืืจืืช ืขื PBX", ืฉืื ืืื ืืขืจืืช ืฉืืื ืืื ื ืืขืชืื ืงืจืืืืช.
ืืืืืื ืืืืชื ืฉืืคืืชืื ืืกืชืื ืืืชืจ. ืืื ืืืจืกื ืืจืืฉืื ื, ืฉืคืช PHP ืืฆืจื ืชืืื ืืช ืืืื ืืฉืคื ืืืืืืช ืืื ื ืจืื ืืืชื ืงืจืื ืืืืืืื, ืื ืืกืฃ ืืฉืคื ืขืฆืื ืืืืืืช ืืืชืืืช ืชืืื ืืช ืืืื ืืื ืคืจืืืืืืืืช ืืืืชืจ.
ืืื ืื ื ืจืื:
$usersInitSection = $dialplan->createExtSection('usersinit-sub','s');
$usersInitSection
->add('',new Dialplanext_gotoif('$["${G_USERINIT}"="1"]','exit'))
->add('',new Dialplanext_set('G_USERINIT','1'))
->add('',new Dialplanext_gosub('1','s','sub-AddOnAnswerSub','usersconnected-sub'))
->add('',new Dialplanext_gosub('1','s','sub-AddOnPredoDialSub','usersinitondial-sub'))
->add('',new Dialplanext_set('LOCAL(TECH)','${CUT(CHANNEL(name),/,1)}'))
->add('',new Dialplanext_gotoif('$["${LOCAL(TECH)}"="SIP"]','sipdev'))
->add('',new Dialplanext_gotoif('$["${LOCAL(TECH)}"="PJSIP"]','pjsipdev'))
ืืืจืกื ืืฉื ืืื, ื-dialplan ืืคื ืืืื ืืืจืกืื, ืืื ืืื ืืช ืื ืืคืฉืจืืืืช ืืขืืืื ืืืคืฉืจืืืช ืืืชืื ืืคืจืืืจืื ืืืืืื ืืื ืืืืคื ืืฉืืขืืชื. ืื ืื ืืื ืืืื ืืช ืืื ืืคืืชืื, ืืขืฆื ืืืืฉืื ืฉืฉืื ืืฉ ืฆืืจื ืืืชืขืจื ืืชืืื ืืช ืืืืื ืืขืฆืืื ืืืชื.
ืืจืกื ืฉืืืฉืืช
ืืจืขืืื ืืคืชืืจ ืืช ืืืขืื ืืื ืื ืืืฆืืจ ืืืืืืช dialplan ื-php ืืฉืืืืฉ FastAGI ืืืืชืื ืืช ืื ืืืื ืืขืืืื ื-PHP ืขืฆืื. FastAGI ืืื ืืืคืฉืจืช ืืืืืืช, ืืื ืืขืื ืืช ืืฉืืื, ืืชืืืจ ืืฉืงืข. ืงืื ืคืงืืืืช ืืฉื ืืฉืื ืชืืฆืืืช. ืืคืืื, ืืืืืืื ืฉื ื-dialplan ืืืจ ืืืืฅ ืืืืืืืช ืืืืืืช ืื ืืชื ืืืชืื ืืื ืฉืคื, ืืืงืจื ืฉืื ื-PHP.
ืืื ืืจืื ื ืืกืื ืืืขืืื. ืืืขืื ืืขืืงืจืืช ืืืืชื ืฉืืืจ ืืื ืื ืืจืื ืฉืืขืืจืื/ืงืืฆืื. ืืงื ืืขืจื 1,5 ืฉื ืืืช ืืืฆืืจ ืืืืืืงืืื, ืืืชืื ืืืชื ืืืจืฉืื ืืื ืืช ืืฉื ื, ืืืืฉืืื ืืื ืืื ืฉืืื ืืื ืื ืืฉืื ืฉืืคืฉืจ ืืืชืขืื ืืื ื.
ืืชืืื ืืื ืฆืจืื ืืงืจืืช ืจืง ืคืขื ืืืช ืืืื ืืืืคืืฉ ืืืจ ืคืชืจืื ืืชืืื ืืืชืืืช ืฉืืจืืช ื-php ืืืืฆืขืืช Pthreads. ืืืืจ ืฉืืืข ืฉื ื ืืกืืืื, ืืคืฉืจืืช ืื ื ืื ืื ืืฉื ืืืืจืืืืืืช ืฉื ืืืคื ืคืขืืืช ืืืจืืื ืืื. ืืืืจ ืืืืฉ ืฉื ืืืืงืืช, ื ืืืฆืชื ืื ืื ืืืฉ ืืช ืืชืื ืืช ืืืกืื ืืจืื ื ื-PHP; ืืืืชื ืฆืจืื ืืฉืื ืคืฉืื, ืืืืจ ืืื ืืชืืื ื-PHP, ืืืจืืืืช ืจืืืช ืขืืืจ PHP ืื ืกืื ืืจืื ืืืช.
ืืคืชืจืื ืืื ืฉืืจืืช ืืจืืื ืืืืื ืืฉืื ื ื-C, ืฉืืืจืื ืืืชื PHPLIB. ืืื ืืืขื ืืช ืื ืงืืฆื ื-PHP ืฉื ATS, ืืืชืื ืืืชืืื ืื ืืืืืืืื, ืืืกืืฃ ืืชืงืฉืจืืช ืืืืจืช ืื ืืื, ืืืฉืืื ืืืื, ืืืืกื ืืืชื ืืืืืื. ืืืฉืจ ืืืจืจืื ืขื ืืื FastAGI ื ืืฆืจ ืืจื, ืขืืชืง ืืืืืืื ืฉื ืื ืืืืืงืืช ืืื ืชืื ืื ืืฉืืืคื ืื, ืืืืงืฉื ืืืขืืจืช ืืคืื ืงืฆืืืช php.
ืขื ืืคืชืจืื ืืื, ืืืื ืืฉืืืืช ืืฉืืื ืืฉืืจืืช ืฉืื ื ืืขื ืืคืงืืื ืืจืืฉืื ื ืืืืืืช ืืจื ื-1,5 ืฉื ืืืช ื-0,05 ืฉื ืืืช ืืืืื ืืื ืชืืื ืืขื ืืืืื ืืคืจืืืงื.
ืืชืืฆืื ืืื, ืืืื ืืคืืชืื dialplan ืฆืืืฆื ืืืืคื ืืฉืืขืืชื, ืืื ื ืืืื ืืืขืจืื ืืืช ืืืืืื ืฉืืืืชื ืฆืจืื ืืฉืืชื ืืช ืื ื-dialplan ืฉื ืื ืืืืืืืื ื-PHP. ืจืืฉืืช, ืฉืืืืช ืืืจ ืืืืจืืช ืืืืืชื ื-php ืืื ืืืฉืื ืืืืืืงื ืืืกื ืื ืชืื ืื, ืื ืืื ื ืืืฆืืช ืืชืฆืืื ืืืืฉืง ืืืื ืืจื ื, ืืฉื ืืช, ืืื ืืขืืงืจ, ืกืืฃ ืกืืฃ ืืคืฉืจ ืืขืืื ืืฆืืจื ื ืืื ืขื ืืืจืืืืช ืขื ืืกืคืจืื ืืืขืจืืื ืขื ืืกื ื ืชืื ืื ืืขืื ืืจืืืืช PHP ืจืืืช.
ืืื ืืขืื ืืช ืชืืื ืืช ืืืืื ืืืืืงืช ืืืืืื, ืขืืื ืืืืฉื ืืช ืืคืื ืงืฆืื dialplanDynamicCall ืืืืขืื pbxCallRequest ืืืื ืืืืืืงื ืืืื ืืจืืงืฆืื ืืืชื ืืืืืืช.
ืื ืืกืฃ, ื ืืชื ืืื ืืืฆืข ื ืืคืื ืืืืื ื-dialplan (ื-php ืืฉ xdebug ืืื ืขืืื ืขืืืจ ืืฉืืจืืช ืฉืื ื), ืืชื ืืืื ืืขืืืจ ืฆืขื ืืืจ ืฆืขื ืขื ืืื ืฆืคืืื ืืขืจืืื ืฉื ืืฉืชื ืื.
ื ืชืื ื ืฉืืืืช
ืื ื ืืชืื ืืืืืืช ืืืจืฉืื ื ืชืื ืื ืฉื ืืกืคื ืืฆืืจื ื ืืื ื, ืืื ืืืืง ืืจืืืื ืื ืขืืจ ืืจืื ื ืืกืื ืืืขืืื ืืืืจืกื ืืจืืฉืื ื ืขื ืืฉืืืฉืืช. ืืขืชืื ืงืจืืืืช, ื ืชืื ื ืฉืืืืช ืื ืกืืื. ืฉืืื ืืืช = ืืงืืื ืืืช: ืื ืืชืงืฉืจ, ืื ืขื ื, ืืื ืืื ืืืืจื. ืืืคืฉืจืืืืช ืืขื ืืื ืืช ืืืชืจ, ืืฉื ื ืฉืื ื ืืกืฃ ืืืฆืืื ืืืืื ืขืืื ืืจืืืื ืืชืงืฉืจ ืืืืื ืืฉืืื. ืืื ืื ืื ืืืกื ืจืง ืืืง ืืืฆืจืืื.
ืืืจืืฉืืช ืืจืืฉืื ืืืช ืืื:
- ืืฆืืื ืื ืจืง ืืช ืื ืฉืืชืงืฉืจื ืืืจืืืืช, ืืื ืื ืืช ืื ืขื ื, ืื ืืฉ ืืืจืืืื ืืืฉ ืืงืืช ืืืช ืืืฉืืื ืืขืช โโื ืืชืื ืฉืืืืช,
- ืืื ืืคื ื ืืืืืืจ ืืขืืื. ื FreePBX ืืืื ืืจืืืืืช ืืืจืืช, ืืฉืืื ื ืืฉืืช ืืืขื ื ืืจืืข ืฉืืืจืืืืื ืืจืืื ืืช ืืืืคืื. ืืื ืืฉืืื ืืชืคืจืื ืืงืืื ืืืจ ืฆืจืื ืืืจืื ืืืคืื, ืื ืื ืืฉืืืืช ื ืขื ืืช ืืืื ืืืืชื ื ืืชืฉืืื ืืืคื ื-0-1 ืฉื ืืื. ืืื, ืืืืื ืืืกืื ืื ืจืง ืืช ืืืื ืฉืืคื ื ืชืืืื, ืืื ืืช ืืืื ืฉืืคื ื ืืืชืืืจืืช ืขื ืืืืืืื ืืจืืืืื (ืืืืืื ืขืฆืื ืงืืืข ืืช ืืืื ืืื. ืืจืืข ืื "ืขืืื", "ืงื ืืืฆืื ื").
- ืขืืืจ ืชืืื ืืช ืืืื ืืืจืืืช ืืืชืจ, ืืืฉืจ ืฉืืื ืขืืืจืช ืืื ืงืืืฆืืช ืฉืื ืืช, ืืื ืฆืืจื ืืืืืช ืืกืืื ืืืืื ืื ืืืื ื ืื ืคืจื.
ืืืคืฉืจืืช ืืืืื ืืืืชืจ ืืชืืจืจื ืืืฉืจ ืืืืืื ืืืจืืืื ืฉืืืืื ืืืืข ืขื ืขืฆืื ืืฉืืืืช ืืืกืืคื ืฉื ืืืจ ืฉืืืจืื ืืช ืืืืืข ืืฆืืจื ืฉื ืขืฅ.
ืื ื ืจืื ืืื ืื:
ืจืืฉืืช, ืืืืข ืืืื ืขื ืืฉืืื (ืืื ืืืื - ืฉืื ืืืจ ืืืืื).
- ืงืืื ืฉืืื ืืงื ืืืฅ"ืืืฆืง"ืืฉืขื 05:55:52 ืืืืกืคืจ 89295671458 ืืืกืคืจ 89999999999, ืืกืืคื ืฉื ืืืจ ืื ื ืขื ื ืขื ืืื ืขืืื"ืืืืืจื 2ยป ืขื ืืกืคืจ 104. ืืืงืื ืืืื 60 ืฉื ืืืช ืืืืืจ 36 ืฉื ืืืช.
- ืขืืื"ืืืืืจื 2"ืืชืงืฉืจ ื-112 ืืขืืื ืขืื ื"ืื ืื 1ยป ืืืืจ 8 ืฉื ืืืช. ืื ืืืืจืื 14 ืฉื ืืืช.
- ืืืงืื ืืืขืืจ ืืขืืื"ืื ืื 1"ืฉื ืื ืืืฉืืืื ืืืืจ ืขืื 13 ืฉื ืืืช
ืืื ืื ืงืฆื ืืงืจืืื; ืขืืืจ ืื ืจืฉืืื ืืชื ืืืื ืืงืื ืืืกืืืจืืืช ืฉืืืืช ืืคืืจืืช ืืจื ืืืจืืืื.
ืื ืืืืืข ืืืฆื ืืงืื ืื ืฉื ืฉืืืืช:
- ืงืืื ืฉืืื ืืงื ืืืฅ"ืืืฆืงยป ืืฉืขื 05:55:52 ืืืืกืคืจ 89295671458 ืืืกืคืจ 89999999999.
- ืืฉืขื 05:55:53 ืืงื ืืืืฆืื ื ืฉืืื ืงืจืืื ืืืขืื ืื ืื ืก "ืืืืยป
- ืืขืช ืขืืืื ืฉืืื ืขื ืคื ืืกืืืื, ืืืืืื "ืฉืืืช ืื ืื", ืฉืื ืืฉืืื ืืื 16 ืฉื ืืืช. ืืื ืืืืื ืฉืคืืชื ืขืืืจ ืืืงืื.
- ืืืืื"ืฉืืืช ืื ืื"ืฉืืื ืฉืืื ืืขืืื ืืืืจืื ืขื ืืืกืคืจ (ืืงืื)"ืื ืื 1" ืืืืื 5 ืฉื ืืืช ืืชืืืื. ืืื ืื ืื ืขื ื.
- ืืืืื"ืฉืืืช ืื ืื"ืฉืืื ืฉืืื ืืงืืืฆื"ืื ืืื ืงืืจืค" ืืื ืื ืืืื ืืืจืื ืืืืชื ืืืืื (ืืืฉืืื ืืืืชื ืืืจ) ืืืืืื 11 ืฉื ืืืช ืืชืืืื.
- ืงืืืฆื "ืื ืืื ืงืืจืค"ืงืืจื ืืขืืืืื"ืื ืื 1, ืื ืื 2, ืื ืื 3"ืืืงืืื ืืืฉื 11 ืฉื ืืืช. ืืื ืชืฉืืื.
- ืฉืืืช ืืื ืื ืืกืชืืืืช. ืืืืขืื ืฉืืื ืงืจืืื ืืืืืื "ืืืืจืช ืืกืืื ื-1c" ืืื ืื ืืืืื ืฉื ืืชื ืขืืืจ ืืืงืื. ืืื ืืฉืืื ืขืืืื ืืืฉื 0 ืฉื ืืืช.
- ืืืขืื ืฉืืื ืงืจืืื ืืชืคืจืื ืืงืืื "ืืกืืกื ืขื ืืืื ื ืืกืฃ" ืืืงืื ืืืื ืฉื 31 ืฉื ืืืช, ืื ืืื ืืืื ื ืืกืฃ.
- ืืชืืื ืืช ืฉืืืืช ืงืจืืื ืืงืืืฆื "ืืืืืจืืช", ืฉื ืืืงืื ืืืชืื 12 ืฉื ืืืช.
- ืืงืืืฆื, 2 ืขืืืืื ื ืงืจืืื ืื ืืื ืืช"ืืืืืจื 1"ื"ืืืืืจื 2"ืืืืจื 12 ืฉื ืืืช ืืขืืื ืขืื ื"ืืืืืจื 2" ืืชืฉืืื ืืฉืืื ืืฉืืืคืืช ืืฉืืืืช ืืืจืื. ืืกืชืืจ ืฉืืงืืืฆื ืืื ืขื ื "ืืืืืจื 2", ืืืฉืจ ืืชืงืฉืจ ืืืขืื ืขื ื"ืืืืืจื 2" ืืขื ื ืืฉืืื ืืงื ืืืืฆืื ื ืขื "ืืืืืจื 2".
ืฉืืืจืช ืืืืืข ืขื ืื ืคืขืืื ืืืงืื ืื ืฉืื ืืื ืฉืชืืคืฉืจ ืืืฆืข ืคืฉืื ืืืืืืื. ืืืืื ืขื ืืชืคืจืื ืืงืืื ืืขืืืจ ืื ืืืืืช ืขื ืืื ืืื ืขืืืจ ืื ืืคืจืืข. ืื ืืืช ืื"ื ืขื ืฉืืืืช ืฉืื ื ืขื ื ืขื ืืื ืขืืืืื ืชืื ืืชืืฉืืืช ืืื ืฉืืฉืืื ืืืจืื ืืืื ืืื ื ื ืืฉืืช ืื ื ืขื ืชื, ืืืงืืช ืืืฉืืื ืฉืืืืืจ ืืฉืืื ืงืืืฆืชืืช, ืืืืฉืื ืืืจ ืขื ื ืงืืื ืืื, ืืืืืจ ืื ืืฉืืื ืื ืืืืืฆื.
ืืืกืื ืืืืข ืืื ืืืคืฉืจ ืืื ืืงืืช ืื ืงืืืฆื ืื ืคืจื ืืืงืืืข ืืืืื ืืขืืืืช ืืื ืคืืขืืช, ืืืื ืืช ืืจืฃ ืฉื ืงืืืฆืืช ืฉื ืขื ื ื ืืืืืืฆื ืืคื ืฉืขื. ืืื ืื, ื ืืชื ืืืืืง ืขื ืืื ืืืืืง ืืืืืืจ ืืื ืื ืืืืจืื ืขื ืืื ื ืืชืื ืืืขืืจืืช ืืืืจ ืืืืืืจ ืืื ืื.
ืืคืฉืจ ืื ืืขืจืื ืืืงืจืื ืื ืื ืืืคืืกืืื, ืืืฉื ืืืืื ืชืืืจืืช ืืกืคืจืื ืฉืื ื ืืฆืืื ืืืืืจ ืืืืืืื ืืฉืืืื ืื ืืื ื ืื ืืืื ืืืื ืืืฉืืืืช ืืืืฆืืืช ืืืขืืจืืช ืืืืคืื ื ืืื.
ืืชืืฆืื?
ืืืืื ืืื ื ื ืืจืฉ ืืชืืืง ืืช ืืืจืืืื; ืืื ืื ืืจืืื ืืืืชืจ ืืืื ืืขืฉืืช ืืืช - ื ืืืง ืืคืืขื.
ืขืืืจ ืฉืื ืืืื, ืืื ืฆืืจื ืืืืืืื ืืขืื ืืืฉืืจืื ืจืฆืื ืืื; ืืืข ื-PHP ืืกืคืืง, ืื ืืืจ ื ืืชืื ืืืืืืื ืขืืืจ ืคืจืืืืงืื SIP, ืืขืืืจ ืืชืืจ, ืืืืชืงืฉืจืืช ืืขืืื ืืืืจืื. ืืฉ ืฉืืขืืจ ืขืืืคื ืขืืืจ ืืืืืืช. ืืื ืืคืชื ืืืืื, ืืชืื ืช ืืืื (ืืืฆืืจื ืืืื ืฆืจืื) ืืงืจืื ืืืืืืื ืืืื ืื. ืืืืข ืืืืืืช ืืืืชืจืื ืืืืืืื ืื ืืืงืื ืืืงืฉ ืืืืกืืฃ ืืฃ ืขื ืืื ืืืฉ ืืืฉืื. ืืื ืืชืจืืื ืืจืื ืฉืืืจืืช ืฉืืชืื ืชืื ืฉื ืฆื ืฉืืืฉื ืืืืืื ืืืชืืืื, ืื ืืจืืืฉืื ืืืกืจ ืืืืืื ืืื ืชืืขืื ืืกืืงืืจ ื ืืจืืื ืฉื ืืขืจืืช, ืื ืฉืขืืืื ืืฉ ืืงืื ืืฉืืคืืจ.
ืืืืืืื ืืืืืื:
- ืืืฆืืจ ืืืืืืช ืืืฉืืช ืืขืืืื ืฉืืืืช,
- ืืืกืฃ ืืืืงืื ืืืฉืื ืืืืฉืง ืืืื ืืจื ื,
- ืืจืฉืช ืืื ืืื ืืืืืืืืื ืืงืืืืื, ืืืืืืจ ืืืืฉ ืคืื ืงืฆืืืช ืืืืืืืฃ ืืืชื, ืื ืคืฉืื ืืืืืช ืขืืชืง ืืขื ืฉืื ื,
- ืืืกืฃ ืืช ืืืืืจืืช ืฉืื ืืชืื ืืช ืืืืืจืืช ืฉื ืืืืืืื ืืืจืื ืืขืื ืืจืื ืืืชืจ.
ืืืืจืืช ืืจืืืื ืืืืฆืขืืช API. ืืคื ืฉืชืืืจ ืืขืื, ืื ืืืืืจืืช ืืืืืกื ืืช ืืืกื ืื ืชืื ืื ืื ืงืจืืืช ืืืื ืืฉืืื, ืื ืฉื ืืชื ืืฉื ืืช ืืช ืื ืืืืจืืช ืืืจืืืื ืืจื ื-API. ืืขืช ืงืจืืื ื-API, ืืชืฆืืจื ืื ื ืืฆืจืช ืืืืฉ ืืืืืืืืื ืืื ื ืืืคืขืืื ืืืืฉ, ืืื, ืืื ืื ืืฉื ื ืืื ืืืืจืืช ืืขืืืืื ืืฉ ืื. ืืงืฉืืช API ืืืืฆืขืืช ืืืืืจืืช ืืืื ื ืืืกืืืช ืื ืืช ืื.
ืืืจืืืืื ืืืืกื ืช ืืช ืื ืคืขืืืืช ืืืคืชื ืขื ืฉืืืืช ืขื ืืฉื ืืื (ืืืชื ื/ืฉืืื), ืงืื ืื ืืืืื ืื ืืจืืืื (ืขืืื, ืงืืืฆื, ืงื ืืืฆืื ื, ืื ืขืจืืฅ, ืืกืคืจ). ืื ืืืคืฉืจ ืืื ืืช ืืืืืช ืฉืื ืื ืขืืืจ ืืงืืืืช ืกืคืฆืืคืืื ืืขืืงืจ ืืขืืืื ืืื ืืืฆืืจ ืืืฉืง ืืืืืืชื ืืืฉืชืืฉ.
ืืืื ืืืื ืื ืืงืจื ืืืืฉื. ืืฉ ืขืืืื ืืจืื ื ืืืื ืกืื ืฉืฆืจืื ืืขืฉืืช ืืืืฉ, ืืฉ ืขืืืื ืืจืื ืชืืื ืืืช, ืืื ืฉื ื ืืืคื ืืื ืืฆืืจืช ืืืจืกื ืืฉืืืฉืืช ืืืืจ ืืคืฉืจ ืืืืจ ืฉืืจืขืืื ืขืืื. ืืืืกืจืื ืืขืืงืจื ืฉื ืืจืกื 3 ืืื ืืฉืืื ืืืืืจื, ืืื ืื ืืืจื ืืื ืื ืฉืืชื ืฆืจืื ืืฉืื ืขืืืจ ืงืืืช ืืคืืชืื.
ืืงืืจ: www.habr.com