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

Amnesty International - Help us cast the light on huma rights violations around the world
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
Functional VOCP System

A single executable program and a number of Perl modules comprise the core of the VOCP system. VOCP handles incoming calls, processing user input and allowing callers to navigate the system where they may leave and retrieve voice mail messages, email messages, pager numbers and faxes or run programs on the host and hear their output.

This section will help you install and configure all aspects of the core VOCP system, including Caller ID setup and using Text-To-Speech.

Overview Install Configure Upgrade Boxes Command Shell Caller ID TTS
VOCP:Caller ID
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.

Q Voice Messages are being cut short, what can I do?
A There are a few parameters in vgetty's voice.conf that y ...

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.