<?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/"
	>

<channel>
	<title>AddLive</title>
	<atom:link href="http://www.addlive.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.addlive.com</link>
	<description>Just another WordPress site</description>
	<lastBuildDate>Wed, 01 May 2013 15:51:02 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Launching the new AddLive YouTube Channel</title>
		<link>http://www.addlive.com/2013/03/27/launching-the-new-addlive-youtube-channel/</link>
		<comments>http://www.addlive.com/2013/03/27/launching-the-new-addlive-youtube-channel/#comments</comments>
		<pubDate>Wed, 27 Mar 2013 11:26:49 +0000</pubDate>
		<dc:creator>Kavan Seggie</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.addlive.com/?p=3018</guid>
		<description><![CDATA[We have just launched our new YouTube channel. It only contains a single &#8216;infomerical&#8217; at the moment but we will be adding more video demos and video tutorials. If there is anything in particular you would like to see, please let us know! You can visit the channel at: http://www.youtube.com/user/GetAddLive/ And you can watch the AddLive video here: http://www.youtube.com/watch?v=I310xApnlfc]]></description>
				<content:encoded><![CDATA[<p>We have just launched our new YouTube channel. It only contains a single &#8216;infomerical&#8217; at the moment but we will be adding more video demos and video tutorials. </p>
<p>If there is anything in particular you would like to see, please let us know!</p>
<p>You can visit the channel at: <a href="http://www.youtube.com/user/GetAddLive/" target="_blank">http://www.youtube.com/user/GetAddLive/</a></p>
<p>And you can watch the AddLive video here: <a href="http://www.youtube.com/watch?v=I310xApnlfc" target="_blank">http://www.youtube.com/watch?v=I310xApnlfc</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.addlive.com/2013/03/27/launching-the-new-addlive-youtube-channel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Day the WebRTC Revolution Began</title>
		<link>http://www.addlive.com/2013/03/26/the-day-the-webrtc-revolution-began/</link>
		<comments>http://www.addlive.com/2013/03/26/the-day-the-webrtc-revolution-began/#comments</comments>
		<pubDate>Tue, 26 Mar 2013 10:18:08 +0000</pubDate>
		<dc:creator>Kavan Seggie</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.addlive.com/?p=3008</guid>
		<description><![CDATA[Monday 18th March 2013 was, in my opinion, the biggest day in WebRTC&#8217;s history. It was more important than the day WebRTC landed in Chrome, and the day that Chrome and Firefox interoperated. I say this because it was the first time that WebRTC entered the imagination of a large group of business decision makers who are outside of the tech industry. For those of you who do not know, Monday 18th March was the WebRTC Conference-within-a-conference at Enterprise Connect (EC13). The day was hosted by Brent Kelly and Irwin Lazar. The morning started with a highly informed talk by Jan Linden of Google and Cullen Jennings of Cisco, both pivotal and highly respected engineers working on WebRTC. Despite it being a fairly technical overview, the room was completely full. And as the talk continued, more and more Enterprise Connect attendees piled in. About 45 minutes into the session the conference organizer, Eric Krapf, asked Cullen and Jan to pause. We were told that there were too many people and that they were going to extend the room size. In a few minutes a wall was removed to reveal 100 more seats that were all quickly taken. This buzz continued through out the day with the AddLive and other &#8216;WebRTC Innovators&#8217; demo&#8217;s were delivered shortly after 1pm to a still packed room. The interest that day was a surprise to all of us involved in WebRTC, but we had no idea what was going to happen over the following days. For those of you who don&#8217;t know about Enterprise Connect, it is the single most important enterprise communications conference globally. It is attended by 5,000 enterprise professionals, including CIO&#8217;s of large enterprises, CEO&#8217;s of vendors and also smaller disruptive companies like us at AddLive and our friends at Plivo. The likes of Microsoft, Cisco and Avaya presented the keynotes. They shared their next generation products and their vision of the future and the panels discussed topics like the Cloud, BYOD, business models and the communication requirements of the enterprise. But what was remarkable was that every single keynote, panel, and lecture had either a dedicated WebRTC segment or the conversation drifted to WebRTC. It became the hot topic of EC13. WebRTC was being talked about in the corridors, during lunch and even over evening drinks. When I introduce AddLive, I introduce WebRTC. Firstly I introduce the term, then the technology, then the implications. On Monday this was still the case, but by Wednesday things had changed. Although I still needed to explain the tech and what it means to businesses, when I mentioned WebRTC to others their face lit up and they began asking me questions. So when we look back at the WebRTC journey, I believe that Monday 18th March was the day when the business world woke up to WebRTC. The day that WebRTC entered the imagination of the enterprise.]]></description>
				<content:encoded><![CDATA[<p>Monday 18th March 2013 was, in my opinion, the biggest day in WebRTC&#8217;s history. It was more important than the day WebRTC landed in Chrome, and the day that Chrome and Firefox interoperated. I say this because it was the first time that WebRTC entered the imagination of a large group of business decision makers who are outside of the tech industry.</p>
<p>For those of you who do not know, Monday 18th March was the <a href="http://www.enterpriseconnect.com/orlando/conference/webrtc-and-the-voice-enabled-web.php" target="_blank">WebRTC Conference-within-a-conference</a> at <a href="http://www.enterpriseconnect.com/orlando/" target="_blank">Enterprise Connect</a> (EC13).</p>
<p>The day was hosted by <a href="https://twitter.com/ebkell" target="_blank">Brent Kelly</a> and <a href="https://twitter.com/imlazar" target="_blank">Irwin Lazar</a>. The morning started with a highly informed talk by Jan Linden of Google and <a href="https://twitter.com/cfluffy" target="_blank">Cullen Jennings</a> of Cisco, both pivotal and highly respected engineers working on WebRTC. Despite it being a fairly technical overview, the room was completely full. And as the talk continued, more and more Enterprise Connect attendees piled in.</p>
<p>About 45 minutes into the session the conference organizer, Eric Krapf, asked Cullen and Jan to pause. We were told that there were too many people and that they were going to extend the room size. In a few minutes a wall was removed to reveal 100 more seats that were all quickly taken.</p>
<p>This buzz continued through out the day with the AddLive and other &#8216;WebRTC Innovators&#8217; demo&#8217;s were delivered shortly after 1pm to a still packed room. </p>
<p>The interest that day was a surprise to all of us involved in WebRTC, but we had no idea what was going to happen over the following days.</p>
<p>For those of you who don&#8217;t know about Enterprise Connect, it is the single most important enterprise communications conference globally. It is attended by 5,000 enterprise professionals, including CIO&#8217;s of large enterprises, CEO&#8217;s of vendors and also smaller disruptive companies like us at <a href="http://www.addlive.com" target="_blank">AddLive</a> and our friends at <a href="http://www.plivo.com" target="_blank">Plivo</a>.</p>
<p>The likes of Microsoft, Cisco and Avaya presented the keynotes. They shared their next generation products and their vision of the future and the panels discussed topics like the Cloud, BYOD, business models and the communication requirements of the enterprise.</p>
<p>But what was remarkable was that every single keynote, panel, and lecture had either a dedicated WebRTC segment or the conversation drifted to WebRTC. It became the hot topic of EC13. WebRTC was being talked about in the corridors, during lunch and even over evening drinks.</p>
<p>When I introduce AddLive, I introduce WebRTC. Firstly I introduce the term, then the technology, then the implications. On Monday this was still the case, but by Wednesday things had changed. Although I still needed to explain the tech and what it means to businesses, when I mentioned WebRTC to others their face lit up and they began asking me questions.</p>
<p>So when we look back at the WebRTC journey, I believe that Monday 18th March was the day when the business world woke up to WebRTC. The day that WebRTC entered the imagination of the enterprise.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.addlive.com/2013/03/26/the-day-the-webrtc-revolution-began/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>WebRTC update: 3D WebRTC by Ericsson</title>
		<link>http://www.addlive.com/2013/03/26/3d-webrtc-ericsso/</link>
		<comments>http://www.addlive.com/2013/03/26/3d-webrtc-ericsso/#comments</comments>
		<pubDate>Tue, 26 Mar 2013 08:27:47 +0000</pubDate>
		<dc:creator>Kavan Seggie</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.addlive.com/?p=3001</guid>
		<description><![CDATA[At MWC2013, Ericsson showed off some pretty cool 3D video conferencing tech. Now they are bringing it to WebRTC. In a blog post by Julien Michot Ericsson has announced that they have their 3D implementations running in the browser. Although 3D video is not a requirement of WebRTC, and is not in the specifications, it is still very cool and with their depth sensor implementation 3D could potentially be rendered on a screen without the need for the user to wear glasses. It is great to see teams like Ericsson labs pushing the boundries of where the technology could go so early in the process. For more information, view the Ericsson blog post here: https://labs.ericsson.com/blog/3d-webrtc-3d-video-communication-in-a-browser]]></description>
				<content:encoded><![CDATA[<p>At MWC2013, Ericsson showed off some pretty cool <a href="https://labs.ericsson.com/blog/3d-the-future-of-visual-communication" target="_blank">3D video conferencing tech</a>. </p>
<p>Now they are bringing it to WebRTC. </p>
<p>In a blog post by <a href="http://www.linkedin.com/in/julienmichot" target="_blank">Julien Michot</a> Ericsson has announced that they have their 3D implementations running in the browser. Although 3D video is not a requirement of WebRTC, and is not in the specifications, it is still very cool and with their depth sensor implementation 3D could potentially be rendered on a screen without the need for the user to wear glasses.</p>
<p>It is great to see teams like Ericsson labs pushing the boundries of where the technology could go so early in the process.</p>
<p>For more information, view the Ericsson blog post here: <a href="https://labs.ericsson.com/blog/3d-webrtc-3d-video-communication-in-a-browser" target="_blank">https://labs.ericsson.com/blog/3d-webrtc-3d-video-communication-in-a-browser</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.addlive.com/2013/03/26/3d-webrtc-ericsso/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AddLive to Demo at the Enterprise Connect Conference in Orlando</title>
		<link>http://www.addlive.com/2013/03/16/addlive-to-demo-at-the-enterprise-connect-conference-in-orlando/</link>
		<comments>http://www.addlive.com/2013/03/16/addlive-to-demo-at-the-enterprise-connect-conference-in-orlando/#comments</comments>
		<pubDate>Sat, 16 Mar 2013 10:19:06 +0000</pubDate>
		<dc:creator>Kavan Seggie</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.addlive.com/?p=2994</guid>
		<description><![CDATA[AddLive has been selected to demo at EC&#8217;s WebRTC Conference-within-a-conference on Monday 18th March. The session is &#8216;Innovation within WebRTC&#8217; and runs from 1pm to 2pm EST in the Osceola 5 room. More details can be found here: http://www.enterpriseconnect.com/orlando/conference/webrtc-and-the-voice-enabled-web.php Look forward to seeing you there!]]></description>
				<content:encoded><![CDATA[<p>AddLive has been selected to demo at EC&#8217;s WebRTC Conference-within-a-conference on Monday 18th March.</p>
<p>The session is &#8216;Innovation within WebRTC&#8217; and runs from 1pm to 2pm EST in the Osceola 5 room.</p>
<p>More details can be found here: http://www.enterpriseconnect.com/orlando/conference/webrtc-and-the-voice-enabled-web.php</p>
<p>Look forward to seeing you there!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.addlive.com/2013/03/16/addlive-to-demo-at-the-enterprise-connect-conference-in-orlando/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Guest post: Peer Connection Part 1</title>
		<link>http://www.addlive.com/2013/03/15/guest-post-peer-connection-part-1/</link>
		<comments>http://www.addlive.com/2013/03/15/guest-post-peer-connection-part-1/#comments</comments>
		<pubDate>Fri, 15 Mar 2013 08:48:23 +0000</pubDate>
		<dc:creator>Kavan Seggie</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.addlive.com/?p=2938</guid>
		<description><![CDATA[This is a guess post written by Arjun Varma. Arjun is a CS student from India. He has &#8220;an immense passion for Computer Science and loves the theory and concepts behind it&#8221;. He is an Open Source Enthusiast and contributes to the Mozilla project where he has been involved with WebRTC. You can follow him on twitter, InfinityO_O. Wow! I&#8217;ve had a huge break from blogging for a while now especially about WebRTC. I&#8217;m sure you all have been tracking how much WebRTC has been evolving over the past few months. The most recent and exciting news which you have got to know is the interop between Chrome and Mozilla has landed and it is undeniably super cool. You could check out the demo by following up this link. So, without any further delay let me start with the peer connection tutorial which I am sure is a component everyone is dying to try. I have realized that a peer connection tutorial has got to have a minimum of two parts so that I do at least some justice to it. So here in part1, lets start with the basics of what you have got to know to get started with establishing your own peer connection i.e learn how a basic call is established. Assumptions : I assume that you can understand the basics of HTML and JavaScript so that you can understand the other parts of what is happening and that you have already ready my tutorial on gUM or you know the basic usage of gUM. A little bit of going through the WebRTC blogs (I&#8217;ve listed a few in the last) would be really helpful as well. I will be using the code from Anant&#8217;s demo to walk you through the steps of setting up a call. It provides an easy way of testing the peer connection component (especially when you are not hosting your app). This page basically has two video elements, one called Remote and the other called Local. The video captured by your local machine (using gUM) is displayed by your Local video component. The basic idea is to establish a call using WebRTC&#8217;s peer connection component between the Remote and Local video components on the page. Thus finally when the call is established the video captured by your local machine is streamed to the Remote Video element on that page through its connection with the Local Video element. I highly recommend you try out this demo yourself on Peer Connection Test Page before getting started with this tutorial so that you have a clear idea of what you are trying to build. (I&#8217;m not sure if it works on windows yet ) Note: For the demo to work you have to have the latest version of Mozilla Nightly. Now that the peer connection preferences are turned on by default I don&#8217;t think you need to tinker with your browser preferences. Lets start of from the very beginning. When I want to initiate a call what should I do? ( what to do in the code when I click on the start button in the pc test page ) &#8211; The first and foremost step is to create the peer connection objects based on the number of connections that are required. For our example, we require only two, so we create pc1 and pc2 as follows: The peer connection objects has several in built methods which can be used quite effectively as you will notice in this tutorial. The next important step is to capture the local video by making use of gUM as follows: In the above function we have set the captured media by the gUM function to video1 i.e. currently video1 is the local machine&#8217;s captured video. The next part deals with setting the local video source as video1. Once the video begins to play (thanks to invoking play()) we add this video to the Stream attribute of the peer connection object by making use of the method addStream(video) So now, we have the local video running. We will also create fake audio streams for both pc1 and pc2 (The reason we have pc1&#8242;s audio as a fake stream is due to the echo problem) . These can be used later on in case some captured audio has to be added to the stream. Similarly we also add a fake video stream to the pc2 object, so that once the call is established the video from pc1 can be added to this stream. You might be wondering if I&#8217;ve forgotten the method onaddstream. Don&#8217;t worry I don&#8217;t forget that easily So, this function is invoked everytime the addStream function is called. Let me explain this with respect to pc1.onaddstream. In this method we set the source stream for the pc2 video and we play it using the play method. Since, intially there is only a fake video stream nothing will play, but later on once the call is established &#8211; voila! pc2 will be playing the local video from pc1 i.e it plays the remote stream when a video call is established. The pc2.onaddstream does something similar, but this is for the case where pc2 is the local stream and pc1 is the remote stream. Now that we have everything ready, the only thing left is to establish a call. In WebRTC, calls are established through a process called Signalling which can roughly be defined as &#8211; &#8220;For a caller to be able to make a call he first has to make an offer to the callee (general procedure) and for the call to be established it is required that the callee accepts the offer and return an answer which is in turn accepted by the callee (yeah, yeah its the preliminary handshake). &#8220; Signalling in itself is a huge topic to cover and is achieved through a protocol called Interactive Connectivity Establishment (ICE) and I plan to explain it in the next blogpost. For now, all you need to know [...]]]></description>
				<content:encoded><![CDATA[<p><em>This is a guess post <a href="http://www.twitter.com/@InfinityO_O" target="_blank">written by Arjun Varma</a>. Arjun is a CS student from India. He has &#8220;an immense passion for Computer Science and loves the theory and concepts behind it&#8221;. He is an Open Source Enthusiast and contributes to the Mozilla project where he has been involved with WebRTC. <a href="http://www.twitter.com/@InfinityO_O" target="_blank">You can follow him on twitter, InfinityO_O</a>.</em></p>
<p>Wow! I&#8217;ve had a huge break from blogging for a while now especially about <a title="WebRTC" href="http://www.webrtc.org/">WebRTC</a>. I&#8217;m sure you all have been tracking how much WebRTC has been evolving over the past few months. The most recent and exciting news which you have got to know is the <strong>interop</strong> between Chrome and Mozilla has landed and it is undeniably super cool. You could check out the demo by following up this <a href="https://hacks.mozilla.org/2013/02/hello-chrome-its-firefox-calling/">link</a>. So, without any further delay let me start with the peer connection tutorial which I am sure is a component everyone is dying to try.</p>
<p>I have realized that a peer connection tutorial has got to have a minimum of two parts so that I do at least some justice to it. So here in part1, lets start with the basics of what you have got to know to get started with establishing your own peer connection i.e learn how a basic call is established.<br />
<strong>Assumptions</strong> : I assume that you can understand the basics of HTML and JavaScript so that you can understand the other parts of what is happening and that you have already ready my <a href="http://blog.addlive.com/2012/11/guest-post-webrtc-how-to-get-started.html?spref=tw">tutorial</a> on gUM or you know the basic usage of gUM. A little bit of going through the <strong>WebRTC blogs</strong> (I&#8217;ve listed a few in the last) would be really helpful as well.</p>
<p>I will be using the code from <a href="https://github.com/anantn/webrtc-landing/blob/gh-pages/pc_test.html">Anant&#8217;s demo</a> to walk you through the steps of setting up a call. It provides an easy way of testing the peer connection component (especially when you are not hosting your app). This page basically has two video elements, one called Remote and the other called Local. The video captured by your local machine (using gUM) is displayed by your Local video component. The basic idea is to establish a call using WebRTC&#8217;s peer connection component between the <strong>Remote</strong> and <strong>Local </strong>video components on the page. Thus finally when the call is established the video captured by your local machine is streamed to the Remote Video element on that page through its connection with the Local Video element. I highly recommend you try out this demo yourself on <a href="http://mozilla.github.com/webrtc-landing/pc_test.html">Peer Connection Test Page</a> before getting started with this tutorial so that you have a clear idea of what you are trying to build. (I&#8217;m not sure if it works on windows yet <img src='http://www.addlive.com/wp-includes/images/smilies/icon_neutral.gif' alt=':|' class='wp-smiley' /> )</p>
<p>Note: For the demo to work you have to have the latest version of Mozilla <a href="http://nightly.mozilla.org">Nightly</a>. Now that the peer connection preferences are turned on by default I don&#8217;t think you need to tinker with your browser preferences.</p>
<p>Lets start of from the very beginning. When I want to initiate a call what should I do? ( what to do in the code when I click on the start button in the pc test page ) &#8211; The first and foremost step is to create the <strong>peer connection objects</strong> based on the number of connections that are required. For our example, we require only two, so we create pc1 and pc2 as follows:</p>
<pre class="brush: jscript; gutter: false; title: ; notranslate">
pc1 = new mozRTCPeerConnection();
pc2 = new mozRTCPeerConnection();</pre>
<p>The peer connection objects has several in built methods which can be used quite effectively as you will notice in this tutorial. The next important step is to capture the local video by making use of gUM as follows:</p>
<pre class="brush: jscript; gutter: false; title: ; notranslate">navigator.mozGetUserMedia({video:true}, function(video1) {</pre>
<p>In the above function we have set the captured media by the gUM function to video1 i.e. currently video1 is the local machine&#8217;s captured video. The next part deals with setting the local video source as video1. Once the video begins to play (thanks to invoking <em><strong>play()</strong></em>) we add this video to the Stream attribute of the peer connection object by making use of the method <strong><em>addStream(video)</em></strong></p>
<pre class="brush: jscript; gutter: false; title: ; notranslate">// Add stream obtained from gUM to &amp;lt;video&amp;gt; to start media flow.
localvideo.mozSrcObject = video1;
localvideo.play();
pc1.addStream(video1);</pre>
<p>So now, we have the local video running. We will also create <strong>fake audio streams</strong> for both pc1 and pc2 (The reason we have pc1&#8242;s audio as a fake stream is due to the echo problem) . These can be used later on in case some captured audio has to be added to the stream.</p>
<pre class="brush: jscript; gutter: false; title: ; notranslate">navigator.mozGetUserMedia({audio:true, fake:true}, function(audio1) {
pc1.addStream(audio1);
pc2.addStream(audio1);
</pre>
<p>Similarly we also add a <strong>fake video stream</strong> to the pc2 object, so that once the call is established the video from pc1 can be added to this stream.</p>
<pre class="brush: jscript; gutter: false; title: ; notranslate">navigator.mozGetUserMedia({video:true, fake:true}, function(video2) {
pc2.addStream(video2);</pre>
<p>You might be wondering if I&#8217;ve forgotten the method <strong><em>onaddstream</em></strong>. Don&#8217;t worry I don&#8217;t forget that easily <img src='http://www.addlive.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' />  So, this function is invoked everytime the addStream function is called. Let me explain this with respect to <strong><em>pc1.onaddstream</em></strong>. In this method we set the source stream for the pc2 video and we play it using the play method. Since, intially there is only a fake video stream nothing will play, but later on once the call is established &#8211; voila! pc2 will be playing the local video from pc1 i.e it plays the remote stream when a video call is established.</p>
<pre class="brush: jscript; gutter: false; title: ; notranslate">pc1.onaddstream = function(obj) {
log(&quot;pc1 got remote stream from pc2 &quot; + obj.type);
pc2video.mozSrcObject = obj.stream;
pc2video.play();
}
</pre>
<p>The <strong><em>pc2.onaddstream</em></strong> does something similar, but this is for the case where pc2 is the local stream and pc1 is the remote stream.</p>
<pre class="brush: jscript; gutter: false; title: ; notranslate">pc2.onaddstream = function(obj) {
log(&quot;pc2 got remote stream from pc1 &quot; + obj.type);
pc1video.mozSrcObject = obj.stream;
pc1video.play();
}</pre>
<p>Now that we have everything ready, the only thing left is to establish a call. In WebRTC, calls are established through a process called Signalling which can roughly be defined as &#8211; <em>&#8220;For a caller to be able to make a call he first has to make an offer to the callee (general procedure) and for the call to be established it is required that the callee accepts the offer and return an answer which is in turn accepted by the callee (yeah, yeah its the preliminary handshake). &#8220;</em> Signalling in itself is a huge topic to cover and is achieved through a protocol called Interactive Connectivity Establishment (<strong>ICE</strong>) and I plan to explain it in the next blogpost. For now, all you need to know about signalling is a higher level abstraction of it which is pretty much clearly stated in the definition. So the first step to signalling takes place here (<em><strong>creating an offer</strong></em>):</p>
<pre class="brush: jscript; gutter: false; title: ; notranslate">pc1.createOffer(step1, failed);</pre>
<p>Here, tha basic idea is to make pc1 create an offer to pc2 as mentioned before. The offer will contain the Local Description of pc1 object and this Description is generated in the method <em><strong>setLocalDescription(..)</strong></em> in the <strong><em>function step1</em></strong> as follows:</p>
<pre class="brush: jscript; gutter: false; title: ; notranslate">
// pc1.createOffer finished, call pc1.setLocal
function step1(offer) {
pc1_offer = offer;
pc1.setLocalDescription(offer, step2, failed);
}</pre>
<p>Now that pc1 has set its description, we have to set the Remote Description of pc2. This is done through the method <strong><em>setRemoteDescription(..)</em></strong> using the previously generated offer in the <strong><em>function step2</em></strong> which is invoked while setting the Local Description of pc1 above. The function step2 looks like this:</p>
<pre class="brush: jscript; gutter: false; title: ; notranslate">// pc1.setLocal finished, call pc2.setRemote
function step2() {
pc2.setRemoteDescription(pc1_offer, step3, failed);
};</pre>
<p>Now that the Local and Remote Descriptions are set for pc1 and pc2 respectively, it is required for pc2 to create an Answer which it will then send to pc1. This answer is created using the method <strong><em>pc2.createAnswer</em>(..)</strong> in the <strong><em>function step3</em></strong> invoked while creating the remote Description of pc2.</p>
<pre class="brush: jscript; gutter: false; title: ; notranslate">// pc2.setRemote finished, call pc2.createAnswer
function step3() {
pc2.createAnswer(step4, failed);
}</pre>
<p>After creating the answer now pc2 also creates a Local Description using this answer. This is done through the method <strong><em>pc2.setLocalDescription(answer, step5, failed)</em></strong> as shown in the <em><strong>function step4</strong></em> which is invoked previously while creating the answer:</p>
<pre class="brush: jscript; gutter: false; title: ; notranslate">function step4(answer) {
pc2_answer = answer;
pc2.setLocalDescription(answer, step5, failed);
}</pre>
<p>Finally, the last step that remains is to set the Remote Description of pc1 using the answer generated previously by pc2. This is done in the method <strong><em>pc1.setRemoteDescription(pc2_answer, step6, failed)</em></strong> in the <strong><em>function step5</em></strong> invoked while setting the Local Description of pc2:</p>
<pre class="brush: jscript; gutter: false; title: ; notranslate">// pc2.setLocal finished, call pc1.setRemote
function step5() {
pc1.setRemoteDescription(pc2_answer, step6, failed);
}</pre>
<p>At long last our call is established &#8211; and your eyes will be filled with tears of joy <img src='http://www.addlive.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<pre class="brush: jscript; gutter: false; title: ; notranslate">// pc1.setRemote finished, media should be running!
function step6() {
log(&quot;HIP HIP HOORAY&quot;);
}</pre>
<p>Now look back at all the steps &#8211; not so bad eh? &#8211; Doable? &#8211; Of course. This is the power of WebRTC &#8211; peerConnection established in a few simple steps. Though it does get a little tricky when it comes to real world apps (which I realized very recently), its still manageable right?! For those of you who think its not, there are a few great APIs (one of which is AddLive&#8217;s API) available and more coming <img src='http://www.addlive.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>I almost forgot &#8211; still a few final steps left.<br />
In case of an error you can add the required error handlers and handle the errors differently/better depending upon your application/usage.But this is not a part that we shall cover here.</p>
<pre class="brush: jscript; gutter: false; title: ; notranslate">function failed(code) {
log(&quot;Failure callback: &quot; + code);
}
</pre>
<p>Finally when you want to end the call you just close the peer connection using the syntax <strong><em>pc.close()</em></strong></p>
<pre class="brush: jscript; gutter: false; title: ; notranslate">
function stop() {
pc1.close();
pc2.close();

button.innerHTML = &quot;Start!&quot;;
button.onclick = start;
}</pre>
<p>That&#8217;s about it for this PeerConnection Overview.</p>
<p>In the next tutorial, I will try to explain what is going on underneath this neat JavaScript code. So it is enough if you have an abstract idea of how this works for now <img src='http://www.addlive.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  If possible I will also try to give you guys a brief idea of the underlying ICE protocol in the next blogpost. Hope you find this helpful. If you have any queries, feel free to comment here or ask on Twitter <img src='http://www.addlive.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.addlive.com/2013/03/15/guest-post-peer-connection-part-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AddLive at Mobile World Congress</title>
		<link>http://www.addlive.com/2013/02/24/addlive-at-mobile-world-congress/</link>
		<comments>http://www.addlive.com/2013/02/24/addlive-at-mobile-world-congress/#comments</comments>
		<pubDate>Sun, 24 Feb 2013 19:24:25 +0000</pubDate>
		<dc:creator>Kavan Seggie</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.addlive.com/?p=2839</guid>
		<description><![CDATA[AddLive is at the Mobile World Congress in Barcelona this week.]]></description>
				<content:encoded><![CDATA[<p>AddLive is at the Mobile World Congress in Barcelona this week. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.addlive.com/2013/02/24/addlive-at-mobile-world-congress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Press ProgrammableWeb &#8211; &#8220;Real Time Communications Made Easy: AddLive API&#8221;</title>
		<link>http://www.addlive.com/2013/02/01/press-programmableweb-real-time-communications-made-easy-addlive-api/</link>
		<comments>http://www.addlive.com/2013/02/01/press-programmableweb-real-time-communications-made-easy-addlive-api/#comments</comments>
		<pubDate>Fri, 01 Feb 2013 08:26:26 +0000</pubDate>
		<dc:creator>Kavan Seggie</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.addlive.com/?p=2601</guid>
		<description><![CDATA[A nice article by Candice McMillan on our video and voice APIs. &#8220;You could describe AddLive as a supplement to WebRTC; it takes the technology a step further. WebRTC only supports web browsers, but AddLive expands on this and also allows for the development of native iOS, Android, Windows and Mac OS X applications. Where WebRTC is solely a peer-to-peer technology, AddLive extends this to enable multiparty conferencing. It also supports screen sharing, firewall traversal, usage and quality analytics, and enterprise level support. The rest is here: http://blog.programmableweb.com/2013/01/31/real-time-communications-made-easy-addlive-api/]]></description>
				<content:encoded><![CDATA[<p>A nice article by <a href="http://www.programmableweb.com/profile/cmcmillan1" target="_blank">Candice McMillan</a> on our video and voice APIs. </p>
<p><em>&#8220;You could describe AddLive as a supplement to WebRTC; it takes the technology a step further. WebRTC only supports web browsers, but AddLive expands on this and also allows for the development of native iOS, Android, Windows and Mac OS X applications. Where WebRTC is solely a peer-to-peer technology, AddLive extends this to enable multiparty conferencing. It also supports screen sharing, firewall traversal, usage and quality analytics, and enterprise level support.</em></p>
<p>The rest is here: <a href="http://blog.programmableweb.com/2013/01/31/real-time-communications-made-easy-addlive-api/" target="_blank">http://blog.programmableweb.com/2013/01/31/real-time-communications-made-easy-addlive-api/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.addlive.com/2013/02/01/press-programmableweb-real-time-communications-made-easy-addlive-api/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TMCnet Post &#8211; WebRTC Challenges</title>
		<link>http://www.addlive.com/2013/01/28/tmcnet-post-webrtc-challenges/</link>
		<comments>http://www.addlive.com/2013/01/28/tmcnet-post-webrtc-challenges/#comments</comments>
		<pubDate>Mon, 28 Jan 2013 08:35:53 +0000</pubDate>
		<dc:creator>Kavan Seggie</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.addlive.com/?p=2594</guid>
		<description><![CDATA[There is a good blog by Tom Keating on TMCnet about the challenges faced by WebRTC. The article can be summarized to: 1. It is still early days for WebRTC, &#8220;The various browser implementations of the current WebRTC specifications are the first go around with some of the implementations not even complete&#8221; 2. The codec issue, is it going to be H264 or VP8? 3. What are MS going to do with CU-RTC-Web? I believe that the first issue will only last for 2013. By this time next year we&#8217;ll have robust implementations in Chrome, Firefox and Opera. The second issue will be solved by companies like us if the browser vendors can&#8217;t agree. The codec debate will continue though, but perhaps Google have an ace up their sleeve with VP9. If they can show that it is roughly as good as H.265, then perhaps its royalty free status will get the nay sayers on their side. Full article here: http://blog.tmcnet.com/blog/tom-keating/webrtc/webrtc-challenges.asp]]></description>
				<content:encoded><![CDATA[<p>There is a good blog by <a href="https://twitter.com/tomkeating" target="_blank">Tom Keating</a> on TMCnet about the challenges faced by WebRTC. The article can be summarized to:</p>
<p>1. It is still early days for WebRTC, &#8220;The various browser implementations of the current WebRTC specifications are the first go around with some of the implementations not even complete&#8221;<br />
2. The codec issue, is it going to be H264 or VP8?<br />
3. What are MS going to do with CU-RTC-Web?</p>
<p>I believe that the first issue will only last for 2013. By this time next year we&#8217;ll have robust implementations in Chrome, Firefox and Opera. The second issue will be solved by companies like us if the browser vendors can&#8217;t agree. The codec debate will continue though, but perhaps Google have an ace up their sleeve with VP9. If they can show that it is roughly as good as H.265, then perhaps its royalty free status will get the nay sayers on their side.</p>
<p>Full article here: <a href="http://blog.tmcnet.com/blog/tom-keating/webrtc/webrtc-challenges.asp" target="_blank">http://blog.tmcnet.com/blog/tom-keating/webrtc/webrtc-challenges.asp</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.addlive.com/2013/01/28/tmcnet-post-webrtc-challenges/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Press TMCnet &#8211; &#8220;AddLive offers peace in a crazy world of WebRTC&#8221;</title>
		<link>http://www.addlive.com/2013/01/27/press-tmcnet-addlive-offers-peace-in-a-crazy-world-of-webrtc/</link>
		<comments>http://www.addlive.com/2013/01/27/press-tmcnet-addlive-offers-peace-in-a-crazy-world-of-webrtc/#comments</comments>
		<pubDate>Sun, 27 Jan 2013 18:49:22 +0000</pubDate>
		<dc:creator>Kavan Seggie</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.addlive.com/?p=2569</guid>
		<description><![CDATA[Our goal at AddLive is enable the WebRTC community. When WebRTC started back in 2011, we realised that it was going to be a while before WebRTC was ready in all browsers, and that there were numerous features that we wanted that WebRTC wasn&#8217;t going to support. Fast forward two years and we are now offering our clients easy access to this technology not only in browsers but also in native WebRTC iOS and Android SDKs. We save them time and  money, allowing them to focus on their products and their business. Steve Anderson, a contributing writer for TMCNet, just wrote a post summarizing how we are helping the WebRTC community. I have added the first paragraph below, the rest you can find at: http://www.webrtcworld.com/topics/webrtc-world/articles/324429-addlive-looks-offer-peace-a-crazy-world-webrtc.htm With constant movement going on in the Web-based real-time communications (WebRTC) market, it leaves a lot of room open for potential competitors to enter the field and show off just what they can do. The folks at AddLive are looking to not only provide a powerful new solution, but also throw in a little extra information about the idea of WebRTC as a whole, and what forces are impacting this constantly changing market.]]></description>
				<content:encoded><![CDATA[<p>Our goal at AddLive is enable the WebRTC community. When WebRTC started back in 2011, we realised that it was going to be a while before WebRTC was ready in all browsers, and that there were numerous features that we wanted that WebRTC wasn&#8217;t going to support.</p>
<p>Fast forward two years and we are now offering our clients easy access to this technology not only in browsers but also in native WebRTC iOS and Android SDKs. We save them time and  money, allowing them to focus on their products and their business.</p>
<p><a href="http://www.tmcnet.com/tmcnet/columnists/columnist.aspx?id=100500&amp;nm=Steve" target="_blank">Steve Anderson</a>, a contributing writer for TMCNet, just wrote a post summarizing how we are helping the WebRTC community.</p>
<p>I have added the first paragraph below, the rest you can find at: <a href="http://www.webrtcworld.com/topics/webrtc-world/articles/324429-addlive-looks-offer-peace-a-crazy-world-webrtc.htm" target="_blank">http://www.webrtcworld.com/topics/webrtc-world/articles/324429-addlive-looks-offer-peace-a-crazy-world-webrtc.htm</a></p>
<p><em>With constant movement going on in the Web-based real-time communications (WebRTC) market, it leaves a lot of room open for potential competitors to enter the field and show off just what they can do. The folks at AddLive are looking to not only provide a powerful new solution, but also throw in a little extra information about the idea of WebRTC as a whole, and what forces are impacting this constantly changing market.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.addlive.com/2013/01/27/press-tmcnet-addlive-offers-peace-in-a-crazy-world-of-webrtc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AddLive Tutorial on Gun.io</title>
		<link>http://www.addlive.com/2013/01/22/addlive-tutorial-on-gun-io/</link>
		<comments>http://www.addlive.com/2013/01/22/addlive-tutorial-on-gun-io/#comments</comments>
		<pubDate>Tue, 22 Jan 2013 17:49:45 +0000</pubDate>
		<dc:creator>Kavan Seggie</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.addlive.com/?p=2535</guid>
		<description><![CDATA[Ted Kozak, our &#8220;tech guy&#8221;, has just written a great AddLive JS API tutorial for Gun.io. It is part of a two article tutorial that teaches you how to create a 1-1 video room. You can have a look at a working prototype on JSFiddle here. A big thanks to the guys at Gun.io. If you are looking for an engineering job, or looking to employ an engineer, make sure you give them a shout! About Gun.io: gun.io is where hackers find jobs. Every month, tens of thousands of the best independent software developers from the open source community use gun.io to find high-quality freelance and full-time jobs.]]></description>
				<content:encoded><![CDATA[<p>Ted Kozak, our &#8220;tech guy&#8221;, has <a href="http://gun.io/blog/rtc-in-your-app-with-addlive-part-1/" target="_blank">just written a great AddLive JS API tutorial</a> for <a href="http://www.gun.io" target="_blank">Gun.io</a>.</p>
<p>It is part of a two article tutorial that teaches you how to create a 1-1 video room. You can have a look at a working prototype <a href="http://jsfiddle.net/zunRA/" target="_blank">on JSFiddle here</a>.</p>
<p>A big thanks to the guys at <a href="http://www.gun.io" target="_blank">Gun.io</a>. If you are looking for an engineering job, or looking to employ an engineer, make sure <a href="http://www.gun.io" target="_blank">you give them a shout</a>!</p>
<p>About Gun.io: <strong>gun.io is where hackers find jobs.</strong> Every month, tens of thousands of the best independent software developers from the open source community use gun.io to find high-quality freelance and full-time jobs.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.addlive.com/2013/01/22/addlive-tutorial-on-gun-io/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
