Unpicking the licensing situation for implementing "This is Lenny" on your phone system

Empty call centre1

If you're familiar with VoIP, and asterisk in particular — and, if you're reading this, there's a reasonable chance that you are — you'll probably be familiar with Lenny.

For those who are not, "Lenny" is a combination of a set of voice recordings of someone pretending to be a confused old man, and some programming for a telephony service. The idea is that, if you receive an unwanted marketing call, you transfer the call to "Lenny".

The result is that the person making the marketing call ends up talking with a computer for, well, as long as it takes them to realise that they are talking to a recording, or they simply give up without ever realising. In the mean time, you can get back to doing whatever you were doing before they called...

A friend asked me the other day about implementing Lenny on their own phone system, so I started to dig into the origins of Lenny and, in particular, the licensing status of the two key elements of it.

In case it is useful to others, here's the outcome of that.

tl;dr

It's muddled and confused, and it took a lot of time to work out what was going on, which is the most beautiful irony. But, basically, if you want a Lenny-like service, make your own voice recordings, and write your own dialplan!

The original "Lenny" voice recordings

You can find the original Lenny voice files in a number of places online, but it unlikely — or, at best, it is unclear — that they are distributed with the permission of the author.

In early 2017, someone calling themselves "reallylenny" claimed on Reddit that they are — you've guessed it — really Lenny:

I am Lenny. I am the voice and I also planned and wrote the dialogue.

I've no way of validating that this person is, in fact, Lenny. Other than their own assertion, and someone else in the thread commenting that that person is, indeed, the voice of Lenny, the only corroborative evidence is a recording, seemingly made specifically for that Reddit thread, which sounds an awful lot like the original Lenny voice.

Declining a request to make the Lenny voice files available under a Creative Commons licence, they wrote:

I would offer Lenny's recordings under the not-for-profit section of Creative Commons, but it requires you to identify yourself and I am unkeen to do that

For what it is worth, I don't follow the logic here — there's no reason why someone who wishes to license their work under a Creative Commons licence cannot use a pseudonym — but that's beside the point.

This person, who purports to be the copyright holder, has said that Lenny is not available under a Creative Commons licence, nor did they specify any other licence terms.

Another school of thought is that someone called Brian West made them available for use, at least on an interim basis while a hosted "It's Lenny" service was fixed:

Brian also graciously offered permission to use the Lenny recordings for those that wanted to host their own "Lenny" during the interim.

However, a post from someone with the screen name briankwest contradicts this:

Where are people getting the Lenny sound prompts for his voice? I was wondering where everyone downloaded them from, To my knowledge I've never shared those with anyone, nor the original Javascript code written that makes up Lenny. Lenny was originally implemented in Javascript on FreeSWITCH by Jay from down under, I registered the domain itslenny.com for hosting a live instance of Lenny for others to direct calls to. I have since rewritten him in Lua, Debating on if I can get clearance from Jay's friend to release the sound files that make up Lenny himself.

In short, the licensing position is, at best, messy, with a leaning towards "no licence granted".

Now, whether the copyright holder is likely to become aware of your use, or pursue you for copyright infringement if you have a copy of the files and use them on your own PBX is a rather different matter, and you will need to make your own judgment call there.

A safer option would be to write your own script, and record your own voice files, or pay someone to do it for you. This would also have the added benefit of not being the potentially-recognisable "This is Lenny" greeting.

The "Lenny" dialplan

Even if you have the voice files, without some way of integrating it with your VoIP system, they do nothing.

Enter the dialplan, which is a set of instructions for the phone system. The "Lenny" dialplan for asterisk, and possibly for FreePBX too, was clever, in that it waited for silences in the incoming call leg to trigger playback, to help keep up the illusion of Lenny being a real person.

As a warning, this too is a bit of a rabbit hole.

A question for another day is whether a dialplan is capable of being protected by copyright. One the one hand, it is the telephony equivalent of a recipe, and so unlikely to be deserving of protection, but, on the other, it's close to (if not actually) being software, which is protected. So if you want to err on the side of caution, assume that it is protected.

If you download the Lenny module for FreePBX, the file containing the dialplan contains the standard GNU GPL 2.0 licence header.

It says that it uses

the Asterisk dial Plan developed by Ward Mundy at www.nerdvittles.com.

However, a separate post on the Reddit thread about Lenny purportedly (as above, I've no way of verifying it) sets out the origin of the dialplan:

The original inspiration was from a thing called astycrapper by Linux Systems. http://www.linuxsystems.com.au/astycrapper/ ... The code is originally from [astycrapper] with mods by me and voice files by reallylenny.

So we now attempt to ascertain the licensing of the AstyCrapper dialplan, which was modified to create the Lenny dialplan (which was probably modified yet again to create the FreePBX file, but that's the latest version of the dialplan I've been able to find).

The original AstyCrapper dialplan does not contain any licensing information, but the landing page for AstyCrapper says:

This code is distributed under the terms of the GPL

It does not say which version of the GPL, which is unfortunate.

The first snapshot of the AstyCrapper homepage on archive.org dates from 30th October 2008. If we make the assumption that we are talking about a GNU GPL, as opposed to, say, an Affero GPL, then GNU GPL 2.0 is from June 1991, and GNU GPL 3.0 is from June 2007. So, based solely on date, either are possibilities.

However, while AstyCrapper says it is distributed under the terms of "the GPL", AstyCrapper has its own origin story, referencing previous work by Jordan Stack:

a modification of the script found here : http://astcrapper.jdhaesloop.com/

So we need to dig further down the chain, to see what licence conditions were attached to the original script.

The site referenced by the AstyCrapper page is also available via archive.org, and it links through to this HOWTO.

The linked dialplan has a non-standard licence header:

by using my files you agree not to resell this as a product. As a disclaimer, neither I or the AstCrapper 2000 are affiliated with any of the websites or services linked on my website.

Notably, this is not a GPL licence, for any flavour of GPL. Indeed, it is a GPL-incompatible licence, since it prohibits a licensee from reselling the code ("as a product", so presumably allows it to be used to run a commercial service?), but both GNU GPL 2.0 and 3.0 permit this, provided that the seller complies with the other conditions of the licence.

So we end up with what appears to be a modified version (FreePBX config files, ostensibly under GNU GPL 2.0) or a modified version (Lenny diaplan, which I cannot find, so I cannot see the purported licensing terms) of a modified version (AstyCrapper dialplan, licensed under "the GPL", version unstated) of AstCrapper2000 (licensed under "you agree not to resell this as a product" terms).

There is also a hosted instance of Lenny-as-a-Service, to which you can tranfer calls, and a Reddit user, /u/Mango123456, has said that they wrote the dial plan for that.

Basically, as clear as mud, but with a strong leaning towards GNU GPL 2.0.

Of course, with so many modifications, once might question just how much of the original works remains in the current dialplan. If none of the original code exists, the licensing of that original code is unlikely to be relevant.

There are definite similarities between the AstCrapper2000 dialplan and the AstyCrapper dialplan, even if the former adopts a slightly different naming convention than the latter. The FreePBX module looks very different, which probably reflects the different environment. So no real help there either.

If I were pushed beyond an answer of "messy", I'd lean towards it being GNU GPL 2.0.

In practice, if you are running the dialplan on your own phone system, it is unlikely to matter whether it is licensed under GNU GPL 2.0 or GNU GPL 3.0. If you intend to distribute / propogate / convey the dialplan, the version would be more relevant but — and I'm going out on a limb a bit here — still unlikely to make much of a difference.

Again, the safest route would be to prepare your own dialplan. Or, if you can forego the cleverness of the "original" approach to Lenny, you could just create a recording with some periods of silence, and play that back.

Recording calls to Lenny, and posting them online

I've rambled enough now, so this is just a short footnote to say that, if you are thinking of recording your calls to Lenny, and especially if you are thinking of posting them online, you will need to think this through carefully! But that's a topic for another time...


  1. This image is made available through the CC0 Public Domain Dedication↩︎

Tags: