Why drachtio?

TL;DR

In open source VoIP networks, there is a need for a "place" (slash network element) to group and execute arbitrary application logic: i.e., an application server.

What I have observed in managing multiple SIP networks is that people are conscripting their SIP proxies (e.g. Kamailio, openSIPs, etc) or their media servers (e.g. Freeswitch, Asterisk, etc) into running their complex application logic -- something that (in my opinion) these elements were not particularly designed for nor well-suited for. Yes, things can be done this way -- at the cost of complexity, which is pretty much the enemy of everything good in software development.

To fill this void, I have created drachtio: the Node.js framework for building SIP server applications.

One server (or cluster thereof) to plant in your network, where all of your application logic can grow.

A server that can be tended to by actual application developer types, rather than a high priest of VoIP.

Your SIP proxies and your media servers are still needed, but let them return to those functions that they are good at, and use drachtio as your application server framework.

Unleash the dragon!

Oh, you wanted a story?..

well, then..

When I was young..

In the early years of VoIP, I started and ran a company that sold SIP server software and applications to telecoms and service providers world-wide. The time was right, as these companies were just making the leap from legacy equipment to VoIP protocols, where for the first time application logic could more naturally be integrated into telecom networks.

That company had a largely successful run, but over that stretch of time our commercial, sofware license-based model was increasingly challenged by emerging open source competitors.

Our business model, in fact, started to get in the way of our product.

Increasingly, we realized that unless you were a customer with a potential spend of $100K, we really couldn't afford to work with you. And there was no economical way for prospective customers to really trial our product before buying either.

The result was a lengthy sales cycle and a focus on a smaller number of high value contracts; which meant the product was getting bashed around in fewer production networks -- and to my mind there is no substitute for getting a product matured than hours in use by real production customers.

Over time, the open source alternatives started to mature -- and they matured much faster because of the rapid state of play they could achieve with zero/low-cost pricing. This began to eat into our profit margins, as we had to lower our prices in response.

If the shoe fits..

I'll spare you the details of how all this ended up, unless you want to buy me an adult beverage someday, but let's just say it was an intoxicating mix of the '08 financial crash, and some good old-fashioned founder / investor strife that landed me, in short order, outside of my own company and in self-imposed exile hard by the Irish sea in beautiful West Wales. A place, the locals informed me, where strangers don't usually turn up and stay unless they are on the run from something.

If you can't beat 'em..

At the same time, I started using Node.JS for some web applications, and was impressed by the speed of the V8 engine, and the ease of writing expressive server-side javascript applications.

I wanted my next product to be open source, in order to achieve more rapid user/deployment scale, and seeing the benefits of Node I began creating the drachtio framework.

I wanted the product to be scalable for carrier environments, and to lend itself to the way that operations staff at large-scale service providers like to manage things, so I wanted a separation of SIP signaling engine and application logic. For that reason, I first developed a high-performance SIP transaction processing engine (drachtio server) in C++ and based on the sofia SIP stack, and then a Node.JS framework (drachtio-srf) that could be used to control it.

Yeah, but why drachtio?

drachtio is the open source Node.JS-based framework for building SIP server applications that can scale to large service provider-type networks.

The hope is to help converge the worlds of modern web development with VoIP-based telephony systems, so that new media rich applications can be more easily created by web developers.

There are many good open source VoIP software products and frameworks out there, but for the most part they come from the telephony world and require a significant investment in time to learn domain specific languages, configuration files, and operating procedures. In other words, they don't fit easily to hand for a typical web developer.

drachtio is meant to be a tool that fits easily to hand for a web developer.

Thanks, but I meant why the name ?

Oh, right, of course.

'drachtio' is a Welsh word that means 'to quaff', as in a beverage. I chose it for the project as a nod to the fact that drachtio was born in Wales, and have adopted a slightly different translation: "to SIP, lustily!"