瀟å
ã®ãã©ãŠã¶ãä»ããŠãããªã³ãŒã«ãçºä¿¡ããæ¹æ³ãšããã®æçšæ§ãçè§£ããããšã¯éåžžã«è峿·±ãããšã§ããã ããã«ãã¹ã«ã€ãã¯ãã¿ãããããã転éããããã¹ã¯ãŒãã¯ããããã«ãã£ãŠè§£æãããŸã...
Google+ãã³ã°ã¢ãŠãããããé »ç¹ã«äœ¿çšãããŠããããã§ãããããã§ãWebRTCãç¬èªã®ã¯ã©ãŠããã¯ãããžãŒã§ã¯ãããŸããã 誰ãç¥ã£ãŠãã-ä»ã®
ç«¶åä»ç€Ÿã®ååã
ã¡ã¢åž³ãšèŒãé¡ã«æ¬ç©ã®ç¬é¡ã§ç§ãã¡ã®äºæ¥èšç»
äŒè°ã
èŠãŠããŸããïŒ

äžè¬ã«ã瀟å
ã§ã®ä¿¡é Œã§ãããã©ã€ããŒããªãããªäŒè©±ã®ãããã¯ã¯ããããŸã§ä»¥äžã«é¢é£æ§ãããããšãèªããªããã°ãªããŸããã å€ãã®äººã
ããããå¿
èŠãšããŸãããäœããæŽçããæ¹æ³ã¯ïŒ ãã£ã æ¹æ³ãç¥ã£ãŠããã°ãããã¯éåžžã«ç°¡åã«è¡ããŸã:-)ïŒRFCãw3cã®æšæºãšãã®å®è£
ãååã«ç ç©¶ããçç±ãçªãæ¢ããåŸïŒã
以äžã§ã¯ãå®è£
ã®äž»ãªæè¡çãªã¹ã¯ãå®è¡ããããšããŸããããã¯ç§ãã¡ãèžãŸãªããã°ãªããªãã£ãããããããããªããèžãŸãªããã°ãªããªãã§ããã-ãããŠãã¹ããã¯ã®ããã«ïŒè³ãççºãããäžå¿
èŠãªè©³çްãªãã§ãç°¡åãªæè¡çå§è¿«ãšããžãã¹TODOã
æè¡
ç»æçãª
HTML5ãã¯ãããžãŒã®1ã€ã¯ééããªã
WebRTCã§ãã ãGoogleãMozillaãOperaã®ãµããŒããåããŠ
w3cã«ãã£ãŠéçºãã
ãŸãã ã
ãã®æ¬è³ªã¯ãç§ã®ã³ã³ãã¥ãŒã¿ãŒã«ã«ã¡ã©ããã€ã¯ããã©ãŠã¶ãŒããããã©ãã«ããŠããã©ãŠã¶ãŒãã«ã¡ã©ããã€ã¯ã䜿ã£ãŠä»ã®äººãšãããªé話ãããããšãã§ããããšã§ããé£ã®ããŒãã«ã®ååãšãçŸããã©ãããããã§ããŒãã§æ¥å
济ãããŠããäžåžã®äž¡æ¹ã§ã女æ§ã®èº«äœ ãã®å Žåãæ¥ç¶ã¯æå·åããã1ã€ã ãã§ããã¢ããŒãã¢-2ã®éã ãã§ãã ãã£ãããïŒ ããããããã ãã§ã¯ãããŸããã

匷åãªãã©ãã¯ããžãã¯ã䜿çšããŠè¡ãããã¢ã¯ã·ã§ã³
㯠ããã©ãŠã¶ãŒã®ãå
éšãã§ã»ãšãã©ééçã§ãããŠãŒã¶ãŒãšããã°ã©ããŒã¯ãã³ãŒããã¯ããã¡ã€ã¢ãŠã©ãŒã«ã調æŽãSIPãªã©ãæ°ã«ããŸããã -æãåçŽãªã±ãŒã¹ã§ã¯ãäžç®ã§ãããªé話ã®ã¿ã¹ã¯ã¯åæ°è¡ã®js-codeã«ãã£ãŠè§£æ±ºãããŸããããã§ã¯ã幞çŠã§ã-ããªãã®äŒç€Ÿã§ãã©ã€ããŒããããªäŒè©±ãæ©èœããŸãã
ãã®ã¹ããŒã ãæãäžããªãã§ãã ããããããªããšãè³ãççºããå¯èœæ§ããããŸãã æ°å幎ã«ããã£ãŠãéçºãããã¡ãã£ã¢ãã¯ãããžãŒãšãããã³ã«ã¯ããã¬ãã¹ã¿ãžãªãã©ãžãªå±ãé»è©±äº€æå±ãªã©ã®ãã©ãŠã¶å
ã«éã蟌ããããŠããŸããããããããåç¥ã®ããã«ãæªéã¯ããããªããšã«é ããŠããŸãã ãããã«ã€ããŠã話ããŸã...
ã·ã°ããªã³ã°
WebRTCãã¯ãããžãŒã®èª¬æã«ã¯ãããã³ããã¯ãªãã©ã°ã¢ã³ããã¬ã€ã®ãµã¯ã»ã¹ã¹ããŒãªãŒãšã
ã¹ã¿ã³ ã
ã¿ãŒã³ ã
ã¢ã€ã¹ ã
sdpãšããçšèªã®ã¹ã€ãŒãããã®ã¯ã€ã«ãã§äœã¬ãã«ã®ããŒãã³ã¢ãšãã2ã€ã®èããç°ãªããããã¯ããããŸãã skipipastã¯æ©èœããŸããããããã©ã®ããã«æç¢ºã§ãããããŸãã¯6ãæéãœãŒã¹ã³ãŒããšRFCã調æ»ããŸãã:-)
ç§ãã¡ãé§ãç«ãŠãçéå
¥ãã®çšèªã®1ã€ã¯
ã·ã°ããªã³ã°ã§ãã å®éã3ã€ã®ç°¡åãªã¿ã¹ã¯ãå®è¡ããŸãã
1ïŒ2ã€ã®ãã©ãŠã¶ãŒã®æ§æããããã³ã°ããŸãïŒãªãŒãã£ãª/ãããªã¹ããªãŒã ãã³ãŒããã¯ãã¢ãã¬ã¹ãããã³ããŒã-SDP圢åŒïŒ
SDP ãã®æªå€¢ã¯ãã©ãŠã¶éã§äŒéããããã®è©³çްã¯åé¿ã§ããŸãã ããããRFCãèªãã åŸã§ããå ç©ç©ã¯æ®ã£ãŠããŸã2ïŒãã¹ã¯ãŒãã亀æããŠããã©ãŠã¶ãŒéã§æå·åãããæ¥ç¶ã確ç«ããŸã
3ïŒã¢ã¯ã·ã§ã³ã®éå§-ã³ãŒã«ïŒjsã®ã³ãŒã«ããã¯ã§ã¯ã©ã€ã¢ã³ãAã¹ã¬ãããã¯ã©ã€ã¢ã³ãBã¹ã¬ããã«æ¥ç¶ïŒãé»è©±ãåããªã© ã€ãŸã ãã©ãŠã¶ã®jsã§ã¯ã
RTCPeerConnectionãªããžã§ã¯ãã䜿çšããŠéåžžã«ç°¡åãªããšãå®è¡ããŠããŸããããªããžã§ã¯ãå
ã«ã¯å®éã®ADBããããŸãã
ã€ãŸã ã·ã°ããªã³ã°ã䜿çšããŠãäœã§ãäœã§ãæžã蟌ã¿ãŸã-ãã©ãŠã¶ã¯äºãã«ãããã³ã°ãããããªé話ãè¡ãããšãã§ããŸãã ãããŠãé©ãã¹ãããšã«ããããã³ã«ã¹ã¿ãã¯ã®å
容ãçè§£ããããšã¯ã§ããŸãããåŒã³åºãã¯é©ãã»ã©ç°¡åã«ãªããŸãã
èŠèŠçã«ä¿¡å·ãéãããšã¯æãããèŠããŸã-å®éãICEãä»ãããã©ãŠã¶å
ã®ã¡ãã£ã¢ã¹ããªãŒã ã®SDPèšè¿°ã¯åã«ã远跡ããããŸã...ãããç§ã¯ãã æžãããã£ã-ããã¯æ©èœããŸãããã©ãŠã¶ã¯ãäºããæ¢ããŠããŸã
åŒã³åºãã¯åã«ããŒã«ã«ãããã¯ãŒã¯äžã§ååŸãããŸãããåŸæ¥å¡ãå¥ã®ãããã¯ãŒã¯äžã«ããå ŽåããããŠãã¡ã€ã¢ãŠã©ãŒã«ã®å
åŽã§ããããã©ãŠã¶ã¯äœã®å©ãããªãã«æ¥ç¶ã確ç«ã§ããŸããã
æè¡çã«ã¯ãäžèšã®ã»ã¯ã·ã§ã³ãããããã«ããŒãã³ã¢ããããŸããããã«èŠåããŸãããæã§èšããšæ¬¡ã®ããã«ãªããŸãïŒ
1ïŒäŒç€Ÿã®ãã¡ã€ã¢ãŠã©ãŒã«ãããã³ããããã«ã¯ãåŸæ¥å¡ãSTUN / TURNãããã³ã«ã䜿çšããŠç¹å®ã®äžå€®ãµãŒããŒã«æ¥ç¶ããå¿
èŠããããŸãã ãã®ãµãŒããŒã¯ãã·ã¹ãã 管çè
ã«ãã£ãŠäœæãããããç¡æã§äœ¿çšã§ããŸãããæ©èœãå¶éãããŠããŸãïŒTURNãªã¬ãŒã¢ãŒãã®ãµããŒãã¯ãããŸããïŒã
2ïŒãã¡ã€ã¢ãŠã©ãŒã«ããçªç Žãããããšãã§ããªãã£ãå Žåãå¯äžã®å¯èœæ§ãæ®ããŸãããã©ãŠã¶éã§ãã¢ããŒãã¢ã§ã¯ãªãããµãŒãããŒãã£ã®ãµãŒããŒãä»ããŠã¡ãã£ã¢ã¹ããªãŒã ãæ³šãããšã§ãã TURNãµãŒããŒã®ãã®åäœã¢ãŒãã¯ããªã¬ãŒããšåŒã°ããŸãã ãã®ãããªãµãŒããŒãèªåã§çè§£ããå¿
èŠããããŸã-
ãªãŒãã³ãªãœãªã¥ãŒã·ã§ã³ããããŸãããWebRTCã§ããããèªåã§æ§æããå¿
èŠããããŸãã ãã ããçµ±èšã«ãããšããããªã³ãŒã«ã®çŽ10ïŒ
ã ãããªã¬ãŒã¢ãŒãã«ãªããŸãã
ç¹°ãè¿ããŸããããããªã³ãŒã«ã確å®ã«ç€Ÿå
ã«å±ãããã«ããå€éšã®ãSTUN / TURNãµãŒããŒãéžæãŸãã¯äœ¿çšããŸãã
ããã¯ãã¡ãã£ã¢ã¹ããªãŒã ããŠãŒã¶ãŒãã©ãŠã¶ãŒéãçŽæ¥ãŸãã¯äžç¶ãµãŒããŒãä»ããŠç§»åããæ¹æ³ã§ãã ã¯ããããã¯ã²ã©ããŠèŠãç®ãæªãã§ã-ãããããã¡ã€ã¢ãŠã©ãŒã«ã¯ãŸã ãã¡ã€ã¢ãŠã©ãŒã«ãããã³ããããããã®ããè¯ãæ¹æ³ãèãåºããŠããŸããã Skypeããã®ååã«åºã¥ããŠããŸãã
ICEã¯æ°·ã§ã¯ãªããRFCã§å®ããããŠãããããªã¹ããªãŒã ã亀æããããã®æé©ãªã«ãŒããéžæããããã®æè¡ã§ããããšãçè§£ããªããã°ãããã«å
ãžé²ãããšã¯ã§ããŸããã ãããã³ã«ã¹ã¿ãã¯STUN / TURN / ICEã®é床ã®ãugããéè«ççãªè€éãã«ããå ç©ç©ã®ã¬ãã«-ã¯ãªãã£ã«ã«ã¬ãã«ã«å¢å ããŸããããããªäŒè°
WebRTC-ãããªäŒè°ãçŽæ¥ãµããŒãããŸããã ãããª/ãªãŒãã£ãªã¹ããªãŒã ãšãã©ãŠã¶ããããçµåããŸãã Skypeã¯ææãµãŒãã¹ã§ãã Google+ãã³ã°ã¢ãŠãïŒã¡ãªã¿ã«WebRTCã¯äœ¿çšããŸããããChromeãã©ã°ã€ã³ãšç¹å®ã®ã³ãŒããã¯ã§åäœããŸãïŒïŒ-å¶éã¯10ã15人ã§ãã
é£ãããçè§£ããŠããŸããïŒ ãã¹ãŠã®ãããªã¹ããªãŒã ã¯ã©ããã§åéãããç¹å®ã®åå è
çšã®1ã€ã®å人çãªãããªã¹ããªãŒã ã«å€æããã圌ã«è¿ãããå¿
èŠããããŸãã ã€ãŸã 10人ã®å Žåãåå人ãããªã¹ããªãŒã ããåå è
ã®ãã¬ãŒã ãååŸãããããããã¹ãã®ãã¬ãŒã ã®äžã®ã©ããã«çœ®ããçæããããã¬ãŒã ãç¹å®ã®åå è
ã«æž¡ããŸãã ãŸããWebRTCã³ãŒããã¯ãšäºææ§ã®ãããã©ãŠã¶ãŒããµããŒããããã¬ãŒã ãåéããå¿
èŠããããŸãã èšç®éãæ³åããŠãã ããã ãã®ãããªãMCUãµãŒããŒãã®ãªãŒãã³ãªå®è£
ããããŸãã
1ïŒ
licode-ç§èŠæªå å·¥ã§ãããæ£çŽãªMCUã§ã¯ãªãããã ã¹ããªãŒã ãå€éåããŸãã
2ïŒ
MCUãããªãã«ãã£ã³ã³ãã§ã¬ã³ã¹ãµãŒã㌠-ãã ããChromeãœãŒã¹ãšWebSocketsãä»ããWebRTCããµããŒãããæåŸã®ã¢ã¹ã¿ãªã¹ã¯ããã®ã³ããŒã®çŽåŸã«èµ·åããŸããã§ããã ãããŠãã©ããããããæã-Javaã®JavaãšJAVã¹ããŒ:-)
æãããã§ãããç§ã¯åæããŸãããã¡ããããããªäŒè°ãéå¬ããããã®åçšè£œåãšæ¥çå
šäœããããŸããããã®èšäºã§ã¯WebRTCã®ã¿ã«çŠç¹ãåœãŠãŠããŸãã
WebRTCã§ã¯ããã£ãšç°¡åãªããšãã§ããŸãããããªäŒè°ã§ã¯ãåãã©ãŠã¶ãååå è
ã®ãããªã¹ããªãŒã ãä¿æããŸãã jsã®ãã©ãŠã¶å
ã§ãããããã°ã©ã ããã·ã°ããªã³ã°ã«é¢é£ä»ããå¿
èŠããããŸãã ã¯ããããã§ã®ãã©ãã£ãã¯ã¯å¢å ããŠããŸããã瀟å
ããè€æ°ã®äººã
ãžã®é»è©±ã§ã¯ããã®ãœãªã¥ãŒã·ã§ã³ã¯ãã®ã·ã³ãã«ããšå¹çæ§ã«é
äºãããŠããŸãã
ãã©ãŠã¶ã¯ç°ãªããŸã
Chrome-Chromeéã®ãããªé話ã¯å®å®ããŠåäœããŸãã ãã®ä»ã®çµã¿åããïŒChromeãFirefoxãOpera-åäœããªãããæ£åŒã«åäœããŸãããå®éã«ã¯åäœããŸããã ããããããã«ããããããã圌ãã¯æ°å¹ŽããChrome-Firefoxãããªé話ã®ä¿¡é Œã§ããæäœãçŽæããŸãã
å²åŠçã«èŠããšããã¹ãŠã®äŒæ¥ãç¹å®ã®ããŒãžã§ã³ã®ãã©ãŠã¶ãŒã«çžãããŠããããã§ã¯ãããŸãã-ãããŠãããããååãšã®ã³ãã¥ãã±ãŒã·ã§ã³ãChromeã§è¡ãããšãã§ããŸãã
WebRTCãšãã¬ãã©ããŒ
ããããçå®ã¯ããã©ãŠã¶ããåºå®é»è©±/æºåž¯é»è©±ã«ããããŠãã®éã«é»è©±ããããŠã¿ãŸãããïŒ å¯èœã§ããã...ããããããã§ã¯ãé³å£°ãšãããªãéä¿¡ããæè¡ã«æ²¡é ããã«è¡ãããšã¯ã§ããŸããã æåã®ãè¡æãã¯
SIPãããã³ã«ã§ã ã IPãã¬ãã©ããŒãšSIPã¯è€éãªæè¡ã§ã¯ãããŸããããWebRTCæšæºã§ã¯SIPã«ã€ããŠã¯èšåãããŠããŸãã:-)
ãããŠããã¹ãŠãã·ã³ãã«ã§ã-SIPã®æã§è°è«-ããã¯äžçš®ã®åŒ·åã§æè»ãªã·ã°ããªã³ã°ã§ãïŒäžèšãåç
§ïŒã ããããèªåã§ä¿¡å·ãæžãå Žå-ãªãSIP
ãã©ãããã¯ãã±ãããšéæ²³éå®å®è¹ã
å¿
èŠãªã®ã§ããïŒ
ãã®äžäžèŽã«ãããSIPãçè§£ããWebRTCãä»ããŠãã©ãŠã¶ããããã³ã°ã§ãã
jsã©ã€ãã©ãª ïŒ
ã¢ã»ã³ããªèšèª ïŒã®äœæãªã©ã®ã¢ã³ã¹ã¿ãŒãçºçãå§ããŸããã ãããŠã
ã¢ã¹ã¿ãªã¹ã¯ã¯ãWebRTCçµç±ã§éä¿¡ããããã©ãŠã¶ãšã®çµ±åã®ããã«WebSocketã®ãµããŒããéå§ããŸãã...ããããæè¡åå£«ã®æçœãªäžå¯äŸµæ§ããã³æè¡ã¹ã¿ãã¯ã®è€éãã«ããã瀟å
ã®WebRTCã³ãŒã«ã§ã®SIPã®äœ¿çšãåé¡ã«ãªããŸã...ãã®å Žåã®js + sipã¯éå°ã§ãããå¯èœæ§ã¯ãããŸããïŒã
SIPã¯WebRTCã§ã·ã°ããªã³ã°ãè¡ãããšã§ãããããæ·±å»ãªã®ã¯ãè€éã§åæ£ããŠããŸããäžèšã®åé¡ã解決ããå¥ã®æ¹æ³
ã¯ãã®ãããªåŒã³åºããå°éãšããäŒç€Ÿã®ãµãŒãã¹ã䜿çšããããšã§ãã 詳现ã«é£ã³èŸŒãããšãªããç¹å¥ãªjs-libraryã䜿çšããã ãã§ãäŒç€Ÿã®ç¹å¥ãªWebãµãŒãã¹ãéããŠåºå®é»è©±ãšæºåž¯é»è©±çªå·ã«é»è©±ããããããšãã§ããŸãã
ãããã£ãŠããã©ãŠã¶ããé»è©±çªå·ã«é»è©±ããããã¿ã¹ã¯ã解決ãããŸãã
ãŸãšãããš
äºå®ãèŠçŽããæ©äŒãšãªã¹ã¯ãæ¯èŒæ€èšããŸãããã å®å
šãªãããªã³ãŒã«ãç¬ç«ããŠåççãªæéå
ã«äŒç€Ÿã«å±éã§ããŸãã æè¡ã¯ãªãŒãã³ã§ã説æãããŠãããããªãã¯ãžã£ã³ã°ã«ã«å
¥ãããšãã§ããªã-ãªããªã ç§ã¯ãã¹ãŠã®ãªã¹ã¯ã客芳çã«èª¬æããããŒãã³ã¢ã®æè¡ççµã蟌ã¿ãé«ããããšããŸããã
瀟å
ã§WebRTCãä»ããŠãããªé話ãéå§ããã«ã¯ã次ã®ããšãå¿
èŠã§ãã
- äŒç€Ÿã®ããžãã¹ããã»ã¹ã®è©³çްãèæ
®ã«å
¥ããŠãADã®åŸæ¥å¡ã®ãªã¹ãã«ã¢ã¯ã»ã¹ã§ããããªã©ã®ã·ã°ããªã³ã°ãèšè¿°ããŸãã
- äŒç€Ÿã®ããŒã«ã«ãããã¯ãŒã¯ã®å€éšã«1-2å°ã®STUN / TURNãµãŒããŒãèšçœ®ããŠãããŸããŸãªäŒç€Ÿã®ãªãã£ã¹ãã¢ãã€ã«ããã€ã¹ããã®ãããªéè©±ãæ¥ç¶ããŸãã æå·åãããŠããå Žåã§ãããããªãã©ãã£ãã¯ããããã®ãµãŒããŒãééããå ŽåããããŸã
- è€æ°ã®äººåãã«ãããªäŒè°ãéå¬ããããã®éåžžã«çã®è£œåãŸãã¯ããªãè€éãªè£œåãšã®çµ±åã詊ã¿ããããããªäŒè°ã®WebRTCå®è£
ãèšè¿°ããŠãã ãã
- äŒç€Ÿãšã®éã§éåžžã®é»è©±çªå·ã«é»è©±ããããå¯èœæ§ã®ããã«ãã²ãŒããŠã§ã€ããšçµ±åãã
æè¡çã«ã¯ãã¿ã¹ã¯ã¯è§£æ±ºå¯èœã§ãã ããããããããã¹ãŠãè¡ãæéããªãå Žåã¯ãããšãã°ãäžèšã®ãã¹ãŠããµããŒã
ãã補åãŸãã¯
ã¯ã©ãŠããµãŒãã¹ ïŒç¡æã®ç»é²ãšãã©ãã§ãé話ã§ããã¢ã«ãŠã³ãã®100ã«ãŒãã«-ãã¯ãããžãŒããã¹ãããŠãå¿
èŠãã©ãããçè§£ã§ããŸãïŒã䜿çšã§ããŸãããã«äœ¿ãããããªé話æè¡ãšãSTUN / TURNãããã³ã«ããµããŒããããããªãµãŒããŒã®ã¯ã©ã¹ã¿ãŒã䜿çšããŸãã
ãã¯ãããžãŒãªãã¬ãŒã·ã§ã³
å®è£
ãªãã·ã§ã³ãéžæãã瀟å
ã®ãã©ãŠã¶ãŒããã®ãããªé話ã®äœ¿çšãéå§ããŸããã ã©ããããããæ²é»ããŠããããŸãã¯åœŒããããã«ã€ããŠç¥ããªããšãã1ã€ã®ãã€ã³ãããããŸã-éãæããããšãäžå¯èœãªãšãããŸããªã±ãŒã¹ãå¯èœã§ãã ããã¯ããã©ãŠã¶ãŒããäºããçŽæ¥èŠã€ããããšãã§ããïŒICEãä»ããŠãã¢ããŒãã¢ãã€ã³ã¹ããŒã«ããïŒãæåŸã®æ©äŒã䜿çšããããšããŠãããšããäºå®ã«ãããã®ã§ããå€éšãªã¬ãŒãµãŒããŒãä»ããŠæ¥ç¶ã確ç«ããŸãã... ã ãã ããTURNã¯UDPãä»ãããªã¬ãŒã¢ãŒãã®ã¿ããµããŒãããŠããŸãïŒè©³çްã«ã€ããŠã¯RFCãåç
§ããŠãã ããïŒã ãããèš±å¯ããã®ã«åå-ãšãããªé話ãåã³åäœããŸãã
å¥ã®äžè¬çãªè³ªåã¯ããã©ãã£ãã¯ãšãããªã®ãµã€ãºã§ãã TURNãµãŒããŒã®ãªã¬ãŒã¢ãŒãã§ã¯ã1ã€ã®æ¥ç¶ã1ç§ãããæ°çŸãããã€ããæ¶è²»ããŸãããã©ãã£ãã¯ã¯ããã©ãŠã¶ãŒã®ãããªã®ãµã€ãºã«çŽæ¥äŸåããŸãã ã€ãŸã ãªã¬ãŒã¢ãŒãã§é«å¯åºŠã®ãããªäŒè°ãå¿
èŠãªå Žåã¯ãäºåã«æ€èšããŠãã ããã
ãããããç§ãè峿·±ãæçšãªããšãäŒãããã£ãã®ã¯ããã ãã§ãããã æ°å¹Žãäœæ¥äžã®ãããžã§ã¯ããåŸæ¥å¡ã®æºè¶³ããç¥ãããŸãïŒ