[asterisk-dev] Asterisk Beacon Module Proposal

Matthew Jordan mjordan at digium.com
Fri May 8 21:42:06 CDT 2015

On Thu, May 7, 2015 at 11:40 PM, George Joseph
<george.joseph at fairview5.com> wrote:
> On Thu, May 7, 2015 at 8:35 PM, Matthew Jordan <mjordan at digium.com> wrote:
>> Hey everyone -
>> At the past several AstriDevCon events, we've had an open discussion
>> about adding a module to Asterisk that would gather anonymous usage
>> statistics. Said module would be used to help the Asterisk Developer
>> community better support the users of Asterisk, as we would have some
>> indication of the modules being used by the reporting segment of the
>> Asterisk community. There are, of course, a couple of agreed upon
>> stipulations for such a module:
>> * As noted, all information gathering must be anonymous. No
>> information about the sending system should allow for someone viewing
>> the data to be able to identify the system in quesiton.
>> * The module must send all of its data encrypted.
>> * Users must be notified as the last message on startup that anonymous
>> usage statistics are being gathered.
>> * The module must provide the ability for users to opt out of
>> gathering statistics.
>> * Users must be able to go to asterisk.org and view the statistics
>> gathered for their server. The module must provide a unique,
>> non-identifying token that users can use to view the gathered
>> statistics for their servers.
>> After some careful thought, we've put together a proposal for such a
>> module – called “Beacon” - on the Asterisk wiki [1]. In addition to
>> meeting the requirements discussed at previous AstriDevCons, the
>> proposal on the wiki outlines a Swagger schema for a REST API that the
>> module will talk to. The module configuration will support sending the
>> usage statistics to more than just the server at asterisk.org,
>> effectively allowing anyone to send statistics from their servers to
>> other implementations of the REST API. This can be beneficial for
>> people deploying large numbers of Asterisk servers.
>> As mentioned, the asterisk.org site will be updated to allow for users
>> to view the collected statistics. A sample screenshot is attached to
>> this e-mail. Note that this is merely a mock up given some fake data,
>> but it should hopefully illustrate what this may look like for
>> Asterisk users.
> How about a summary dashboard anyone can view?

Sure! I'm not sure I can get the webby folks to create a wireframe for
that quickly, but I think it's something we should have.

I always liked the Linux Mint community page:


Something similar to that for Asterisk would be pretty cool.

> Total number of pbxes by version, global count of modules used,  OSes used,
> etc.
> Another thing that might be useful is a histogram of peer/endpoint count per
> pbx.  How many pbxes with 1-50, 51-250, 251-1000, etc.  Maybe by technology,
> IAX2, SIP, PJSIP, etc.

I'd love that information, as it would really help get a feel for how
Asterisk is being used.

The only issue I have with gathering that data is that channel drivers
don't provide an easy API to get at that information (with the
exception, of course, of PJSIP. Go sorcery go!) The only option I can
think of is to use a config hook, i.e., a config_hook_cb, and process
the bare minimum of a config file for the channel drivers when they
are loaded/reloaded. That would require a bit more processing when
said config files are loaded/reloaded. I don't think we'd want to
report much more than counts of peers/friends/users/endpoints.

If others are okay with the small overhead of processing config files,
I can add it to the spec.

More information about the asterisk-dev mailing list