- 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
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.
- Modem: Must support Caller ID
- 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 and NAME
- NUMBER and MESG or NAME
- NUMBER without NAME or MESG
- NAME without NUMBER or MESG
- NAME without NUMBER when call is PRIVATE or BLOCKED
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.
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 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
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.
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
Universal Client FeaturesThe 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.
- 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
- 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
- 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
- ncid-alert: send NCID call or message desktop notifications
- ncid-initmodem: signals ncidd to reinitialize the modem if the call does not show the Caller ID
- ncid-mythtv: display Caller ID on MythTV using Mythutil with the MythNotification protocol
- ncid-notify: display Caller ID on iOS and Android devices, requires registration at Prowl and their app for iOS or registration at Notify My Android (NMA) and their app for Android
- ncid-page: send Caller ID as a page or cell phone instant message using email
- ncid-kpopup: display Caller ID on a popup window using Gnome or KDE
- ncid-mysql: stores NCID data in a MySQL or MariaDB Database
- ncid-samba: send Caller ID as a Windows message
- ncid-skel: echo Caller ID in a terminal window, used as an example for writing output modules
- ncid-speak: speak the caller's name on a Linux system using festival
- ncid-tivo: display Caller ID on TiVo using text2osd
- ncid-wakeup: wakeup a sleeping X-Windows display
- ncid-yac: send Caller ID to YAC listeners
Gateway DescriptionsGateways are used to obtain Caller ID information from (usually non-modem) devices on the network.
- email2ncid: The email gateway converts either an email or an email subjet line to an NCID message and sends it to the server. It is called from the user's crontab and uses the $HOME/.procmailrc file to select the email to send to email2ncid.
The obihai gateway obtains Caller ID information from a OBi VoIP device. It formats the information and sends it to the server as a CALL message.
It also sends a CALLINFO message when the call ends. The CALL and CALLINFO messages also indicate whether the call was incoming or outgoing.
The obi2ncid setup section contains configuration information.
The NCID gateway obtains Caller ID information and messages from either one or more NCID servers and inputs the
data into another NCID server to send to all its clients. Line labels are used to distinguish which telephone
line received the call.
The ncid2ncid setup section contains configuration information.
This gateway sends Caller ID and messages from the Android smartphone app 'Remote Notifier' to the NCID server.
The rn2ncid setup section contains configuration information.
The SIP gateway obtains the VoIP Caller ID from
SIP Invite. It formats the information and sends it to the server as
a CALL message. It also sends a CALLINFO message when it sees a CANCEL or BYE
packet. The CALL and CALLINFO messages also indicate whether the call was incoming or outgoing.
Outgoing calls are supported on some SIP systems.
The sip2ncid setup section contains configuration information.
Sip2ncid can test for SIP packets on specific ports to find out if your LAN has SIP packets. If you have VoIP and no packets, you probably need to reconfigure your LAN.
The ATA (Analog Terminal Adapter) section contains instructions for configuring your LAN.
The Whozz Calling gateway obtains the Caller ID and call information from a Whozz Calling Ethernet Link device.
Depending on the model, it can take the place of 2, 4, or 8 modems and provide much more information.
The wc2ncid setup section contains configuration information.
The YAC gateway listens for CID information or a user message from a YAC server. It formats the
CID information and sends it to the NCID server as a CID message.
Normally used to obtain Caller ID from a modem running under windows.
The yac2ncid setup sections contains configuration information.
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
- ncidd.log: server log
- cidcall.log: server call log
- ciddata.log: optional modem, device or gateway input log
- obi2ncid.log: OBi gateway log
- ncid2ncid.log: NCID gateway log
- rn2ncid.log: RN gateway log
- sip2ncid.log: SIP gateway log
- wc2ncid.log: WC gateway log
- If the ring count is set to -1, there was a hangup with no answer.
- If the ring count is set to -2 there was a hangup after answer.
The current ring count is sent to the clients at each ring. After ringing stops, a ring count of zero is sent. This permits an output module, or external program, to be called at a specified ring or after ringing stops. When ringing stops, it indicates either a hangup or an answer. Ring count is only supported by modems and gateways that indicate RING.
The NetCallerID device does not support ring count.
Some gateways support a ring count of -1 or -2 to indicate the end of a call.