<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:series="http://unfoldingneurons.com/"
	>

<channel>
	<title>Programming Ideas, Logics, Tips and Tricks &#187; toolbar</title>
	<atom:link href="http://www.sajithmr.me/tag/toolbar/feed" rel="self" type="application/rss+xml" />
	<link>http://www.sajithmr.me</link>
	<description></description>
	<lastBuildDate>Sat, 07 Apr 2012 16:30:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>How Gmail Video Chat Works ?</title>
		<link>http://www.sajithmr.me/how-gmail-video-chat-works</link>
		<comments>http://www.sajithmr.me/how-gmail-video-chat-works#comments</comments>
		<pubDate>Tue, 18 Nov 2008 10:16:29 +0000</pubDate>
		<dc:creator>Mr Me</dc:creator>
				<category><![CDATA[webworld]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[behind]]></category>
		<category><![CDATA[chat]]></category>
		<category><![CDATA[desktop]]></category>
		<category><![CDATA[featured]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[gear]]></category>
		<category><![CDATA[gmail]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[rtp]]></category>
		<category><![CDATA[toolbar]]></category>
		<category><![CDATA[udp]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://www.sajithmr.com/?p=368</guid>
		<description><![CDATA[Recently Gmail Introduced Video Chat. For a platform, to support the video chat you need to install the flash activex plugin. You can get the plugin from http://mail.google.com/videochat But when you click on Install voice and video chat button, Some of you see the page which shows &#8220;The installer should complete in seconds.   If you [...]]]></description>
			<content:encoded><![CDATA[<p>Recently Gmail Introduced Video Chat. For a platform, to support the video chat you need to install the flash activex plugin.</p>
<p>You can get the plugin from http://mail.google.com/videochat</p>
<p>But when you click on Install voice and video chat button, Some of you see the page which shows</p>
<p><strong><em>&#8220;The installer should complete in seconds.</em></strong></p>
<p><em> </em></p>
<p> </p>
<p><strong><em>If you are having trouble with the download, click here. &#8220; </em></strong></p>
<p>But some other see a auto installer page which downloads the Setup.exe file and automatically start installation and prompts you to restart the browser.</p>
<p><a href="http://www.sajithmr.com/wp-content/uploads/2008/11/downloading-the-chat.jpg"><img class="alignnone size-full wp-image-369" title="downloading-the-chat" src="http://www.sajithmr.com/wp-content/uploads/2008/11/downloading-the-chat.jpg" alt="" width="500" height="346" /></a></p>
<p>Who did this installation without any security problem or violation and we saw a different window which shows the progress bar of the installation. This happens only when , if you have<strong> google tool bar</strong> installed on your browser , or <strong>google desktop</strong>, or<strong> google gears</strong>. For those browsers if the above three is not present, the previous message gets result , and which provide the direct link of the GoogleVoiceAndVideoSetup.exe</p>
<p>It is<a href="http://dl.google.com/googletalk/googletalkplugin/GoogleVoiceAndVideoSetup.exe" target="_blank"> http://dl.google.com/googletalk/googletalkplugin/GoogleVoiceAndVideoSetup.exe</a></p>
<p>My Chrome browser does not support automatic installation. Because it is a new guest for my OS and the google additional plugin installation happend before its arrival. So Only Download and manual installation works in that case.</p>
<p> </p>
<p>Then what the script exectued behind is </p>
<p> </p>
<p class="MsoNormal"><span><strong><span style="color: #ff6600;">window.google.update.oneclick.install (install via click) </span></strong></span></p>
<p class="MsoNormal">and </p>
<p class="MsoNormal"> </p>
<p class="MsoNormal"><span><strong><span style="color: #ff6600;">location.href =</span></strong><span><strong><span style="color: #ff6600;">  </span></strong></span><strong><span style="color: #ff6600;">http://dl.google.com/googletalk/googletalkplugin/GoogleVoiceAndVideoSetup.exe</span></strong> (install manually )</span></p>
<p class="MsoNormal">Note the first bit of script window.google , A new object for google, which is created as the result of any one of the above mentioned google services. My Chrome Browser (Since he is a new member) does not know about the window.google (he knows the default methods like window.location, window.document)</p>
<p class="MsoNormal">Thats allabout the installation part. </p>
<p class="MsoNormal">Now About the Video Chat. Obviously it is a flash based video chat mechanism , but the difference is it uses rtcp and udp protocol for video /audio chatting. Did you check the speed of your video chat ? Amaze  rite ?</p>
<p> </p>
<p> </p>
<p>Then lets check about the video chat request.</p>
<p>When you request someone for a video chat, google ajax posts the following data</p>
<p> </p>
<p class="MsoNormal"><span><span style="color: #3366ff;">req4_jid</span><span><span style="color: #3366ff;"> </span></span><span style="color: #3366ff;">c2143377409</span><span style="color: #3366ff;"></span></span></p>
<p class="MsoNormal"><span><span style="color: #3366ff;">req4_json</span><span><span style="color: #3366ff;">            </span></span><span style="color: #3366ff;">["jc","xyz@gmail.com","c2143377409",[["192.168.1.100","3801","video_rtp","dgE9SG8VMVdQFrYo","gyB0pRw5dkoEtq21","1","udp","0","local","0"]]]</span><span style="color: #3366ff;"></span></span></p>
<p class="MsoNormal"><span><span style="color: #3366ff;">req4_type</span><span><span style="color: #3366ff;">          </span></span><span style="color: #3366ff;">j</span><span style="color: #3366ff;"></span></span></p>
<p class="MsoNormal"><span><span style="color: #3366ff;">req5_jid</span><span><span style="color: #3366ff;"> </span></span><span style="color: #3366ff;">c2143377409</span><span style="color: #3366ff;"></span></span></p>
<p class="MsoNormal"><span><span style="color: #3366ff;">req5_json</span><span><span style="color: #3366ff;">            </span></span><span style="color: #3366ff;">["jc","xyz@gmail.com","c2143377409",[["116.68.66.85","3784","rtcp","iqV9/3HhhqkjQ4kp","wMSi7BsiOVNtnbJR","0.9","udp","0","stun","0"]]]</span><span style="color: #3366ff;"></span></span></p>
<p class="MsoNormal"><span><span style="color: #3366ff;">req5_type</span><span><span style="color: #3366ff;">          </span></span><span style="color: #3366ff;">j</span></span></p>
<p class="MsoNormal"><a href="http://www.sajithmr.com/wp-content/uploads/2008/11/chatstarts.jpg"><img class="alignnone size-full wp-image-370" title="chatstarts" src="http://www.sajithmr.com/wp-content/uploads/2008/11/chatstarts.jpg" alt="" width="230" height="374" /></a></p>
<p class="MsoNormal">Here xyz@gmail.com is the person , to whom you are going to chat. It sends the video_rtp protocol parameters. To know more about rtcp and udp go to: <a href="http://www.javvin.com/protocolRTCP.html" target="_blank">http://www.javvin.com/protocolRTCP.html</a></p>
<p class="MsoNormal"><span>Here 192.168.1.100 is my local area ip (LAN) and 116.68.66.85 is my internet IP address and the numbers starts in 3000 are the port number for the protocol</span></p>
<p class="MsoNormal">In addition to this, google also sends its usual parameters like mouse movement detector (To know the state of a chatter, idle or busy / normal )</p>
<p class="MsoNormal">It also sends the cpu speed info to google server to know about the video processing time. And your bandwidth and speed of internet is already there in google&#8217;s hand (See my post on <a href="http://www.sajithmr.com/gmail-architecture/" target="_blank">Gmail Architecture</a> to know about the 1pix speed calculation method of gmail)</p>
<p> </p>
<p class="MsoNormal"> </p>
<p class="MsoNormal"> </p>
<p class="MsoNormal"><span><span style="color: #008080;">count</span><span><span style="color: #008080;">    </span></span><span style="color: #008080;">3</span><span style="color: #008080;"></span></span></p>
<p class="MsoNormal"><span><span style="color: #008080;">req0_evtype</span><span><span style="color: #008080;">       </span></span><span style="color: #008080;">mousemove</span><span style="color: #008080;"></span></span></p>
<p class="MsoNormal"><span><span style="color: #008080;">req0_time</span><span><span style="color: #008080;">          </span></span><span style="color: #008080;">263866</span><span style="color: #008080;"></span></span></p>
<p class="MsoNormal"><span><span style="color: #008080;">req0_type</span><span><span style="color: #008080;">          </span></span><span style="color: #008080;">i</span><span style="color: #008080;"></span></span></p>
<p class="MsoNormal"><span><span style="color: #008080;">req1_focused</span><span><span style="color: #008080;">     </span></span><span style="color: #008080;">1</span><span style="color: #008080;"></span></span></p>
<p class="MsoNormal"><span><span style="color: #008080;">req1_type</span><span><span style="color: #008080;">          </span></span><span style="color: #008080;">cf</span><span style="color: #008080;"></span></span></p>
<p class="MsoNormal"><span><span style="color: #008080;">req2_jid</span><span><span style="color: #008080;"> </span></span><span style="color: #008080;"></span></span></p>
<p class="MsoNormal"><span><span style="color: #008080;">req2_json</span><span><span style="color: #008080;">          </span></span><span style="color: #008080;">["mf","mf1.0","1.0.2.0",2,{"caps":7,"cpuSpeed":1664,"cpus":2}]</span><span style="color: #008080;"></span></span></p>
<p class="MsoNormal"><span><span style="color: #008080;">req2_type</span><span><span style="color: #008080;">          </span></span><span style="color: #008080;">j</span></span></p>
<p> </p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">Gmail sends request for every 3 seconds, and if your counterpart accepts the video chat invitation, your chat iframe loads with a flash object tag .</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal"><span><span style="color: #800080;">&lt;embed id=&#8221;flash_yj_c_player2&#8243; wmode=&#8221;window&#8221; pluginspage=&#8221;http://www.macromedia.com/go/getflashplayer&#8221; type=&#8221;application/x-shockwave-flash&#8221; seamlesstabbing=&#8221;false&#8221; allowfullscreen=&#8221;true&#8221; allowscriptaccess=&#8221;sameDomain&#8221; bgcolor=&#8221;#000000&#8243; flashvars=&#8221;dbg=true&amp;ap=player&amp;nm=yj_c_player2&amp;cb=Recv_yj_c_player2&amp;os=windows&amp;plugin=true&amp;&#8221; src=&#8221;im/media-player.swf?ver=1.1.6&#8243; style=&#8221;width: 100%; height: 100%;&#8221; name=&#8221;yj_c_player2&#8243; quality=&#8221;high&#8221;/&gt;</span></span></p>
<p class="MsoNormal"><a href="http://www.sajithmr.com/wp-content/uploads/2008/11/fullchat.jpg"><img class="alignnone size-full wp-image-371" title="fullchat" src="http://www.sajithmr.com/wp-content/uploads/2008/11/fullchat.jpg" alt="" width="434" height="566" /></a></p>
<p class="MsoNormal">And this flash application does the later works.  This flash application communicate with google media server with Real Time Protocol and your video chat happens that way. The flash activex plugin support helps in accessing your webcam and mic.  Good day , have a nice chat &#8230; </p>
<p class="MsoNormal">Mail Me for more information</p>
<p class="MsoNormal">Thanks and Regards</p>
<p class="MsoNormal">Sajith</p>
<p> </p>
<p class="MsoNormal"> </p>
<p class="MsoNormal"> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.sajithmr.me/how-gmail-video-chat-works/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
	</channel>
</rss>

