рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЖрдк рдореЗрдВ рд╕реЗ рдХрдИ, рдореЗрд░реА рддрд░рд╣, рдХреБрдЫ рдЕрдиреЛрдЦрд╛ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рд░рдЦрддреЗ рдереЗред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдЙрди рддрдХрдиреАрдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдФрд░ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реВрдБрдЧрд╛, рдЬрд┐рдиреНрд╣реЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЯреЗрд▓реАрдлреЛрди рдПрдХреНрд╕рдЪреЗрдВрдЬреЛрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдерд╛ред рд╢рд╛рдпрдж рдпрд╣ рдХрд┐рд╕реА рдХреЛ рдЕрдкрдиреЗ рд╡рд┐рдЪрд╛рд░ рдкрд░ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛, рдФрд░ рдХрд┐рд╕реА рдХреЛ рдкреАрдЯрд╛ рдорд╛рд░реНрдЧ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рднреА рдЕрдЧреНрд░рджреВрддреЛрдВ рдХреЗ рдЕрдиреБрднрд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред

рдЖрдЗрдбрд┐рдпрд╛ рдФрд░ рдореБрдЦреНрдп рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ
Asterisk (framework ), FreePBX ( Asterisk). FreePBX тАУ . , , .
. Asterisk , -, . , . , , FreePBX. FreePBX php4, php5.6 .
. FreePBX, , - .
:
- , . ,
- , ,
- . FreePBX API , .. , , , API Asterisk,
- opensource тАУ .
, . , . , FreePBX , . , . .
, тАФ . , , , , . , - , ┬л ┬╗ , .
. , , , , -.

, , Asterisk.

, :
, :
......
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 тАФ , . , FreePBX, Apply .
:

* тАФ (), .
API . -, Asterisk .
-, , .. .
-, .
, Askozia, , . .
.
Asterisk, . Asterisk , , REALTIME_HASH.
Asterisk Asterisk.

тАУ hints.
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)
...
Ami ( Asterisk) .
API . , , тАЬdialtimeтАЭ ( , .. API Ami ).
. , . , , , . , -, API . , - ┬л ┬╗, .
. php Asterisk , Asterisk .
:
$usersInitSection = $dialplan->createExtSection('usersinit-sub','s');
$usersInitSection
->add('',new \Dialplan\ext_gotoif('$["${G_USERINIT}"="1"]','exit'))
->add('',new \Dialplan\ext_set('G_USERINIT','1'))
->add('',new \Dialplan\ext_gosub('1','s','sub-AddOnAnswerSub','usersconnected-sub'))
->add('',new \Dialplan\ext_gosub('1','s','sub-AddOnPredoDialSub','usersinitondial-sub'))
->add('',new \Dialplan\ext_set('LOCAL(TECH)','${CUT(CHANNEL(name),/,1)}'))
->add('',new \Dialplan\ext_gotoif('$["${LOCAL(TECH)}"="SIP"]','sipdev'))
->add('',new \Dialplan\ext_gotoif('$["${LOCAL(TECH)}"="PJSIP"]','pjsipdev'))
, . , .
Asterisk php, FastAGI php. FastAGI Asterisk, , . . Asterisk , php.
. , /. , 1,5 , , .
1 php Pthreads. - . php , - , php, php .
тАШтАЩ, PHPLIB. php , , , тАУ . FastAGI , php .
Asterisk 1,5 0,05 .

, , c php. -, php , -, -, тАУ - php.
dialplanDynamicCall pbxCallRequest Asterisk.

( 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 ┬лtest┬╗
- ┬л ┬╗, 16 . .
- ┬л ┬╗ () ┬л1┬╗ 5 . .
- ┬л ┬╗ ┬л ┬╗. ( ) 11 .
- ┬л ┬╗ ┬л1, 2, 3┬╗ 11 . .
- . ┬л 1┬╗. . 0 .
- ┬л ┬╗. 31 , .
- ┬л┬╗, 12 .
- 2 ┬л1┬╗ ┬л2┬╗ 12 ┬л2┬╗. . ┬л2┬╗, ┬л2┬╗ ┬л2┬╗.
. , . , , , , - , .
, . , , .
, , , , .
?
, тАУ .
php, .. sip , , . Asterisk. ( - ) . Asterisk , - . , , , .
:
API. , , API . API , , . API .
(/), (, , , , ). тАУ .
рдЖрдЧреЗ рдЬреЛ рд╣реЛрдЧрд╛ рд╡рд╣ рд╕рдордп рджрд┐рдЦрд╛рдПрдЧрд╛ред рдХрдИ рдФрд░ рдмрд╛рд░реАрдХрд┐рдпрд╛рдВ рд╣реИрдВ рдЬреЛ рдлрд┐рд░ рд╕реЗ рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИрдВ, рдХрдИ рдФрд░ рдпреЛрдЬрдирд╛рдПрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрдХ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рд╣реА рддреАрд╕рд░реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рдж рд╕реЗ рдмреАрдд рдЪреБрдХрд╛ рд╣реИ рдФрд░ рд╣рдо рдкрд╣рд▓реЗ рд╣реА рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╡рд┐рдЪрд╛рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рддреАрд╕рд░реЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдореБрдЦреНрдп рдЛрдг рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╕рдВрд╕рд╛рдзрди рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд┐рдХрд╛рд╕ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рд╣рдореЗрд╢рд╛ рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдЖрдкрдХреЛ рднреБрдЧрддрд╛рди рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред