 Hi everybody, do you hear me? Okay, I'm glad to introduce Daniel Pocock with the speak free real-time communications with free software. Who can give me the name of a free communication service on the internet? Jitsi? If you went out on the street and asked one of the students who's walking by to give you an example of a free communication service, what would they tell you? Skype? Anything else? Yep, Google Hangouts? Okay. Are they really free? How can a business like Skype be viable if all the phone calls are free? A business needs to sell some product to make money. So in these free cloud services, where is the product? Can anybody take a guess? The user is the product. You are the product in free cloud services like Skype or Google Hangouts. You want to communicate with your friends, your family, maybe your work colleagues. The cloud providers, people like Skype and other companies like Facebook, they want something in exchange for that. They want to know who you know. They want to know what is important to you. Who is your favourite football team? Or what you do on your holidays? How do you spend your time? What are you thinking about right now? Or how are you feeling right now? Is this valuable information for a company? Is this information they can sell? It's a good product. Is this type of information revealed in your communications? If a company is giving you a free phone service where they can monitor your phone calls, they can monitor your voice, can they detect how you're feeling when you speak? Yes, certainly. You can go and look online and you can find algorithms for doing this. So many people are now using these services completely blind to the amount of information that they're giving away. Is there any hope that we can bring them a solution? Which software producer has a social contract that gives people freedom? Who has 22 years of experience of building a platform that is genuinely free? Yeah, Debian. Is it a good solution? Okay. Debian had answers to these problems before the cloud even got moving. Before Facebook and these other phenomenons, Debian developers had the answers and were writing them down in our social contract. Debian free software guidelines, these give us principles to build software that doesn't give away all our information and our privacy and our feelings and things that people want to market and sell for their benefit. Now Debian is the product. So when you install Debian and use it for your communications, you stop being part of the product. Doesn't that feel better? Yes. So Debian has a lot. Debian has web browsers, we have email software, we have office productivity software, we have specialist software for science and engineering, business and accounting. We have tools for creative people, software developers like myself, designers, video editing. Debian has lots of things. But free real-time communications has remained elusive. Like most Linux distributions, there's no seamless solution. You can't just install Debian and type in the SIP address of a friend and call them in five minutes. Over the last three years, the server-side software, which people can run if they have their own server, has become a lot more stable than it was in the past. We now have things like turn relays in Debian that can relay voice and video streams for people who are behind NAT firewalls. So if people start installing these things to their Debian servers, then that becomes a stepping stone to building a free real-time communications network. On the other hand, the client software that's installed on the desktop is not quite there yet. Not all of the soft phones in Debian are able to use all of those servers right now. They're catching up. They all have slight differences, so they sometimes have trouble communicating with each other even when you're on the same network. So usually, if you want to use one of the soft phones in Linux, in any Linux distribution, if you're on the same network and the other person is using the same soft phone, then the call will get through. But if you're on different networks, then it's a struggle. But that's like the final frontier that we have to cross to solve this problem. For the Debian community and Debian developers, we've had the rtc.debian.org service since January 2014. It was launched at MiniDebcon in Paris. All developers can use their account and their Debian email address as a SIP address to test any of the soft phones in Debian, to test soft phones that you might want to start packaging, and to test things like mobile apps for SIP. And on top of that, we have WebRTC, which I'll get to in a moment. So this platform has been very, very stable, and it's running 24 by 7 for people to connect to with any of these SIP soft phones to see if they work and to call other people. Many of the problems that people have are well understood. For example, we know that it's difficult for people to set up some of these phones because they have to set 20 different preferences in some of them. So we need to solve that by providing better provisioning. We know they have trouble getting through firewalls, so we have a solution for that is for them to start using these turn servers to relay the media streams. The Debian bug tracking system shares details of these things publicly. Debian is all about transparency, and this makes it easy to see where we are at in addressing this problem. So we believe this strategy provides the best approach to solve the problems of free communications in an open manner. So what does work? I've mentioned that some of the soft phones do have problems today, but it's not all bad news. There are two things that work quite well and very quickly using free software. One option is the smartphone app. There are a number of these apps available in market places like Eftroid or in Google Play. And these will install onto your phone very quickly and let you start making SIP calls or other protocols. And the other option is WebRTC, that it's quite quick to get this up and running as well. Both of these types of soft phone are backed by Debian infrastructure. I mentioned the packages that we use on the servers. They've all been quite stable for a number of years now. You can install them with app to get, do a little bit of configuration, and you have a server that can support both the smartphone apps and the WebRTC users. So smartphones. Who has Android? Many people have Android. It's based on Linux, so it's not a bad choice. Smartphone apps have a particular advantage. They run in a device that looks like a phone, that feels like a phone, because it is a phone. So if someone deploys a soft phone to run in this type of Linux, then it's quite natural for somebody to use it. It has other advantages, like access to a contact list that most people have in their Android phone. So this makes the smartphone apps a good way to develop free communications networks. Has anyone tried Lumicall, CSIP Simple, LinFone, any of these other apps? Yep. So if you haven't, or if it's a long time ago and you're not using them regularly, then try them out. There are some mailing lists, and I'll get to those later. Give us some feedback. And if you're really keen, contributions on GitHub are always welcome. We're always looking at ways to improve. The other option that works well is WebRTC. Who does not have a web browser? Okay. And who doesn't regularly update to the latest web browser? Okay. So there are hundreds of millions of people out there with web browsers that are updating them automatically. And every time they get an update, they're getting the latest libraries for WebRTC as part of that browser. That's 99% of their phone is in the browser itself. And that's always up to date. It's very advanced. It has features for encryption, for NAT traversal to get through firewalls. It has the compression for different types of network environments. It has voice and video support. And hundreds of millions of people have these browsers. And it can be activated just by getting them to go to a web page. They click a link in an email, or they click a link from one website to go to a phone. It downloads a bit of JavaScript, using a phone. And that can go back to an open-source solution running on SIP, or it can route their call into a proprietary solution. So for Debian developers, you can log in at rtc.debian.org and start receiving calls from other people, from other developers who have an account, and from anonymous callers who use FreePhoneBox.net. You can even give people a link using FreePhoneBox.net that they can click to call your Debian.org account. If you're not happy with the appearance of the service, it's just JavaScript and HTML. You can clone this website and edit it to look however you want. You can change the colour, you can change the instructions, and it will still work. There's no PHP or anything else on the server side that you need in order to modify this site. Okay, so the next topic is federation. So we have this wonderful site at rtc.debian.org, but what's the use of it if you can only call other Debian developers? What if you want to call a Fedora developer or someone who's not a developer at all? This is where federation comes in. They're calling from one domain to another. Who administers a Linux server in an office or another organisation? We have system administrators here. And how many of you actually run a SIP or XMPP service in your organisation? So quite a few of you. And do you use that for federation or just internally? Just internally. So who's actually tried federating with other people? So just a few people. Okay, so this is what we already do with email. You can send email from one domain to any other domain. That's federation. And it's very important because the more people you can reach, the more pervasive the technology becomes. If you want to start setting up a federated network, then a really good resource is the RTC Quick Start Guide. So that's here. It's available online. It has an explanation of the architecture. And it goes through step-by-step instructions for things like setting up your DNS, your firewall, and then all the individual package installations and everything on all the standard Linux distributions, including Debian, Ubuntu, Fedora, Red Hat, CentOS, and so on. So what we'll do is we'll make a quick demo. So this is rtc.debian.org. I'm going to log in. Now I'm registered. So Hector's going to try and call me from freephonebox.net. So we can see an anonymous user is calling. We answer with video with this button. The browser asks for permission for the JavaScript to have access to the microphone and webcam. That's a security precaution to stop websites monitoring you when you visit the site. And there we go. You've got Firefox on your phone? Yeah. So Hector has actually called from Firefox on a mobile device running Android. And we just got that up and running now. Did you have to do any configuration? You just use the URL from my email. Yeah. So that's how easy it can be. It's all running on Debian infrastructure, except for the phone, obviously, which is running Android. We just have a look at the user interface. This is built with JS communicator. So if you want to customize something like this more heavily, you can either take an existing site like this and just copy it and start modifying it. Or you can go and get JS communicator from GitHub and start a fresh project for your own WebRTC website. Who uses Drupal CMS? Do we have any Drupal users? There's a module called Drupal that you can install in Drupal that will give you JS communicator without any development or coding or anything. You just install the Drupal module and then you have a WebRTC facility in your Drupal website. Do we have anyone remotely who would like to participate? Is anyone on IRC who's watching us over the streaming service? There's no answer on IRC. Okay. We just wait a moment just to see if anybody on IRC answers. There's a slight delay in the video streaming. Should we give them any more time or we move on? Okay. We continue. Thanks, Hector. Okay. So what if we do nothing? What if we just leave the soft phones that we have in Debian where they are and continue using other solutions for communication without trying to bring in solutions that are genuinely free? Well, first of all, the social networks and cloud providers are also looking very enthusiastically at WebRTC. There's an opportunity to take market share from companies like Skype and Google Hangouts. How would you feel if one of your friends tells you that if you want to call them you have to use Facebook or that you have to install a Facebook app on your phone? Who would not want to rely on that as a way to call their friends and family? Yeah. Okay. LinkedIn and Salesforce are likely to try and offer similar services to business communities. If you look at bringing Linux to your friends and family in their homes on their desktop computer or their laptop, what are the issues that change their mind or that make them go back to what they were using before Linux? Is peer pressure at the top of that list, perhaps? And where will you find more peer pressure than communication software? There's somebody they want to speak to or communicate with and the free software solutions don't work for them and their friends tell them, I'll just install Windows again or something like that. So you might have spent a bit of time helping that person learn about free software and you've had a small regression and they're back to using something else. How much harder will it be to promote Linux when companies start using corporate solutions like Microsoft Link? Because what happens when a company puts in one of those solutions is they start developing other internal applications around it and they become very dependent on that and it'll be very hard for them to move off those things. At the same time, Microsoft is constantly undermining open standards by making their own little deviations from the standard. So if they have enough market share in one domain, then they can break compatibility with other products. I mean, we saw this with Skype that worked with asterisk for a while and then they took away the asterisk support. When you rely on one of these corporate solutions, you're always at their mercy and at any time they can change the standards or move people onto other products and this is never good for free software and open standards. For Debian developers, many people regard us as leaders in the free software community. We have tough standards on what we accept in Debian. We have very high standards for how we run our own services using free software that we don't rely on cloud services as part of the process of building Debian. But if people see us using other solutions for communications, solutions that are not free, does that undermine our leadership? Yeah, it can be very, very dangerous to do that. So this is something that we have to be very rigorous about. So what are the next steps that people can take? Try the things that we've discussed in this talk. If you're a Debian developer, try the rtc.debian.org. Come to the session on Monday afternoon where we can do some hands-on stuff. If anybody has a server they would like to try and configure or they got halfway through setting this up and they stopped and they have some problem. We can look at that together and try and get it working. We can look at troubleshooting techniques. Subscribe to the free rtc mailing list. This has been generously sponsored by the FSF in Europe. And the final thing is to look out for a new crowdfunding campaign. So there's going to be some details about this in the near future looking at how we can raise some money to improve some of the soft phones and other products that we already have. Does anybody have any questions? So who has the microphones? Does this work? I agree that one-to-one communications is already in back shape but we also do need to have something for larger groups actually a conferencing system or so I think. So conferencing solutions for larger groups of people. There are a couple of options for this. JitsiMeet is a WebRTC conferencing. Is this the sort of thing you're asking about? Let's bring back the microphone. Have you tried JitsiMeet? Yes I have but it already works not very well in a one-to-one situation. I don't know how it would work or keep up in a larger conferencing situation. Yes. Okay so that's one option. It does work differently for different people. It depends on your bandwidth as well. Another solution if you're just using voice there's a solution called ReconServer in Debian. Astris also supports some voice conferencing. Any other questions? I wanted to thank you Daniel for the work that you've done on RTC stuff. You've been pushing on this for several years now and it's much appreciated. I think we need more people doing it. So I wanted to say thank you first off. You had mentioned that the soft phones that we have on the Linux desktop struggle on the larger internet but they tend to work okay on local networks. I wonder if you can characterize what's the cause of that struggle. Is it packet blockage? Is it networks not passing traffic as expected? Do we know why that's happening? Are the things we could fix in the network to make those more accessible? Yes we do know why it's happening. A lot of it is to do with getting through firewalls. The WebRTC helps with that. I'd like to go into more details but we've run out of time now. The next speaker needs to take over. So let's go into that on Monday in the session there.