About Dave Horton

I’ve been “doing” VoIP since 2000, when I founded a SIP application server company (Pactolus Communication Software) that made and sold a commercial software-based application server/app suite to carriers and communication service providers worldwide. With customers ranging from Webex to Deutsche Telekom and many successful deployments under my belt, I learned quite a bit but increasingly saw both the challenges and opportunities created by the disruption that was the open source movement.

While on an extended “adventure sabbatical” a few years ago, mostly spent in beautiful Pembrokeshire Wales, I decided to create drachtio, an open source framework that at once combined my desires to work in the open source movement and to find a useful vessel in which to invest the knowledge that I had gained over the years in building and deploying VoIP networks and applications that had to be held to the highest standards of performance and reliability.

I love writing software both for the web and VoIP and am enjoying being a part of working to see these two worlds come together. I’m also an avid rugby fan, and have enjoyed playing for teams ranging from the US national team in my heyday to the 5th division St Davids Saints more recently. While at the conference, I would love to talk to anyone about Wales chances in the next world cup!

Dave Horton's Session

How come “full-stack webRTC developer” isn’t a thing?

drachtio is the open-source framework that means to change all that: enabling web developers to build their own high-performance back-end VoIP networks and applications using tools and programming patterns that they are already familiar with.

drachtio - The open-source VoIP framework for full-stack webRTC developers

Overview

WebRTC and VoIP. The odd couple of modern communications. WebRTC gives web developers exciting new abilities to create innovative communication and collaboration applications, but only to the extent that someone has built out a reliable and performant back-end VoIP network. And until now, that has required specialized skills, knowledge and often domain-specific programming languages that a web developer can’t hope to acquire and maintain as a side effort to his or her day job. The Drachtio open source project aims to change that – to introduce the concept of a “full-stack webRTC developer” – by providing a pure Javascript node-js based framework that allows web developers to build their own back-end networks and applications using tools and programming patterns that they are already familiar with.

Drachtio is an open source project that comprises a high-performance, programmable SIP server along with a nodejs-based application framework that leverages common middleware patterns that a modern web developer will already know and love. It is the new kid on the block, but has been already deployed in multiple carrier and service provider networks around the world where it is used to deliver a wide range of VoIP applications and is carrying hundreds of millions of minutes per month. This talk will cover the drachtio architecture and programming model, position it relative to other VoIP projects such as Kamailio, Freeswitch and the rest of the gang, will describe some of the use case deployments, and provide the audience with an easy path to further explore and deploy VoIP services and back-end networks using it.

Why drachtio

Today, more so than at any time in the past, we have the ability to build out a fairly rich set of VoIP communications networks and servers to deliver services to our subscribers and communities. Possible, but not easy - at least not “full-stack web development easy”.

Using products such as Kamailio, Freeswitch, and Asterisk it is possible to deploy VoIP networks at low cost and at scale. Kamailio, for instance, is a powerful SIP proxy and edge element, but deployments require mastering its rather cryptic configuration language. Freeswitch and Asterisk provide flexible media-processing capabilities, but each comes with a significant learning curve investment as well in terms of extensive configuration as well as detailed SIP language knowledge. Each of these products, however, have a place in the constellation of open source VoIP elements, as does drachtio. Drachtio sits in between Kamailio and Freeswitch, if you will, in providing a “home” for most of the VoIP application code a developer will write while leveraging those elements as needed. For a modern web developer familiar with middleware patterns such as those exposed by express, connect, hapi, or koa, drachtio will fit comfortably to hand. The only difference is that rather than building an HTTP-based services, drachtio enables building SIP-based servers (and clients! and registrars! and presence servers! etc).

Use Cases

We will discuss and review how drachtio is being used today in communication service provider networks. Use case descriptions will include:

  • intelligent call steering (e.g., time of day, geographic, network utilization)
  • WebRTC gateway
  • call / media recording
  • class 5 type services
  • VoIP emergency services
  • others

Architecture

We will review the architecture in some detail, giving the audience a sense of the programming model and how drachtio aims to provide carrier-class reliability and scalability features

Getting started / resources

For those interested in jumping right in after the talk, we will review how to get quickly up and running with sample applications and deployments, and provide pointers to where to go to get more help.