CTI - Computer telephony integration

Introduction

Glossary

FXO

Foreign Exchange Office

FXS

Foreign Exchange Station

IVR

Interactive Voice Response

CallerID

To use CallerID in a SOHO environment, you don't actually need to get one of those expensive telephony cards. Most modems today handle callerID, which is actually a few lines of text sent during the RING sequence by your telco.

CallerID is usually enabled by first reinitializing the modem with "atz" followed by "at#cid=1", but you'll have to run your favorite terminal application to double-check (How to Test a MODEM for Caller ID Support; Short story: Open HyperTerminal on the COM port used by the modem, eg. COM3, activate the CallerID mode using eg. "atz", and "at#cid=1" or whatever command your modem uses to activate CallerID mode, and call the modem from another phone: If your telco activated CallerID for this line, you should see the relevant information displayed between RINGs).

Important: Some modems based on Conexant chipsets (eg. HSFi CX11252-11) claim to support caller ID (at+vcid=1 says OK), but don't actually support this feature, and hence, do no report anything between the first two RINGs.

The modem doesn't actually pick up the call; It just returns the callerID info to the application that opened the port and is listening on it. I tried a bunch of them, and I can recommend Identify! which is small and does the job (besides, there's the free add-on NetCID which lets you display Caller ID on other hosts on your LAN.) In the same price range, a user recommended Identafone.

If the application doesn't pick up callerID, the INF file(s) provided by your modem manufacturer might be missing or have wrong callerID information. Use the logging feature in the Modem section of Windows' Control Panel to see if this is the cause. More infos on how to correct faulty INFs here.

If this case, open the INF file that contains the information that the modem will write into the Registry (if the modem is installed through an EXE, go into $WINDIR\INF\, and check all the OEMx.INF files for the one that was installed by the modem installer), and check that it contains answer strings that match the stuff returned by your telco. Here are standard strings that the INF must provide so that TAPI can work with CallerID:

;Check your modem's manual for the CID command; Could be different
HKR, EnableCallerID,                    1,, "at#cid=1<cr>"
 
HKR, Responses, "<cr><lf>DATE = ", 1, 93, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "<cr><lf>TIME = ", 1, 94, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "<cr><lf>NMBR = ", 1, 95, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "<cr><lf>NAME = ", 1, 96, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "<cr><lf>MESG = ", 1, 97, 00, 00,00,00,00, 00,00,00,00

INF files often miss the <cr><lf> in front of each message, making the modem unable to interpret those CallerID messages. If the modem is already installed, search the Registry for the Responses section of your modem, and add/correct the missing/incorrect lines above; You might need to reboot for changes to be taken into account (disabling/enabling the Modem might not be enough.) To investigate, you can check the modem log file through its icon in Control Panel.

Here's what the CID info looks like (might be country-dependent, though):

RING
 
DATE = 0623
TIME = 2111
NMBR = (617) 555-1234
NAME = Doe John
MESG = 16010A
 
RING

FYI, the caller's name is limited to something like twenty characters. Some callerID applets let you build a database, so you can customize the caller's name and rename it differently.

As an alternative to telephony cards and modems, you can buy a stand-alone box like the Whozz Calling 2 two-line call tracker ($249) or the Panasonic TA-308 with CID and a display phone ($500.) Voilà :-)

List of caller ID apps

Long story made short: If you need to monitor more than one modem on a single host, and send notifications to hosts on the same LAN as well as hosts located on other networks (be they internal, or accross the Net), the only apps that do this are ThePhoneBot (apparently no longer under development as of 2005) and Ascendis Caller ID.

Application

Supports major European languages

Supports multiple modems in same host

Supports broadcast/remote notification

Notes

ThePhoneBOT

 

Yes

Yes/Yes

Seems to be deadware since 2005; $40; Install a Windows service that listens on TCP 8188, and the PhoneBot app itself listens on TCP 33949; With the free version...

  • only one custom ring and custom greeting
  • maximum message record length is 20s
  • messages can only be viewed but not downloaded over the Internet
  • a phone entry cannot be customized

Ascendis Caller ID

 

Yes, but caller id doesn't always work with two winmodems

Yes/Yes

"Ascendis Caller ID will work in this configuration if you can open the correct port(s) on the router on the server side.  Ascendis Caller ID uses one or two ports for network communication (by default, 62965 and/or 62966) depending on the type of network connection.

Please note that Ascendis Caller ID is licensed per phone line monitored, so to monitor two phone lines you must purchase two copies" $35

Call Soft

 

Yes (run multiple instances)

Yes/Yes (through Yac)

Found the interface too complicated; to get CID at remote locations use Yac method (go to the Ring tab in the main setup. At the bottom check the option "Notify users via Yac". Click the setup button, check the option to communicate directly with Yac, and enter the IP address of each PC you want to send CID to.)

Pro version (required for LAN notification) $50

Whos Calling

 

"Works with up to 4 telephone lines"

?/?

Doesn't seem to support LAN/WAN notifications

CallAudit Server 6.0

 

Yes ("support for two telephone lines")

?/?

Looks old. 16-bit app?

IdentaFone Pro

 

No

Yes (NetBIOS)/No

by default at least, interprets numbers the US way (eg. 06.74.54.x is shown as (067) 454-x

Seems to use Windows' Messenger service to notify hosts on LAN ("Free network add-on NetPop that pops on networked computers whenever IdentaFone broadcasts a received call. Must have "Client For Microsoft Networks" installed as a network protocol.")

YAC

 

No

Yes/?

Yet Another Caller ID Program; One of the YAC listeners is MCE-YAC (for Windows Media Center)

32-bit version last updated 2002; 64-bit updated 2005

Modem Spy

 

?

Yes/No

Doesn't seem to support LAN/WAN notifications

Caller ID for Windows XP

 

?

Yes/No

Last updated May 2005

 

 

 

 

 

CallClerk Caller ID Software

 

No

Yes/No

 

Picture Caller ID 2.01

 

?

?/?

 

Identify

 

No

Yes/No

Great app. Too bad it only handles one modem

Call Trace

 

Yes

No/No

Latest news dated Sept 2003

CIDPad and CIDMage

 

 

 

Apps to generate CID for testing or spoofing purposes

Audio Caller ID

 

Yes

No/No

 

CallerID Monitor 2.0

 

?

?/?

 

WhoCalls

 

No

No/No

 

PhoneTrayFree

 

Yes

No/No

 

AccuBell Talking Caller ID

 

?

?/?

 

Simply CallerID

 

No

No/No

What's in a name?

eCaller ID

 

?

?/?

 

Caller ID Events

 

?

?/?

 

Call Alert!

 

?

?/?

 

Network Caller ID

 

?

Yes/?

Server is Linux-based; Windows is only available for the client part; Clients are in TclTk

CallerID Sentry

 

?

?/?

Latest news dated 23 May 2001

ACID 2.3

 

?

Yes/?

Compatible with CallerID Sentry; "Caller ID application developed specifically for the 3Com Audrey internet appliance"

AnalogX CallerID

 

?

?/?

seems to support multiple modems; numbers formated US style

EzVoice

 

Should be added soon

No/No

Only supports e-mail notification

Summit Caller ID Tracker

 

Yes, but only works with Whozz Calling hardware

Yes/No

 

Caller ID ActiveX Control

 

?

?/?

To build applications

VTapi ActiveX

 

?

?/?

To develop telephony apps

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Tips on Identify

As of June 2004, this is the only application that I could get to work with the CallerID info returned by France Telecom.

Through Configure > E-mail, Identify 4.2.0 will only send an e-mail to a single recipient. If you want more than one e-mail address to receive a message when a call comes in, and instead of setting up an SMTP server just for this purpose, an alternative is to use the General > Call alert... option, where you can have Identify run a program when someone calls in:

  1. Check "Run this program"
  2. Set "Executable file" to eg. C:\Program Files\IDentify!\warn.bat
  3. Parameters = $N $P $D $T
  4. If you expect spaces to be found in any of the four fields above, check "Changed spaces in variables to %20"
  5. Select "Run program as soon as Caller ID is received"
  6. Finally, create the warn.bat batch file into the Identify directory. It uses the command-line utility blat.exe to connect to an SMTP server and send a message to multiple recipients:

    @echo off
    :::::::::::::: Input vars :::::::::::::::::::::::::::
    ::%1 = Name
    ::%2 = Phone
    ::%3 = Date
    ::%4 = Time

    :::::::::::::: Create e-mail body :::::::::::::::::::::::::::
    echo Caller = %1 > temp-email.txt
    echo Number = %2 >> temp-email.txt
    echo Date = %3 >> temp-email.txt
    echo Time = %4 >> temp-email.txt

    :::::::::::::: Lets set some variables ::::::::::::::
    :: Important! In the From field, make sure the domain name actually exists on the Net
    set eFrom=identify@acme.com
    set eMail1=john@site1.com
    set eMail2=jane@site2.com

    set subj=-s "Call from %1"
    set server=-server smtp.acme.com

    ::::::::::::::::: Now we run Blat!  :::::::::::::::::
    blat temp-email.txt -to %eMail1%,%eMail2% -f %eFrom% %subj% %server%

Resources

Cards

Software

Caller ID Displayers

Other Softwares

Information