ncidd (8) - Linux Man Pages

ncidd: Network Caller ID Server


ncidd - Network Caller ID Server


ncidd [options]


[-A <aliasfile>  | --alias <aliasfile>]
[-C <configfile> | --config <configfile>]
[-c <logfile>    | --cidlog <logfile>]
[-D              | --debug]
[-d <logfile>    | --datalog <logfile>]
[-e <identifier> | --lineid <identifier>]
[-h              | --help]
[-I <modemstr>   | --initstr <modemstr>]
[-i <cidstr>     | --initcid <cidstr>]
[-L <logfile>    | --logfile <logfile>]
[-l <lockfile>   | --lockfile <lockfile>]
[-M <MaxBytes>   | --cidlogmax <MaxBytes>]
[-N <0|1>        | --noserial <0|1]
[-n <0|1>        | --nomodem <0|1]
[-P <pidfile>    | --pidfile <pidfile>]
[-p <portnumber> | --port <portnumber>]
[-S <0|1>        | --ttyclocal <0|1]
[-s <datatype>   | --send <datatype>]
[-T <ttyspeed>   | --ttyspeed <ttyspeed>]
[-t <ttyport>    | --ttyport <ttyport>]
[-V              | --version]
[-v <1-9>        | --verbose <1-9>]


NCIDD collects Caller ID data from:

    - a modem or CID device on a telephone line
    - a CID gateway on the network
    - or both

It formats the data on a single text line, and then sends it to one or more Network CallerID (NCID) clients over TCP/IP. NCIDD also allows an alias for the number, an alias for the name, and an alias for the telephone line identifier.

The telephone company limits names to 15 upper case characters, so by using the alias function, you can display the name as you would like to view it, or correct a name that was truncated. You can even change or mask a telephone number.

NCIDD can be configured to send a CIDINFO line to clients at each ring and when ringing stops. It contains a LINE (called telephone line) indicator and a RING indicator.

If the Caller ID is obtained from a modem, and the modem supports it, the server will include a ring count in each CIDINFO line. When ringing stops, the ring count will be zero. This allows, for example, a client to send the call information to a pager or cell phone on a specific ring count. If the ring count is not reached, it is assumed the phone was answered and there is no need to send a page or cell phone notification.

If the Caller ID is obtained from a SIP Gateway the CIDINFO line is only sent at the begining and end of a call. At the end of a call, RING indicates either Hangup Without Answer or Hangup after Answer This allows a cell phone or pager to receive a message only if the phone was not answered.

NCIDD will accept a text message for a client, and then send it to all connected clients, including the one that sent it.

NCIDD will accept a CID message from a client. A CID message contains the Caller ID information from a CID client instead of a serial device or modem.

NCIDD will accept a CIDINFO message from a client. A SIP client will send a CIDINFO message when it receives a CANCEL command. The server will then send a ring count of -1 to its clients to indicate a hangup with no answer.

NCIDD will reload the alias file when sent a SIGHUP signal.


-A <file> | --alias <file>
Alias file.
Default: /etc/ncid/ncidd.alias
-C <file> | --config <file>
Config file.
Default: /etc/ncid/ncidd.conf
-c <file> | --cidlog <file>
Call log data file.
Default: /var/log/cidcall.log
-D | --debug
Debug mode.
-d <file> | --datalog <file>
Data log data file, usually from a modem.
Default: /var/log/datalog.log
-e <identifier> | --lineid <identifier>
The telephone line identifier is for a modem. It is normally 1 to 4 characters. The default indicator is not displayed, but for one POTS line, you could change it to POTS. For multiple lines you should use a identifier. You could change it to the 4 digit extension for an exchange. For example, if the telephone number is 321-555-1212 the identifier whould be 1212.
Default: -
-h | --help
Display a help message.
-I string | --initstr string
Modem initialization string
Default: ATE1V1Q0
-i string | --initcid string
CID initialization string
Default: AT+VCID=1
if it fails: AT#CID=1
-L <file> | --logfile <file>
Server logfile.
Default: /var/log/ncidd.log
-l <file> | --lockfile <file>
Modem lockfile.
Default: /var/lock/LCK..modem
-M <MaxBytes> | --cidlogmax <MaxBytes>
Set the maximum CID call log file size in bytes.
Maximum size is 100000000
Default: cidlogmax = 110000
-N <0|1> | --noserial <0|1>
serial device (0) or no serial device (1)
Default: noserial = 0
-n <0|1> | --nomodem <0|1>
modem (0) or no modem (1)
Default: nomodem = 0
-P <pidfile> | --pidfile <pidfile>
Server PID file. Set to /var/run/ in a rc or init script when used as a service. The program will still run if it does not have permission to write a pidfile. There is no default. If pidfile is not set, no pid file will be used.
-p <port> | --port <port>
Server port.
Default: 3333
-S <0|1> | --ttyclocal <0|1>
Enable (0) or disable (1) modem control signals.
Default: modem control signals disabled
-s <datatype> | --send <datatype>
Send optional CID data to a client. Where datatype is:
cidlog: sent when the client connects. If the CID call log gets too big, it will not be sent.
cidinfo: sent on each ring, to all clients, gives the current ring count.
Default: Optional CID DATA is not sent
-T <ttyspeed> | --ttyspeed <ttyspeed>
Set the tty port speed to one of: 19200, 9600, 4800
Default: ttyspeed = 19200
-t <ttyport> | --ttyport <ttyport>
Modem device file, or serial port that provides Caller ID information.
Default: /dev/modem
-V | --version
Display the version number.
-v <1-9> | --verbose <1-9>
Output information, used for the logfile and the -D option. Set higher number for more information.
Default: verbose = 1
Most Useful: verbose = 3


The ncidd.conf(5) file is used to set options. The syntax of the ncidd.conf(5) file is discussed seperately, and should be consulted for detailed reference information.

The ncidd.alias(5) file is used to create aliases. The syntax of the ncidd.alias(5) file is discussed seperately, and should be consulted for detailed reference information.


These are five examples of the three types of lines sent to NCID clients. The first field is line identifier.

The CID: line gives the CID information of the current call.

The CIDLOG: line gives the CID information of a line in the CID log file.

The MSG: line gives messages from the server.

The MSGLOG: line gives a message logged in the CID log file.

The CIDINFO: line gives a line number and ring count from the server. The ring count starts at 1 and increases until ringing ends, at which time a count of 0 is sent. The line number default is 1, Distinctive Ring will add one of the letters: A B C D to indicate the virtual line called. Expect additional name/values pairs to be added in the future.

The CID: and CIDLOG: lines are identical, with data stored as name and value pairs. Clients should always locate the line identifier, and then scan for a field name and get its value. It's possible that additional name/value pairs may be added in the future.

The MSG: and MSGLOG: lines are identical,

CID: *DATE*mmddyyyy*TIME*hhmm*NMBR*number*MESG*NONE*NAME*name*
CIDLOG: *DATE*mmddyyyy*TIME*hhmm*NMBR*number*MESG*NONE*NAME*name*
CIDINFO: *LINE*line indicator*RING*ringcount*
MSG: Too many clients connected: 15
MSGLOG: Too many clients connected: 15


Contains CID and MSG lines
Contains the output from the modem or CID device
Server log file. Contents controlled by verbose.


    Return Code    Meaning
    -----------    -------
         0         Successful
      -100         Usage
      -101         Invalid port number
      -102         TTY port is in use
      -103         Unable to set modem for Caller ID
      -104         Configuration file error
      -105         No modem found
      -106         Invalid data type.
      -107         Invalid number
      -108         Invalid tty port speed [set in config file]
      -109         Alias file error
      -110         PID file already exists
      -111         Cannot init TTY
      -112         Serial device error
      -113         string too long
        -?         System error


ncid.1, ncidtools.1, lcdncid.1, out2osd.1, ncidd.conf.5, ncidd.alias.5, ncid.conf.5