Operating Systems

  • Linux: server, client and all CID gateways
  • TiVo: server, client and CID gateways ncid2ncid, sip2ncid, yac2ncid
  • Macintosh: server, client and all CID gateways
  • FreeBSD: server, client and all CID gateways
  • Windows: client only unless Ubuntu or Cygwin is installed
    - Ubuntu on Windows: server, client and all gateways
    - Cygwin on Windows: server without modem or serial device support, client and all gateways

Server Features

Supported Caller ID Input:

The server only supports one modem or serial device, but it does support multiple gateways with and without a modem or serial device.

Multiple Lines:

The server supports multiple phone lines using line labels. A supported phone line can be any combination of the following:

  • one phone line from a modem or NetCallerID serial device
  • multiple phone lines from a Whozz Calling or TCI serial device
  • one cellular phone line from an Android phone gateway
  • multiple VoIP telephone lines from a SIP gateway
  • multiple VoIP telephone lines from a ObIHAI gateway
  • multiple phone lines from a WC or NCID gateway
  • one phone line from a YAC gateway

Distinctive Ring Lines:

If the modem supports distinctive ring for different telephone numbers, the server will obtain the telephone line indicator from the modem and send it to each connected client. The client displays the line indicator with the Caller ID information in its history window.

Line Labels:

Line labels are generated for all phone lines monitored:

  • A modem or serial device does not generate a line label unless it is in distinctive Ring mode. If no line indicator is received, the line label is set to a '-' which tells clients to not display it.
  • The SIP and NCID gateways generate a line label that is the last 4 digits or characters of the called phone line.
  • The RN gateway uses the least significant 4 digits of the Remote Notifier 16 digit identification.
  • The WC gateway generates a 4 character line label such as WC01, where the 0 is the WC device number (0-9) and the 1 is the device line number (1-8).
  • The YAC gateway generates a line label called 'YAC'.
  • Line labels can be aliased in the ncidd.alias file.

Multiple Caller ID Systems:

The server supports Caller ID systems that send:

  • NUMBER without NAME or MESG
  • NAME without NUMBER or MESG
  • NAME without NUMBER when call is PRIVATE or BLOCKED

Call Hangup:

The optional automatic hangup feature can be used if either a gateway or a modem obtains the Caller ID for the server. A modem is required to hangup a call. Call Hangup information is sent to the clients.

The server automatically terminates a telephone call if the name or number is in the ncidd.blacklist file but not in the ncidd.whitelist file. The whilelist file overrides entries in the blacklist file.

The hangup feature has three modes of operation: Hangup, FAX Hangup which generates FAX tones before hangup, and Announce Hangup which plays a message before hangup.

FAX hangup requires a FAX modem. If FAX hangup is selected without a FAX modem, the server will revert to normal hangup with a warning in its log file.

Announce Hangup requires a Voice modem. If Announce Hangup is selected without a voice modemor if the announcement file is missing, the server will revert to normal hangup with a warning in its log file.

The server can do a hangup in two ways, either together or separate:

  • Internal hangup - uses the blacklist and whitelist files.
  • External hangup - currently uses shell scripts and the whitelist file. There are multiple hangup scripts and the user can create his own. The script determins if the server should hangup on the call, this allows a Internet site to determine calls not wanted. The script can be any scripting or compiled language.

Outgoing Calls:

If a SIP gateway provides Caller ID and outgoing call information to the server, outgoing call information is sent to the clients.

If a OBI gateway provides Caller ID , outgoing call information is sent to the clients.

Certain models of the Whozz Calling hardware (used in place of a modem) also provide Caller ID and outgoing call information to the server. The hardware supports 2, 4 or 8 lines depending on the model.

No Caller ID support:

If the telco does not supply Caller ID or if the modem does not support it, the server will act as a visual call indicator using a modem that indicates RING. It will keep a record of the date and time of each call, but not the caller name or phone number. This feature can be turned off.

Multiple Gateways:

Multiple gateways are supported, even if they are the same type.

Multiple Clients:

Multiple clients are permitted. Each computer, TiVo, and supported device on the network can receive Caller ID and messages from a single server.

Each client can even receive Caller ID and messages from multiple servers using an ncid2ncid gateway.

Name, Number and Line Aliases:

  • alias both NAME and NUMBER
  • alias NAME
  • alias NUMBER
  • alias NAME if NUMBER
  • alias NUMBER if NAME
  • alias LINE LABEL
For example: Wireless Caller becomes John on Cell when using alias NAME if NUMBER.

Call Logging:

The server keeps a log of all callers in the cidcall.log file. This Caller ID log is normally sent to each client at connect. The log file permits local or remote tracking of who called, when, and which phone line.

Shared Modem:

The server permits other programs to use the modem for outgoing calls, provided they use a modem lock file to indicate use.

Message Broadcasting:

The server accepts a single line message from a client and sends it to all connected clients. Other programs such as netcat can be used to send a message. Telnet needs to be configured and is not recommended.

Here is an example shell script that creates a 10 minute food timer:

  • sleep 600; echo "MSG: Food Ready" | nc -w1 localhost 3333 > /dev/null

Client Jobs:

The server can accept jobs from its clients. The current jobs implemented are:

  • add, modify, or remove aliases from the ncid.alias file using the ncidutil script
  • add or remove entries from the ncidd.blacklist and ncidd.whitelist files using the ncidutil script
  • update the cidcall.log file using the cidupdate script
  • reload ncidd.alias
  • if the hangup option is enabled reload the ncidd.blacklist and ncidd.whitelist files
  • resend the cidcall.log to the client that requested it
  • dial a number requested by a client

Universal Client Features

The client, ncid, can do the following:

  • display the NCID Caller ID or message using its GUI (default)
  • display the NCID Caller ID or message in a terminal window
  • send the NCID Caller ID or message to an external program or output module
  • send a single line message to all connected clients, using the server to broadcast the message
  • send a Client Job to the server (see server list of Client Jobs)
The GUI version of the client, can do the following:

  • change its fonts, size, and position on the screen
  • display the date in its history window as 12 hour or 24 hour
  • send Client Jobs to the server
The client GUI display can be set to the following values for a specific telephone number display:

  • US: United States phone number format
  • UK: United Kingdom phone number format
  • SE: Sweden phone number format
  • HR: Croatia phone number format
  • FR: France phone number format
  • DE: Germany phone number format
  • NONE: Phone number not formatted
The client GUI displays the following identifiers for calls and messages:

  • CID: incoming call
  • OUT: outgoing call
  • HUP: blacklisted call hangup
  • BLK: blacklisted call blocked
  • MSG: message from a user or NCID
  • PID: Caller ID of a call to a smart phone
  • NOT: Notice of a smart phone message
The client includes the following output modules:

Output modules are usually simple shell scripts that are easy to add. The ncid-skel module can be used as a template after the special test mode section is deleted.

Gateway Descriptions

Gateways are used to obtain Caller ID information from (usually non-modem) devices on the network.

Configuration, Data, and Support Files:

The server, client, client modules, and gateways have configuration files that set most options:

  • ncidd.conf: server configuration file
  • ncidd.alias: server alias file
  • ncidd.blacklist: server blacklist file
  • ncidd.whitelist: server whitelist file
  • ncid.conf: client configuration file
  • conf.d/ncid-MODULE.conf: client module configuration file
  • ncidrotate.conf: ncidrotate configuration file
  • email2ncid.conf: configuration file for email2ncid
  • ncidsip.conf: configuration file for ncidsip
  • obi2ncid.conf: obi2ncid configuration file
  • ncid2ncid.conf: ncid2ncid configuration file
  • rn2ncid.conf: wc2ncid configuration file
  • sip2ncid.conf: sip2ncid configuration file
  • wc2ncid.conf: wc2ncid configuration file
  • yac2ncid.conf: yac2ncid configuration file

Log Files

  • ncidd.log: server log
  • cidcall.log: server call log
  • ciddata.log: optional modem, device or gateway input log