Menu

NCID Release 1.12

Network Caller ID (NCID) Release 1.12

Overview

Major Changes

  • New Compile requirements
  • g++ or c++ compiler
  • libphonenumber 7 or greater
  • libicu 57 or greater

If the above are not available then NCID release 1.11 should be used.

  • Integrating libphonenumber allows us to significantly enhance the per-call data as described in the next section, What's included? This enhanced data is sent by the NCID server to all listening clients and output modules; it's also saved in the call log.

  • The NCID client was updated to allow you to select columns to display in the history window, including the new ones that are supplied by libphonenumber. When the client is installed the first time or when it is updated, it is configured to display the same columns as the previous releases. Use Preferences->Select Columns to display only certain columns or all of them.

  • The libphonenumber project is primarily written in Java. In order for NCID to access the database's carrier (telco) data, we wrote a C++ version of Google's Java-based libcarrier. If we hadn't done this, NCID wouldn't have been able to provide any of the valuable carrier data.

  • The entire libphonenumber database for all countries is huge. We decided that this first release of a libphonenumber-enabled NCID would be distributed with:

  • all of the countries covered by the original Google data (mobile phone carriers only)
  • Canada
  • France
  • Japan
  • United Kingdom
  • United States

You are welcome to contact us to request that additional countries be included. The NCID source has documentation and the tools that we use in case you want to add a new country on your own, but be aware that doing so is non-trivial (it depends on the format that the country's telecom authority will use).

  • Whenever we release a new version of NCID, it will include a copy of the latest libcarrier database; you won't need to do anything. It can be updated at any time from the source by rebuilding and installing it. As a practical matter, it is not really necessary to update frequently -- or even at all; database changes may happen often, but they are mostly for mobile networks in remote parts of the developing world. As mentioned above the NCID source has instructions to do so if you need updates more frequently,

  • There is an important caveat to be aware of: number portability (moving a number from one carrier to another). From the Google libphonenumber project FAQ: "Not all regions support mobile number portability. For those that don't, we return the carrier when available. For those that do, we return the original carrier for the supplied number."

  • Phone number formatting according to local country usage
  • The country formatting of telephone numbers has been moved from the client to the server. Previously the client only supported six country formats. Now the server supports (nearly) all country formats.

  • The US and other countries that use the North American Numbering Plan (NANP), like Canada, have four NCID implemented number formats to choose from:

1234567890
(123) 456-7890
123-456-7890 (this is the default format)
123.456.7890

  • Phone number device type
  • indicates if "fixed" (landline), mobile, pager, short public number, etc.
  • Phone number geographical data
  • the two-letter country code
  • the location (state/province/region/city)
  • Phone number carrier name (i.e. telco)
  • Cygwin Support
  • Cygwin is no longer supported beginning with NCID 1.12 because it does not provide dependencies for libphonenumber. If you still need to run on Cygwin then NCID release 1.11 should be used.
  • Macintosh Support
  • Beginning with NCID 1.12, the standalone package installer script (ncid-<version>-mac-osx_install.sh) is not available due to problems with library dependencies. Compiling from source is required.

  • Be aware that the Homebrew package manager usually restricts support to the three most recent operating system versions. As of this writing, Homebrew states a minimum of macOS 10.14 (Mojave).

  • Minimum system requirements for NCID release 1.11 and older:

  • PowerPC, Intel 32bit, Intel 64bit processors
  • macOS 10.6 (Snow Leopard) which was first released in 2009(!)
  • Aqua, the macOS native graphical user interface
  • ActiveTCL 8.6.6
  • third-party dependencies provided by Homebrew package manager
  • Minimum system requirements for NCID release 1.12 and newer:
  • Intel 64bit processors
  • you may get lucky running NCID under Rosetta2 emulation for Apple Silicon ARM processors but because it is so new we remain skeptical that such an environment is stable
  • macOS 10.9.5 (Mavericks)
  • XQuartz
  • TCL/TK 8.6.6 for X11 (i.e., XQuartz)
  • third-party dependencies provided by either MacPorts or Homebrew package managers

Other Changes

  • Fixes and Code Improvements:
  • New features:
  • Updated:

Features and fixes for this NCID release

Server

  • Code improvements and fixes

  • New: Call Waiting indication ("WID") if it is enabled and supported by the modem.

  • New: The libphonenumber integration will format numbers according to country, and lookup additional caller details from its database, before writing to the call log. The additional information may be obsolete because of number portability.

Extensions

  • New: Calls are rejected if not in the whitelist or greylist. A message informs the caller to call back within a time period for the call to be accepted. The caller number stays in the greylist until a timeout happens. When the caller calls back within the time period, a new timeout value is calculated based on the time of the call. The default timeout period is five days. In summary, the timeout period is the window to call back and not get a hangup. It starts from the time of the hangup.

Tools

  • Added test to make sure it is only executed once on the first day of the month.
  • New: This is a standalone utility that uses the same libphonenumber formatting and location/carrier lookup routines as the NCID server. It was initially used as a proof-of-concept during development and has been incorporated into update-cidcall.
  • New: Intended to be used only once to update the call log from previous NCID releases. It will apply libphonenumber formatting, plus add other new metadata fields. The cidcall.log file is not changed. The new file should replace the current one. Review the man page for the new fields in the call log.

Client

  • Code improvements and fixes.

  • New:Two additional date formats added that include the abbreviated day of the week and an abbreviated month name (MMM):

    • DayOfWeek MMM DD YYYY example Fri May 29 2020
    • DayOfWeek DD MMM YYYY example Fri 29 May 2020
  • New: New menu item in Preferences called Select Columns allows the user to select which columns to view in the history window. Some columns are required and must always be viewed.

Documentation

  • Updated
  • updated
  • New: hangup-exact.1

  • New: hangup-greylist.1

  • New: ncidd-greylist.5

  • New: ncidnumberinfo.1

  • New: update-cidcall.1

Important Notes

Downloads

  • The large green Download button on the SourceForge Project Page detects which operating system you're using. For Windows, it defaults to downloading only the latest Windows client setup program. Otherwise it defaults to the complete, latest source package. Select Files to view and download any of the available packages.

Client

  • Requires TCL/TK version 8.6.6 or newer for all operating systems.

  • The Windows client is installed as ncid.tcl and requires the installation of ActiveTcl.

  • The Windows client still does not support OUTPUT MODULES but Windows 10 can run Ubuntu using Windows Subsystem for Linux (WSL). We have not installed or tested NCID using WSL, so any feedback would be appreciated if you try this.

  • On maintained Fedora releases, with Emoji fonts installed, the ncid client, in GUI mode, will cause an X-Windows error and then die on start-up or when doing a Preferences->Font->Change Fixed Font->Re-scan.

If ncid dies on startup, you must remove the $HOME/.ncid file if using Linux based distribution, FreeBSD or macOS, or the <INSTALLDIR>/.ncid file if using Windows.

The ncid client, starting with release 1.8, ignores all Emoji fonts. For client releases prior to 1.8, the only fix is to manually remove all Emoji fonts.

  • On macOS, the ncid client is no longer supported under the native Aqua graphical user interface. The fix is to install the XQuartz application which provides a custom X Windows System, and a version of TCL/TK that is for X Windows/XQuartz.

Fedora Upgrade

When doing an upgrade from NCID 1.2 on Fedora, the client post-script (installed with NCID 1.2) fails.

  • Everything is installed properly but if you had any clients with output modules running, you may need to restart them after the upgrade.

Macintosh Upgrade

Beginning with NCID 1.12, you must compile from source because no self-extracting installer script is available. Your existing configuration settings will be preserved.

See the INSTALL-Mac section of the User Manual for instructions on how to install:

  • XQuartz graphical user interface

  • the special version of TCL/TK needed for XQuartz

  • the third-party packages to install with either the Homebrew or the MacPorts package manager.

Upgrades for All Operating Systems (including Fedora and Macintosh)

It is highly recommended that you run the new update-cidcall tool after upgrading to NCID 1.12 but before launching the ncidd server for the first time.

  • If you don't run update-cidcall then call log data prior to NCID 1.12 will show blanks instead of the new fields.

  • Once NCID 1.12 is installed and running, the new call log data will automatically be populated with the new fields.

NCID project home page

Home page for all the NCID distributions.

NCID package description and requirements

Overview of the NCID package and requirements.

NCID package features

Lists all the features of the server and client.

NCID package release notes and downloads

Downloads and release notes for this release.

NCID User Manual

Explains how to get started with NCID and how to set up the various features. It is a good reference even for those experienced with NCID.

NCID Manual Pages

The manual pages describe all the software that comes with NCID.

NCID Modem List

An incomplete table of modems that are compatible and incompatible with NCID.

NCID WiKi

Home page for the NCID WiKi.

NCID API

Information needed to develop servers, clients, client output modules and gateways for NCID (Network Caller ID).

NCID SDK

A tar archive that contains the API and test scripts for building an NCID server, client, or gateway.

NCID Versions in Repositories

List of package versions for project ncid in all repositories.

Posted by John L. Chmielewski 2021-08-19

Log in to post a comment.