# Network Caller ID

Network Caller ID (NCID) is an open-source client/server network Caller ID (CID) package.
NCID consists of a server called ncidd (short for NCID daemon), a universal client called ncid, and multiple client output modules and gateways. The server, ncidd, monitors either a modem, device or gateway for the CID data. The data is collected and sent, via TCP, to one or more connected clients.
Many devices, including smartphones, and services can detect caller ID information. An NCID gateway collects CID data from these other sources and passes it on to the main NCID server. From there the CID data is distributed to all connected clients, just like CID data collected from a traditional modem. One example of a non-modem device is a VoIP (Voice over IP) service that collects CID data as SIP packets. Another example is the Whozz Calling series of Ethernet Link devices that obtain CID information from multiple POTS (Plain old telephone service) lines.
NCID supports messages. Clients can send a one line message to all connected clients.
The client can also be used to push CID to other computers and devices with output modules.
Various clients are available on numerous platforms, including Android, iOS, Linux, macOS and Windows.

## Protocol

The NCID protocol is simple, human-readable ASCII text consisting of field pairs—a field label and its field data—using the asterisk character as a delimiter. Transmission between the NCID server and its clients is done via TCP/IP, usually over port 3333. Additional field pairs have been added as the NCID server has been enhanced with new features and support for more devices. Here is an example of the minimum of caller ID data.
       CID:*DATE*09182012*TIME*1320*LINE*POTS*NMBR*4075551212*NAME*John on cell*

## List of input sources

Hardware that can supply caller ID data to the NCID server, either by the NCID server accessing the device directly (RS232 serial port or USB) or indirectly via NCID Gateways (scripts and programs included with the NCID package).

### Modems

AT-compatible modems expect Telcos to send caller ID data as either Single Data Message Format (SDMF) or Multiple Data Message Format (MDMF). The modem then decodes the data stream into human readable text, which the NCID Server then parses. If a modem supports it, the NCID Server can also decode the raw SDMF or MDMF data stream.
| Manufacturer | Model | Status | NCID Features Supported (Note A) | Type | Country Tested | Country Code (AT+GCI?) | Chipset Manufacturer (AT+FMI) | Chipset Query Result (ATI3) | Chipset Firmware Patch Version (AT-PV) | Vend:Prod ID (if USB or PCI) | Notes | Owner(s) |
| 3Com Corp (U.S. Robotics) | 3CP2976 (US) | Partial | CID, VOICE | PCI | US | ERROR | U.S. Robotics 56K Voice | U.S. Robotics 56K Voice INT V5.20.1 | | 12b9:1008 | Use AT#CID=1. See also Note D. | |
| Apple | Jump | Working | CID, FAX | Internal | US | B5 | ERROR | Motorola SM56 1.3.9 | ERROR | | ATI4 gives "Apple Internal Modem" | taa |
| Apple | MA034Z/A | Broken | | USB | US | B5 | ERROR | Motorola SM56 USB 1.5.10 | ERROR | 05ac:1401 | ATI4 gives "Apple USB Modem". See also Note H. | taa |
| Dell | RD02-D400 | Broken | RING | USB | US | ?? | ERROR | CX93001-EIS_V0.2002-V92 | F10574 | 0572:1324 | Reported broken here. See also Note G. | |
| Dualcomm | USB Adapter/Modem for Caller ID Display (old model) | Working | CID, FAX, VOICE | USB | US | B5 | Conexant (Rockwell) | CX93001-EIS_V0.2002-V92 | F1053 and F10539 | 0572:1329 | | taa |
| Dualcomm | DCID-300 (newer model) buy | Untested | | USB | | | | | | | | |
| Hiro | HiRO H50113 V92 56K External USB Data Fax Dial Up Internet Modem don't buy | Broken | ?? | USB | US | ?? | ?? | ?? | ?? | ?? | Not recognized by Linux | Ed |
| LB-LINK | BL-UM03B buy | Working | CID, FAX, VOICE | USB | US | B5 | Conexant Systems (Rockwell), Inc | CX93001-EIS_V0.2013-V92 | | 0572:1340 | | |
| MultiTech Systems | MT5656ZDX-V | Working | CID, VOICE, FAX | Serial, external | US | B5 | ERROR | ACF3_V2.000E-V90_P21_FSH | | | | |
| Phoebe | CMV1456VQE FAX modem | Working | CID, FAX | Serial, External | US only | ?? | ?? | ?? | ?? | | | |
| Rosewill | RNX-56USB | Working | CID, VOICE | USB | US | B5 | Conexant Systems (Rockwell) | CX93001-EIS_V0.2002-V92 | | 0572:1321 | Some reports of no CID | |
| Sewell | SW-29644 | Working | CID, FAX, VOICE | USB | Italy | B5 | Conexant Systems (Rockwell) | CX93001-EIS_V0.2013-V92 | | 0572:1340 | Working FAX and VOICE with AT+VCID=1 | eikaff |
| Sewell | SW-29644 buy | Working | CID, FAX, VOICE | USB | Canada | B5/20 | Conexant | CX93001-EIS_V0.2013-V92 | 0000000000 | 0572:1340 | Tested CID and VOICE hangup with AT+VCID=1 | Ed |
| StarTech | USB562KEMH | Working | CID, FAX, VOICE | USB | US | B5 | Conexant Systems (Rockwell) | CX93001-EIS_V0.2002-V92 | F10539 | 0572:1329 | See Note F | Ed |
| TrendNet | TFM-561U | Working | CID, FAX, VOICE | USB | US | B5 | Conexant Systems (Rockwell) | CX93001-EIS_V0.2002-V92 | F1054D | 0572:1329 | See Note E | |
| TRIXES | TRIXES buy | Broken | RING | USB | UK | B4 | Conexant | CX93001-EIS_V0.2002-V92 | | 0572:1329 | Reports RING, sometimes Caller ID. See also Note B. | |
| U.S. Robotics | 5637 (UK) buy | Partial | CID, VOICE | USB | UK | ?? | ?? | U.S. Robotics 56K FAX USB V1.2.23 | | 0baf:0303?? | Use AT#CID=1. See also Note C. | |
| U.S. Robotics | 5637 (US) | Partial | CID, VOICE | USB | US | ?? | ?? | U.S. Robotics 56K FAX USB V1.2.23 | | 0baf:0303 | Use AT#CID=1. See also Note C. | |
| U.S. Robotics | 5686E | Working | CID, FAX | serial | US | ERROR | Conexant | CX93010? | | | Use AT#CID=1. Reported working here | |
| Zoom | 3090 (US) | Broken | ? | USB | US | ? | ? | ? | ? | 0803:3090 | Windows only, softmodem | |
| Zoom | 3095 (UK) | Working | CID, FAX, VOICE | USB | UK | B4 | Conexant | CX93001-EIS_V0.2002-V92 | F105C7 | 0803:3095 | Use AT+VCID=1. See also Note B. | |
| Zoom | 3095 (US) buy | Working | CID, FAX, VOICE | USB | US | B5 | Conexant | CX93001-EIS_V0.2002-V92 | F10572 | 0803:3095 | See also Note B. | |
* Note A: RING means ring only, no Caller ID, no hangup. CID means Caller ID and simple hangup. FAX and VOICE mean their respective hangup options. Unless otherwise noted, the presence of VOICE indicates the modem will use the default NumberDisconnected.rmd (raw modem file) distributed with NCID.
* Note B(1): Zoom and TRIXES. Prior to NCID version 0.89, FAX hangup was not a configurable option, and two blog/forum posts (here and here) have patches to add FAX hangup. Starting with NCID version 0.89, FAX hangup is now a configurable option so the patches are no longer necessary. The NCID developers have been unable to contact the author at Murphy 101 Blog to have the blog updated.
* Note B(2): Zoom 3095 USB modems appear to be particularly sensitive to power levels. A common reported symptom is having to unplug and re-plug the modem into the USB port to get it to work. A more detailed discussion can be found here.
* Note C: US Robotics 5637. Tested with Fedora, Raspberry Pi and Ubuntu. Connected to the UK British Telecom and US caller id systems. FAX hangup will not hangup the line, will disconnect the modem and will abort ncidd. Several users report problems using this modem with the Raspberry Pi in particular.
* Note D: 3Com 3CP2976. Linux utility lspci reports "04:01.0 Serial controller: 3Com Corp, Modem Division 56K FaxModem Model 5610 (rev 01)".
* Note E: Works on several Linux distros. Confirmed to work on Raspberry Pi 3 running Ubuntu Mate and Pi 3-B Raspbian Jessie—but does not work if the Raspberry power supply can't do 2 amps
* Note F: Works on several Linux distros. Curiously, StarTech says it has a Conexant CX93010 chip, but the one tested responds with CX93001.
* Note G: CallerID intentionally disabled by vendor in EEPROM patch. CallerID can be reenabled in any CX93001-based modem via simple RAM patch after ATZ command: AT!4886=00 for Bell FSK countries, AT!4886=01 for V23 FSK (Japan), AT!4886=02 for ETSI FSK (France, Italy, Spain), AT!4886=03 for SIN227 (UK), AT!4886=05 for ETSI DTMF. Sometimes additionally AT!4892=FF may be required.
* Note H: This modem was released October 12, 2005 and discontinued in September 2009. It does not work on any modern version of macOS or Linux.

### NIETO

* Thomas Glembocki's entry won Honorable Mention in the 2007 Circuit Cellar Wiznet Ethernet design contest for his project NIETO: An NCID and NTP Client

### NCIDdisplay (A large homebrew LED display for NCID (Network Caller ID)
## Consumer network routers with embedded NCID Server

| Manufacturer | Model | Supported NCID server version according to Manufacturer |
| Zyxel or Telekom | Speedlink 5501 | 0.74 page 13 |
| AVM Vodafone | Easybox 602 screenshot on page 146 | ? |
| AVM Vodafone | Easybox 802 screenshot | ? |
| AVM Vodafone | Easybox 803 screenshot | ? |
| AVM Vodafone | Easybox 904 screenshot | ? |
| AVM Vodafone | Fritz!box | ? |