Caller ID Superfecta: THE MODULE Feature Release 2.1.0
General Documentation
05/24/2009
Caller ID Superfecta: THE MODULE Feature Release 2.1.0¶
A scant 9 days after the release of Caller ID Superfecta 2.01, the project team has just released Caller ID Superfecta: THE MODULE, version 2.1.0 Feature Release! (Download it here)
Features – We got Features!
Version 2.1.0 is primarily a "New Feature Release", and some of these features are beyond pretty darn cool.
For the end user, this release brings enhanced debug information, and more data sources than ever before.
We also added special features to make it easier to figure out how and when to use the Username and Password fields in the General Options section.
Rounding out the user interface upgrades, we have centralized the placement of configuration options for sources that require authentication or other special information to operate.
Entering The Data Source Specific Configuration Information
Data sources that have additional parameters that should be configured have a “==>” to the right of their name.
To configure the login, password, token, or other service specific configuration items required for any data source, click on the Name of the data provider, or the “==>” to the right of the data provider name. This will open up the data source configuration option window for that particular data source.
Provide the requested information, if any, and press the "Apply" button. All done!

Easy Integration of New Sources
For the developer, the new release of the Caller ID Superfecta sports a fairly sophisticated mini API (Application Programmers Interface), that allows Superfecta data-source scripts to support some pretty exciting capabilities. With the new architecture, data-source scripts can provide very detailed debug information for each source, and easily support sources that have specialized data needs, such as authentication.
Report Back to Data Sources
The new Superfecta even allows us to return Caller ID information (A feature called “Report Back”) to sites that allow for it (More about that later).
Data Source Upgrades
Let's start out by talking about the new data sources that have been added for this release -- in fact there are FOUR of them, plus a whole new lease on life for an old favorite.
User contributed data source for Canada with new “Canpages.ca” Data Source
PBXIAF Forum participant mageminds contributed a data source script for Canadian data site canpages.ca. It passed standards and practices, and has been included with this feature release of the caller ID Superfecta. This source will return both businesses, and personal information for telephone numbers based in Canada. Way to go mageminds! You're the first user generated code contributor to the new caller ID Superfecta!
User contributed data source “VoIPCNAM.com” Data Source
Stepping right up with another first, PBXIAF forum member mruge created the first user-supplied data-source script for a “for-pay” data-source; VoIPCNAM.com. This script is the first one designed to take advantage of the new Superfecta capabilities of dynamically supporting new data sources that have authentication requirements. Thanks Michael!
Caller ID Data Caching to MySQL with new "Superfecta Cache" Data Source
A new local data source called the "Superfecta Cache" has been added to the module.
The Superfecta Cache data source is a high speed local data source that is well suited to being one of the first (if not THE first) selection on your providers list. If you are using the Asterisk Phone book to store company wide speed dial information, it is recommended that you place the Asterisk Phone book above the Superfecta Cache.
When the Superfecta Cache is enabled, results returned by Superfecta are cached locally for a user defined number of days, after which they are deleted. The user decides for themselves the best length of time for the system to retain data in the cache before it is purged. This choice should be based on whatever criteria make sense for the prevailing circumstances, rather than worrying about how large the cache might get. (MySQL can handle LARGE amount of data if need be.) During the cache period, the data is available for fast local look up.
Read more about the Superfecta Cache Data Source here: http://projects.colsolgrp.net/documents/show/11
Retain valid caller ID if provided by TSP with “Trunk Provided” Data Source
Some TSP's provide no caller ID information, while some TSP's do provide limited to complete caller ID information. In these and certain other cases, it is nice to be able to use the valid caller ID information provided by the TSP.
When enabled, the "Trunk Provided" data source watches the caller ID data being provided by the inbound trunks. It compares this data to a user configurable list of known invalid caller IDs. (By default the words “unknown", "wireless", "toll free", and "unlisted” are already recognized as invalid.) When the Trunk service provider delivers either no caller ID data at all, or caller ID data that matches data in the “Invalid” list, the "Trunk Provided" data source is considered to have failed, and the caller ID Superfecta will move on to the next source. When the caller ID data provided by the trunk source does not match data in the "Invalid" list, caller ID Superfecta accepts that as a positive hit, and stops processing further data sources. (One thing to remember about this source – it will ALLWAYS seem to fail in the debug mode. The reason? We can’t really poll the trunk provider for the number we put into debug the same way we can the other sources, so remember it will always show a NOT FOUND during debug.)
User driven upgrade for “whocalled.us” Data Source
As we looked hard at each data-source during this round of development, we found some interesting things. One thing we found is that a long time SPAM rating source, whocalled.us – really should not be used for SPAM rating at all.
Our investigation found that the number we’ve been using as a SPAM value was really just the number of times a telephone number had been submitted to the whocalled.us site. It had nothing to do with SPAM! We were just about ready to begin sunsetting the whocalled.us source, when PBXIAF forum member Marv intervened at the development support site. With some good reasoning and facts he made a compelling case, and we like to listen to those!
Thanks to this dogged support from Marv, the whocalled.us data source has been upgraded to retrieve and use the textual caller ID information that’s available, and no longer erroneously uses the “times-reported” value as a SPAM threshold.
There is a caveat to using the new caller ID part of this data provider. All of the caller ID data that this data provider has available is contributed by individuals like you and I. Because of that, the data returned may not be as consistent as the data from other potential providers. In the event that the same telephone number has been listed with more than one different textual form of caller ID, the Caller ID Superfecta 2.1.x version of the whocalled.us data source will return the most frequently provided response.
But – as they say on TV – “But Wait, there’s more!”
Report Back
Because the whocalled.us data source is made up of user contributed data, it seems only fair that we help populate the information pool. Toward that end, this Superfecta data source comes ready to do exactly that. If you enable the check mark box called "Return to Who Called", the caller ID Superfecta will be a good citizen and return any caller ID information it may collect from any source, and populate the who called.US site with it.
This ability to report back to a source (In programmer talk, this function is called “Post CID retrieval processing for source scripts”), can be used in creating additional data-source scripts. It’s a capability now built into the Caller ID Superfecta Engine, as part of the mini API.
Enhanced Debug Information
Enhanced debug support for data source errors
Because data sources can fail for many reasons, we've increased the amount of debug information that's made available to the user in the debug window.
In the past, if a data source could not be reached, or, if that data source experienced an internal error (at the provider's site), the debug information would reflect "not found". Now, any error conditions returned by the data source website will be returned and displayed in the debug box.
These errors will be expressed in terms of HTTP errors, such as an error 500. (Error 500, in general, means internal error.) Now, instead of just getting a “not found”, we will have authoritative error messages telling us whether or not the data source itself is not functioning.
"Automatic" Support for Services Which Require Authentication/Token
One of the biggest remaining hurdles for adding new data sources to the caller ID Superfecta has been the way we previously handled data sources that require user ID’s, passwords or API tokens. In versions prior to this release, adding a source with such requirements demanded a development effort in the module user interface, and the database, to include the necessary authentication information. In version 2.1.0, this limitation has been overcome.
Effective with this release, adding new data sources, even those which require some form of authentication, no longer requires a separate development effort to modify the user interface, or the database structure. With this new architecture, and a little programming time, it should be possible to add virtually any online data source without requiring further development support in the main body of the caller ID Superfecta module. (If you're a developer who's dying to add his or her favorite source, check out the source creation documentation here, and then share your creation with the rest of us. )
A Veritable Plethora of Data Sources
Back when the caller ID Superfecta was still known as the Trifecta, there were a total of three data sources available. Today, effective with version 2.1.0 of the caller ID Superfecta, we have no less than 15 potential data sources included with the module!
What's Next?
Most of these enhancements came about by folks making good suggestions. I sure hope everyone continues to make suggestions, and toss around ideas. If we do, then the future looks amazingly bright! With the current architecture underlying the caller ID Superfecta, it is now easier than ever for anyone with an interest - to create a data source script for their favorite data provider. Merely copying that script to the correct location in the Superfecta module will activate the data source, and automatically adjust the caller ID Superfecta Web user interface to reflect the new data source; And that includes the ability to configure any required special extended configuration data, such as authentication ID password or API tokens.
Ok. How much do we owe?
As has always been the case with Superfecta, all the developers who participated, from klingon888, and marv, to mruge and mageminds – as well as everyone else involved, accomplished all this as volunteers!
Staying up late, or pitching in before their regular workday begins – these generous souls have given us the easiest to install and use, most flexible and sophisticated leading edge Caller ID tool available to any FreePBX based platform anywhere.
Again, please join me in providing your full throated congratulations to the caller ID Superfecta version 2.1.0 team, with special thanks to our lead developer, Jeremy Jacobs, on an awesome feature release. Jeremy’s insight, hard work, and outstanding design instincts have literally brought the caller ID Superfecta to the leading edge of what is possible in delivering caller ID data to the Asterisk/Free PBX-based PBXs.
Until next time –
Tony Shiffer