 So thank you all for being here. This is my first time in Brazil, my first time in Sao Paulo. It's the first time we do a Cranky Geek event here. This is our first one in Brazil and the sixth one that we did overall. Cranky Geek is an event around WebRTC development for WebRTC developers. We create the content, we bring the best speakers that we have in the industry in order for the people in the room and for the people that watch the YouTube videos later on to be able to learn more about WebRTC, what can you do with it and how can you achieve the things that you want to do. So you can go to CrankyGeek.com for future events. If you go to YouTube and search for Cranky Geek, you will actually see a lot of the sessions that we've already done in the past. This is our second event this week or in the last seven days. We came here directly from San Francisco. We're heading an event where the focus was WebRTC for mobile developers or how to run WebRTC on mobile. I'm Sakhi Levent Levy. I run a blog called BlogicMe. With me doing these events are Chad Hart. Chad Hart's come from Voxbone and he's the editor or the chief editor of a website called WebRTC Hacks. If you do development with WebRTC, that's the place to go. Out in the back we have a guy called Chris Cranky. Most of you have already seen him more than once today I'm sure. If you haven't caught you for a photo for a talk or for asking your name, you should go say hi. What we're going to do in this event this time is to deal with the basics around WebRTC. We've ran these events a few times and then we've understood that there are things in the basics of WebRTC that we haven't covered, never covered in these events, but also there are things in WebRTC that we couldn't find great content online that is available. We've decided to bring this content to you so you'll be able to enjoy it. So you know this is what we're going to do. The sponsors that made this event happened first and foremost Google. Google is running this event with us from the beginning each time giving us the facilities, the location and the assistance. All of the assistance around this event. So I'd like to thank Google. Other sponsors that we have include Twillian Talkbox. They came a long way with us for these events and they were also in San Francisco last week and specifically on this event we have additional two sponsors WebRTC Ventures that deals with consulting and outsourcing of development related to WebRTC and call Satsaio that has tools for analyzing live calls in WebRTC. We will have sessions from both of these vendors and also from Talkbox later on today. So what do we have to do on the agenda? First I'm going to talk about WebRTC use cases to explain where we started and where we are going when it comes to WebRTC, ensure a few examples that we have on the market of how WebRTC is being used. Then we're going to discuss about the WebRTC basics. Are there people here that know what WebRTC is? Not well? Okay, this is the first time they hear about WebRTC and they're here for lunch? Okay, so this is where we're going to cover what WebRTC is, how we use it, the APIs, how they look like. Then we're going to move on and Chad Hart will give an explanation around service and WebRTC. WebRTC is a peer-to-peer type of a protocol and this is what you usually do with it, but at the end of the day you need servers. Nobody will tell you that, but it actually requires a lot of servers in the back end and different types of them. That will be the main topic of Chad's speak. Then we're going to have a break so we can actually have lunch. Afterwards, we'll convene back here where we'll have a very interesting talk by Google about scaling the signaling part of WebRTC. It's easy to get a WebRTC server running and do your signaling, but it's a different thing of scaling that up and doing a large production-based service. It will go over some of the aspects that relate to that. From there, we'll move on to a session by Talkbox around what are the main issues and the main complaints that you will see on the market by users that use your service and what to do about these complaints, how to debug them, how to assist your customer and how to make sure that it doesn't come with that complaint ever again. Then we have Coltsats.io. Varun there will introduce us to the GetStats API, how to use that and what you can do with it. This is a very important part of a service once you go into production, something that you usually miss in the first run of your service and then we'll add on later, so you probably need to know about that in advance. Last but not least, we will have FIPO. FIPO comes from appearing and usually comes with us to all of these events and this time he is going to talk about the WebRTC internals, what you can find there and how to use that to debug services and to troubleshoot issues. Last but not least, after the break, we will have Nicholas Bloom, the product manager of WebRTC at Google discussing where WebRTC is, what Google sees in WebRTC and what the roadmap in the near future is going to look like for WebRTC. So thank you for being here and I hope you'll enjoy this day. I'd like to start with WebRTC use cases and before I dive into what WebRTC use cases really are and where the interesting innovation and services come from, I want to start from communication and where we began. So this journey began, I don't know, 100 years ago, a bit more with the telephone. I remember something like 30s ago where when my parents got their first phone, you took two weeks to get, you had to wait for it until it arrived. Today it's faster to get a phone or a phone line, but what you do is you do in front of a phone company. Now things progressed. We had these nice analogue phones in the past and then we moved on to digital phones that run on different types of networks. It's no longer secret switch networks. We've moved to IP-based networks and we can run these communication or these calls through the internet. But at the end of the day, nothing really changed here when we moved from analogue to digital. We used the same services. We still dialed the numbers we want to reach and this is the main way that we've communicated for many years now. What hasn't changed and what's the main, I guess, issue is that communication is still considered a service. If I want to do a call or to reach out to someone in order to be able to talk with them or even to do a video call, I need to go to a service that offers me that specific capability. Into that world came something called WebRTC and it changed everything in that regard. WebRTC, just to give a glimpse of what that is because I'm going to talk a lot about use cases, there are two ways in which I look at WebRTC. The first one is that WebRTC simply offers real-time communications natively inside a browser. You can open the URL in a browser, probably if it's Chrome or Firefox or Microsoft Edge. You just open the URL and magically you get connected to someone and you are able of doing a voice call or a video call or a web session or whatever it is that you are trying to achieve. And you don't need to download anything or install anything to get that done. Now, this magic happens because WebRTC at the end of the day is a media engine. It's a media engine that allows us to take audio and video inputs that come from our device, either a phone, a laptop, a desktop, from the microphone and the speaker, encode that, compress it and send it over a network to someone else. That's a media engine for me, at least. And WebRTC is such a media engine that has JavaScript APIs on top of it that are part of the browser. That's the implementation that you get. So we have WebRTC. It's inside the browser. It allows us to do these calls over URLs. What does that really mean? How does that change anything? So the first one is it reduces the barrier of entry for anyone that wants to offer communication services. I guess I'm around 15 or 20 years now dealing with voice over IP type of technologies, probably 10, 20 years. So my upbringing comes from voice over IP. I know I take you to 3s, SIP, SS7 and all of these curse words that are used in the telecom industry. Now, if you wanted to join my specific small club, now I can actually see. Can someone close the lights? Some of you are already sleeping. I don't know, interfere. So if you come into my small club of voice over IP, then there are things that you need to know, learn and understand. Okay? These things are how you make calls. How do you dial? What's signaling in that case? How do you mute calls, transfer forward, and do a lot of these ugly and boring services that might not be necessary in each and every use case that you are trying to achieve? And now it's built using JavaScript. If I want to build a service, I can just use JavaScript. And there are more JavaScript developers than there are VoIP developers. So we've reduced the barrier of entry into this field and enabled a lot more people to get into that field, people that were never taught what voice over IP is, and that's a good thing, because they don't all now think the same. And the only thing that you need to do today in order to build a service is to start from I have a dream, I want to do this, and now how do I reach that? The second thing, and not less important, it introduces a friction for the users. Everybody here ever use Skype? Okay? Did you have to install something to get it up and running? You had to sign up, to sign in, to put the username, to, you know, add friends into that. So there's friction with the user. The user needs to be a part of that service in order to use that. So as a business, it's hard to use such things because there are closed networks. And there's a friction between me and what I need to ask my customer to do in order to reach me. And this is something that I don't want. I want to reduce the friction for the users. Okay? And the fact that WebRTC is just in the browser, you just hit a URL and it's there, reduces that friction. This all boils down to something very simple. If we started with communication being a service, if I want to communicate, I need to go to the phone company. Okay? We've now done something quite simple. We've took WebRTC and turned it into a feature. And now it's a feature of another service. Okay? I no longer need to treat communication as a full service. I can look at it from a very different prism. Now, what does that mean exactly? But now, communication became a feature and it's no longer a service. So let's go back to the phone and telephony. Okay? Back in the old days, if you wanted to make a phone call, you needed to go to a phone company. And every country has its own set of phone companies. And these companies are either monopolies or duopolies or oligopolies or whatever. But they are the gateway, the gates between the users and their ability to communicate with each other. We might say, well, we've got Skype. Okay? I can use Skype instead of the phone company. But to me, that's like saying the same thing. I've just replaced one phone company with another phone company. If you go to Skype, you do the same calls, but instead of dialing, I use the body list. But it's almost the same. It's practically the same thing. Now, this happened in the consumer space. What happened in enterprises was they understood that there's this internet and they can just take the phone system and build it into their own internal networks, put an IPPX inside and run the whole communication that goes between their employees inside the network, in-house. So now, if I do a call between two people in the same enterprise, I run over the internet, okay, over the IPP network that they have in the company or even on the open internet. But these calls don't go through any carrier. They don't go through any phone company. They happen within the enterprise. That's usually called unified communication. And then I can do emails, messaging, some phone calls, video calls, conferencing, which is nice. But it's closed to the network and to the enterprise. And enterprises need one more thing. They need to be able to reach out and communicate with their customers. So how do you do that? You build a call center. You put agents. You let them speak to customers. And for that, you usually put a different infrastructure and a different set of phones and PBXs and infrastructure to do that. And reach a point where what we have is, well, C2C, communication across consumers happening through phone companies. We have businesses to businesses using unified communications and businesses to communicate, consumers, B2C, going through call centers. It ends up being three different communication services, where what you do is communicate. And what it means is that at the end of the day, we did change the underlying technology. We now use voiceover IP. We don't use circuit switching. But we haven't changed the user experience or the need to look at communication as a full-fledged service. And then I have a question for you. Uber, as a company, who are exactly the employees? Who are the customers? Where do you place the drivers? Are they customers, employees? Are they partners, suppliers, vendors? The riders, if I take an Uber to somewhere, am I a customer of Uber? Am I a customer of the driver that is now serving me? Is that a B2B interaction between the driver and Uber? Is that a B2C interaction where I try to reach out to the driver because I can't find him or he can't find me? Okay, we're at a point in time where this whole notion of interaction within a business or between businesses to customers is changing. It's hard to draw the line where things start and where things end. And it's not just Uber. If you go, you can find a book about the Uber of everything. There are a lot of companies today that are trying to be Uber and not just by competing with Uber on taxes, but rather by doing it in other industries. You can see that in Airbnb that is doing practically the same things to hotels or Netflix by doing the same things for movies and TV series. And they are everywhere else as well. And these companies are different. Because you can no longer distinguish by who is a customer, who is a provider, who is employee of that company. But in all of these instances, communication is the key. I need to be able to communicate within the service that I'm providing. And the service that I'm providing is not communication. The service that I'm providing at the end of the day is something totally different. If I'm Uber, I'm trying to get you from point A to point B. And I'm using that through someone else that is a driver for that specific interaction. So I've taken the communication part that I needed in order to achieve that capability. And I've made it into a feature of my service. I can do it without WebRTC. But if I do it with WebRTC, it might be easier to achieve. Or it might allow me to do something that I couldn't have done before at all. Okay? So we got from the point that we had communication as a service into a point that we say we want to make it into a feature. Because our service is something that is totally different. We don't want to be a phone company. We don't want to offer communication. I want to offer a solution that will allow me to teach people to provide healthcare, I don't know, whatever it is that I'm trying to achieve. So let's see a few examples. And let's start from popular ones, the ones that are easy to explain and understand. Facebook. Facebook Messenger today uses WebRTC. If you do a voice call or a video call through Facebook Messenger, you're effectively using WebRTC. Both when it's done in your phone and in the browser. You can open messenger.com, sign in there to your Facebook account, and just call someone. It works. Now Facebook is huge in terms of the amount of users that they have and the amount of calls that they have in their network done over WebRTC. That's in the consumer space and that's a social network that decided to add communication. Added to side communication in terms of voice and video. You could have sent messages all over Facebook before that already. In the enterprise, we have Slack. Slack is not really an enterprise company. They don't sell to enterprises. They don't go to the IT. Try to sell them a bundle and tell them, you know, that's $100,000 for the whole year and you need to pay yearly and then we'll start deploy. What you see is that Slack goes into companies by people inside the company starting to use Slack and then starts paying for that and then causing the IT guys a lot of headaches by doing that. Now, the notion about Slack isn't the fact that you need to do voice or video calls. It's about the fact that I'm going to be able to communicate one-on-one or within groups around specific topics, but these interactions are going to be stored and I can search them and I can search all the documents and stuff that I provide links inside Slack and this is why people use Slack. They don't use Slack because it allows them to send group messages. We have WhatsApp for that, right? Use it because you can search singles on that and because the experience is more suitable when you go to the enterprise. And then one day Slack came out, they acquired the company. A few months later, they went out with a service that offers voice calling inside Slack and I don't need to go and know that, well, Chad, what's your Skype ID? I want to call you, okay? I can just see that Chad is online on Slack, press a button and have a voice call with him. I can decide that if we're dealing with Cranky Geek and we've got our own Slack account there, if we have paid for that, then we could have opened the group chat, a group call for all the people in a specific topic and just discuss things between us. I couldn't care less what Chad's phone number or Skype ID, as long as he's on Slack and I see him, I can dial him and that's it. But Slack doesn't offer me that as a service. It offers something else on top of that. And again, it added communication using WebRTC because it could. It was easier to do than anything else. Snapchat, another company, another type of a social network interaction, whatever. I try not to let my kids use that. My daughter is nine years old and she wants either that or musically. Snapchat acquired a company in 2014, I think, something like that called AdLive. AdLive was one of the vendors that enabled doing WebRTC calling, video calling in groups and one on one over the Internet. So if you wanted to build something, you'd have used their API. Snapchat went, took them out of the market and used them to build their video calling capabilities that exist today on Snapchat. So again, they wanted to add that on top of just being able to record videos and send to your friends and have them temporarily there, the ability to do a session in real time. They used WebRTC for that. Now I'll go to something that is not that obvious. Kickstarter. Kickstarter added a new feature in the last, I think, month or so. And that is the ability that if you run a campaign in Kickstarter and you've got a large audience and you want to tell them, you know, here is the thing that I'm doing. You can hold a live event on Kickstarter about your campaign. So you open a live broadcast on Kickstarter, people can go online, watch you live, comment or do whatever it is. So the session is rather interactive. So you might say, you know, that's easy. These are cases that are still either large or communication is still a large part of that. No social networks at the end of the day need to be able to enable people to communicate. So you can argue that social networks are actually a kind of a communication service and adding voice or video calling into that is still a communication service. So there are other services that you can build with WebRTC as well. And that's like a list that I had about a year ago. I just placed it on the website, on my website in one of the posts because it was interesting. So things you can see there, things like document sharing, hospital clowns. I had a company in the Netherlands come to me and say, well, we're, you know, hospital clowns. We go, we cheer up kids that are in the hospital, but we want to do that also for kids that are at home and can't go to school and are stuck at home. We use Skype today. We don't like it. We want something else. You know, you can build it with WebRTC. And there are many such different use cases out there. Everything you can imagine can probably be done with WebRTC when it comes to the communication part of it or voice and video. So I hold a large list of, a large database that I started a few years ago about what vendors are out there that use WebRTC and what projects and what they are doing with it. Now, what you see in this chart is the different segments of what companies are doing. And if you look at almost half of it from video conferencing through customer management, telephony, collaboration, unified communication, that's all communication as a service. The service that we have an offer for you is communication. Come to us, get that type of service. The interesting part though is the other, which I'm not going to touch now. There are just too many things going on there with WebRTC. I'm going to look at the verticals. So around 17% of the companies that I look at are inside a specific vertical. They use communication to solve a specific problem that is unrelated to communication directly. And there you can see this mix-up. So a lot of healthcare companies use WebRTC. They do things with it. But the service isn't communication. It's offering a health service. The same in education. A lot of companies do in education. One of the main use cases there, we're going to teach you English. How are we going to do that? We're going to take students in China, India, Brazil, wherever, and we're going to bring them to teachers or just to people that will speak English with them from the US or from wherever. We're now at let's do the opposite. I'm going to teach math. And I'm going to teach it in the US. And I'm going to use teachers in India because they cost less. And I'm going to do it through my service, which is education. Experts market. I'm going to teach you something. I don't know what it is, but we're going to do a one-on-one session or, you know, a large session. If you want to take guitar lessons, you can go online, find that, and learn guitar from someone that will teach you that specific thing. Same for taking a yoga lesson. Why not? And if you look at the education, so, you know, I handpicked a few examples for you so it wouldn't be too high level or too abstract of what you can do with it. There's a company called Proctor Exam. They offer proctors. It's a word that I learned about a month or two ago because, you know, I saw these type of companies. What they do is bring a person into the room when someone does an examination to make sure that he doesn't cheat. Now, how do you do that online? You go to the student, you have a camera in his machine, that camera is working, and now someone is watching that boring video of that person taking the exam online. And we can decide not to watch it. We can just record it, for example, and use it later if we assume that someone cheated. And we can do other things with it. So communication isn't the service here, but rather knowing that someone hasn't cheated. Vedantu. Vedantu in the education space located in India, startup vendor, what they do is offer the ability to do one online, one-on-one sessions in the education space inside India. For me, that was weird. Like, you know, who's going to pay for one-on-one sessions in India? There are billions of people there. They should do group sessions. So no, they do one-on-one. That's their target market. They are aggregating different teachers. The teachers aren't their employees. If you want to be a teacher that runs through Vedantu, you can just sign up for the service as a teacher. And then you get ratings there. You get rated by the students that come to you. And that's how you build your name inside Vedantu as a teacher in the education space. Similar to how app work works for developers, designers and these kinds of things. Healthcare. In the healthcare space, this one is something from Israel, my country. There's a company called Femi Premium. They build the backend services for a lot of the healthcare providers in Israel. Clalit, the company that has this mobile application, is the largest HMO in Israel. They provide healthcare services through the government to people in Israel. They have over a million subscribers to their service. My kids are there. I'm not. I'm on a different HMO. They're also one of, I think, the four largest HMOs in the in the whole world in terms of the number of people that they have. And Clalit decided to offer, well, video conferencing services. Instead of taking the kid at the middle of the night to see a doctor, you can just do a video call with a doctor instead. So you know if you need to go or you can stay at home. I did that once. It worked nice. It was at the old days when they used an application that you had to download and do stuff with. About half a year ago, they decided no more. They're going to use WebRTC instead because they don't want to ask their customers, their patients, to install an application. So what happens today is you go online, you book a session with them, you get back a URL in an SMS message on your phone, and if it's an Android phone, you get connected directly to a doctor. And the doctor runs from a PC and sees all of your information and everything around that. So again it's no longer a communication service. It's me getting healthcare for my kids. Today Clalit is doing that for kids, for general practice, whatever it's called in English. I don't know how to translate it from Hebrew. So for generic type of healthcare stuff and they're now starting to do it for skin cancer as well. So they can check skin issues also online remotely instead of you going to a doctor. Another one in the healthcare space, this is another company in Israel and this is interesting because it's a totally different type of service. Nini Speech, what they do is offer a kind of a treatment for people that stutter. If I stutter, okay, and I need to, and this is the way I speak, then my understanding by talking to them was that if you are a stutterer, then improving that means speaking to people a lot. And people that know how to work with you on your issues and also doing some of these things offline. So they have a nice app that does that and allows you to do your own self exercises but also talk to people that this is their job, to assist you with stutter. And again, the service is no longer communication. It's something different. Moving to a different area, I want to look at financial services. I'll show two different examples here as well. So the first one is going to be symphony. Symphony is similar to Slack. What they offer is a kind of a messaging service but based for the financial market. So you can see stock ticks, information and all of the things that you would see with a large Bloomberg display that has all of that stuff. They've recently added video conferencing to that using an open source framework called Jitsi video bridge. So now I have a group calling in that. I have no clue what they're going to use that exactly for but they've decided to add it. Why? Because you know, we can do that now. Why should I book a call on Webex to do something when I can do that within my own financial specific service that I offer to my customers? So communication for me here is again a feature of what I give to the customer. I want to close the use cases with this one. This one is a Turkish bank. The bank is called TEB. It's a large Turkish bank and they've opened a new type of a start-up bank called SEPTATEP or however you say it in Turkish and this is an online bank, only a digital bank. There are no places you can go to. Everything happens online and they try to provide a different type of a service to their customers and one of the things that they do is allow you to book a video call from our desktop with someone at the bank, with an agent at the bank. So you can do that in a regular bank but if the whole bank is digital and it's targeted to a very specific niche of the customers that are out there then this makes a lot of sense. So it's banking service but communication is embedded into it. Again just because we can and it makes sense. And my question to you is what are you going to build with WebRTC today? What is the use case that you are thinking about that might be totally unrelated to telephony? That WebRTC can enrich that interaction or that experience that you give to your customers through your service by improving what you offer and the communication that you get between users, customers, suppliers or whatever it is that you define your target market and the audience that your service is going to interact with. Thank you very much.