ããããã¹ãã¢ãIPãã¬ãã©ããŒã«è»¢éããããã«ãã¢ã¹ã¿ãªã¹ã¯ã䜿çšããããšã決å®ãããŸããã
mysqlãšé£æºããbashã¹ã¯ãªããã䜿çšããŠãã¢ã¹ã¿ãªã¹ã¯ããããžã§ãã³ã°ããå®è£ ããæ¹æ³ãAsterisk RealTimeãdhcpãtftpãæ§æããæ¹æ³ãããã³Cyscoããhttpsããããžã§ãã³ã°ãè¡ãããã®ssl蚌ææžãçæããã³çœ²åããããã»ã¹ã«èå³ãããå Žåã¯ãcat ïŒ
次ã®èšäºã¯ãã¢ã¹ã¿ãªã¹ã¯ãšéä¿¡ããããã®KX-NS1000ããã³KX-NS500ã®ã»ããã¢ããã«ã€ããŠå°ã説æããŠããŸãã
åç §æ¡ä»¶ïŒ
- èªåæ§æã§ã¯ãã²ãŒããŠã§ã€ãšã¢ã¹ã¿ãªã¹ã¯èªäœã®äž¡æ¹ã®æ§æã«ããã人éã®é¢äžãå®å šã«æé€ããå¿ èŠããããŸãã èšå®ããã»ã¹ã«ã¯ãç¹å®ã®é»è©±çªå·ãžã®ã²ãŒããŠã§ã€ããŒãã®ããã€ã³ããã®ã¿ãå«ããå¿ èŠããããŸãã
- ã»ããã¢ããã¯åäžã®Webã€ã³ã¿ãŒãã§ãŒã¹ãä»ããŠè¡ãå¿ èŠããããŸã
- ãã€ã§ããã²ãŒããŠã§ã€ãåé€ããããé»è©±çªå·ãããã²ãŒããŠã§ã€ããå¥ã®ã²ãŒããŠã§ã€ã«è»¢éããããã²ãŒããŠã§ã€ã®ããŒããåå²ãåœãŠãããã§ããŸãã
- ãµããŒããããŠããæ©åšã®ãªã¹ããå±éããæ©èœ
é³å£°ã²ãŒããŠã§ã€ã®éžæïŒ
ã²ãŒããŠã§ã€ãéžæããéã®äž»ãªåºæºã¯ãèªåæ§æã®æ£ããæäœã§ããã å€ãã®ã²ãŒããŠã§ã€ããããããèšå®ããå¿
èŠããããŸãã ãã€ã§ããã²ãŒããŠã§ã€ã«é害ãçºçããæ°ããã²ãŒããŠã§ã€ã代ããã«ãªãããããã«æªãããšã«ãã²ãŒããŠã§ã€ã1ã€ã®ã¹ãã¢ããå¥ã®ã¹ãã¢ã«ç§»åããã²ãŒããŠã§ã€ã®å
éšé»è©±çªå·ãŸãã¯äœ¿çšãããããŒãçªå·ãå€ããå ŽåããããŸãã
åœç¶ãæ°ãæéããã¹ãã·ã§ããã®ããŠã¹ã§ãã¹ãŠã®ã²ãŒããŠã§ã€ããã¹ãããã³ãŒããã¯ããããã€ããŒãããã³QoSãã©ã¡ãŒã¿ãŒãšæŠããå¢çã²ãŒããŠã§ã€ãã»ããã¢ããããŸããã
ElteksãšCiscoããããã€ãã®ã²ãŒããŠã§ã€ãéžæããŸããã
** EltexïŒ**
é·æ-çŽ æŽãããOpenWRTã§ã圌ãè¯ãã²ãŒããŠã§ã€ã圌ããã§ããå€ãã®ããšã
çæïŒéåžžã«äžäŸ¿ãªèªåæ§æãããšãã°ããã¹ãŠã®ã²ãŒããŠã§ã€ã«å¯ŸããŠ1ã€ã®å ±éãã¡ã€ã«ãäœæããåã ã®èšå®ãå¥ã ã®ãã¡ã€ã«ã«å ¥ããããšã¯ã§ããŸããã
ç°ãªããã¡ãŒã ãŠã§ã¢ããŒãžã§ã³ã§ã¯ãã²ãŒããŠã§ã€ã¯ç°ãªãæ¹æ³ã§æ§æãã¡ã€ã«ãèŠæ±ããŸãã ã©ããã§ãã±ã·ã¯ãããèåããç¹ã§æžãããŠããŸãã 8ããŒãã®TAU-8.IPã¯ãtftpãµãŒããŒã®ã«ãŒãããã®ã¿æ§æãã¡ã€ã«ããã«ããŸãã ãã®ããããããã®ã²ãŒããŠã§ã€ã®å®å šèªåæ§æã¯æ©èœããŸããã§ãããã²ãŒããŠã§ã€ã®WEBã€ã³ã¿ãŒãã§ãŒã¹ã«ç§»åããŠãtftpãµãŒããŒãžã®ãã¹ãæå®ããå¿ èŠããããŸãã ããã«ãTAU-2M.IPã¯ãã¡ã€ã«ãžã®ãã¹å ã®å€æ°ãå®å šã«ç解ããŸãã
ããã¯ãéäžã§ã²ãŒããŠã§ã€ã®MACã¢ãã¬ã¹ãæžã蟌ãå¿ èŠãããTAU-8.IPã«ã€ããŠã¯èšããŸããã
WEBã€ã³ã¿ãŒãã§ãŒã¹ã§ã¯ãæ§æåŸã«èªå調æŽã«ãããã®ãã¹ã®çæãè¿œå ãããŸããã DHCPãµãŒããŒã®43ãªãã·ã§ã³ã«ãã¹ãŠã®ãã©ã¡ãŒã¿ãŒãæå®ãããšãããããæ©èœããããšã¯ååã«ç解ããŠããŸããããã®ãªãã·ã§ã³ã¯å¿ããã§ãã
**ã·ã¹ã³**
ãã©ã¹-çŽ æŽãããã²ãŒããŠã§ã€ã§ãããèªåæ§æã®çŽ æŽãããã·ã¹ãã ãåããã以åã®ä»äºãå§ããŸããã
çæïŒQOSèšå®ãªãã
ãã®çµæãSPA112ã䜿çšããããšã«ããŸããã éåžžã«ããããå€æãæäŸãããããã«ã»ãŒãã¹ãŠã®å Žæã§ã·ã¹ã³ã®æ©åšã䜿çšããŠããŸãã
åœç¶ãæ°ãæé
ElteksãšCiscoããããã€ãã®ã²ãŒããŠã§ã€ãéžæããŸããã
** EltexïŒ**
é·æ-çŽ æŽãããOpenWRTã§ã圌ãè¯ãã²ãŒããŠã§ã€ã圌ããã§ããå€ãã®ããšã
ãã®çŽ æŽããããŒãã®çã®æå³
補é å
ã¯ãOpenWRTã©ã€ã»ã³ã¹ã§å¿
èŠãªãã©ã€ããŒã®ãœãŒã¹ãã¢ããããŒãããªããããç¬èªã®ããŒãžã§ã³ã®ãã¡ãŒã ãŠã§ã¢ãã¢ã»ã³ãã«ãããããµãŒãããŒãã£ã®ããã±ãŒãžãã€ã³ã¹ããŒã«ãããããããšã¯ã§ããŸããã
çæïŒéåžžã«äžäŸ¿ãªèªåæ§æãããšãã°ããã¹ãŠã®ã²ãŒããŠã§ã€ã«å¯ŸããŠ1ã€ã®å ±éãã¡ã€ã«ãäœæããåã ã®èšå®ãå¥ã ã®ãã¡ã€ã«ã«å ¥ããããšã¯ã§ããŸããã
ç°ãªããã¡ãŒã ãŠã§ã¢ããŒãžã§ã³ã§ã¯ãã²ãŒããŠã§ã€ã¯ç°ãªãæ¹æ³ã§æ§æãã¡ã€ã«ãèŠæ±ããŸãã ã©ããã§ãã±ã·ã¯ãããèåããç¹ã§æžãããŠããŸãã 8ããŒãã®TAU-8.IPã¯ãtftpãµãŒããŒã®ã«ãŒãããã®ã¿æ§æãã¡ã€ã«ããã«ããŸãã ãã®ããããããã®ã²ãŒããŠã§ã€ã®å®å šèªåæ§æã¯æ©èœããŸããã§ãããã²ãŒããŠã§ã€ã®WEBã€ã³ã¿ãŒãã§ãŒã¹ã«ç§»åããŠãtftpãµãŒããŒãžã®ãã¹ãæå®ããå¿ èŠããããŸãã ããã«ãTAU-2M.IPã¯ãã¡ã€ã«ãžã®ãã¹å ã®å€æ°ãå®å šã«ç解ããŸãã
tftp://10.0.15.9/Eltex/$PN/config/$MA.tar.gz
ããã¯ãéäžã§ã²ãŒããŠã§ã€ã®MACã¢ãã¬ã¹ãæžã蟌ãå¿ èŠãããTAU-8.IPã«ã€ããŠã¯èšããŸããã
WEBã€ã³ã¿ãŒãã§ãŒã¹ã§ã¯ãæ§æåŸã«èªå調æŽã«ãããã®ãã¹ã®çæãè¿œå ãããŸããã DHCPãµãŒããŒã®43ãªãã·ã§ã³ã«ãã¹ãŠã®ãã©ã¡ãŒã¿ãŒãæå®ãããšãããããæ©èœããããšã¯ååã«ç解ããŠããŸããããã®ãªãã·ã§ã³ã¯å¿ããã§ãã
**ã·ã¹ã³**
ãã©ã¹-çŽ æŽãããã²ãŒããŠã§ã€ã§ãããèªåæ§æã®çŽ æŽãããã·ã¹ãã ãåããã以åã®ä»äºãå§ããŸããã
çæïŒQOSèšå®ãªãã
ãã®çµæãSPA112ã䜿çšããããšã«ããŸããã éåžžã«ããããå€æãæäŸãããããã«ã»ãŒãã¹ãŠã®å Žæã§ã·ã¹ã³ã®æ©åšã䜿çšããŠããŸãã
æ§æãã¡ã€ã«ãäœæããããã®ã¡ã«ããºã
Asteriskã¯mysqlããŒã¿ããŒã¹å ã®sipãŠãŒã¶ãŒã®ãªã¹ããååŸããŸãããã®ã¡ã«ããºã ã¯Asterisk RealTimeãšåŒã°ããŸãã ããã«ãããAsteriskã«sip.confãŸãã¯users.confãåèªã¿èŸŒã¿ãããããšãªããSIPã¯ã©ã€ã¢ã³ãã®ã¢ã«ãŠã³ãããã®å Žã§äœæ/åé€/ç·šéã§ããŸãã
Asteriskãsipã¢ã«ãŠã³ããååŸããããŒãã«ã¯ã sip_users ããšåŒã°ããAsterisk RealTimeã¡ã«ããºã ã®ã»ãŒæšæºã§ãã
ãŠãŒã¶ãŒãé³å£°ã²ãŒããŠã§ã€ãSIPã¢ã«ãŠã³ãã«ãã€ã³ãããããŒãã«ã¯ããredaction_gateway_and_phoneãããã³ãgateway_and_phone_infoããšåŒã°ããŸãã
redaction_gateway_and_phone
SQL圢åŒã§ããŠã³ããŒããã
-ãmacã-ãããŒã²ãŒããŠã§ã€ã¢ãã¬ã¹
-ãååã-sipãŠãŒã¶ãŒåã¯åãé»è©±çªå·ã§ã
-ãport_idã-VoIpã²ãŒããŠã§ã€ã®ç©çããŒãçªå·ã ããªãã¡ãã¢ããã°é»è©±ãæ¥ç¶ãããããŒã
-ãå®éã-æ§æãã¡ã€ã«ãšsip_usersããŒãã«ã®ãšã³ããªãäœæ/äžæžããããã©ããã瀺ããã©ã°
ãããŠãè¿œå ãç·šéã®æ¥ä»ïŒ
-ãããŒã¿ã-ã¬ã³ãŒãã®äœæ/ç·šéã®æ¥ä»ãèªåçã«è¿œå ãããŸã
-ãmacã-ãããŒã²ãŒããŠã§ã€ã¢ãã¬ã¹
-ãååã-sipãŠãŒã¶ãŒåã¯åãé»è©±çªå·ã§ã
-ãport_idã-VoIpã²ãŒããŠã§ã€ã®ç©çããŒãçªå·ã ããªãã¡ãã¢ããã°é»è©±ãæ¥ç¶ãããããŒã
-ãå®éã-æ§æãã¡ã€ã«ãšsip_usersããŒãã«ã®ãšã³ããªãäœæ/äžæžããããã©ããã瀺ããã©ã°
ãããŠãè¿œå ãç·šéã®æ¥ä»ïŒ
-ãããŒã¿ã-ã¬ã³ãŒãã®äœæ/ç·šéã®æ¥ä»ãèªåçã«è¿œå ãããŸã
gateway_and_phone_info
SQL圢åŒã§ããŠã³ããŒããã
gateway_and_phone_infoã¯ãæ§æãããŠããã²ãŒããŠã§ã€ã«é¢ããæ å ±ãè¿œå ããããã«å¿ èŠã§ãããŸããã²ãŒããŠã§ã€ã®å Žæãã¹ãã¢IDçªå·ãããã³æ§æ/ç·šéãã人ã®ADããã®ã¢ã«ãŠã³ãåã瀺ããŸãã
-ãå°åã-çºä¿¡é話ãã©ã®å°åããçºä¿¡ãããŠããããå€æããã®ã«äŸ¿å©ã§ãïŒè©³çŽ°ã¯ä»¥äžãåç §ïŒã
-ãã¢ãã«ã-ã²ãŒããŠã§ã€ã¢ãã«ããã¹ãŠã®ã¢ãã«ã¯å¥ã®ããŒãã«ã«ä¿åãããŸã
-ãcfuã-åºèèå¥çªå·
-ãå°åã-ã²ãŒããŠã§ã€ãé 眮ãããŠããå°åãã€ãŸã åžãæãªã©
-"last_modified"-WEBã€ã³ã¿ãŒãã§ãŒã¹ã«å ¥ãåã«ãApacheã¯åå/ãã¹ãèŠæ±ããADã®ã°ã«ãŒãã§ç¢ºèªããŸãã
-ãmacã-ãããŒ
gateway_and_phone_infoã¯ãæ§æãããŠããã²ãŒããŠã§ã€ã«é¢ããæ å ±ãè¿œå ããããã«å¿ èŠã§ãããŸããã²ãŒããŠã§ã€ã®å Žæãã¹ãã¢IDçªå·ãããã³æ§æ/ç·šéãã人ã®ADããã®ã¢ã«ãŠã³ãåã瀺ããŸãã
-ãå°åã-çºä¿¡é話ãã©ã®å°åããçºä¿¡ãããŠããããå€æããã®ã«äŸ¿å©ã§ãïŒè©³çŽ°ã¯ä»¥äžãåç §ïŒã
-ãã¢ãã«ã-ã²ãŒããŠã§ã€ã¢ãã«ããã¹ãŠã®ã¢ãã«ã¯å¥ã®ããŒãã«ã«ä¿åãããŸã
-ãcfuã-åºèèå¥çªå·
-ãå°åã-ã²ãŒããŠã§ã€ãé 眮ãããŠããå°åãã€ãŸã åžãæãªã©
-"last_modified"-WEBã€ã³ã¿ãŒãã§ãŒã¹ã«å ¥ãåã«ãApacheã¯åå/ãã¹ãèŠæ±ããADã®ã°ã«ãŒãã§ç¢ºèªããŸãã
-ãmacã-ãããŒ
å¿ èŠã«å¿ããŠãäž¡æ¹ã®ããŒãã«ã1ã€ã«çµåã§ããŸãã 1ã€ã®ããŒãã«ã«åããã£ãŒã«ããæã€å€§éã®ã¬ã³ãŒããäœæãããªãããã«ãããããåå²ããŸããã
ã€ãŸããæåã®ããŒãã«ã¯sip_usersããŒãã«ã«è¿œå ããã¢ã«ãŠã³ãã説æãã2çªç®ã®ããŒãã«ã§ã¯ã²ãŒããŠã§ã€ã®ã©ã®ã¢ãã«ãæ§æãããã©ãã«é 眮ããããã説æããŸãã
ã²ãŒããŠã§ã€æ§æã®å šäœçãªããžãã¯ã¯ããŠãŒã¶ãŒãé³å£°ã²ãŒããŠã§ã€ã®MACã¢ãã¬ã¹ã䜿çšããããŒãçªå·ãç®çã®é»è©±çªå·ãäž¡æ¹ã®ããŒãã«ã«å ¥åããããWebã€ã³ã¿ãŒãã§ãŒã¹ãä»ããŠå ¥åããããšã§ãã2ã€ã®ã¹ã¯ãªãããsip_usersããŒãã«ã«å¯Ÿå¿ãããšã³ããªãäœæããæ§æãçæããŸããã¡ã€ã«ã ãããã£ãŠãåæã«ãæå®ãããMACã¢ãã¬ã¹ãæã€éçã«å¯ŸããŠããµãŒããŒã®tftpãã£ã¬ã¯ããªã«ããã¢ã¹ã¿ãªã¹ã¯ãšå¯Ÿå¿ããæ§æãã¡ã€ã«ã«å¯ŸããŠsipã¢ã«ãŠã³ããäœæãããŸãã
ããŒã¿ããŒã¹åŠçããžãã¯ãšæ§æãã¡ã€ã«äœæããžãã¯ã¯ã2ã€ã®éšåã«åãããŠããŸãã ãããã¯äºãã«ç¬ç«ããŠãããæ°ããã¹ã¯ãªãããäœæããããšã«ãããä»ã®ã²ãŒããŠã§ã€/é»è©±ã®èªåãã¥ãŒãã³ã°ãäœæã§ããŸãã
ã¹ã¯ãªãã
AutoProvision_all.sh
ã¯ãããŒã¿ããŒã¹ã®
AutoProvision_all.sh
ãæ åœããŸãã æåã«ãã¹ã¯ãªããã¯
gateway_and_phone
ããŒãã«ãããŒãªã³ã°ããŠã
gateway_and_phone
ã¢ãã¬ã¹ãš
actual
ãã£ãŒã«ãã«
No
ãã©ã°ãæã€ãšã³ããªã
gateway_and_phone
ãŸãã ã€ãŸãã1ã€ã®ã¢ã«ãŠã³ãã1ã€ã®é³å£°ã²ãŒããŠã§ã€ïŒãŸãã¯VoIp-phoneïŒã«å¯ŸããŠæ§æãããã¢ã¹ã¿ãªã¹ã¯ã®èŠ³ç¹ãããAã¢ã«ãŠã³ããé¢é£ããªãã²ãŒããŠã§ã€/é»è©±ãèŠã€ããŸãã 次ã«ãã¹ã¯ãªããã¯
actual
ãã£ãŒã«ãã®ãã©ã°ã[
No
ãã[
Yes
ã«å€æŽããåã¬ã³ãŒãã®ããŒã¿ã亀äºã«è¡šç€ºãããšåæã«ã
sip_users
ããŒãã«ã«ãšã³ããªãäœæããŸãã
次ã«ãã¹ã¯ãªããã¯
gateway_and_phone_info
ããŒãã«ãããŒãªã³ã°ããŠã
actual
ãã£ãŒã«ãã«
No
ãã©ã°ã
No
ã
gateway_and_phone_info
ã¢ãã¬ã¹ãéè€ããŠãããšã³ããªã
gateway_and_phone_info
ãŸãã ã€ãŸãã1ã€ã®é³å£°ã²ãŒããŠã§ã€ïŒãŸãã¯VoIp-phoneïŒã§è€æ°ã®ã¢ã«ãŠã³ããæ§æãããã¢ã¹ã¿ãªã¹ã¯ã®èŠ³ç¹ãããAã¢ã«ãŠã³ããé¢é£ããªãã²ãŒããŠã§ã€/é»è©±ãèŠã€ããŸãã ãŸãããã©ã°ãå€æŽããã¬ã³ãŒããäœæããŠããŒã¿ã衚瀺ããŸãã
åºåã§ãã¹ã¯ãªããã¯æ¬¡ã®åœ¢åŒã®è¡ãçæããŸãïŒduplicate_flag ; MACã¢ãã¬ã¹ ãŠãŒã¶ãŒå port_number ãã¹ã¯ãŒã
äŸãã°ïŒ
duble;00da55b729e8;8888;1;2DJKjH3XTx1osjI1
no_duble;00da55b729e8;8888;1;d5xfDwKG3UNdywgY
ãã¹ã¯ãŒãã¯ãå¥ã®passGen.shã¹ã¯ãªããã«ãã£ãŠçæãããŸãã
AutoProvision_all.sh
#!/bin/bash #echo START ROOT_PATH=$(cd $(dirname $0) && pwd) # , . # "sql" . sql='mysql -uprovisioning -pxkYyNFuyc3nEKsFj -Dasterisk -e' sql_gateway='redaction_gateway_and_phone' # , - sql_sip_users='sip_users' # asterisk test="" test=no_test # .. # "actual" Asterisk. #del_old_user="" #del_old_user=delete # ################################################################################### ################################################################################### ### ### ### : ### ### ### ################################################################################### ################################################################################### insert_update_sql () { local f_name local d_name for f_name in "$@" do # : # , .. . # #echo f_name $f_name if [ "$f_name" != "no_duble" ] && [ "$f_name" != "duble" ] then # "array_users" array_users=($($sql "SELECT mac,name,port_id FROM $sql_gateway WHERE name like '$f_name'"| awk 'NR>1')) mac=${array_users[0]} name=${array_users[1]} secret=$(${ROOT_PATH}/passGen.sh) port_id=${array_users[2]} region=($($sql "SELECT region FROM gateway_and_phone_info WHERE mac like \ (SELECT mac FROM $sql_gateway WHERE name like '$name')"| awk 'NR>1')) model=($($sql "SELECT model FROM gateway_and_phone_info WHERE mac like '$mac'"| awk 'NR>1')) # "no" "yes" if [ -n "$test" ]; then $sql "UPDATE $sql_gateway SET actual = 'yes' WHERE name like '$name'" | awk 'NR>1';fi # "sip_users". # "REPLACE INTO" UNIQUE "name" . # , . . #d_name=($(echo -n $@|sed -r 's/[^0-9 ]//gi')) #echo d_name $d_name #$sql "DELETE FROM sip_users WHERE sip_users.name not in ($d_name) and sip_users.name like '${name%?}%'" | awk 'NR>1' if [ -n "$test" ]; then $sql "REPLACE INTO $sql_sip_users\ (id,name,defaultuser,context,secret,region)\ VALUES\ (NULL, '$name', '$name', 'default', '$secret', '$region')" | awk 'NR>1'; fi # , - . # if [ "${!#}" == "no_duble" ]; then echo no_duble\;$mac\;$name\;$port_id\;$secret; fi if [ "${!#}" == "no_duble" ]; then echo "no_duble"\;"$mac"\;"$name"\;"$port_id"\;"$secret"\;"$model"; fi # if [ "${!#}" == "duble" ]; then echo duble\;$mac\;$name\;$port_id\;$secret; fi if [ "${!#}" == "duble" ]; then echo "duble"\;"$mac"\;"$name"\;"$port_id"\;"$secret"\;"$model"; fi fi done } #################################################################################### #################################################################################### ### *** *** ### #################################################################################### #################################################################################### # c "no" array_no_duble_user=($($sql "SELECT name FROM $sql_gateway WHERE mac IN \ (SELECT mac FROM $sql_gateway GROUP BY mac HAVING count(*)=1) and actual like 'no'" | awk 'NR>1')) #echo - ${#array_no_duble_mac[@]} #echo -- ${array_no_duble_mac[@]} # insert_update_sql "${array_no_duble_user[@]}" "no_duble" # . # "array_duble_mac" "no" array_duble_mac=($($sql "SELECT distinct mac FROM $sql_gateway WHERE mac IN \ (SELECT mac FROM $sql_gateway GROUP BY mac HAVING count(*)>1) and actual like 'no'" | awk 'NR>1')) # echo - ${#array_duble_mac[@]} # echo -- ${array_duble_mac[@]} # : for (( duble_mac_num=0; $duble_mac_num<${#array_duble_mac[@]}; duble_mac_num++ )) do # "array_duble_user" . array_duble_user=($($sql "SELECT name FROM $sql_gateway WHERE mac like '${array_duble_mac[$duble_mac_num]}'"| awk 'NR>1')) # echo - ${#array_duble_mac_user[@]} # echo -- ${array_duble_mac_user[@]} # "insert_update_sql". insert_update_sql "${array_duble_user[@]}" "duble" done exit 0
2çªç®ã®ã¹ã¯ãªããã¯ãgen_prov.shããšåŒã°ããŸãã ãAutoProvision_all.shããèµ·åãããã¹ãŠã®ã¬ã³ãŒãã®ãªã¹ããåãåããSPA112ãTAU2-2M.IPãããã³TAU-8.IPã®æ§æãã¡ã€ã«ãçæããŸãã Eltexesã«ãšã£ãŠæ®å¿µãªããšã«ãåã ã®ããŒãã®æ§æãã€ãŸã ãã¹ãŠã®ããŒãããããã§æ§æãããããã¯WEBã€ã³ã¿ãŒãã§ãŒã¹ã§ãã§ãã¯ãããŸãã
ãã®ã¹ã¯ãªããã¯ãPAP2T-naãSPA8000ãããã³çè«çã«ã¯Ciscoããã³Linksysã®é³å£°ã²ãŒããŠã§ã€çšã®ãã¡ã€ã«ã®çæã«ãé©ããŠããŸãã
gen_prov.sh
#!/bin/bash ROOT_PATH=$(cd $(dirname $0) && pwd) # . , # !!! declare -A array_duble_file_out declare -A array_duble_out_eltex declare -A array_duble_out_eltex_tau8 tmp_dir=`/bin/mktemp -d` # "array_users" "flag,mac,name,port,password": array_users=($(${ROOT_PATH}/AutoProvision_all.sh)) #echo array_users--- ${#array_users[@]} #echo array_users--- ${array_users[@]} # for (( array_users_num=0; array_users_num<${#array_users[@]}; array_users_num++ )) do # "array_user_data" "flag;mac;name;port;password;model": array_user_data=($(echo -n ${array_users[$array_users_num]}|tr -s ';' '\ ' )) # # : # for (( array_usersc_data_num=0; array_usersc_data_num<${#array_users_data[@]}; array_usersc_data_num++ )) # do flag=${array_user_data[0]} mac=${array_user_data[1]} name=${array_user_data[2]} port=${array_user_data[3]} password=${array_user_data[4]} model=${array_user_data[5]} if [ "$model" == "TAU-2M.IP" ] then # array_duble_out_eltex[$mac]=$(echo -n "${array_duble_out_eltex[$mac]} $name;$password ") fi ########################################################################### if [ "$model" == "TAU-8.IP" ] then # array_duble_out_eltex_tau8[$mac]=$(echo -n "${array_duble_out_eltex_tau8[$mac]} $name;$password ") fi ########################################################################### if [ "$model" == "SPA112" ] then mac=$(echo -n ${array_user_data[1]}|sed 's/.*/\L&/') rm -f /srv/tftp/Cisco/config/*$mac\* # . array_duble_file_out[$mac]=$(echo -en "${array_duble_file_out[$mac]}\n\n<Line_Enable_${port}_ ua=\"na\">Yes</Line_Enable_${port}_> <Display_Name_${port}_ ua=\"na\">$name</Display_Name_${port}_> <User_ID_${port}_>$name</User_ID_${port}_> <Password_${port}_>$password</Password_${port}_>") fi ########################################################################### done # # TAU-8.IP for array_duble_out_key_eltex_tau8 in ${!array_duble_out_eltex_tau8[@]}; do cp -R $ROOT_PATH/template/TAU-8.IP/tmp/ $tmp_dir # echo !array_duble_out_eltex_tau8 .. ${!array_duble_out_eltex_tau8[@]} # echo array_duble_out_eltex_tau8 ${array_duble_out_eltex_tau8[$array_duble_out_key_eltex_tau8]} # echo array_duble_out_key_eltex_tau8 $mac -- $array_duble_out_key_eltex_tau8 mac_tau8=$array_duble_out_key_eltex_tau8 array_users_eltex_tau8=($(echo ${array_duble_out_eltex_tau8[$array_duble_out_key_eltex_tau8]}|tr -s ';' '\ ' )) ######################################################### # FXS1 name_eltex_tau8_1=${array_users_eltex_tau8[0]} password_eltex_tau8_1=${array_users_eltex_tau8[1]} # FXS2 name_eltex_tau8_2=${array_users_eltex_tau8[2]} password_eltex_tau8_2=${array_users_eltex_tau8[3]} # FXS3 name_eltex_tau8_3=${array_users_eltex_tau8[4]} password_eltex_tau8_3=${array_users_eltex_tau8[5]} # FXS4 name_eltex_tau8_4=${array_users_eltex_tau8[6]} password_eltex_tau8_4=${array_users_eltex_tau8[7]} # FXS5 name_eltex_tau8_5=${array_users_eltex_tau8[8]} password_eltex_tau8_5=${array_users_eltex_tau8[9]} # FXS6 name_eltex_tau8_6=${array_users_eltex_tau8[10]} password_eltex_tau8_6=${array_users_eltex_tau8[11]} # FXS7 name_eltex_tau8_7=${array_users_eltex_tau8[12]} password_eltex_tau8_7=${array_users_eltex_tau8[13]} # FXS8 name_eltex_tau8_8=${array_users_eltex_tau8[14]} password_eltex_tau8_8=${array_users_eltex_tau8[15]} ######################################################### /bin/sed "\ # FXS_1 s/%fxs1_phone%/$name_eltex_tau8_1/g;\ s/%fxs1_username%/$name_eltex_tau8_1/g;\ s/%fxs1_auth_name%/$name_eltex_tau8_1/g;\ s/%fxs1_auth_pass%/$password_eltex_tau8_1/g;\ # FXS_2 s/%fxs2_phone%/$name_eltex_tau8_2/g;\ s/%fxs2_username%/$name_eltex_tau8_2/g;\ s/%fxs2_auth_name%/$name_eltex_tau8_2/g;\ s/%fxs2_auth_pass%/$password_eltex_tau8_2/g;\ # FXS_3 s/%fxs3_phone%/$name_eltex_tau8_3/g;\ s/%fxs3_username%/$name_eltex_tau8_3/g;\ s/%fxs3_auth_name%/$name_eltex_tau8_3/g;\ s/%fxs3_auth_pass%/$password_eltex_tau8_3/g;\ # FXS_4 s/%fxs4_phone%/$name_eltex_tau8_4/g;\ s/%fxs4_username%/$name_eltex_tau8_4/g;\ s/%fxs4_auth_name%/$name_eltex_tau8_4/g;\ s/%fxs4_auth_pass%/$password_eltex_tau8_4/g;\ # FXS_5 s/%fxs5_phone%/$name_eltex_tau8_5/g;\ s/%fxs5_username%/$name_eltex_tau8_5/g;\ s/%fxs5_auth_name%/$name_eltex_tau8_5/g;\ s/%fxs5_auth_pass%/$password_eltex_tau8_5/g;\ # FXS_6 s/%fxs6_phone%/$name_eltex_tau8_6/g;\ s/%fxs6_username%/$name_eltex_tau8_6/g;\ s/%fxs6_auth_name%/$name_eltex_tau8_6/g;\ s/%fxs6_auth_pass%/$password_eltex_tau8_6/g;\ # FXS_7 s/%fxs7_phone%/$name_eltex_tau8_7/g;\ s/%fxs7_username%/$name_eltex_tau8_7/g;\ s/%fxs7_auth_name%/$name_eltex_tau8_7/g;\ s/%fxs7_auth_pass%/$password_eltex_tau8_7/g;\ # FXS_8 s/%fxs8_phone%/$name_eltex_tau8_8/g;\ s/%fxs8_username%/$name_eltex_tau8_8/g;\ s/%fxs8_auth_name%/$name_eltex_tau8_8/g;\ s/%fxs8_auth_pass%/$password_eltex_tau8_8/g"\ $ROOT_PATH/template/TAU-8.IP/tmp/etc/config/pbx > $tmp_dir/tmp/etc/config/pbx; sed "s/%mac%/$mac_tau8/g" $ROOT_PATH/template/TAU-8.IP/tmp/etc/config/system > $tmp_dir/tmp/etc/config/system cd $tmp_dir/; tar zcf $mac_tau8.tar.gz tmp; rm -rf /srv/tftp/Eltex/TAU-8.IP/config/$mac_tau8.tar.gz mv $tmp_dir/$mac_tau8.tar.gz /srv/tftp/Eltex/TAU-8.IP/config/ done # end TAU-8.IP # TAU-2M.IP for array_duble_out_key_eltex in ${!array_duble_out_eltex[@]}; do # echo array_duble_out_eltex .. ${!array_duble_out_eltex[@]} # echo array_duble_out_eltex ${array_duble_out_eltex[$array_duble_out_key_eltex]} mac_tau2=$array_duble_out_key_eltex # 13 mac_tau2_now=$(echo -n $mac | sed -r 's/(..)/\1./gi ; s/.$//gi') # 14 array_users_eltex=($(echo ${array_duble_out_eltex[$array_duble_out_key_eltex]}|tr -s ';' '\ ' )) name_eltex_1=${array_users_eltex[0]} password_eltex_1=${array_users_eltex[1]} name_eltex_2=${array_users_eltex[2]} password_eltex_2=${array_users_eltex[3]} /bin/sed "\ s/%fxs0_Enable%/1/g;\ s/%fxs0_Number%/$name_eltex_1/g;\ s/%fxs0_AuthUsername%/$name_eltex_1/g;\ s/%fxs0_AuthPassword%/$password_eltex_1/g;\ s/%fxs1_Enable%/1/g;\ s/%fxs1_Number%/$name_eltex_2/g;\ s/%fxs1_AuthUsername%/$name_eltex_2/g;\ s/%fxs1_AuthPassword%/$password_eltex_2/g"\ $ROOT_PATH/template/TAU-2M.IP/cfg.yaml > $tmp_dir/cfg.yaml; cd $tmp_dir tar zcf $mac_tau2.tar.gz cfg.yaml; # echo tmp tau2 $mac_tau2 $tmp_dir rm -rf /srv/tftp/Eltex/TAU-2M.IP/config/$mac_tau2.tar.gz cp $tmp_dir/$mac_tau2.tar.gz /srv/tftp/Eltex/TAU-2M.IP/config/ rm -rf /srv/tftp/Eltex/TAU-2M.IP/config/$mac_tau2_now.tar.gz cp $tmp_dir/$mac_tau2.tar.gz /srv/tftp/Eltex/TAU-2M.IP/config/$mac_tau2_now.tar.gz #echo $tmp_dir #echo $mac_tau2 #echo $mac_tau2_now # TAU-2M.IP" done # SPA112 for array_duble_file_out_key in ${!array_duble_file_out[@]}; do echo -e "<flat-profile>${array_duble_file_out[$array_duble_file_out_key]}\n\n</flat-profile>" > /srv/tftp/Cisco/config/spa$array_duble_file_out_key.xml done trap "rm -rf $tmp_dir" EXIT INT QUIT ABRT TERM exit 0
TAU8ã䜿çšãããšã¬ã¬ã³ããªãœãªã¥ãŒã·ã§ã³ã§ã¯ãããŸããããã¹ããµã€ã¯ã«ãèŠæ±ããŸãã äžèšã§æžããããã«ãTAU-8.IPã¯ãæ§æãã¡ã€ã«ãžã®ãã¹ãæžã蟌ãããšã«ãããã³ã§æ§æããå¿ èŠããããŸãã 2ã€ã®ããŒãTAU-2M.IPããã³ãã«ã§æ§æããå¿ èŠããããŸãããããã¯DHCPãµãŒããŒã§150ããã³66ã®ãªãã·ã§ã³ãæ§æããã43ã®ãªãã·ã§ã³ãæ§æãããŠããªãããã§ãã
ãã¹ãŠã®ã¹ã¯ãªããã¯
/etc/asterisk/scripts
ãã£ã¬ã¯ããªã«ãããŸããåãå Žæã«ãã²ãŒããŠã§ã€ã®æ§æãã¡ã€ã«ãã³ãã¬ãŒããé 眮ããã ãã³ãã¬ãŒã ããã£ã¬ã¯ããªãäœæããå¿ èŠããããŸãããŸããTAU-8.IPã«ã¯ãã£ã¬ã¯ããªããªãŒããããŸãã ãã®ã²ãŒããŠã§ã€ã«ã¯ããã€ãã®èšå®ãã¡ã€ã«ãããããããããç¬èªã®ãã£ã¬ã¯ããªã«ããããã®ãããã³å šäœã1ã€ã®ã¢ãŒã«ã€ãã«åéãããŸãã
gen_prov.shã¯ãã¯ã©ãŠã³äžã§1åããšã«å®è¡ãããŸãã
ããã«äœ¿çšå¯èœãªSPA112ã²ãŒããŠã§ã€ã¯ãHTTPSãµãŒããŒããæ§æãã¡ã€ã«ãããŠã³ããŒãããããšããããããµãŒããŒã«ã¯å®éã®SSL蚌ææžãå¿ èŠã§ãã
SSL蚌ææžã®èŠæ±ãçæããæ¹æ³ã«ã€ããŠã¯ ã ããã§è©³ãã説æããŸããèªã¿ã«ããå Žåã¯ã ããã§ãã¹ãŠã説æããŸãã
1.ããŒã1åçæããä¿åããŸãã
openssl genrsa -out server.key 2048
2.蚌ææžèŠæ±ãã¡ã€ã«ãçæããŸãã
openssl req -new -key srv-shop-aster.key -out srv-shop-aster.csr -subj "/C=RU/ST=Novosibirskaya Oblast/L=Kolcovo/O=Roga_and_Kopita_Company Ltd./OU=IT Department/CN=srv-shop-aster/emailAddress=admin_user@RogKop.ru/"
3.ãµãŒããŒãã¡ã€ã«srv-shop-aster.csrãåé€ããŸãããã¡ãããäžè¬çã«ãã¡ã€ã«ãserver_name.csrããšã¯ç°ãªãååã«ãªããŸã
4. 蚌ææžã«çœ²åãããµãŒãã¹ã«è¡ãã補åã蚌ææžã®æå¹æéãéžæããã蚌ææžèŠæ±ã«çœ²åããã¿ã³ãã¯ãªãã¯ããŠçœ²åãããã§ã«çœ²åããã蚌ææžããã£ã¹ã¯ã«ä¿åããŸãã ãšããã§ãCisco Webãµã€ãã§ç»é²ããå¿ èŠããããŸãã
5. Apacheã§HTTPSãèšå®ããŸãã ããã«ããæžãããŠããŸã ã
蚌ææžããããããŒã¯ãã£ã¬ã¯ããª
/etc/apache2/ssl/
ãã¡ã€ã«
/etc/apache2/sites-enabled/default-ssl.conf
ããã蚌ææžãšããŒãžã®ãã¹ãç»é²ãããŠããŸãã
SSLCertificateFile /etc/apache2/ssl/srv-shop-aster.crt
SSLCertificateKeyFile /etc/apache2/ssl/srv-shop-aster.key
ãããŠãå»æ¢ãããSSLv2ãããã³ã«ã®äœ¿çšãçŠæ¢ããŸããã§ããã ïŒSSLProtocol all -SSLv2
é©åãªãã£ã¬ã¯ããªã«çœ²åæžã¿èšŒææžä»ãã®ããŒãå ¥ããŠãApacheãåèµ·åããããšãå¿ããªãã§ãã ããã
次ã®èšäºã§ã¯ãKX-NS1000ãšã¢ã¹ã¿ãªã¹ã¯ãåéã«ããæ¹æ³ãWEBã€ã³ã¿ãŒãã§ãŒã¹ã«ã€ããŠãã«ãŒã¿ãŒã§ã®DHCPã®èšå®ã«ã€ããŠèª¬æããŸãã