NCID - Network Caller ID

Sections
Description
Features
Client Software
Documents
Links
Screenshots
NCID is a Client/Server Network Caller ID Package.
The NCID server, called ncidd,
obtains Caller ID information or outgoing call information and makes it available to clients over the network.
It also makes use of aliases to change the NUMBER or NAME received, before sending the CID to its clients.
The server can also automatically hangup up a call if the name or number is in the blacklist file.
The NCID server obtains the Caller ID information from either a modem, a serial device, or gateways. A SIP gateway obtains
The Caller ID information fo incoming calls and possibly information on outgoing calls. Multiple
gateways are supported and can be used along with a modem or serial device. If the gateway supports outgoing calls,
ncidd can also send that information to its clients
The NCID server can also function without Caller ID if a modem is used that indicates ring. The date and time of the
call will be noted, but not the name or number of the caller.
The NCID client, called ncid, receives the CID information from the server and either
displays it, sends it to a output module, or both. The client has multiple output modules available
and a display program for a TiVo. There can be multiple clients in GUI mode, but only one client per
output module.
- Multiple Operating Systems:
- Linux: server, client and all CID gatewys
- TiVo: server, client and all CID gateways except ncidsip
- Macintosh: server, client and all CID gateways
- FreeBSD: server, client and all CID gateways
- Windows: client only unless andLinux or Cygwin is installed
- andLinux: server, client and all gateways
- Cygwin: server without modem or serial device support, client and all gateways
- Supported Caller ID Input:
- Modem: Must support CallerID
- NetCallerID: A CallerID stand alone serial device
- Gateways: SIP,
NCID, and
YAC
- 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 serial device
- multiple VOIP telephone lines from a SIP gateway
- multiple phone lines from a 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 so 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 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 withoug NUMBER or MESG
- NAME without NUMBER when call is PRIVATE or BLOCKED
The server also supports modems that output RING but no CID. This provides a visual indication and incoming calls.
- Call Hangup:
The server can automatically terminate a telephone call if the name or number is in the blacklist file. A modem is required
to hangup the call. This optional feature can be used if either a gateway or modem obtains the Caller ID for the server.
Call Hangup information will be sent to the clients.
- Outgoing Calls:
If a SIP gateway provides Caller ID and outgoing call information to the server, outgoing call information will be sent to the clients.
- 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 CID information from a single server or multiple servers using a 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 the "alias NAME if NUMBER" type.
- Call Logging:
The server keeps a log of all callers. 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
- Universal Client:
The client, ncid, normally displays CID information using its GUI, but it will also display information in a terminal window,
or send the CID information to a external program or module. The client can also send a single line message to all connected
clients, using the server to broadcast the message.
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
- DE: Germany phone number format
- NONE: Phone number not formatted
The client GUI displays the following identifiers for calls and messages:
- CID: incoming call's Caller ID
- OUT: outgoing call's phone number and name alias
- HUP: auto hangup's Caller ID of a incoming call
- MSG: message
The client includes the following output modules:
- 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
mythtvosd
- ncid-page: send Caller ID as a page or cell phone instant message using email
- ncid-popup: diaply Caller ID on a popup window using Gnome or KDE
- ncid-samba: send Caller ID as a Windows message
- ncid-skel: echo Caller ID in a terminal window, used as a base to write other modules
- ncid-speak: speak the caller's name on a Linux system using festival
- ncid-tivo: display Caller ID on TiVo using text2osd
- ncid-yac: send Caller ID to YAC listeners
The client also has a separate output package for a TiVo:
- out2osd: display text on TiVo
Output modules are mostly simple scripts, and are easy to add.
- Gateways:
Gateways are used to obtain Caller ID information from the network.
- sip2ncid:
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.
Setup-sip2ncid contains instructions for configuring sip2ncid.
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 probabily need to reconfigure your LAN.
The original SIP gateway is ncidsip, sip2ncid is recommended.
- ncidsip:
The original SIP gateway. The sip2ncid gateway should be used instead.
- yac2ncid:
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.
- ncid2ncid:
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 the which telephone
line received the call.
- 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
- ncid.conf: client configuration file
- ncidmodules.conf: configuration file for all client output modules, and module init or rc scripts
- ncidrotate.conf: ncidrotate configuration file
- ncidsip.conf: configuration file for ncidsip
- ncid2ncid.conf: ncid2ncid configuration file
- sip2ncid.conf: sip2ncid configuration file
- yac2ncid.conf: yac2ncid configuration file
- Log Files:
Server:
- ncidd.log: server log
- cidcall.log: server call log
- ciddata.log: optional modem or device and gateway input log
Gateways:
- ncid2ncid.log: NCID gateway log
- sip2ncid.log: SIP gateway log
- Ring Count:
The current ring count is sent to the clients at each ring. After
ringing stops, a ring count of zero is sent. This permits a 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 that
indicate RING. The NetCallerID device and the gateways
do not support ring count. However, some gateways do support a ring count
of -1 or -2 to indicate the end of a call.
- Hangup Detection:
The SIP gateways will indicate if there is a hangup with no answer or a
hangup after answer.
If the ring count is set to -1, ncid-page will send a message on hangup
with no answer.
If the ring count is set to -2 ncid-page will send a message on hangup
after answer.
The NCID client is written in the tcl/tk language. UNIX
and Linux versions, if not included with your distribution,
can be obtained from
Xchange.
Windows versions can be optained from
ASPN.
and Macintosh versions are available for
System 7.
and for
OS X.
The Windows client is an executable, made using
freeWrap,
so the tcl/tk language does not need to be installed,
unless you rather use ncid.tcl instead of ncid.exe.
INSTALL
INSTALL-andLinux
INSTALL-Cygwin
INSTALL-Fedora
INSTALL-FreeBSD
INSTALL-Mac
INSTALL-TiVo
INSTALL-Ubuntu
INSTALL-Win
Modem-CallerID-test
Modem-DistinctiveRing
Modem-info
Modem-init
Modem-TiVo
Setup-ncidsip
Setup-sip2ncid
Verbose-ncidd
Verbose-sip2ncid
Verbose-ncid2ncid
NCID Testing
TODO
Project Page
Release Notes
Released Files
NCID client GUI with outgoing call (OUT), auto hangup (HUP), and incoming call (CID).

NCID client GUI displaying a received message and sending a message.

NCID client GUI in classic mode (displays incoming calls only).

Treo 650 showing a message sent by the ncid-page output module.
Selecting the phone number will call it.
