More Information
- Re: Help needed for Zoom 15400
- About Linuxant
- DGC driver license agreement and download
- Advanced Call Center 7.0
First published: 15th December 2010
Traditional, fixed-line phones, modems and answering machines are fading into history, but they still have some advantages, they are cheap, and do not loose signal or run out of batteries. I had a working voice mail system using vgetty and an old Hayes Accura 336, and I needed to set up another line I even had a similar modem not doing anything. How hard could it be?
The problems I encountered were varied, but insufficient documentation was important. When it didn't work, I could find from the logfile (/var/log/vgetty.ttyxx.log) that vgetty and the modem were speaking different languages, so all I needed to do was check the type of my modem, and lookup what configuration options were required. The problem is, I couldn't find a reference that would tell me that. Now that I have usable information for two modems, I'm putting here.
Based on Debian GNU/Linux 5.0, with packages mgetty, mgetty-docs, mgetty-pvftools, and mgetty-voice.
These parameters in the vgetty configuration file (/etc/mgetty/voice.conf) need to be correct for the modem:
The table below only lists these, the other parameters are as default, or your needs.
To play a message, the sound file must be in the correct format, the command pvftormd -L lists all the available formats. The table shows the successful command for converting from a wav.
Modem Name | Model Number | voice.conf | Creating a message file |
---|---|---|---|
Hayes Accura 336 | 5312HK Version 6.20 | forceV253 FALSE | wavtopvf Hello.wav | pvfspeed -s 7200 | pvftormd Rockwell 4 > Hello.rmd |
Hayes Accura 288 | 5312HK Version 6.00 | unknown | unknown |
Connexant USB 2.0 56K | USB ID: 0572:1329 | forceV253 FALSE | wavtopvf Hello.wav | pvfspeed -s 8000 | pvftormd V253modem 9 > Hello.rmd |
This works with the default voice.conf settings. This page provided a useful reference for converting the voice file.
The log file shows vgetty identifying the modem:
11/11 22:21:55 yS0 lowering DTR to reset Modem 11/11 22:21:56 yS0 send: \dATQ0V1H0[0d] 11/11 22:21:56 yS0 waiting for ``OK'' ** found ** 11/11 22:21:56 yS0 send: AT[0d] 11/11 22:21:56 yS0 waiting for ``OK'' ** found ** 11/11 22:21:56 yS0 mdm_send: 'ATI' 11/11 22:21:56 yS0 Generic Rockwell modem (33600) 11/11 22:21:57 yS0 mdm_send: 'ATI3' 11/11 22:21:57 yS0 mdm_send: 'ATI4' 11/11 22:21:57 yS0 additional info: 'a125040F084A770EF0C0' 11/11 22:21:57 yS0 modem quirks: 0004 11/11 22:21:57 yS0 mdm_send: 'AT+FCLASS=2' -> OK 11/11 22:21:57 yS0 mdm_send: 'AT+FCLASS=0' -> OK 11/11 22:21:57 yS0 mdm_send: 'AT+FAA=1;+FCR=1' -> OK 11/11 22:21:57 yS0 mdm_send: 'AT+FBOR=0' -> OK 11/11 22:21:57 yS0 mdm_send: 'AT+FLID=""' -> OK 11/11 22:21:57 yS0 mdm_send: 'AT+FDCC=1,5,0,2,0,0,0,0' -> OK 11/11 22:21:57 yS0 detecting voice modem type 11/11 22:21:59 yS0 Rockwell detected 11/11 22:21:59 yS0 initializing ROCKWELL voice modem 11/11 22:22:01 yS0 waiting...
It says it is a voice modem, but I have not discovered the vgetty settings to make it work. The log file shows vgetty identifying the modem, but failing to find voice modem capabilities:
11/11 22:15:38 yS0 lowering DTR to reset Modem 11/11 22:15:39 yS0 send: \dATQ0V1H0[0d] 11/11 22:15:39 yS0 waiting for ``OK'' ** found ** 11/11 22:15:39 yS0 send: AT[0d] 11/11 22:15:39 yS0 waiting for ``OK'' ** found ** 11/11 22:15:39 yS0 mdm_send: 'ATI' 11/11 22:15:39 yS0 Generic Rockwell modem (28800) 11/11 22:15:39 yS0 mdm_send: 'ATI3' 11/11 22:15:39 yS0 Could be a Hayes Optima/Accura modem 11/11 22:15:39 yS0 mdm_send: 'ATI7' 11/11 22:15:40 yS0 additional info: 'Copyright 1995 Hayes Microcomputer Products, Inc.' 11/11 22:15:40 yS0 modem quirks: 0005 11/11 22:15:40 yS0 mdm_send: 'AT+FCLASS=2' -> OK 11/11 22:15:40 yS0 mdm_send: 'AT+FAA=1;+FCR=1' -> OK 11/11 22:15:40 yS0 mdm_send: 'AT+FBOR=0' -> OK 11/11 22:15:40 yS0 mdm_send: 'AT+FLID=""' -> OK 11/11 22:15:40 yS0 mdm_send: 'AT+FDCC=1,5,0,2,0,0,0,0' -> OK 11/11 22:15:40 yS0 detecting voice modem type 11/11 22:15:53 yS0 vgetty: timeout while reading character from voice modem 11/11 22:15:53 yS0 modem detection failed
Any clues how to get this modem working with vgetty would be appreciated.
Connexant modems are widely available and cheap, in fact, they appear to be the only consumer-grade modem still available. Unfortunately, they are a software modem, meaning most of the work is done by the computer's CPU, and the modem is just a bare minimum of hardware. The disadvantages of this are that the CPU is more heavily loaded (perhaps not an issue with today's powerful processors), and you must have driver software for the operating system. Driver software is usually available for Windows, use with Linux is less certain.
In the package for this modem, there was a driver disc which had a Linux driver. I couldn't get the driver package to install, so I contacted the driver's developers, Linuxant, who provided two important pieces of information:
After the kernel headers installation, the driver installation script installed the DCG driver successfully, and the modem appeared as device ttyACM0. However, there was still a question of whether voice was supported, Linuxant advised, "the voice feature of our drivers is only limited to some HCF modems. You should try under Windows to see if the voice feature is supported for that modem". To test the voice capabilities, I attached the modem to a Windows machine and installed Advanced Call Center 7.0, the modem worked, playing and recording sound, so all that remained was to identify the correct voice.conf and sound file format to use with vgetty, as described above.
Like traditional modems, traditional serial ports are becoming rare, so for some tests, the Accura modems were connected via a USB to Serial converter. Two serial converters were tried.
The first converter was a cable with a USB plug at one end, and a 9-pin D-type connector at the other. When plugged in, the Linux log files identified that it was a "USB-Serial Controller", manufacturer "Prolific Technology Inc.", and installed the module pl2303: "Prolific PL2303 USB to serial adaptor driver" and device ttyUSB0 appeared. However, there was no response from the modem.
The first converter was returned as faulty. The replacement was a smaller device, with a USB socket at one end, a 9-pin D-type connector at the other, and a separate USB cable. It was also detected as exactly the same device, "USB-Serial Controller", manufacturer "Prolific Technology Inc.", and installed the module pl2303: "Prolific PL2303 USB to serial adaptor driver" and device ttyUSB0 appeared. It worked.
The first converter might just have been a manufacturing reject, or perhaps there was a design fault. It all adds to the frustration.
Updated: 04th May 2011
The Connexant USB 2.0 56K failed (phone always off-hook when the power is on) after about 6 months. As this is consumer-grade equipment, it might not have been robust enough for 24x7 usage.