NCID
NCID
is a Client/Server Network Caller ID Package.
The NCID server, ncidd,
obtains Caller ID information and makes it available
over the network. It also makes use of aliases to change
the NUMBER or NAME received, before sending the CID
to its clients.
The NCID client, ncid,
receives the CID information from the server and either
displays it, sends it to a external program, or both. Six
output modules are available: ncid-mythtv, ncid-page,
ncid-speak, ncid-samba, ncid-tivo, and ncid-yac.
One display program is also available: out2osd
NCID has three CID gateways: sip2ncid, ncidsip, and yac2ncid.
Sip2ncid and ncidsip get CID information from VoIP SIP Invite network packets.
Sip2ncid is prefered over ncidsip.
Yac2ncid gets CID information from a YAC server.
All gateways format and send the CID information collected to the server as a CID
message.
Multiple clients and gateways can be used at the same time. For Example:
- ncid in GUI mode
- ncid using ncid-page to send a message to a cell phone
- sip2ncid to get CID information from SIP Invite network packets
- yac2ncid to get CID information from a YAC server
Features
- Multiple Operating Systems:
- Linux: server, client and all CID gatewys
- TiVo: server, client and 2 CID gateways (sip2ncid and yac2ncid)
- Macintosh: server, client and all CID gateways
- FreeBSD: server, client and ll CID gateways
- Windows: client only (or need to install either andLinux or Cygwin)
- andLinux: server, client and all CID gateways
- Cygwin: server (no modem support), client and all CID gateways
Supported Caller ID Input:
The server can obtain the CID information from the following:
- Modem:
Must support CallerID
- NetCallerID:
A CallerID stand alone serial device
- SIP Gateway:
A gateway that obtains Caller ID from SIP network packets and sends it to the
server
as a CID message
- YAC Gateway:
A YAC listener that obtains Caller ID and sends it to the server as a CID
message. Used to obtain Caller ID from a modem running under windows.
Multiple Lines:
The server supports one modem and multiple CID gateways. The modem
supports one telephone line, and each SIP gateway supports
multiple VOIP telephone lines. The YAC gateway supports a YAC modem server.
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.
Multiple Types CID Systems:
The server supports CID systems that send:
- NUMBER and NAME
- NUMBER and MESG or NAME
- NUMBER without NAME or MESG
- NAME without NUMBER
when call is PRIVATE or BLOCKED.
Multiple Clients:
Multiple clients are permitted, each computer and TiVo on the
network can receive CID information from a single server.
Name, Number and Line Aliases:
- alias both NAME and NUMBER
- alias NAME
- alias NUMBER
- alias NAME if NUMBER
- alias NUMBER if NAME
- alias LINE INDICATOR
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 and when.
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 includes the following output modules:
- 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.
SIP Gateway:
The SIP gateway, sip2ncid, obtains the VOIP Caller ID from
SIP Invite. It formats the information and sends it to the server as
a CID message. It also sends a CIDINFO message when it sees a CANCEL or BYE
packet, and, on some systems, when it sees a outgoing call.
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.
YAC Gateway:
The YAC gateway listens for CID information from a YAC server. It formats the
information and sends it to the NCID server as a CID message.
Configuration Files:
The server, client, and support scripts have configuration files that set
most options:
- ncidd.conf: server configuration file
- ncidd.alias: server alais file
- ncid.conf: client configuration file
- ncidmodules.conf: client output module configuration file, it also
configures ncid init or rc scripts.
- ncidrotate.conf: ncidrotate configuration file
- ncidsip.conf: init or rc configuration file for ncidsip
- sip2ncid.conf: sip2ncid configuration file
- yac2ncid.conf: yac2ncid configuration file
Log Files:
Server log files:
- ncidd.log: server log
- cidcall.log: server call log
- ciddata.log: device or gateway input log (optional)
Gateway log file:
- 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.
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.
Client Software
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.
Documents
Links
Project Page
Released Files
Client
NCID client GUI, showing the history window,
send message window, and last call.
Client Output Module
Message sent by ncid using the ncid-page output module.
Message received by a Treo 650.
Selecting the phone number will call it.