Back Home
Voice mail
Web interface
Caller ID
Command shells
Click Here to swich to the COMPONENTS menu

Join the official vocp-users mailing list! Logo

Back Home Click here if you require assistance to install VOCPsystem or if you want us to develop something special to fit your needs. Take a look at some screenshots! Frequently Asked Questions... Download the latest VOCPsystem version! About VOCPsystem and psychogenic
VOCP and Caller ID

Caller ID information can be used to direct incoming calls to particular nodes within the VOCP system based on the call's point of origin. You can use the Call Center to view incoming call number information as they arrive. CID information is preserved when voice mail messages are saved.

Configure CallCenter Filtering Calls
Click here to see a screenshot/demo Download VOCPsystem Access this topic's printable version Contact our team
See all screens


You can use Caller ID features to view the origin of incoming calls or filter calls based on the CID information.

To use VOCP caller-id filtering, you need a few things besides the default VOCP installation. These are:

  • Caller ID service from the telco (you need to pay to play)
  • A modem which recognizes CID information
  • A customized cid-filter.conf file

If you have the first two, you're probably already in business but it is possible you might need to set up a special init string with m/vgetty.

Assuming you have setup caller id with your phone company and have gotten vgetty/VOCP working, you can check the /var/log/vgetty.ttySX log file to see if caller id is being reported by your modem. Try

grep CALLER /var/log/vgetty.ttySX

replacing ttySX with the appropriate ttyS[0123] for your setup. If you can see phone numbers after CALLER_ID=, you're all set - else see the Modem's Configuration section below.

Modem's Configuration

Does your modem support caller id? We can find out if the chipset that it uses does support CND by following these instructions (assuming your modem is on /dev/ttyS1 - change to appropriate ttySX). Please note that, even if the chipset used by your modem does understand caller id, it is possible that your modem will not report the information. This is due to the fact that, in order to intercept the CID info that is sent by the telco between the 1st and 2nd ring bursts (in North America, may be sent at different times elsewhere) your modem must listen in without actually taking the phone off hook - this requires a bit of special hardware which many manufacturers omit in order to save a dollar or two.

Already supported

Start by making sure we're logging at a high level by editing the vgetty voice.conf file and setting voice_log_level to 4 or 5 (remember to change this back later or the log file will become huge).

As root, empty the log file:

# echo "" > /var/log/vgetty.ttyS1

Now, restart vgetty. Either:

  • find and kill the process manually, or
  • run :
  • # ps waux | grep /[v]getty | awk '{print $2}' | xargs kill

Have a friend call your VOCP-enabled line. After the call has picked up, do a

$ grep CALLER_ID /var/log/vgetty.ttyS1

If you see the caller's number, all is well and you can skip the rest of this section.

Could not connect to db on mysql4-v Could not connect to db on mysql4-v Could not connect to db on mysql4-v No faqs found!

No CID info in log

If you're still reading this, it's because you're modem didn't show the CID info. There are two possibilies:

  • Your modem doesn't support CID
  • Your modem wasn't initialized correctly

There isn't much you can do in the first case, except get another modem.

In the second case, get your modem manufacturer's documentation and look for anything related to CID, "caller id" or CND. You are searching for the AT command that will enable CID. Chances are that it will be something like AT#CID, AT+VCID or something similar. Be sure to take a look at the modem troubleshooting section for more info about interacting with your modem and querying for capabilities.

If you don't have the modem docs, you can still do a little detective work to find the appropriate init string. Start with

You can also use minicom to see if you can guess the correct code (see the modem page for a look a troubleshooting your modem). As root, start minicom:

# minicom -s

Go down to "serial port setup", hit . Press A to modify the device, change it to your modem's port (eg /dev/ttyS1) press twice. Go down to "Exit" (not "Exit from Minicom"), press .

You are now talking to your modem. Enter:

AT#CID=? (U.S.Robotics, Texas Instruments, Rockwell compatible modems)
AT+VCID=? (IS-101 modems, Lucent LT, MultiTech, IDC, Cirrus Logic...)
AT#CC1 (Aspen modems, Cirrus Logic, Motorola Voice Surfer, Phoebe)
AT*ID1 (Motorola)
AT%CCID=1 (Practical Peripherals)
ATS42.2=1 (ZyXEL)
AT#CLS=8#CID=1   (?)

Ignore the ERROR responses. If you get an OK or a response like:




You've have found the AT command to enable caller id! Assuming AT+VCID is the command that worked, you can do:


To see the current setting.


Should respond with OK.


Should also say ok. 0 is normally CID OFF, 1 is normally formatted caller report and 2 is unformatted caller report.

You should now try it out manually. Stop m/vgetty, start minicom and issue the appropriate AT command to enable caller id. Await a call. When the phone rings you will see something like:




If caller id is enables and working, you should have some extra stuff show up between the 1st and 2nd rings.

Once you have determined the AT command to use to enable your modem's caller id feature and know that it works, add a post initialization for your modem in mgetty's mgetty.config file. Here is what mine looks like:

port ttyS1
post-init-chat "" AT#CID=1 OK

Of course, you should set the command that your modem uses if it is something other the #CID (eg AT+VCID=1).

You should be done now... kill vgetty:

# ps waux | grep /[v]getty | awk '{print $2}' | xargs kill

and take a look at the output in /var/log/vgetty.ttyS1. You should see something like:

12/18 01:35:31 yS1  send: \d\d\d+++\d\d\dAT S7=45 S0=0 L1 V1 X4 &c1 E1 Q0[0d]
12/18 01:35:34 yS1  waiting for ``OK''
12/18 01:35:34 yS1   got: [0d][0a]OK ** found **
12/18 01:35:34 yS1  send: AT#CID=1[0d]
12/18 01:35:34 yS1  waiting for ``OK''
12/18 01:35:34 yS1   got: [0d][0a]AT#CID=1[0d][0d][0a]OK ** found **

Looks good. Bug someone else so they'll call you up and see if CID info is found in the log.

When done, don't forget to tone down the logging by resetting voice_log_level in voice.conf.


VOICE MAIL Phone - VOCPweb - xVOCP | WEB INTERFACE Overview | CALLER ID Configure - Call Center - Filter | TEXT-TO-SPEECH Configure - Email to voice mail - Program Output | FAXING Configure - Receive - Send - Dynamic | COMMAND SHELLS Overview | INSTALL Modems - vGETTY - VOCP | CONFIGURE vGETTY - VOCP - Boxes - Other | UPGRADE Overview

vGETTY Install - Test - Configure - Modems | VOCP Overview - Install - Configure - Upgrade - Boxes - Caller ID - Text-to-Speech - Command Shells - Coming Soon | xVOCP Configure - Use | VOCPhax Send - Receive | VOCPweb Install - Configure - Use | CALL CENTER Use - Caller ID | BOX CONFIGURATION Use - Test - Types


© 2000-2003 Psychogenic inc. All rights reserved.