ããããžã§ãã³ã°ãäœãšæ¯èŒããã°ããã®ãããããŸããã ãããããŠç«ãšäžç·ïŒ ãªããŠãå¯èœã®ããã§ããããããšå°ãè¯ããªããŸãã ç¹ã«ãããæ©èœããå ŽåïŒïŒ
åé¡ã®å®åŒå:
- SIP é»è©±ãè¿ éãç°¡åãå®å šã«ã»ããã¢ããããããšèããŠããŸãã é»è©±æ©ãèšçœ®ãããšãããããŠãããåèšå®ãããšãã¯ãªãããã§ãã
- å€ãã®ãã³ããŒã¯ãç¬èªã®æ§æ圢åŒãæ§æãçæããããã®ç¬èªã®ãŠãŒãã£ãªãã£ãããã³æ§æãä¿è·ããç¬èªã®æ¹æ³ãæã£ãŠããŸãã ãããŠãç§ã¯æ¬åœã¯å šå¡ãšé¢ãããããªãã®ã§ãã
- å€ãã®ããããžã§ãã³ã° ãœãªã¥ãŒã·ã§ã³ã¯ãa) XNUMX ã€ã®ãã³ããŒãŸã㯠XNUMX ã€ã®é»è©±ã·ã¹ãã ã«çŠç¹ãåœãŠãŠãããb) å®è£ ãéåžžã«é¢åã§ãå€ãã®ã¹ã¯ãªããããã©ã¡ãŒã¿ããã©ãŒ...
ãã€ã³ã 3 ã«ã€ããŠã¯ãåªããããããžã§ãã³ã° ã·ã¹ãã ãããããšã«ã€ããŠã³ã¡ã³ãããŸãã
Habré ã«ã¯ãããŸããŸãªãã³ããŒã®ããã€ã¹ã®ã»ããã¢ããæ¹æ³ã«é¢ããã¬ã·ããæºèŒã§ãã
ç¬èªã®ãã©ãŒããã
xkcd ã§èšãããŠããããã«ã14 ã®ãã©ãŒããããæ±ããããªãå Žåã¯ã
ãã®ãããªãã®ïŒ
{
"key": "sdgjdeu9443908",
"token": "590sfdsf8u984",
"model": "gxp1620",
"vendor": "grandstream",
"mac": "001565113af8",
"timezone_offset": "GMT+03",
"ntp_server": "pool.ntp.org",
"status": true,
"accounts": [
{
"name": "ÐПбОлПМ",
"line": 1,
"sip_register": "sip.mobilonsip.ru",
"sip_name": "sip102",
"sip_user": "sip102",
"sip_password": "4321",
"sip_auth": "sip102"
}
]
}
ãããã£ãŠãã©ã®é»è©±ã§ãçŸå°æéãš SIP åç·ãèšå®ããå¿
èŠããããŸãã ããã§ã¯ãã¹ãŠãã·ã³ãã«ã§ãã ããã«å€ãã®äŸãèŠãããšãã§ããŸã
ç¬èªã®ãµãŒããŒããããžã§ãã³ã°
ã¡ãŒã«ãŒã®ããã¥ã¢ã«ã«ã¯éåžžã次ã®ããã«æžãããŠããç®æããããŸããCSV ãååŸãããã°ã€ã³ ãã¹ã¯ãŒãã® MAC ã¢ãã¬ã¹ãæžãçããç¬èªã®ã¹ã¯ãªããã䜿çšããŠãã¡ã€ã«ãçæããããã Apache Web ãµãŒããŒã«é 眮ããã°ããã¹ãŠãããŸããããŸãã
éåžžãããã¥ã¢ã«ã®æ¬¡ã®æ®µèœã«ã¯ãçæãããæ§æãã¡ã€ã«ãæå·åããããšãã§ããããšãèšèŒãããŠããŸãã
ãããããããã¯ãã¹ãŠå€å žã§ãã ã¹ã ãŒãžãŒãš Twitter ã䜿ã£ãææ°ã®ã¢ãããŒãã§ã¯ãApache ã»ã©åŒ·åã§ã¯ãªããã®ã®ãå°ããªããšã XNUMX ã€ã ãå®è¡ããæ¢è£œã® Web ãµãŒããŒãäœæããå¿ èŠããããšèšãããŠããŸãã ãªã³ã¯ã䜿çšããŠæ§æãçæããéä¿¡ããŸãã
ããã§ãããŠãã»ãšãã©ãã¹ãŠã® SIP é»è©±æ©ã¯ http/https çµç±ã§èšå®ãåä¿¡ã§ããããã«ãªã£ãã®ã§ãä»ã®å®è£ (ftpãtftpãftps) ã¯èæ ®ããŠããªãããšãæãåºããŠãã ããã ãã®åŸãåé»è©±æ©ã¯èªèº«ã® MAC ã¢ãã¬ã¹ãèªèããŸãã ãããã£ãŠãXNUMX ã€ã®ãªã³ã¯ãäœæããŸããXNUMX ã€ã¯ããã€ã¹ ããŒã«åºã¥ãå人çšãªã³ã¯ããã XNUMX ã€ã¯å ±éããŒã¯ã³ãš MAC ã¢ãã¬ã¹ã®çµã¿åããã䜿çšããŠåäœããäžè¬çãªãªã³ã¯ã§ãã
ãŸãããŒãæ§æã«ã€ããŠã¯è©³ãã説æããŸããã é»è©±æ©ãæåããã»ããã¢ãããããã€ãŸãããããããã¯ãŒã¯ã«æ¥ç¶ãããšãåäœãå§ããŸããã ããããç§ã®ã·ããªãªã§ã¯ãé»è©±æ©ããããã¯ãŒã¯ã«æ¥ç¶ããäºåã»ããã¢ããïŒããããžã§ãã³ã° ãµãŒããŒããèšå®ãåä¿¡ããããã«ã»ããã¢ããïŒãè¡ã£ãŠãããããã£ã³ã©ãŒãã飲ã¿ãããããžã§ãã³ã°ãéããŠå¿ èŠã«å¿ããŠé»è©±æ©ãåèšå®ããŸãã ãªãã·ã§ã³ 66 ã®é åžã¯ DHCP ãµãŒããŒã®è²¬ä»»ã§ãã
ã¡ãªã¿ã«ãããããžã§ãã³ã°ããšèšãã®ã¯ãã飜ããã®ã§ãããããžã§ãã³ã°ããšç¥ããŸããã蹎ããªãã§äžããã
ãããŠãã XNUMX ã€ãããããžã§ãã³ã° ãµãŒããŒã«ã¯ UI ããããŸããã ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ã ãããããä»ã®ãšããã¯ããããŸãããããªããªã... å¿ èŠãªããã§ãã ãã ããèšå®ãä¿å/åé€ãããããµããŒããããŠãããã³ããŒãã¢ãã«ã®ãªã¹ããååŸãããããããã® API ãããããã¹ãŠã Swagger ä»æ§ã®èŠç¯ã«åŸã£ãŠèª¬æãããŠããŸãã
ãªã UI ã§ã¯ãªã API ãªã®ã§ãããã? ãªããªãç§ã¯ãã§ã«ç¬èªã®é»è©±ã·ã¹ãã ãæã£ãŠãããè³æ Œæ å ±ã®ãœãŒã¹ãæã£ãŠããã®ã§ããã®ããŒã¿ãååŸããŠå¿ èŠãª JSON ãã³ã³ãã€ã«ããããããžã§ãã³ã° ãµãŒããŒã§å ¬éããã ãã§ãã ãããŠãããããžã§ãã³ã° ãµãŒããŒã¯ãjson ãã¡ã€ã«ã§æå®ãããã«ãŒã«ã«åŸã£ãŠãå¿ èŠãªããã€ã¹ã«ãã®æ§æãæäŸããŸããããã€ã¹ãæ£ãããªãå ŽåããŸãã¯ãã® json ãã¡ã€ã«ã§æå®ãããåºæºãæºãããªãå Žåã¯ãæ§æãæäŸããŸããã
ããããžã§ãã³ã° ãã€ã¯ããµãŒãã¹ã¯ãã®ããã«ãªããŸããã åŒã°ãã
äž»ãªç¹åŸŽ:
-
ãããã®å Žåããæ§æãžã®ã¢ã¯ã»ã¹ã¯æéã«ãã£ãŠå¶éãããŸã (ããã©ã«ãã§ã¯ 10 å)ã æ§æãå床å©çšã§ããããã«ããå Žåã¯ãæ§æãååºŠå ¬éããŸãã
-
ãã¹ãŠã®ãã³ããŒã« XNUMX ã€ã®åœ¢åŒãé©çšãããã¹ãŠã®èª¿æŽã¯ãœãã¿ã§åé€ãããæšæºåããã JSON ãéä¿¡ããå©çšå¯èœãªæ©åšãèšå®ããŸãã
-
ããã€ã¹ã«çºè¡ããããã¹ãŠã®èšå®ããã°ã«èšé²ããããã¹ãŠã®åé¡é åããã°ã§è¡šç€ºããããšã©ãŒã確èªã§ããŸãã
-
ããŒã¯ã³ã䜿çšã㊠XNUMX ã€ã®å ±éãªã³ã¯ã䜿çšããããšãã§ããŸããåé»è©±æ©ã¯ MAC ã¢ãã¬ã¹ãæå®ããããšã§ç¬èªã®èšå®ãåãåããŸãã ãŸãã¯ããŒãä»ããå人ãªã³ã¯ã
-
管çïŒãããžã¡ã³ãïŒããã³é»è©±æ©ãžã®èšå®ã®ããããžã§ãã³ã°ïŒããããžã§ãã³ã°ïŒçšã® API ã¯ããŒãããšã«åå²ãããŠããŸã
-
ãã¹ãã çºè¡ãããæ§æã®åœ¢åŒãä¿®æ£ãããã¹ãã§æ§æãçºè¡ããéåžžã®ç¶æ³ããã¹ãŠã«ããŒããããšã¯ãç§ã«ãšã£ãŠéåžžã«éèŠã§ããã ããã§ãã¹ãŠãæ確ã«æ©èœããŸãã
çæïŒ
ãããŸã§ã®ãšãããSonata å ã§ã¯æå·åã¯äžå䜿çšãããŠããŸããã ãããã®ã ãã¡ãããããšãã° Sonata ã®åã« nginx ã眮ãããšã§ https ã®äœ¿çšãéå§ããããšãã§ããŸãã ããããç¬èªã®æ¹æ³ã¯ãŸã 䜿çšãããŠããŸããã ãªãïŒ ãã®ãããžã§ã¯ãã¯ãŸã è¥ããæåã® XNUMX å°ã®ããã€ã¹ãçºå£²ãããŸããã ãããŠãã¡ãããã¢ã€ãã¢ããã£ãŒãããã¯ãåéããŸãã ããã«ããã¹ãŠãå®å šã«ããŠãããã¯ãŒã¯äžã§èšå®ãçèŽã§ããªãããã«ããã«ã¯ãããããæå·åããŒãTLSãããã³ãããã䜿çšããããªããºãã«æéãããã䟡å€ããããŸãããããã¯ç¶ãã«ãªããŸãã
UIã®æ¬ åŠã ãããããããã¯ãšã³ã ãŠãŒã¶ãŒã«ãšã£ãŠã¯é倧ãªæ¬ ç¹ã§ãããã·ã¹ãã 管çè ã«ãšã£ãŠã¯ãæ¬æ Œçãªã¢ããªã±ãŒã·ã§ã³ãããã³ã³ãœãŒã« ãŠãŒãã£ãªãã£ã®æ¹ãéèŠã§ãã ã³ã³ãœãŒã« ãŠãŒãã£ãªãã£ãäœæããèšç»ããããŸããããå¿ èŠãã©ããããããŸããã
ãã®çµæã¯ïŒ
管ççšã® API ã䜿çšããŠè€æ°ã®é»è©±ã¢ãã«ãããããžã§ãã³ã°ããããã®ãå°èŠæš¡ã§ã·ã³ãã«ãª Web ãµãŒããŒã
ããäžåºŠèšããŸãããããã¯ã©ã®ããã«æ©èœããã®ã§ãããã?
- ãœãã¿ãã€ã³ã¹ããŒã«ããŠããŸãã
- json æ§æãäœæããsonata ã§å ¬éããŸãã
- 次ã«ãsonata ããããããžã§ãã³ã° ãªã³ã¯ãåãåããŸãã
- 次ã«ãé»è©±ã§ãã®ãªã³ã¯ã瀺ããŸãã
- ããã€ã¹ãæ§æãããŒãããŠããŸã
ãã®åŸã®æäœã¯ XNUMX ã€ã®ã¹ãããã®ã¿ã§ãã
- json æ§æãäœæããsonata ã§å ¬éããŸãã
- ããã€ã¹ãæ§æãããŒãããŠããŸã
ã©ã®æºåž¯é»è©±ãããã¢ãŒã·ã§ã³å¯Ÿè±¡ã«ãªããŸãã?
ãã³ã㌠GrandstreamãFanvilãYealinkã ãã³ããŒå ã®æ§æã¯ã»ãŒåãã§ããããã¡ãŒã ãŠã§ã¢ã«ãã£ãŠç°ãªãå ŽåããããŸããè¿œå ã®ãã¹ããå¿ èŠãªå ŽåããããŸãã
ã©ã®ãããªã«ãŒã«ãèšå®ã§ããŸãã?
æéãŸã§ã«ã èšå®ãå©çšã§ããããã«ãªããŸã§ã®æéãæå®ã§ããŸãã
MACã¢ãã¬ã¹ã«ããã ããã€ã¹ã®å人ãªã³ã¯çµç±ã§æ§æãéä¿¡ããå ŽåãMAC ã¢ãã¬ã¹ããã§ãã¯ãããŸãã
IPã«ããã ãªã¯ãšã¹ããè¡ããã IP ã¢ãã¬ã¹ã«ããã
ãœãã¿ãšã©ã®ããã«å¯Ÿè©±ããã?
API çµç±ã§ãhttp ãªã¯ãšã¹ããå®è¡ããŸãã API ã¯ã€ã³ã¹ããŒã«ç°å¢ã§å©çšã§ããããã«ãªããŸãã ãªããªãAPI 㯠Swagger ä»æ§ããµããŒãããŠããã次ã䜿çšã§ããŸãã
ããããŸãããçŽ æŽãããã§ãã çŽ æµãªååã§ãã®ã§ãè©ŠããŠã¿ãŠã¯ãããã§ããããïŒ
æãç°¡åãªæ¹æ³ã¯ããªããžããªã«åºã¥ã㊠Docker ã€ã¡ãŒãžããããã€ããããšã§ã
Node.js ãç¥ã£ãŠããå Žåã¯ã©ãããã°ããã§ãã?
JavaScript ã®äœ¿çšçµéšãããå Žåã¯ãããã§ãã¹ãŠãã©ã®ããã«æ©èœãããããã«ç解ã§ããã§ãããã
ãœãã¿ã®éçºã¯ããã®ã§ããããïŒ
ç®æšãéšåçã«éæããŸããã é»è©±ã®ã»ããã¢ããã®èªååãšããããŒãã«é¢ãããããªãéçºã¯ç§ã®èª²é¡ã§ãã æ§æãæ¡åŒµããŠé»è©±ãã¿ã³ãæ§æããããã¢ãã¬ã¹åž³ããããžã§ãã³ã°ãªã©ãè¿œå ããããã³ã¡ã³ãã«æžã蟌ãã ãããæ©äŒããããŸãã
èŠçŽãšè¬èŸ
建èšçãªææ¡ãåè«ãã³ã¡ã³ãã質åãããã ããã°å¹žãã§ãããªããªã... ãããã圌ã¯äœãç解ã§ããªãããšã説æããã®ãããããªãã
ãŸããæ¯æŽãã¢ããã€ã¹ããã¹ããããã³ãã¹ãçšã®æºåž¯é»è©±ã®æäŸ/å¯ä»ãããŠããããã¹ãŠã®ååã«æè¬ã®æãè¡šããŸãã å®éãç§ãä»äºäžã§ã³ãã¥ãã±ãŒã·ã§ã³ããšã£ãå€ãã®äººãã¡ããçšåºŠã®å·®ãããããã®ãããžã§ã¯ãã«é¢ãã£ãŠããŸããã
åºæïŒ habr.com