ααααΆααααΆαα α’αααααΆααα’ααααααΆααΌα ααΆαααα»α ααΆααααα·αα ααααααΎα’αααΈααααααααα αα αααα»αα’αααααααα αααα»αααΉααααααΆααα’αααΈαααα αΆαα αα ααααα αα·ααααααααααΆαααααααα»αααααΌαααααααα ααααααααΎα PBX α αααα ααααΆααΆααααααΉααα½αααααΆααααΆαααααααα α α·αααααΎαααα·ααααααα½ααα α αΎαααααΆααααΆααααΎαααΆααααααααααα’ ααΈααααααααα»αααααα½αααΆαα’αααααααααααααΈαααα·αααααααααα’ααααααα½αααααΆααααααα
αααα·α αα·ααααααΌαααΆαααααΆααα
α αΎαααΆααΆααα’ααααΆαα αΆααααααΎααααΆαααΆαααααααααα ααααΈαααα‘αΆααα αααα αααααΆααααΆα (ααααααααααααααΆααααΆαααΆαααααααααα·ααΈααααΆαααααα) ααααααααααααα·ααααααααΌαααααα αα·αααΆαααα‘αΎα ααΈαααΈα’αα ααΈ (α ααα»α αααααΆααααα ααααααααααΆαα αααααΆααααΆα) ααααα·αααΎαααααΌαααΆααααααααα»αα αα»ααα·αααΆαααΆααααΆαα α αΎαααααΆαααααα»ααααααααΆα ααΈαααΈα’αα ααΈ - α’αααΈααααααααΆαααΊα’ααα αΆαααααΆααα ααΆαααα‘αΎαααΆααααΌαααΆαααααΎα‘αΎααααα»ααααααα 24 αααα αααα»αα αα»αααΆαααα½α PBX αααααΆαααααααα ααΆαααααααα α ααα»α αααααΆααααΆααααα½αααααΎ αα·αααΆαααααα»ααααααΆαααααΈ ααΌαααΉαααΆαααΆααααααααα·αααΎα ααααΆαα
ααα»ααααβαα·α αα ααΆαβαααβαα½αβα²ααβα αΆααβα’αΆααααααβαααα»αβααΊβαα·αβααΆαβαααααααΆα α αΎαβαααααΆααβααβααΆβαα·αβα’ααα αΆαααβααα»ααααΆαβααα αααααΆααααΆα α’αΆα βααααΎβααΆαβα αααΎα ααα»ααααβααΎααααΈβαααααΆβα ααα»α βαααααΆααβαααααΆαβα±ααβααααΎαααΆαβααΆα ααΆβα αΆαααΆα αβααααΌαβα αααΆαβαααβα αααΎαβααα ααΌα ααααααααααΆααααα’α·αααΌα αα½αα’αΆα α αααΆααααααΌαααΆαααΆαααα‘αΎα PBX ααααα αααα α αΎαα ααα»α ααααα·ααααααΆααΆααααΌαααΆααααααΌαααΎααααΈαααααα ααα»α αααααΆαααααααΆαααααα ααα»ααααα ααα»α ααααΆααααΊαααα·ααα αααα»αααααααααααΆααααααααα ααΈαααΈα’αα ααΈ. αα·ααΈααΆααααααα·αααααΆαααααααα ααΈαααΈα’αα ααΈ ααααΌαααΆαααΆααα αααα ααααα php4 α αΎααα ααααααααΆα php5.6 αα½α α αΎα αααα’αααΈαααΆααα’ααα’αΆα ααααΌαααΆαααααΎα±ααααΆααααααΆαααα αα·αααΆααααα½αααΆααα»αα
α αααΎαα α»ααααααααΊααααΌαααΆαααααΆα ααα·ααααα»αααααααααΆααααΆααααΆαα αα αααααααααα»αααααΆααΆααααΆαα’αααΈαα½αααΌα ααααααααΆαα ααΈαααΈα’αα ααΈαααα»αααΆαααΉαααΆαααα»αααΉαααααΌααααααααΆα‘αΎααα·ααααΆαααααΆαα α αΎαααΆααΉαααΆααααααΆααααα½ααααα»αααΆααααααΎαα’αααΈαααααααΈα
αααααΌαααΆαααααΆαααααΊα
- ααΆααααα αααααΆαααα α’αΆα α αΌαααααΎααΆαααααα·α αΆααααΆα ααΌααααΈααα’ααααααααααααααααΈααααααααααα ααΌα αααααααα»αα αα»ααα·ααααααΌαα±ααααΆαααΆαααααΆα PBX αα ααΆαααΎααα
- ααΆαααααααααΆααααα½α ααΎααααΈα±αααα·α αα ααΆαααααΌαααΆααααααααΆααααα»ααααααααΆαααααααααΆαα
- ααΆαααΆααααα½αααααΆααα½ααααα αΌαααΆαα½α PBX α ααΌ ααΈαααΈα’αα ααΈ αα·αααΆα API αααααΆααααΆαααααΆααααααΌαααΆαααααααα α§. ααΆα§ααΆα ααα α’ααααα·αα’αΆα αααααΎααααα»α α¬αααΊαα»αααα‘ααααΈαααααα·ααΈααΆααΈααΈααΈααΆααα ααΆααα API ααα»αααααα αααααΆααααΆα,
- opensource - αααααΆααα’αααααααααααααα·ααΈ αααααΊααΆαααΆααααααΆααααααΆααααΆαααααααΆααααΆααααααααααααΆααα’αα·αα·ααα
αααα·αααααΆαα’αα·ααααααααΏαααΆααα»αααΊααΎααααΈα±αααα»αααΆαααΆααα’ααααΆααααΌαα»ααα αααα»αααααααααααααα»α ααααα»ααΆααα’ααααααΌαααααΆαααααΆααααααΌαα αααααΆααααααΆααααααααα»αααΆαααααΆαααααΆααα’ααααααΌαααΆαααααααΆαααα½α α αΎα ααΌα ααααα αΎαααΆαααΆαα’αα»ααααααααΆαααΎααα½α α αΎαα ααααα»ααΉαα’αα»ααααΆαα±ααα’αααααΆααααααααααΆαα αααΎαααΌαα ααα½αα’αΆαα»ααααααααα»αααααααααΆα’αΆααααΆαααααααααΆαα½α string key αααα’αααα’αΆα ααααΎααα αααα»α ααΈαααΈα’αα ααΈ ααΆα’αΆα αα αα½α αααααΆααα·αα·αααααΎααα»αααΆαααΆααααΌα αα·ααα»αααΆααααααΆαααΆααα αααα»αααααΈααααα» ααΆααααααααααααααααααα· banal ααΉααααα αΆααααααααααααααα·ααΆααα’αα α αΎαααΆααΌαα ααΉαααααΎα±ααααΈαα·αααΆααααααΆα αααΎαααα ααΎαααΈααα αααα αα·ααα·αααααα‘αΎααα·αααΆααααααααΆααααα αΆααΆα αααΎαααΆαα½αααΉαααΆααααααααα½α α αΎαα
ααΏααααααΆαααααααααααααααααΆααΆαααΆαα‘αΎααα·α α αΎααα½ααααααΆαααΊααΆαα ααααα ααααα·αααΎααΆααααΌαα»ααααααα½ααα»αααααΌααααααΆααααΆαα α ααΌαααααααα αα·αααα·α ααααααΌαα»αααααααααααΆααα’αααααααααΌαααΆαααααΎααΆαα α αα αα»ααααα·ααα½αααααααΎααΆ αα·αααααααααΎαα αααΆααα ααααααααΆαααααα½ααααααα½αααααα ααΌα αααα ααααα·αααΎα’αααααααΌαααΆαααααΆααααααΌαα’αααΈαα½α αααα’αααααΉαααααΌαααααΆααααααΌααα αααααααααα½α α αΎαααΆαααααααα "αααααααααΆααααΎαααΆα" αα½αααααααΌαααΆαα’αα»αααααα αααααααααα½α α αΎααα·αααααααααααααααααααΆααααΌααααααα
ααααααααΌααα·αααα α»αααααΌα
ααααΌααααΌαααΊαα½α ααΆαααααα»ααααααααα½αααααΆαα PBX ααΆααααΌα ααΌα αααααΆαααααααα»α ααΊααΆααααααααααΌαα»α α αΎααααΌαα»ααα·αααααΉαααα’αΆα αααααααα»αααΆαααααΈαααααΆααααααΎαααΆαααΆαα α ααΌαααααααα»ααααααα ααα»αααααααααΆααααααΆααααααΌαα ααα»α αααααΆααααα ααααααααα½αα―ααααααα
ααΆα αααα·αααααΆααααααΎα dialplan αααα»ααααααααααααααααΆααααααααααα·ααααααΆαααααααα»ααα ααα»ααααααΆααΆααααα½αααΆαα α αΎααααα»αααΆαααααΎααΌα
ααααΆαααααΆαα αααααΆααααΆα.
ααΆααααααΆαααααααααΌαα»α α’αααααααααααααα·ααΈα’αΆα α
- αααααΎααα»αααΆαααααΆαααααα½αααααα’ααααααααΆααααααΎαααΆαα α αααα’αΆα ααΆαααα ααΎααααΆααααΆα ααααΌα ααΆαα αααα»ααααΊαα»αααΆαα»αα ααΆααααααα
- αααααΎααααααααααΆαααααα½αααααα’ααααααααΆααα ααα»α αααααΆααααα ααααα α αΎαααααααααααΌααααΆαααααα½αααααα’ααααα ααααααααααΆαααααΆαα (ααααα·αααΎα’αααα’αα·αααααααααααααΆαααααααααααΆααααΆ)
- ααααααααΆααααααααααα’ααααα ααααΆααααΆααααααααααΆαα α¬αααααΎαααααΆααααΆααααααααααΆαααααα½αααααα’ααα,
- α’αααααααααααααα·ααΈα’αΆα ααα½αααααααΈαααΌαα»ααααααΆαααααΆαα ααααΆααααααΌαααααααααα»αααΆα αα·αα α»ααααααααΆααααααααααααααΈ α¬αααα½ααααΌαα»αααΎαα
α§ααΆα ααα αααααΆαααααααα’αααα’αΆα αααααΎααααΊαα»αααα‘ααααααΆαααααα½αααααα’αααα
......
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__); //ΠΠΎΠ΄ΠΌΠ΅Π½ΠΈΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ
ααΆαα’αα»αααααααα»αααααααΆαααααΌαααΆαααΆαααααΌαααααααΆαααααΌααα·αααΆαααα α·αααααΆααΎαααααΌαα αααα»αααΈαααΆααααααΆααααΎαααΆα ααααααα»αα’αΆα αααααΎααα»αααΆαααααΆαααα‘αΎααα·αααΆαα αΎαα ααΈαααΈα’αα ααΈ. αααα»αααΈαααΆααααααα»αααα αΌαα α·ααααααα·ααααααααααΆαααα ααΆαα ααααΆααααααΎαααΆα αααΎαααΎααααΈααααα½ααααααΆαα’αα·αααααα ααα»ααααααΌααααΈαααα αααααα αα·α αα ααΆααα½αα ααα½αααααΌαααΆαααααΎα±ααααΆααααααΆααααα½ααα½α αα α αΎαα
API αααααΆααααΆαααααΆααααααΌαααΆαααααααα ααΆαααααααα PBX ααΊααΆααΆαααα α·ααααα½α - αααααααα·ααααααΆα’αααΈαααααΎαα ααααΆααααααα αααα»αααΆααααααααΆαααααΌα ααααΆααΉα ααΈαααΈα’αα ααΈαααα α»α αααΌαα»α α’αα»αααα ααΆαααααααα ααΆααααααααααΆααααΌαααααΌαααΆααααααΎαα‘αΎααα·α α αΎααααΌαα»αααααΌαααΆαα αΆααααααΎαα‘αΎααα·αα
ααΆααΎααα ααΌα αααα
*Dialplan ααΊααΆαααα½α (algorithm) αααααΆαα α
ααΌαααααααααΌαααΆαααααΎαααΆαα
ααα»ααααααΆαα½αααΉααααααΎαααα ααΆαα·αα’αΆα
αα
αα½α
αααααα»αααΆαααααα API ααααααΆαααααΆααααΆαααααΆααααααΌαααΆαααααα PBX α ααΈαα½αααααα·ααααα·ααΆαααααΆαα’αα»ααααααΆαααααΆααααααΌααα
αααααΆααααΆα ααΌαααα αα·αααααΆαα
αααΎα
ααΈααΈα α’ααααα·αα’αΆα
α α
αα»αααΆαααΈααααα»αααααααα½αααΆααα ααΈααααα ααΆααααΈαααΉααααααΎαααΆααααααα
ααΈααΈ ααΆα’αα»ααααααΆααααααααΆααα’αα αα½αααΆααααΆαααααααααααααΎα‘αΎααααα’ααααααααααααα
αα αααα»ααααααααααΌα αα αααα»α α’αΆααΌα αααααΆα’αΆα αααααΎαααΆαααααααα ααΆαααααααααααααΌαα»ααααααΆαααααΆααααααΌα αα·αα αΆααααααΎαα‘αΎααα·ααααααΌαα»αα αΆαααΆα αααα»ααααα ααα»ααααααΆαααααααΊααΆαα·ααΆαααΆαααΆαααααααΆαα ααΆα αΆαααΆα ααααα»αααΆαααααΆααααααΌααα·ααΈααΆαααααα
ααααααΈααΈαα α αααα»αααΆαα ααααααα»αααΆααααΆαα
αααα·αβααΎααααΈβαααααααΆαβαααα αΆβααΊβαα·αβααααΌαβαααααΎαβααΆαβαααααβαα ααΆαααααααα αα·αβαααααα·ααΈβα α βααΌαααααβα‘αΎαβαα·αβααα αααααΆααααΆαααα»αααααααααΆαα»αααααααΆααα ααΌαααααΆααα·αααααα α αΎαα’αΆαααΈααΌαααααΆααα·αααααααααααααΆαα ααααααααααΎαααΆαααΆαα α ααΌαααααα αααααΆααααΆα αααα»αααΉαααΈααααα’αΆαααΆααααααααΈααΌαααααΆααα·αααααααα½α α αΎα ααααΆααααααααΆααααααΌαααααααα αααα»αααΌαααααΆααα·αααααα α αΎαααΆαα α αααααΆααααΉαααααΌαααΆαααααΎαααΆαααααα·αααΌαααΈααΆαααααΆααααααΌα α αΎααα»αααΆαααΊααα’α₯αααα αααααααΆααααΆαα’αΆααααΆαααΆαααααα dialplan REALTIME_HASH.
αα ααΈαααα αα αα·αα αΆαααΆα αα αΆααααααΎαα‘αΎααα·αααα αααααΆααααΆα αα αααααααΆααααααΌαααΆαααααα α αΎαααΆααααααααΆααα’ααα αΆααααααΎαααααΌαααΆαα’αα»ααααααααΆαα αααααΆααααΆα.
ααΆαααααΆααααααΌααααα½ααααα αααα dialplan ααΊααΆαααααααααααααααα αα·α αααα½α. ααα»ααααααΆαααααααΊααΆααΆαααααΆααααααΌαααααααααΌα
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 ααΆααααααΎα dialplan ααΆααΆααΆ αααααΆααααΆα α αΎαααΆααΎααα αα·αα’αΆα α’αΆαααΆαααΆαααααα»α ααΌαααΉαααΆααΆαααα½αα―α αααααΆααααΆα αααααΆααβααΆαβααααα dialplan ααΆβααΊβααΆβααΏαβααΎαβαααα»αα
ααΎααΆααΎααα ααΌα α’αααΈα
$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 ααΈ php α αΎαααααΎ FastAGI α αΎααααααα αααΆααααααΎαααΆαααΆααα’αααα αααα»α PHP αααα½αα―αα FastAGI ααΆα’αα»ααααΆαα±αα αααααΆααααΆαααΎααααΈααααΎαααΆαααΆαα α ααααΆαααα ααααα ααα½αααΆααααααααΆααΈααΈααα α αΎαααααΎααααααα ααΌα αααα αααααα·ααααΆαα dialplan ααΊαα αααα ααααααααα½α αα α αΎα αααααΆααααΆα α αΎαα’αΆα ααααΌαααΆααααααααΆααΆααΆααΆαα½α αααα»αααααΈαααααααα»ααα αααα»α PHP α
ααΆαααΆαααΆααααα αα·αααα α»αα αααΎαα αααα αΆα ααααααΊααΆαααα»αααΆαααααΆαα / α―αααΆαααΆα αααΎααα½α αα α αΎαα ααΆααααΌαα αααΆαααααααα αα 1,5 αα·ααΆααΈααΎααααΈαααααΎαααααα» α αΆααααααΎααα½αααΆ αα·αα α»ααααααααααΆαα αα·ααα αα α αΎαααΆααααααΆααααααα»αααΆαα α ααΌαααααααααα·ααααααΆα’αααΈαααα’αΆα αα·αα’αΎααΎααΆαααα
ααΆαα αΆααααααΎααα½αααααΎαα‘αΎαααααααααα»ααααα ααΌα ααααα αΎαααΆαααααααααααααααααΆαααΆαα αΆααααααΎαααΆαα½αααΉαααΆααααααααααΆαααααα αααα»α php αααααααΎ αααααααα‘αΆα. αααααΆααβααΈβααΆαβαα·αααααβαα½αβαααααΆα α αααααΎαβαααβααααΌαβααΆαβααβαα»αβα ααβαααβααΆαβααΆαβαααα»αααααΆαβααβααααβαααβαααααα·ααΈβααααααβαααβααααΎαααΆαα αααααΆααααΈααΆαααααΎααααααααααααα½ααα αααα»αααααααΌαααααααα αααααααα·ααΈ asynchronous programming αα αααα»α PHP αααα»αααααΌαααΆαα’αααΈαααααΆαααα αααΆαααΉαα’αααα αΆααααααΎα PHP ααΆαα½α α αΎααααααααααααααΆα αααΎααααααΆαα PHP ααΊααααΎααααΆαααααα
αααααβααααΆαβααΊβααΆβααααΆβαα α»βααααβααααβααΎαβααααΆααβαα βαααα»α C αααβααααΌαβααΆαβα αααααβααΆαα½αβ PHPLIB. ααΆαααα»αα―αααΆα ATS php ααΆααα’αα αααα αΆααααΌαα»αααΆααα’ααα αΆααααααΎα ααααααααΆαα α αααα‘αααααα·ααα ααααΆαα αα·ααα αα α αΎααα ααααααα’αααΈααα½α ααΆαα αααααΆαα»αααΆαα»αα αααααΆααα½αααα FastAGI ααααααΈαααααΌαααΆααααααΎαα‘αΎα α αααΆααα ααααααΈααααΆαααααααΆααααααααΆααααΆααα’αα αα·ααα·ααααααααααΌαααΆααααααΎαα‘αΎααα·ααα αααα»αααΆ α αΎαααααΎααααΌαααΆααααααΌααα αα»αααΆα php α
ααΆαα½αααΉααααααααααΆαααα αααααααΆααΈααΆαααααΎααΆαα α αα ααΆααααααΆααααααΎααα ααΆααααΆααααααααΆααααΌα αααααΆααααΆα ααα α»αααΈ 1,5s αα 0,05s α αΎαααΎααααα’αΆαααααααααα·α ααΎααα αααααααααα
ααΆαααααα αααααααΆαααααΆααααΆαα’αα·αααααα dialplan ααααΌαααΆαααΆααααααααααΆαααααΆαα α αΎααααα»αα’αΆα ααΉααα»αα αααααααα αΆααα αααααΆααααα»αααααΌααααααα‘αΎααα·αααΌα dialplan αααααΌαα»αααΆααα’αααα αααα»α PHP α ααΈαα½α αα·ααΈααΆααααααα½αααααααΌαααΆαααααααα½α α αΎααα αααα»α php ααΎααααΈααα½αααΆαααααα»ααΈααΌαααααΆααα·αααααα αα½αααααααΌαααΆααααααΆααααΆααααα αΆααα αααα»αα ααα»α αααααΆαααααααΆα α αΎαααΈααΈα α αΎααααααΊααΆααΏαααααΆαα ααΈαααα»αααΆα’αΆα αα αα½α αααα»αααΆαααααΎααΆαααΆαα½αααααα’αααααααααΆαααα αα·αα’αΆααα ααΆαα½αααΉαααΌαααααΆααα·αααααα ααΌαααΉαααααααααααα PHP ααΆα αααΎαα
ααΎααααΈααααΎαααΆα dialplan αα αααα»αααααΆαααααΌαα»α α’αααααααΌαα’αα»αααααα»αααΆα ααΆαα α ααΌαααααααΆααααα αα·αα’αΆαα»ααααα pbxCallRequest ααΉαααΆαααααα»ααΎααααΈααααΎα’ααααααααααΆαα½α αααααΆααααΆα.
ααΎαααΈααα ααΆααΆαααααΆαααΆα’αΆα ααααΎαα ααΆαααΎααααΈααααΆααααα α»α dialplan (php ααΆα xdebug α αΎαααΆααααΎαααΆααααααΆααααααΆααααααααααΎα) α’αααα’αΆα ααααΆααααΈαα½αααα αΆααααα α αααααΎααααααααα’αααα
α α αα·αααααα
ααΆααα·ααΆα αα·ααααΆαααΆαααααΆαα½αααΆαααΆααα·ααααααααααααααΌαααΆαααααΉαααααΌα α αΎααααα»α PBX αααααααΆαααααααΆααααΆαααΆααααα αα·αααα α»αααΆα αααΎαααΈααααααΈαα½ααααααααααΈααΈα ααΆααΉαααΆαα αα·ααααααα α ααΌαααααααΊααΆαααααΆαα½αα ααΆαα α αα½α = ααΆααααααααΆαα½αα α’αααααΆα α α’αααααΆααααΎαααααααααααα½ααααα·ααΆαα αα αααα»ααααααΎααα½αα±ααα αΆααα’αΆααααααααααααααα ααΆααααααΆααααααααααααα αΆαααΆαα»ααααα·α PBX ααααΌαααΆαααα α α’αα‘α»ααααα α ααΌαααααα ααα»ααααααΆααα’αααααααααααααααααααααααααααααΌαααΆαααα»αααααα
αααααΌαααΆαααααΌαααΊα
- αααααΆαα»ααα·αααααΉαααα’αααααΆααα PBX α α ααα»αααααααααα»αααααααααΆααα’ααααααααααΎααααααααΈααααα ααΆαααΆαααααΆααα αΆαα α αΎαααΆααΉαα αΆαααΆα αααααΌααααααα·α αΆαααΆαα ααααα·ααΆαααΆαα α ααΌαααααα
- αααααααΆαα»ααααααααΆααααααααΆαα½ααα·αααα·αα αααα»α ααΈαααΈα’αα ααΈ αα·α PBXs αα½αα ααα½ααααααααα ααΆαα α ααΌαααααααααΌαααΆαα αΆαααα»αααΆααααΌαααΆαααααΎαααααααΆαααα αααααα PBX ααΎαααΌααααααα ααα»αααααααααΆαααααΊαα»αααα‘αα α’αααααααΌαααΎαααΌααααααα½α α αΎα ααΌα ααααααΆαα α ααΌαααααααΆααα’ααααααΌαααΆαααααΎααα α αΎααααααααΆαααα αΆααααααΆααα ααααΎαααΉαααααΆααα ααΆ 0-1 αα·ααΆααΈα ααΌα ααααα αΎα ααΆααααΌαααΆααααααα α α·ααααααααΆαα»ααα·αααααΉααααααααααΆαα»ααααααΆαααααΎαααααα»ααααααα ααα»αααααααααααΆαα»ααααααααΆααααΆαα½ααααΌαα»αααααΆααα (αααΌαα»ααααα½αααΆαααααααααααα αα αα α»ααααααααΆααΊααΆ "αα·αααα·α" "αααααΆααααΆααααα ")
- αααααΆαα dialplan αααα»αααααααΆαααΆαααα αα ααααααααΆαα α ααΌααααααααααΎααααΎααααΆααααα»αααααααααααΆ ααΆα αΆαααΆα ααααα»αααΆαα’αΆα αα·αα·αααααΎαααΆαα»ααΈαα½αααααα‘ααααΈααααΆα
αααααΎαααααα’αααα»αααΆαααααααααΆααα αααααααααΌαα»α PBX ααααΎααααααΆαα’αααΈαααα½ααααα ααΎααΆαα α ααΌααααα α αΎαα α»αααααααααααΆαα»αααααααΆααααα»αααααααααΆαααααΆαα
ααΆααΎααα ααΌα αααα
ααΈαα½α ααααααΆαααΌαα α’αααΈααΆαα α ααΌααααα (ααΌα α’ααααααααααα - ααααΆαα’αααΈαα·ααααα)α
- ααΆαβααα½αβααΆαβα α βααΌαααααβααΆαβααααβαααα "αααααΆααααΆαααΆααααα"αα αααα 05:55:52 ααΈααα 89295671458 αααααα 89999999999 αα ααΈαααα ααααΆααααΌαααΆαααααΎαααααααα»ααααα·α"ααααΆ α’Β» ααΆαα½αααα 104α α’αα·αα·αααααα αΆα 60 αα·ααΆααΈ α αΎααα·ααΆαααΆα 36 αα·ααΆααΈα
- αα»ααααα·α "ααααΆ α’"ααααΎααΆαα α αα ααα 112 α αΎααα»ααααα·αααααΆααααΆαααααΎα"α’αααααααααααα α‘Β» αααααΆααααΈ 8 αα·ααΆααΈα αα½ααααα·ααΆααααααα 14 αα·ααΆααΈα
- α’αα·αα·ααααααΌαααΆαααααααα αα·αααα·αα’αααααααααααα α‘" αααααΆααααααααααα½ααααααααα·ααΆααααααα 13 αα·ααΆααΈαααα
ααα»αααααααααΊααΆααααααΆααααα½αααααααΆααααΉααα αααααΆαααααααααααΆααΈαα½αα α’αααα’αΆα ααα½αααΆααααααααα·α α αααα’α·αααΆαααα PBX α
ααααααΆαααΆααα’ααααααΌαααΆααααα αΆαααΆαααα»αααααΆαα α ααΌαααααα
- ααΆαβααα½αβααΆαβα α βααΌαααααβααΆαβααααβαααα "αααααΆααααΆαααΆαααααΒ» ααααΆαααα 05:55:52 ααΈααα 89295671458 αααααα 89999999999α
- αα αααα 05:55:53 ααααααΆααααα ααΆαααααΎααΆαα α αα ααΆααααααααΈα αΌα "ααΆαααααΎαααααΒ»
- αα αααααααΎαααΆαααΆαα α ααΆααααααααΆααα αααΌαα»α "ααΆαα α α’αααααααααααα", αα αααα»αααΆαα α ααΊ 16 αα·ααΆααΈα αααααΊααΆαααΌαα»ααααααααΌαααΆααααααΎαα‘αΎααααααΆααα’αα·αα·ααα
- αααΌαα»α "ααΆαα α α’αααααααααααα"ααααΎααΆαα α αα αα»ααααα·ααααααα½ααα»αααααΌαα ααααααα (α’αα·αα·αα)"α’αααααααααααα α‘" α αΎααααα αΆα 5 αα·ααΆααΈαααααΆααααΆαααααΎαααα α’αααααααααααααα·αααΆαααααΎαααα
- αααΌαα»α "ααΆαα α α’αααααααααααα"ααααΎααΆαα α αα αααα»α"α’αααααααααααα CORP" ααΆαααααααΊααΆα’αααααααααααααααααααααααααΆααα·ααα ααΌα ααααΆ (α’αααα»ααα αααα»ααααααααααα½α) α αΎααααα αΆα 11 αα·ααΆααΈαααααΆααααΆαααααΎαααα
- αααα»α "α’αααααααααααα CORP"α α αα»ααααα·α"α’αααααααααααα α‘, α’αααααααααααα α‘, α’αααααααααααα α‘"αααα»ααααααααΆαααααΆαααααα α‘α‘ αα·ααΆααΈα ααααΆαβα ααααΎαα
- ααΆαα α ααααα’ααααααααααααααΆααααα ααα α αΎαααααααΈαααααΌαααΆαα α αα αααΌαα»α "ααΆαααααΎαααΎαααααΌαααΈ 1 α" ααααΆααααΌαα»αααααααααααΆααα’αα·αα·αααααααα αα ααΈαααααΆαα α ααΌαααααααααΌαααΆαααααΎαααΆααααααα 0 αα·ααΆααΈα
- ααααααΈαααααΌαααΆαα α αα ααΆαααααΊαα»αααα‘αα "ααΌαααααΆαααΆαα½αααΉαααΆαα α ααΌαααααααααααα" α’αα·αα·ααααΆααααα αΆααα ααΈααααααααα 31 αα·ααΆααΈ αα·αααΆαααΆαα α»α ααααααααα
- αααααααΆαααααααΎααΆαα α αα αααα»α "ααααΆαα·ααΆα" αααααΆαααααααααα’αα·αα·αααααα αΆα 12 αα·ααΆααΈα
- αα αααα»ααααα»ααα½α αα»ααααα·α 2 ααΆααααααΌαααΆαα α αααα»αααααααα½α "ααααΆ α’"α αΎα"ααααΆ α’"α αΎααααααΆααααΈ 12 αα·ααΆααΈαα·αααα·αααααΎα"ααααΆ α’" α ααααΎαβα ααααβααΆαβα α βααΌαααααβααααΌαβααΆαβα ααααβαα βαααα»αβααΆαβα α βααΌαααααβααααβααΆααΆαα·ααΆα ααΆααααααΆαα αααα»ααααα»αααΆααααΆαααααΎαααΆ "ααααΆ α’"αααα α ααααααΈααααΎα"ααααΆ α’" α αΎαααΆαααααΎαααΆαα α αααα αααααΆαααΆαα½α "ααααΆ α’"α
ααΆααΊααΆααΆααααααΆαα»αααααααΆαα’αααΈααααα·ααααα·ααΆαααΈαα½αα αα·αααΆαααΆαααααα»ααααααα½ααα αααααΉαααααΎα±ααααΆα’αΆα ααααΎαααΆαααΆαααααΆααααΆαααΆααααα αααΆαααΆααααα ααΎαααΊαα»αααα‘ααααΉααα½αα’αααα±ααααΉαααΆααΎααΆαα½αα¬ααΆααΆααααα»ααααΆαα αααααΎααααΆαααΆαααααααΈααΈααΆαα α ααΌααααααααααααΆαααααα·αααα·α ααααα·α αΆαααΆααΆααΆαα α ααΌαααααααααΌαααΆαααααΆαα ααΌα ααααααΆαα·αααααΌαααΆαα αΆαααα»αααΆααααΆαα‘αΎα α αΎααα·α αΆαααΆααΆααΆααΆααΆαα α ααΆαααα»α α αΎαα’αααααααααααααΆαααααΎααααα»αααα αααααΆααααααΆααΆαα α ααΌααααααααα·αααααΆααααα
ααΆααααα»αααααααΆαααααααααΉαα’αα»ααααΆαα±ααα’ααααααααα»αααΈαα½ααααΆα ααααα‘ααααΈααααΆ αα·ααααααααΈαααααααααΆααααΎαααΆαααααααααααααα·αααααΆα αα·ααααααΎαααααΆα αααααααα»ααααααΆαααααΎα αα·αααααΆαααΆαααααα α’αααααα’αΆα αα·αα·αααααΎαααΆααΎααΆαααααΆαααα α’αααααααααααααααααΆααααα½ααα»αααααΌαααΆαααΆαααααΉαααααΌαααααα·αααΆαααααΆααα·ααΆαααΆααααααααααΆαααααααΆααααΈααααΆαααα α’ααααααααααααα
α’αααααα’αΆα ααααΎααΆααα·ααααΆααΆαααα atypical ααααα α§ααΆα ααα ααΆααΎααΆααΉαααΆαααααααααα·αααΆααα αααα»αααΌαααααΆααα·ααααααα α»α αααααααααααααααΉαααααΌα α¬ααΆαααααααΆαα α α ααααααΌαααΆααααααΌααααααα ααΌααααααα αααα
ααΎααΆαα’αααΈαα ααΈαααα αα?
α’αααα―αααααα·ααααααΌαα±αααααααΆ PBX αα α’ααααααααααααααααααΆαααα»αα’αΆα ααααΎααΆααΆα - ααΆααααααααα»αααΆαα’αα»ααααα
αααααΆααααΆααααααα α’αααα―αααααααααΆααα»ααα»αααα·αααααααααααΊαα·αα αΆαααΆα ααα α ααααααΉαα’αααΈ PHP ααΊαααααααααΆααα αΎα ααΈααααα αααΌαα»αααααΌαααΆαααααααα½α α αΎααααααΆαααα·ααΈααΆα SIP αα·ααααααΆαααα½α αα·ααααααΆααα α αα»ααααα·α αα·αααααααααα ααΆαααααΆαααα»ααααααΆαα αααααΆααααΆα. ααΎααααΈα’αα·αααααααΌαα»α α’αααααααααααααα·ααΈα’αΆα (α αΎαααΆααα·ααΈααα’αα½ααα) α α αααΌαα»ααααααααααα½α ααΆααααα α αα·αα ααααααΉα αααααΆααααΆα αα·αα αΆαααΆα αααΆαααααα»ααα ααααα·αααΎα’αα·αα·ααααααΎαα»ααααααααααααααΆαα½αααΉααααΆαααΆαααααααΈαα½αα ααα½αα ααα»ααααααΆαα’αα»αααααααα αΆαααΆ αααααΈααΆα’αααααααααααααα·ααΈααΆααΈααΈααΈα’αΆα αααααααΆαααΆαααααα αααα½αααααΆαα’αΆααααααααΆααααΆααα»ααααα·ααΆααααααααΆαα―αααΆα αα·αααΆαααααααααααααααααΆααααα·ααααα ααΌα αααααα ααααΆααααααααααααΆαααααααα’α
αααΌαα»αα’αΆα α
- αααααΎααααααααΆαααααΎαααΆαααΆαα α ααΌααααααααααΈ,
- αααααααααα»αααααΈαα α ααα»α αααααΆαααααααΆα,
- ααα½αααααααΈαααΌαα»ααααααΆαααααΆααααΆαα½α ααααααα»αααΆαα‘αΎααα·α αα·ααααα½αααΆ α¬ααααΆααααααΆα αααΆααα αααααααααΆαααααααααααα·α ααααα½α α
- ααααααααΆααααααααααα’ααααα ααααΌααΆαααααααααααΌαα»ααααααααα αα·αα αααΎααααα
ααΆαααααα PBX ααΆαααα API α ααΌα αααααΆααα·αααααΆααΆαααΎ ααΆααααααααΆααα’ααααααΌαααΆααααααΆαα»ααααα»αααΌαααααΆααα·αααααα α αΎαα’αΆααα αααα α ααΌααααα ααΌα ααααα’αααα’αΆα ααααΆααααααΌαααΆαααααα PBX ααΆααα’ααααΆαααα API α αα αααα α API ααΆαααααααα ααΆαααααααααα·αααααΌαααΆααααααΎαα‘αΎααα·ααα α αΎααααΌαα»ααα·αααααΌαααΆαα αΆααααααΎαα‘αΎααα·ααα ααΌα ααααααΆαα·αααΆααααα αΆααΆααΎα’αααααΆαααΆαααααα αα·ααα»ααααα·αααα»ααααΆαααΆαααααααα ααααΎ API ααααΌαααΆαααααα·ααααα·αααΆαααΆαααα αα α αΎααα·αααΆααΆααααααΆαα αα·ααα ααααα
PBX αααααΆαα»αααΆααααααα·ααααα·ααΆαααααΆαααααΆαα½αααΉαααΆαα α ααΌααααααααααΆααααααα (αααα αΆα/ααΆαααααααΆ) ααΆαααΆαααααα»α αα·ααααα»ααααααααα PBX (αα»ααααα·α αααα»α ααααααΆααααα αα·ααααααΆααα ααα)α αααα’αα»ααααΆαα±ααα’ααααααααΎααααΆαααΆααααααααααααααΆααα’αα·αα·ααααΆααααΆαα α αΎαααΆαααΆαααΆαα αααΎαααΊαααααΎαα ααα»α αααααΆαααααααΆααααα½αααααΎα
αααααααΆααΉαααααΆααααΈα’αααΈαααααΉαααΎαα‘αΎααααααΆααα αα ααΆαα ααα»α ααααΆαααααΆα αααΎααααααααΌαααααΎα‘αΎααα·α ααΆαα ααααΆααααααΆαααΆα αααΎα ααα»αααααα½αααααΆαααΆαααααααα»ααα α αΆααααΆααααΈααΆααααααΎαααααααΈ 3 α αΎαααΎαα’αΆα αα·ααΆαααΆαααΆαααα·αααααααα»αααααΎαααΆαα αα»ααα·ααααα·α ααααααααααααΈ 3 ααΊααααΆααααααααΉα ααα»ααααααΆααααααΆαααααΊααΆα’αααΈαααα’αααααααΌαα αααΆααααααΆααααΆαααΆααααα½αααααΆαα’αα·ααααααα
ααααα: www.habr.com