Giving thanks to OSS
So 2019 is coming to a close and what a year it's been. This is the time of year to reflect on the previous 12 months; both the good and the bad. This year we're not just thinking about the past 12 months but the past decade. It got me thinking about what I had to be grateful for when it comes to what drives my business forward every day. Nimble Ape will be going into it's 6th year in January - and we've done some pretty amazing things in those 5 years - I'm incredibly proud of what we've achieved - we've got clients all over the world, work on amazing projects and have run 2 of the best RTC conferences in the world with CommCon (I may be biased). But what and who have enabled me to do all of it?
Open Source Software
Open Source Software runs the world and I believe firmly in it's capabilities, as well as the pros of using software that has it's code openly available on the internet. Something I've not been great at doing other than in conference talks is calling out the projects which enable Nimble Ape to operate and create amazing solutions for our clients. So here comes some of the projects we've used heavily in the past year.
Drachtio & RTPEngine
The Drachtio project has been a huge part of Nimble Ape's offering for the past 2 years or so. If you don't know what Drachtio is, it's a combination of a C++ SIP Server and a Node.js framework (a node.js module) that enables people like me who love writing JavaScript (and more specifically Node.js) to use the ecosystem we love to create applications that handle SIP traffic in the manner we're used to. Think of it like Kamailio with a Node.js connector and a set of APIs that are simple for me to understand. Kamailio & OpenSIPS are fantastic projects but they're very much over my head for anything more than dispatching SIP messaging to upstream Media Servers such as Asterisk or FreeSWITCH.
RTPEngine is essentially a Media Proxy - able to take media in, be it plain RTP or encrypted WebRTC Media and proxy it somewhere else, and in the process transcoding it and decrypting or encrypting it. It also has an API which allows us to pass SDP into it and have RTPEngine munge it for us into what it needs to be for RTPEngine to accept the media.
In short, Drachtio & RTPEngine are a core part of what forms the WebRTC B2BUAs we create for our clients at a fast rate of knots. I thank the SipWise team for RTPEngine and especially thank Dave Horton for Drachtio - it's completely changed how I build these kinds of applications.
Asterisk
The Asterisk project is very close to my heart having spoken at every Astricon since I joined the community 7 or 8 years ago. The Asterisk project (and more specifically Digium) is what allowed me to start Nimble Ape in the first place. Asterisk was just a PBX to me, covered up by FreePBX which was in turn covered up by Elastix. Asterisk is a now a toolbox with many capabilities at hand. Being able to build a media based application with media mixing, prompts, bringing in external media sources, forking a channels media out to an external application to handle transcription as well as creating a bot using something like Dialogflow is quite simply amazing. The Asterisk project has changed quite a bit over the past 6 years but it's all for the better. Thank you to the Asterisk team for continuing to improve a great toolkit.
WebRTC
WebRTC has been a complete game changer for many reasons but a standard that allows encrypted media with a codec that's able to handle adaptive bandwidths at high quality with packet loss within a browser (as well as natively) has been amazing. Who would have known 8 years or so ago, playing about with WebRTC for the first time and failing massively, constantly asking for help on the Asterisk IRC channel, that WebRTC would be available on billions of devices around the world with online gaming driven by servers in the cloud; I'd have told you you were bonkers. Its been a power for change and drives more and more applications every single month. Is 2020 the year we'll see it become a "proper standard"? Who knows.
React, React Native & the RTC React Native Ecosystem
The react framework (that isn't a framework) has completely changed how we write web apps over the past 2 and a half years. The open source components available to stitch together that allow me to create amazing looking (and acting) applications without any real design skills is one of the best parts of the web - that's not just a react thing but to me, writing react applications is painless (or as painless as we can get - it's completely changed how I build applications with Web Tech). Whilst React is cool, React Native is the key game changer for me - being able to build amazing iOS and Android applications with Web Tech is hands down amazing. Yes I may complain about React Native every once in a while but its usually only for an hour or two. While React Native is amazing - it would be useless to me without the modules that empower the RTC apps we create. A special mention goes to the Wazo team and Kyle Kurz for react-native-callkeep and Saúl Ibarra Corretgé for leading react-native-webrtc forward - both of the projects are vital to Nimble Ape.
CommCon Sponsors
A quick mention to the businesses that have supported CommCon for the past two years; without them the best event in RTC would never have happened. Throughout both years there's been a 4 constants within those sponsorship spots - Simwood, Teluu, LOD and Cloudonix. Simwood have been Platinum sponsors both years and its fair to say without them I wouldn't have even considered doing the event in the first place. Teluu were Gold sponsors both years and on both occasions they were the first to sign contracts and send me money. LOD and Cloudonix were Community sponsors both years - giving money without very much in return - I thank all of them. Will CommCon be back in 2020? As a physical event in the UK, no; I need a break from organising it and I need to have a think about how to make the conference cover it's own costs. Will it be back in another form? There may be plans a foot - I'll know more in the new year.
The OSS RTC Community
And finally... The OSS RTC Community - these are the people I trust in the community and talk to almost every day. They're the ones I use as soundboards when I'm trying to figure out a solution to a problem or need inspiration from. Open Source is nothing without the people around it. Yes, software may be "free" but without contributing back to the community you're just a taker. If you use any Open Source project, and you don't already contribute to the project in some way, maybe have a think over the holiday break (if you have one) about how you can contribute back in some way. That doesn't have to be code, it doesn't have to be getting up and speaking at a conference and it doesn't have to be financial either. Its remarkable how many ways there are for someone can give back to the projects that empower them; how can you help? What's your skill? I thank every member of the RTC community for helping drive all of the solutions forward. You all know who you are.
Thank you for 2019 and I'm looking forward to what's to come in 2020.