確ãã«ãç§ãšåãããã«ãäœããŠããŒã¯ãªããšãããããšããã¢ã€ãã¢ãæã£ãŠãã人ã¯ããããããã§ãããã ãã®èšäºã§ã¯ãPBX ã®éçºæã«çŽé¢ããæè¡çãªåé¡ãšãã®è§£æ±ºçã«ã€ããŠèª¬æããŸãã ããããããã¯ã誰ããèªåã®ã¢ã€ãã¢ã決å®ããã®ã«åœ¹ç«ã¡ã誰ããããèžãŸããéããã©ãã®ã«åœ¹ç«ã€ã§ããããç§ãå é§è ã®çµéšããæ©æµãåããããã§ãã
ã¢ã€ãã¢ãšäž»èŠãªèŠä»¶
ãããŠããã¯ãã¹ãŠåã«ãžã®æããå§ãŸããŸãã ã¢ã¹ã¿ãªã¹ã¯ (éä¿¡ã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããã®ãã¬ãŒã ã¯ãŒã¯)ãé»è©±ãšã€ã³ã¹ããŒã«ã®èªåå FreePBX (ãŠã§ãã€ã³ã¿ãŒãã§ãŒã¹ ã¢ã¹ã¿ãªã¹ã¯ïŒã äŒæ¥ã®ããŒãºãå ·äœçã§ã¯ãªããèœåã®ç¯å²å ã§ããå Žå FreePBX - ãã¹ãŠãçŽ æŽãããã§ãã èšçœ®å šäœã¯ XNUMX æé以å ã«å®äºããå瀟ã¯èšå®æžã¿ã® PBXããŠãŒã¶ãŒãã¬ã³ããªãŒãªã€ã³ã¿ãŒãã§ã€ã¹ãããã³å¿ èŠã«å¿ããŠçããã¬ãŒãã³ã°ãšãµããŒããåããŸããã
ããããæãèå³æ·±ãã¿ã¹ã¯ã¯æšæºçã§ã¯ãªããããã»ã©çŽ æŽããããã®ã§ã¯ãããŸããã§ããã ã¢ã¹ã¿ãªã¹ã¯ ã¯å€ãã®ããšãã§ããŸãããWeb ã€ã³ã¿ãŒãã§ã€ã¹ãæ£åžžã«åäœãç¶ããã«ã¯ãäœåãã®æéãè²»ããå¿ èŠããããŸããã ãã®ããã现ããéšåãä¿®æ£ãããšãPBX ã®æ®ãã®éšåãèšçœ®ãããããã¯ããã«æéããããå¯èœæ§ããããŸãã éèŠãªã®ã¯ãWeb ã€ã³ã¿ãŒãã§ã€ã¹ã®äœæã«é·ãæéãããããšããããšã§ã¯ãªãããããéèŠãªã®ã¯ã¢ãŒããã¯ãã£äžã®æ©èœã«ãããŸã FreePBXã ã¢ãŒããã¯ãã£ã®ã¢ãããŒããšææ³ FreePBX php4 ã®æç¹ã§çå®ããããã®æç¹ã§ã¯ãã§ã« php5.6 ãããããã¹ãŠãããã·ã³ãã«ãã€äŸ¿å©ã«ããããšãã§ããŸããã
æåŸã®èª²é¡ã¯ãå³ã®åœ¢åŒã®ã°ã©ãã£ã«ã«ãªãã€ã€ã«ãã©ã³ã§ããã ãã®ãããªãã®ãæ§ç¯ããããšãããšãã FreePBXãå€§å¹ ã«æžãçŽãå¿ èŠããããæ°ãããã®ãæ§ç¯ããæ¹ãç°¡åã§ããããšã«æ°ã¥ããŸããã
äž»ãªèŠä»¶ã¯æ¬¡ã®ãšããã§ãã
- ã·ã³ãã«ãªã»ããã¢ããã§ãåå¿è ã®ç®¡çè ã§ãçŽæçã«ã¢ã¯ã»ã¹ã§ããŸãã ãããã£ãŠãäŒæ¥ã¯åœç€ŸåŽã§PBXã®ã¡ã³ããã³ã¹ãè¡ãå¿ èŠããªãã
- ã¿ã¹ã¯ãé©åãªæéå ã«è§£æ±ºã§ããããã«ç°¡åã«å€æŽã§ããŸãã
- PBXãšã®çµ±åã容æã§ãã U FreePBX èšå®ãå€æŽããããã® API ããããŸããã§ããã ããšãã°ããµãŒãããŒã㣠ã¢ããªã±ãŒã·ã§ã³ããã°ã«ãŒããé³å£°ã¡ãã¥ãŒãäœæããããšã¯ã§ããŸãããAPI èªäœããã®ã¿äœæã§ããŸãã ã¢ã¹ã¿ãªã¹ã¯,
- ãªãŒãã³ãœãŒã¹ - ããã°ã©ããŒã«ãšã£ãŠãããã¯ã¯ã©ã€ã¢ã³ãåãã«å€æŽãå ããäžã§éåžžã«éèŠã§ãã
éçºãè¿ éåãããšããèãã¯ããã¹ãŠã®æ©èœããªããžã§ã¯ãã®åœ¢åŒã®ã¢ãžã¥ãŒã«ã§æ§æããããšã§ããã ãã¹ãŠã®ãªããžã§ã¯ãã«ã¯å ±éã®èŠªã¯ã©ã¹ãå¿ èŠã§ãããããã¯ããã¹ãŠã®äž»èŠãªé¢æ°ã®ååããââã§ã«ããã£ãŠãããããããã©ã«ãã®å®è£ ããã§ã«ååšããããšãæå³ããŸãã ãªããžã§ã¯ãã䜿çšãããšãæååããŒãå«ãé£æ³é åã®åœ¢åŒã§åŒæ°ã®æ°ãå€§å¹ ã«æžããããšãã§ããŸããããã«ã€ããŠã¯ã次ã®ãšããã§ãã FreePBX é¢æ°å šäœãšå ¥ãåé¢æ°ã調ã¹ãããšã§å¯èœã§ããã ãªããžã§ã¯ãã®å Žåãå¹³å¡ãªãªãŒãã³ã³ããªãŒãã§ãã¹ãŠã®ããããã£ã衚瀺ãããäžè¬ã«äœæ¥ãäœåãç°¡çŽ åãããŸãã ããã«ãç¶æ¿ãšåå®çŸ©ã«ãããå€æŽã«é¢ããå€ãã®åé¡ããã§ã«è§£æ±ºãããŠããŸãã
次ã«ãåäœæ¥æéãé ããããã®ã§ãããé¿ãã䟡å€ãããã®ã¯éè€ã§ãã åŸæ¥å¡ã«ãã€ã€ã«ããã¢ãžã¥ãŒã«ãããå ŽåãåŸæ¥å¡ã«é»è©±ããããå¿ èŠãããä»ã®ãã¹ãŠã®ã¢ãžã¥ãŒã«ã¯ããã䜿çšããå¿ èŠããããç¬èªã®ã³ããŒãäœæããå¿ èŠã¯ãããŸããã ãããã£ãŠãäœããå€æŽããå¿ èŠãããå Žåã¯ãXNUMX ãæã®ã¿ãå€æŽããå¿ èŠãããããã©ã®ããã«æ©èœããããã®æ€çŽ¢ã¯ XNUMX ãæã§å®è¡ããå¿ èŠãããããããžã§ã¯ãå šäœã§æ€çŽ¢ããå¿ èŠã¯ãããŸããã
æåã®ããŒãžã§ã³ãšæåã®ãšã©ãŒ
æåã®ãããã¿ã€ã㯠XNUMX 幎以å ã«å®æããŸããã èšç»ã©ãããPBX å šäœã¯ã¢ãžã¥ãŒã«åŒã§ãããã¢ãžã¥ãŒã«ã¯é話ãåŠçããããã®æ°ããæ©èœãè¿œå ããã ãã§ãªããWeb ã€ã³ã¿ãŒãã§ã€ã¹èªäœãå€æŽããããšãã§ããŸããã
ã¯ãããã®ãããªã¹ããŒã ã®åœ¢ã§ãã€ã€ã«ãã©ã³ãæ§ç¯ãããšããã¢ã€ãã¢ã¯ç§ã®ãã®ã§ã¯ãããŸããããéåžžã«äŸ¿å©ãªã®ã§ãç§ãåãããã«ããŸãã ã¢ã¹ã¿ãªã¹ã¯.
ã¢ãžã¥ãŒã«ãäœæããããšã§ãããã°ã©ããŒã¯ãã§ã«æ¬¡ã®ããšãè¡ãããšãã§ããŸãã
- é話åŠççšã®ç¬èªã®æ©èœãäœæããå³äžãå·ŠåŽã®èŠçŽ ã®ã¡ãã¥ãŒã«é 眮ã§ããŸãã
- Web ã€ã³ã¿ãŒãã§ãŒã¹çšã«ç¬èªã®ããŒãžãäœæããæ¢åã®ããŒãžã«ãã³ãã¬ãŒããè¿œå ããŸã (ããŒãžéçºè ããããæäŸããŠããå Žå)ã
- èšå®ãã¡ã€ã³èšå®ã¿ãã«è¿œå ããããç¬èªã®èšå®ã¿ããäœæããŸãã
- ããã°ã©ãã¯æ¢åã®ã¢ãžã¥ãŒã«ãç¶æ¿ããããæ©èœã®äžéšãå€æŽããŠæ°ããååã§ç»é²ããããå ã®ã¢ãžã¥ãŒã«ã眮ãæãããã§ããŸãã
ããšãã°ã次ã®ããã«ããŠç¬èªã®é³å£°ã¡ãã¥ãŒãäœæã§ããŸãã
......
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ã 人ã ããã®èšç»ã®ã¢ã€ãã¢ãæ°ã«å ¥ã£ãŠãããããšãããããã£ãã§ãã éçºãç°¡çŽ åããããã®ãªãã·ã§ã³ã¯ãŸã ãããããããŸãããããã®æç¹ã§ãããäžéšã®ã¿ã¹ã¯ã¯ãã§ã«ç°¡çŽ åãããŠããŸããã
PBX æ§æãå€æŽããããã® API ã¯æ®å¿µã§ãããçµæã¯ç§ãã¡ãæãã§ãããã®ã§ã¯ãããŸããã§ããã ãšåãåçãæ¡çšããŸãã FreePBXããé©çšããã¿ã³ãã¯ãªãã¯ãããšãæ§æå šäœãåäœæãããã¢ãžã¥ãŒã«ãåèµ·åãããŸãã
ããã¯æ¬¡ã®ããã«ãªããŸãã
*ãã€ã€ã«ãã©ã³ã¯ãé話ãåŠçãããã«ãŒã« (ã¢ã«ãŽãªãºã ) ã§ãã
ãã ãããã®ãªãã·ã§ã³ã䜿çšãããšãPBX èšå®ãå€æŽããããã®éåžžã® API ãäœæããããšã¯ã§ããŸããã ãŸããå€æŽãé©çšããæäœ ã¢ã¹ã¿ãªã¹ã¯ é·ãããŠãªãœãŒã¹ã倧éã«æ¶è²»ããŸãã
次ã«ãXNUMX ã€ã®é¢æ°ãåæã«åŒã³åºãããšã¯ã§ããŸããã ã©ã¡ããæ§æãäœæããŸãã
XNUMX çªç®ã«ã管çè
ãè¡ã£ãèšå®ãå«ããã¹ãŠã®èšå®ãé©çšãããŸãã
ãã®ããŒãžã§ã³ã§ã¯ã次ã®ããã« ã¢ã¹ã³ãžã¢ã§ã¯ãå€æŽãããã¢ãžã¥ãŒã«ã®ã¿ã®æ§æãçæããå¿ èŠãªã¢ãžã¥ãŒã«ã®ã¿ãåèµ·åããããšã¯å¯èœã§ãããããããã¯ãã¹ãŠäžéå端ãªå¯Ÿçã§ãã ã¢ãããŒããå€ããå¿ èŠããããŸããã
XNUMX çªç®ã®ããŒãžã§ã³ã 錻ãæãã尻尟ãè©°ãŸã£ãŠãã
åé¡ã解決ããããã®ã¢ã€ãã¢ã¯ãæ§æãšãã€ã€ã«ãã©ã³ãåäœæããããšã§ã¯ãããŸããã§ããã ã¢ã¹ã¿ãªã¹ã¯ãã ããæ å ±ãããŒã¿ããŒã¹ã«ä¿åããé話ã®åŠçäžã«ããŒã¿ããŒã¹ããçŽæ¥èªã¿åããŸãã ã¢ã¹ã¿ãªã¹ã¯ ããŒã¿ããŒã¹ããèšå®ãèªã¿åãæ¹æ³ã¯ãã§ã«ç¥ã£ãŠããŸãããããŒã¿ããŒã¹å ã®å€ãå€æŽããã ãã§ã次ã®åŒã³åºãã¯å€æŽãèæ ®ããŠåŠçãããŸãããã®é¢æ°ã¯ãã€ã€ã«ãã©ã³ã®ãã©ã¡ãŒã¿ãŒãèªã¿åãã®ã«æé©ã§ããã 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 æäœã§ã¯ã¢ã¯ã·ã§ã³ãå¿ èŠãšãªãããã ã¢ã é»è©±)ã
æåã®å°é£ãªå®è£ ã§ã¯ãåã³æåã®èªããšå€±æãããããããŸããã ããŸããã£ãŠããã£ãã§ãã ããŒã¿ããŒã¹ãã¯ãªãã£ã«ã« ãªã³ã¯ã«ãªãããã£ã¹ã¯ãžã®äŸå床ãé«ãŸãããªã¹ã¯ãå¢å ããŸãããããã¹ãŠãå®å®ããŠåé¡ãªãåäœããŸããã ãããŠæãéèŠãªããšã¯ãWeb ã€ã³ã¿ãŒãã§ã€ã¹ãéããŠå®è¡ã§ãããã¹ãŠã®æäœã API ãéããŠå®è¡ã§ããããã«ãªããåãã¡ãœããã䜿çšãããããã«ãªã£ããšããããšã§ãã ããã«ã管çè ãå¿ããã¡ã ã£ããPBX ã«èšå®ãé©çšããã¿ã³ã Web ã€ã³ã¿ãŒãã§ã€ã¹ããåé€ãããŸããã
æ®å¿µã ã£ãã®ã¯ãéçºãããè€éã«ãªã£ãããšã§ãã æåã®ããŒãžã§ã³ä»¥æ¥ã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'))
XNUMX çªç®ã®ããŒãžã§ã³ã§ã¯ããã€ã€ã«ãã©ã³ããŠãããŒãµã«ã«ãªãããã©ã¡ãŒã¿ã«å¿ããŠå¯èœãªãã¹ãŠã®åŠçãªãã·ã§ã³ãå«ãŸãããµã€ãºãå€§å¹ ã«å¢å ããŸããã ããããã¹ãŠãéçºæéãå€§å¹ ã«é ããããŸããã€ã€ã«ãã©ã³ã«å¹²æžããå¿ èŠããããšèããã ãã§æ²ãããªããŸããã
XNUMXçªç®ã®ããŒãžã§ã³
åé¡ã解決ããããã®ã¢ã€ãã¢ã¯ãçæããããšã§ã¯ãããŸããã§ããã ã¢ã¹ã¿ãªã¹ã¯ PHPãããã€ã€ã«ãã©ã³ãäœæããŠäœ¿çšãã FastAGI ãã¹ãŠã®åŠçã«ãŒã«ã PHP èªäœã«èšè¿°ããŸãã FastAGI èš±å¯ãã ã¢ã¹ã¿ãªã¹ã¯ãåŒã³åºããåŠçããã«ã¯ããœã±ããã«æ¥ç¶ããŸãã ããããã³ãã³ããåä¿¡ããçµæãéä¿¡ããŸãã ãããã£ãŠããã€ã€ã«ãã©ã³ã®ããžãã¯ã¯ãã§ã«å¢çã®å€ã«ãããŸã ã¢ã¹ã¿ãªã¹ã¯ ã©ã®èšèªã§ãæžãããšãã§ããŸãããç§ã®å Žå㯠PHP ã§ãã
ããããã®è©Šè¡é¯èª€ããããŸããã äž»ãªåé¡ã¯ããã§ã«ããããã®ã¯ã©ã¹/ãã¡ã€ã«ãããããšã§ããã ãªããžã§ã¯ãã®äœæãåæåãçžäºã®ç»é²ã«ã¯çŽ 1,5 ç§ããããŸãããåŒã³åºãããšã®ãã®é 延ã¯ç¡èŠã§ãããã®ã§ã¯ãããŸããã
åæå㯠1 åã ãå®è¡ããå¿ èŠãããããã解決çã®æ€çŽ¢ã¯ã次ã䜿çšã㊠php ã§ãµãŒãã¹ãèšè¿°ããããšããå§ãŸããŸããã Pã¹ã¬ããã XNUMX é±éã®å®éšã®åŸããã®æ¡åŒµæ©èœã®ä»çµã¿ãè€éã§ããããããã®ãªãã·ã§ã³ã¯èŠéãããŸããã XNUMX ãæã®ãã¹ãã®åŸãPHP ã§ã®éåæããã°ã©ãã³ã°ãæŸæ£ããå¿ èŠããããŸãããã·ã³ãã«ã§ PHP åå¿è ã«ãšã£ãŠéŠŽæã¿ã®ãããã®ãå¿ èŠã§ãããPHP ã®æ¡åŒµæ©èœã®å€ãã¯åæåã§ãã
解決çã¯ãC ã§ã³ã³ãã€ã«ãããç¬èªã®ãã«ãã¹ã¬ãã ãµãŒãã¹ã§ããã PHPLIBã ãã¹ãŠã® ATS PHP ãã¡ã€ã«ãããŒããããã¹ãŠã®ã¢ãžã¥ãŒã«ãåæåãããã®ãåŸ ã¡ãçžäºã«ã³ãŒã«ããã¯ãè¿œå ãããã¹ãŠã®æºåãã§ããããã£ãã·ã¥ããŸãã ãåãåããã®é㯠FastAGI ã¹ããªãŒã ãäœæããããã¹ãŠã®ã¯ã©ã¹ãšããŒã¿ã®ãã£ãã·ã¥ããã®ã³ããŒããã®äžã§åäœæããããªã¯ãšã¹ãã php é¢æ°ã«æž¡ãããŸãã
ãã®ãœãªã¥ãŒã·ã§ã³ã§ã¯ããµãŒãã¹ã«åŒã³åºããéä¿¡ããŠããæåã®ã³ãã³ããéä¿¡ããããŸã§ã®æéãççž®ãããŸãã ã¢ã¹ã¿ãªã¹ã¯ æé㯠1,5 ç§ãã 0,05 ç§ã«ççž®ããããã®æéã¯ãããžã§ã¯ãã®ãµã€ãºã«ãããã«äŸåããŸãã
ãã®çµæããã€ã€ã«ãã©ã³ã®éçºæéãå€§å¹ ã«ççž®ãããŸãããPHP ã§ãã¹ãŠã®ã¢ãžã¥ãŒã«ã®ãã€ã€ã«ãã©ã³å šäœãæžãçŽãå¿ èŠããã£ãã®ã§ãããã¯é«ãè©äŸ¡ã§ããŸãã 第äžã«ãããŒã¿ããŒã¹ãããªããžã§ã¯ããååŸããããã®ã¡ãœããããã§ã« php ã§èšè¿°ãããŠããå¿ èŠããããŸããããã㯠Web ã€ã³ã¿ãŒãã§ã€ã¹ã§ã®è¡šç€ºã«å¿ èŠã§ããã第äºã«ããããéèŠãªããšã§ãããã€ãã«æ°å€ãšé åãå«ãæååã䟿å©ã«æäœã§ããããã«ãªããŸãããããŒã¿ããŒã¹ãšå€ãã® PHP æ¡åŒµæ©èœãåããŠããŸãã
ã¢ãžã¥ãŒã« ã¯ã©ã¹ã§ãã€ã€ã«ãã©ã³ãåŠçããã«ã¯ãé¢æ°ãå®è£ ããå¿ èŠããããŸãã ãã€ã€ã«ãã©ã³åçã³ãŒã« ãããŠè°è« pbxCallRequest 察話ãããªããžã§ã¯ããå«ãŸããŸã ã¢ã¹ã¿ãªã¹ã¯.
ãŸãããã€ã€ã«ãã©ã³ããããã°ã§ããããã«ãªãïŒphpã«ã¯xdebugããããåŒç€Ÿã®ãµãŒãã¹ã§åäœããŸãïŒãå€æ°ã®å€ã確èªããããšã§æ®µéçã«é²ããããšãã§ããŸãã
é話ããŒã¿
åæãã¬ããŒãã«ã¯æ£ããåéãããããŒã¿ãå¿ èŠã§ããããã® PBX ãããã¯ããæåã®ããŒãžã§ã³ãã XNUMX çªç®ã®ããŒãžã§ã³ãŸã§ãå€ãã®è©Šè¡é¯èª€ãè¡ãããŸããã å€ãã®å Žåãé話ããŒã¿ã¯å åã§ãã XNUMX åã®é話 = XNUMX åã®é²é³: 誰ãé»è©±ãããã誰ãå¿çããã©ã®ããã話ãããã ããã«èå³æ·±ããªãã·ã§ã³ã§ã¯ãé話äžã«ã©ã® PBX åŸæ¥å¡ã«é»è©±ããã£ããã瀺ãè¿œå ã®æšèããããŸãã ããããããã¯ããŒãºã®äžéšããã«ããŒããŠããŸããã
åæèŠä»¶ã¯æ¬¡ã®ãšããã§ãã
- PBX ã誰ã«é»è©±ãããããã ãã§ãªãã誰ãå¿çããããä¿åãããŸãã ååããããé話ãåæããéã«ã¯ãããèæ ®ããå¿ èŠããããŸãã
- åŸæ¥å¡ãšé£çµ¡ãåããŸã§ã®æéã 㧠FreePBX ããã³ä»ã®äžéšã® PBX ã§ã¯ãPBX ãé»è©±ãåãããšããã«é話ã«å¿çãããšã¿ãªãããŸãã ãã ããé³å£°ã¡ãã¥ãŒã®å Žåã¯ãé»è©±ãåãå¿ èŠãããããããã¹ãŠã®é»è©±ã«å¿çããå¿çãŸã§ã®åŸ ã¡æé㯠0 ïœ 1 ç§ã«ãªããŸãã ããã§ãå¿çãŸã§ã®æéã ãã§ãªããäž»èŠãªã¢ãžã¥ãŒã«ïŒã¢ãžã¥ãŒã«èªäœããã®ãã©ã°ãèšå®ããŸããçŸåšã¯ãåŸæ¥å¡ãããå€ç·ãïŒã«æ¥ç¶ãããŸã§ã®æéãç¯çŽããããšã«ããŸããã
- ããè€éãªãã€ã€ã«ãã©ã³ã§ã¯ãé話ãç°ãªãã°ã«ãŒãéã移åãããšãã«ãåèŠçŽ ãåå¥ã«æ€æ»ã§ããå¿ èŠããããŸããã
æè¯ã®ãªãã·ã§ã³ã¯ãPBX ã¢ãžã¥ãŒã«ãé話äžã«èªåèªèº«ã«é¢ããæ å ±ãéä¿¡ããæçµçã«ãã®æ å ±ãããªãŒåœ¢åŒã§ä¿åããããšã§ããããšãå€æããŸããã
ããã¯æ¬¡ã®ããã«ãªããŸãã
ãŸããé話ã«é¢ããäžè¬çãªæ å ±ã§ã (ä»ã®çãããšåæ§ãç¹å¥ãªããšã¯äœããããŸãã)ã
- å€ç·ã§é»è©±ãããã£ãŠããŸãããçå°ã®ããã05:55:52ã«ãçªå·89295671458ããçªå·89999999999ãŸã§ãæçµçã«ã¯åŸæ¥å¡ãå¿çããŸããããç§æž2» çªå· 104ãã¯ã©ã€ã¢ã³ã㯠60 ç§åŸ æ©ãã36 ç§éé話ããŸããã
- åŸæ¥å¡ "ç§æž2ã112çªã«é»è©±ãããšåŸæ¥å¡ãåºãããããŒãžã£ãŒ1» 8ç§åŸã 圌ãã¯14ç§é話ããŸãã
- ã¯ã©ã€ã¢ã³ãã¯åŸæ¥å¡ã«è»¢éãããŸããããããŒãžã£ãŒ1â ããã§åœŒãã¯ããã« 13 ç§é話ãç¶ããŸã
ãã ããããã¯æ°·å±±ã®äžè§ã§ãããPBX ãéããŠã¬ã³ãŒãããšã«è©³çŽ°ãªé話履æŽãååŸã§ããŸãã
ãã¹ãŠã®æ å ±ã¯åŒã³åºãã®ãã¹ããšããŠè¡šç€ºãããŸãã
- å€ç·ã§é»è©±ãããã£ãŠããŸãããçå°ã®ãã» 05:55:52ãçªå· 89295671458 ããçªå· 89999999999 ãŸã§ã
- 05:55:53 ã«ãå€ç·ãçä¿¡åç·ã«ã³ãŒã«ãéä¿¡ããŸããtest»
- ã¹ããŒã ã«åŸã£ãŠé話ãåŠçãããšããã¢ãžã¥ãŒã«ããããŒãžã£ãŒã®é»è©±ããé話æéã¯16ç§ã§ãã ããã¯ã¯ã©ã€ã¢ã³ãåãã«éçºãããã¢ãžã¥ãŒã«ã§ãã
- ã¢ãžã¥ãŒã«ããããŒãžã£ãŒã®é»è©±ããã®çªå·ãæ åœããåŸæ¥å¡ïŒã¯ã©ã€ã¢ã³ãïŒã«é»è©±ãéä¿¡ããŸãããããŒãžã£ãŒ1ããšå ¥åããå¿çã 5 ç§åŸ ã¡ãŸãã ãããŒãžã£ãŒã¯çããªãã£ãã
- ã¢ãžã¥ãŒã«ããããŒãžã£ãŒã®é»è©±ãã°ã«ãŒãã«é»è©±ãéä¿¡ããŸããCORPãããŒãžã£ãŒã ãããã¯åãæ¹åã®ä»ã®ãããŒãžã£ãŒ (åãéšå±ã«åº§ã£ãŠããŸã) ã§ãå¿çã 11 ç§åŸ ã£ãŠããŸãã
- ã°ã«ãŒã "CORPãããŒãžã£ãŒãåŸæ¥å¡ã«é»è©±ããããããããŒãžã£ãŒ1, ãããŒãžã£ãŒ2, ãããŒãžã£ãŒ3ãåæã«11ç§éã çãã¯ãããŸããã
- ãããŒãžã£ãŒã®é»è©±ãçµãããŸãã ãããŠåè·¯ã¯ã¢ãžã¥ãŒã«ã«åŒã³åºããéä¿¡ããŸãã1cããã«ãŒããéžæããã ã¯ã©ã€ã¢ã³ãçšã«æžãããã¢ãžã¥ãŒã«ã§ããããŸãã ããã§ã¯ãé話㯠0 ç§éåŠçãããŸããã
- åç·ã¯é³å£°ã¡ãã¥ãŒã«é話ãéä¿¡ããŸããåºæ¬ãšè¿œå ãã€ã€ã«ã ã¯ã©ã€ã¢ã³ãã¯ãã㧠31 ç§éåŸ æ©ããŸããããè¿œå ã®ãã€ã€ã«ã¯ãããŸããã§ããã
- ãã®ã¹ããŒã ã¯ã°ã«ãŒãã«åŒã³åºããéä¿¡ããŸããç§æž"ãã¯ã©ã€ã¢ã³ã㯠12 ç§åŸ æ©ããŸããã
- ã°ã«ãŒãã§ã¯2人ã®ç€Ÿå¡ãåæã«åŒã³åºãããŸãããç§æž1"ãããŠ"ç§æž2ããã㊠12 ç§åŸã«åŸæ¥å¡ãçããŸããç§æž2ã åŒã³åºãã«å¯Ÿããå¿çã¯ã芪åŒã³åºãã«è€è£œãããŸãã ã°ã«ãŒãã®äžã§åœŒã¯ããçããããšãããããŸãããç§æž2"ãåç·ã«é»è©±ãããšå¿çãããŸãã"ç§æž2ããšå€ç·ã§é»è©±ã«åºãŸãããç§æž2'ã
åæäœãšãã®ãã¹ãã«é¢ããæ å ±ãä¿åããããšã§ãç°¡åã«ã¬ããŒããäœæã§ããããã«ãªããŸãã é³å£°ã¡ãã¥ãŒã«é¢ããã¬ããŒãã¯ãé³å£°ã¡ãã¥ãŒãã©ã®çšåºŠåœ¹ç«ã€ãããŸãã¯åŠšããããç¥ãã®ã«åœ¹ç«ã¡ãŸãã åŸæ¥å¡ãäžåšçä¿¡ã«é¢ããã¬ããŒããäœæããŸãããã®éãé話ã¯ååãããããäžåšãšã¯ã¿ãªãããªãããšããŸããã°ã«ãŒãé話ã§ãããä»ã®äººãå ã«å¿çããŠãããããé話ãäžåšã§ã¯ãªãã£ãããšãèæ ®ããŸãã
ãã®ãããªæ å ±ã¹ãã¬ãŒãžã䜿çšãããšãåã°ã«ãŒããåå¥ã«ååŸããŠããããã©ã®çšåºŠå¹æçã«æ©èœããããå€æããæéããšã«åçããã°ã«ãŒããšæ¬ åžããã°ã«ãŒãã®ã°ã©ããäœæããããšãã§ããŸãã ãŸãããããŒãžã£ãŒã«æ¥ç¶ããåŸã®è»¢éãåæããããšã§ãæ åœãããŒãžã£ãŒãžã®æ¥ç¶ãã©ã®çšåºŠæ£ç¢ºã§ãããã確èªããããšãã§ããŸãã
ãŸããããŒã¿ããŒã¹ã«ãªãçªå·ãæ£ããå ç·çªå·ã«ãã€ã€ã«ããé »åºŠããçºä¿¡é話ã®äœããŒã»ã³ããæºåž¯é»è©±ã«è»¢éãããããªã©ãéåžžã«ç¹æ®ãªèª¿æ»ãè¡ãããšãã§ããŸãã
ãã®çµæã¯ïŒ
PBX ã®ä¿å®ã«ã¯å°é家ã¯å¿ èŠãããŸãããå®éã«ãã¹ãæžã¿ã§ãããæ®éã®ç®¡çè ãä¿å®ã§ããŸãã
å€æŽã«ã¯ãé«åºŠãªè³æ Œãæã€å°é家ã¯å¿ èŠãããŸãããPHP ã®ç¥èãããã°ååã§ãã SIP ãããã³ã«ããã¥ãŒãåŸæ¥å¡ãžã®é話ãªã©ã®ã¢ãžã¥ãŒã«ããã§ã«äœæãããŠããŸãã ã®ã©ãããŒã¯ã©ã¹ããããŸã ã¢ã¹ã¿ãªã¹ã¯ã ã¢ãžã¥ãŒã«ãéçºããããã«ãããã°ã©ãã¯æ¢è£œã®ã¢ãžã¥ãŒã«ãåŒã³åºãããšãã§ããŸã (ãããŠãè¯ãæ¹æ³ã§åŒã³åºãå¿ èŠããããŸã)ã ãããŠç¥è ã¢ã¹ã¿ãªã¹ã¯ ã¯ã©ã€ã¢ã³ããæ°ããã¬ããŒããå«ãããŒãžã®è¿œå ãèŠæ±ããå Žåã¯ããããã¯ãŸã£ããå¿ èŠãããŸããã ããããå®éã®çµéšããããµãŒãããŒãã£ã®ããã°ã©ãã¯å¯ŸåŠã§ãããã®ã®ãææžåãã³ã¡ã³ãã®éåžžã®ã«ããŒããªããšäžå®ãæããããšãããã£ãŠããããŸã æ¹åã®äœå°ããããŸãã
ã¢ãžã¥ãŒã«ã¯æ¬¡ã®ããšãã§ããŸãã
- æ°ããé話åŠçæ©èœãäœæãã
- æ°ãããããã¯ã Web ã€ã³ã¿ãŒãã§ã€ã¹ã«è¿œå ãã
- æ¢åã®ã¢ãžã¥ãŒã«ã®ãããããç¶æ¿ããããé¢æ°ãåå®çŸ©ããŠçœ®ãæãããããããã¯åã«ãããã«å€æŽãå ããã³ããŒã§ãããã
- ä»ã®ã¢ãžã¥ãŒã«ã®èšå®ãã³ãã¬ãŒããªã©ã«èšå®ãè¿œå ããŸãã
APIçµç±ã§PBXèšå®ãè¡ããŸãã äžã§èª¬æããããã«ããã¹ãŠã®èšå®ã¯ããŒã¿ããŒã¹ã«ä¿åãããé話æã«èªã¿åããããããAPI ãéããŠãã¹ãŠã® PBX èšå®ãå€æŽã§ããŸãã API ãåŒã³åºããšããæ§æã¯åäœæããããã¢ãžã¥ãŒã«ã¯åèµ·åãããŸããããã®ãããèšå®æ°ãåŸæ¥å¡ã®æ°ã¯é¢ä¿ãããŸããã API ãªã¯ãšã¹ãã¯è¿ éã«å®è¡ãããçžäºã«ãããã¯ãããŸããã
PBX ã¯ãé話æé (åŸ æ©/äŒè©±)ããã¹ããããã³ PBX çšèª (åŸæ¥å¡ãã°ã«ãŒããå€ç·ãéãã£ãã«ãçªå·) ãæã€é話ã«é¢ãããã¹ãŠã®äž»èŠãªæäœãä¿åããŸãã ããã«ãããç¹å®ã®ã¯ã©ã€ã¢ã³ãåãã«ããŸããŸãªã¬ããŒããäœæã§ããããã«ãªããäœæ¥ã®ã»ãšãã©ã¯äœ¿ããããã€ã³ã¿ãŒãã§ã€ã¹ãäœæããããšã«ãªããŸãã
次ã«äœãèµ·ãããã¯æéãæããŠãããã§ãããã ãŸã ããçŽãå¿ èŠã®ãããã¥ã¢ã³ã¹ãå€ããèšç»ããããããããŸããã第 3 ããŒãžã§ã³ã®äœæãã 3 幎ãçµéãããã®ã¢ã€ãã¢ã¯ãã§ã«æ©èœããŠãããšèšããŸãã ããŒãžã§ã³ XNUMX ã®äž»ãªæ¬ ç¹ã¯ããŒããŠã§ã¢ ãªãœãŒã¹ã§ãããéåžžãããã¯éçºã容æã«ããããã«æ¯æããªããã°ãªããªããã®ã§ãã
åºæïŒ habr.com