Skip to content

dgnorton/ncid

Repository files navigation

NCID - Network CallerID

File last changed: Sun Aug 24, 2014

NCID is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License located
in a file called doc/LICENSE.

Web Site: http://ncid.sourceforge.net

NCID Features: http://ncid.sourceforge.net/ncid/ncid.html

Man Pages: http://ncid.sourceforge.net/man/man.html

Application Programming Interface: http://ncid.sourceforge.net/doc/NCID-API.pdf

Software Development Kit: http://ncid.sourceforge.net/doc/NCID-SDK.tar.gz

Directories:
    attic:       obsolete programs and files
    client:      client program
    Debian:      files specific to Debian.
    doc:         most of the documentation
    Fedora:      files specific to Fedora.
    FreeBSD:     files specific to FreeBSD.
    gateway:     gateway programs
    man:         man pages
    modules:     client modules
    server:      server program
    screenshots: screenshots for ncid and tivocid
    scripts:     logrotate scripts
    server:      server program
    test:        test scripts for the server and client
    TiVo:        files specific to the TiVo
    tools:       log file scripts
    Win:         files specific to windows

The NCID package contains:
    - a Network CallerID server: ncidd
      ncidd runs on Linux/TiVo/UNIX/Macintosh OSX/Cygwin
    - a Network CallerID client: ncid
      ncid runs on Linux/TiVo/UNIX/Windows/Mac OSX/Cygwin (requires tcl/tk)
    - client output modules and a configuration script for them
    - A NCID to NCID gateway: ncid2ncid
    - A Android smart phone app 'Remote Notifier' to NCID gateway: rn2ncid
    - A SIP Invite Gateway: sip2ncid
      sip2ncid runs on Linux/UNIX/Windows/Mac OSX/Cygwin
    - A Whozz Calling Ethernet Link device gateway: wc2ncid
      wc2ncid is a Perl program and runs on Linux/UNIX/Windows/Mac OSX/Cygwin
    - A YAC to NCID gateway: yac2ncid (requires a yac server to input CID)
      yac2ncid runs on Linux/UNIX/Cygwin/Mac
    - tools to work with the CID log and alias files: ncidtools
      ncidtools runs on Linux/UNIX/Mac OSX/Cygwin/TiVo (requires Perl)
    - a log rotate module
    - init and service scripts for Fedora
    - init scripts for Ubuntu
    - rc scripts for FreeBSD

The server, ncidd, is a TCP/IP Caller ID Daemon.  It either monitors a modem
or serial device for Caller ID, or obtains it from a CID gateway.  It sends
the CID information over the network to its clients.  The server can alias
the NUMBER, NAME, NUMBER and NAME, and LINE identifier received before it
is sent to its clients.

The telco always sends the CID between RING 1 and RING 2.  If ncidd does
not receive the CID by RING 2, ncidd can be configured to indicate a call
by sending RING as the number and "No CID From Modem" as the name.  This
permits NCID to display a visual indication of a call along with the date
and time.  This requires of a modem that indicates RING.

The ncidd server also sends outgoing calls and hangup calls from a blacklist.
Outgoing calls require a gateway that handles outgoing calls.
Call Hangups require a modem to hangup the call.

The NCID package has the following features:

    Server Features (ncidd):
    - Handles CID information from a modem, device or gateway.
    - Handles calls from modems that indicate ring but not Caller ID.
    - Handles outgoing or hangup calls from gateways that support them.
    - Supports a hangup option to hangup on calls in the blacklist file
      but not the whitelist file.  The hangup option has 2 modes, normal
      hangup and FAX hangup.  If the hangup option is set for FAX hangup
      but the modem does not support FAX, ncidd will change the hangup
      mode to a normal hangup with a warning in the server log file.
    - Shares the modem for outgoing calls.
    - Supports CID devices like NetCallerID
    - Supports VoIP using a SIP gateway: sip2ncid
    - Supports outgoing calls if SIP supports it
    - Supports multiple POTS lines if using the rn2ncid gateway
      instead of modems.
    - Allows multiple clients and gateways.
    - Does Name/Number/Line aliases, so the display can be customized.
      For example: "Wireless Caller" becomes "John on Cell".
    - Can alias the telephone line identifier
    - Logs all calls:  Track who called when.
    - Has a configuration file to set most options and aliases.
    - Runs on Linux, UNIX, Macintosh OS X, TiVo and Windows using Ubuntu
      or Cygwin.
    - Supports Distinctive Ring
    - Supports Multiline (1 POTS and 1 or Gateways)
    - Supports a remote modem using a YAC Gateway
    - Send important error messages to the clients.
    - Send a message received from a client to all connected clients.
    - Reloads the alias file when it receives a SIGHUP signal.
    - Sends ring count or -1 for hangup before answer or -2 for hangup after
      answer if input device supports it.
    - supports sending outgoing calls to clients if received from a gateway
    - Automatically terminates a telephone call using a modem if name or
      number is in the blacklist file but not in a whitelist file.
    - Reloads the alias, blacklist, and whitelist files when it receives
      a SIGHUP signal.
    - accepts the following jobs from its clients:
      * 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
      * resend cidcall.log and if the hangup option is enabled resent
        the ncidd.blacklist and ncidd.whitelist files
      * enable supported options requested by a client
    - Documented protocol

    Client Features (ncid):
    - GUI can be resized and saved.
    - Fonts for the history window and call area can be changed and saved.
    - Time of call can be either 24 or 12 hour format.
    - Date of call can be mm/dd/yyyy or dd/mm/yyyy
    - Date separator can be either '/', '-', or '.'
    - Displays the number in a specific country format:
      US, Sweden, United kingdom, Germany, Croatia, or no format.
    - Displays the Caller ID log file in the call history window.
    - Displays the current Caller ID when a call is received.
    - Displays outgoing calls if they are supported by the server
    - Displays call hangup if supported by the server
    - Displays call blocked if supported by a gateway
    - Displays Caller ID from a smart phone
    - Displays a notice of a smart phone message
    - Displays messages received from the server.
    - Supports Distinctive Ring and multiple telephone lines.
    - Supports output modules to customize its output and to send NCID
      calls and messages to cell phones, tablets, pagers or email.
    - Can call a output module on a specific ring count or hangup indicator
    - Can send a message to all active clients using the server
    - Multiple clients allowed, usually each with a different output module.
    - can send jobs to the server:
      * modify the alias, blacklist or whitelist files
      * update the call log with the new aliases
      * resent the call log
      * reload the alias file and if hangup option enabled, reload the
        blacklist and whitelist files
      * request a supported server option
    - Runs on Windows, Linux, UNIX, and Macintosh OS X.
    - Documented protocol

    NCID Gateway Features (ncid2ncid)
    - Forwards Caller ID information and messages from selected NCID
      (sending) servers to a selected NCID (receiving) server
    - Handles up to 3 sending NCID servers
    - Documented protocol

    Remote Notifier Gateway Features (rn2ncid)
    - Forwards Caller ID information and messages from a smart phone
    - Each smart phone has a 4 hex digit identifier
    - can have multiple rn2ncid gateways
    - Documented protocol

    SIP Gateway Features (sip2ncid)
    - Receives Caller ID information from SIP Invite
    - Creates a CID Message and sends it to the NCID server
    - indicates call answered or not answered
    - Handles multiple VoIP Lines
    - Indicates the telephone line by the last 4 digits
    - can have multiple sip2ncid gateways, each monitoring VoIP hardware
    - Documented protocol

    Whozz Calling Gateway Features (wc2ncid)
    - Handles multiple Whozz Calling Ethernet link devices
    - Receives Caller ID or outgoing call information
    - Creates a NCID Message and sends it to the NCID server
    - indicates call answered or not answered
    - Handles multiple POTS Lines
    - Indicates the telephone line by the "WCxx"
    - can have multiple wc2ncid gateways
    - Documented protocol

    YAC Gateway Features (yac2ncid)
    - Receives Caller ID information from a YAC server
    - Creates a NCID Message and sends it to the NCID server
    - telephone line identifier can be set in yac2ncid.conf
    - Documented protocol

See the doc directory for most documentation, including OS
specific INSTALL files.

See gateway/README.gateways Fedora/README.Fedora FreeBSD/README.FreeBSD
modules/README.modules scripts/README.logfile, tools/README.tools, and
test/README.

Instructions to make and install the ncid package are in the various
INSTALL files included and the web site.

man pages:
Instructions for using ncidd are in the man page: ncidd.8
Instructions for configuring ncidd are in the man page: ncidd.conf.5
Instructions for configuring ncidd aliases are in the man page: ncidd.alias.5
Instructions for ncid.blacklist are in the man page: ncidd.blacklist.conf.5
Instructions for ncid.whitelist are in the man page: ncidd.whitelist.conf.5

Instructions for using ncid are in the man page: ncid.1
Instructions for configuring ncid are in the man page: ncid.conf.5

Instructions for using ncid-<name> are in the man page: ncid-<name>.1
Overview of the modules are in the man page: ncid-modules.7

Instructions for using ncid2ncid are in the man page: ncid2ncid.1
Instructions for configuring ncid2ncid are in the man page: ncid2ncid.conf.5

Instructions for using rn2ncid are in the man page: rn2ncid.1
Instructions for configuring rn2ncid are in the man page: rn2ncid.conf.5

Instructions for using sip2ncid are in the man page: sip2ncid.8
Instructions for configuring sip2ncid are in the man page: sip2ncid.conf.5

Instructions for using wc2ncid are in the man page: wc2ncid.1
Instructions for configuring wc2ncid are in the man page: wc2ncid.conf.5

Instructions for using yac2ncid are in the man page: yac2ncid.1
Instructions for configuring yac2ncid are in the man page: yac2ncid.conf.5

Instructions for using ncidrotate are in the man page: ncidrotate.1

Instructions for using ncidtools are in the man pages: cid<name>.1 wct.1
Overview of ncidtools are in the man page: ncidtools.7

Formatted man pages are text files and html files. They are created in the
man directory after a "make mandir" in the top level directory, or a "make"
in the man directory.

The distributed configuration files are:
    ncid.conf
    ncidd.conf
    ncidd.alias
    ncidd.blacklist
    ncidd.whitelist
    ncidrotate.conf
    ncid-alert
    ncid-kpopup.conf
    ncid-mythtv.conf
    ncid-notify.conf
    ncid-page.conf
    ncid-speak.conf
    ncid-samba.conf
    ncid-skel.conf
    ncid-yac.conf
    ncid2ncid.conf
    rn2ncid.conf
    sip2ncid.conf
    wc2ncid.conf
    yac2ncid.conf