Solved

HylaFAX with U.S. Robotics 56K FAX USB Modem

Posted on 2009-04-14
5
10,761 Views
Last Modified: 2013-12-21
See also: http://www.experts-exchange.com/OS/Linux/Q_23690292.html

I am having the exact same problem with the exact same results, except I have a bank of 4 modems plugged in to my server that respond fine from minicom but not with HylaFAX.  I have tried creating a configuration file for the modems per the instructions (which I attached to this question as a "code snippet").  Sadly, faxaddmodem does not seem to be using this file (as indicated by the line "Using prototype configuration file usr-xon...").  I have included the entire command history from my faxaddmodem command, as well as the responses from ATI0 through ATI11.  You can find some other related links in the E-E article above.  Another note, to make debugging easier I created a symbolic link from /dev/modem -> /dev/ttyACM0.  This makes using minicom easier.

[root@server config]# faxaddmodem
Serial port that modem is connected to []? ttyACM0

Ok, time to setup a configuration file for the modem.  The manual
page config(5F) may be useful during this process.  Also be aware
that at any time you can safely interrupt this procedure.

Reading scheduler config file /var/spool/hylafax/etc/config.

No existing configuration, let's do this from scratch.

Country code [1]?
Area code [239]?
Phone number of fax modem [+1.999.555.1212]? +0.000.000.0000
Local identification string (for TSI/CIG) ["NothingSetup"]? MCVsoft Fax Service
Long distance dialing prefix [1]?
International dialing prefix [011]?
Dial string rules file (relative to /var/spool/hylafax) [etc/dialrules]?
Tracing during normal server operation [1]?
Tracing during send and receive sessions [0xFFF]?
Protection mode for received facsimile [0600]? 0644
Protection mode for session logs [0600]? 0644
Protection mode for ttyACM0 [0600]?
Rings to wait before answering [1]?
Modem speaker volume [off]? high
Command line arguments to getty program ["-h %l dx_%s"]?
Pathname of TSI access control list file (relative to /var/spool/hylafax) [""]?
Tag line font file (relative to /var/spool/hylafax) [etc/lutRS18.pcf]?
Tag line format string ["From %%l|%c|Page %%P of %%T"]?
Time before purging a stale UUCP lock file (secs) [30]?
Hold UUCP lockfile during inbound data calls [Yes]?
Hold UUCP lockfile during inbound voice calls [Yes]?
Percent good lines to accept during copy quality checking [95]?
Max consecutive bad lines to accept during copy quality checking [5]?
Max number of pages to accept in a received facsimile [25]? 250
Syslog facility name for ServerTracing messages [daemon]?
Set UID to 0 to manipulate CLOCAL [""]?
Use available priority job scheduling mechanism [""]?

Your facsimile phone number (+0.000.000.0000) does not agree with your
country code (1) or area code (239).  The number
should be a fully qualified international dialing number of the form:

    +1 239 <local phone number>

Spaces, hyphens, and periods can be included for legibility.  For example,

    +1.239.555.1212

is a possible phone number (using your country and area codes).

The non-default server configuration parameters are:

CountryCode:            1
AreaCode:               239
FAXNumber:              +0.000.000.0000
LongDistancePrefix:     1
InternationalPrefix:    011
DialStringRules:        etc/dialrules
RecvFileMode:           0644
LogFileMode:            0644
RingsBeforeAnswer:      1
SpeakerVolume:          high
GettyArgs:              "-h %l dx_%s"
LocalIdentifier:        MCVsoft Fax Service
TagLineFont:            etc/lutRS18.pcf
TagLineFormat:          "From %%l|%c|Page %%P of %%T"
MaxRecvPages:           250

Are these ok [yes]?

Now we are going to probe the tty port to figure out the type
of modem that is attached.  This takes a few seconds, so be patient.
Note that if you do not have the modem cabled to the port, or the
modem is turned off, this may hang (just go and cable up the modem
or turn it on, or whatever).

Probing for best speed to talk to modem: 38400 OK.

About fax classes:

The difference between fax classes has to do with how HylaFAX interacts
with the modem and the fax protocol features that are used when sending
or receiving faxes.  One class isn't inherently better than another;
however, one probably will suit a user's needs better than others.

Class 1 relies on HylaFAX to perform the bulk of the fax protocol.
Class 2 relies on the modem to perform the bulk of the fax protocol.
Class 2.0 is similar to Class 2 but may include more features.
Class 1.0 is similar to Class 1 but may add V.34-fax capability.
Class 2.1 is similar to Class 2.0 but adds V.34-fax capability.

HylaFAX generally will have more features when using Class 1/1.0 than
when using most modems' Class 2 or Class 2.0 implementations.  Generally
any problems encountered in Class 1/1.0 can be resolved by modifications
to HylaFAX, but usually any problems encountered in Class 2/2.0/2.1 will
require the modem manufacturer to resolve it.

Use Class 1 unless you have a good reason not to.

Hmm, this looks like a Class 1 modem.
Product code (ATI0) is "5601".
Other information (ATI3) is "U.S. Robotics 56K FAX USB V1.1.0".
DTE-DCE flow control scheme [default]?
Modem manufacturer is "3Com U. S. Robotics".
Modem model is "3CP5610".

Using prototype configuration file usr-xon...

The modem configuration parameters are:

ModemAnswerCmd:         AT+FCLASS=1A
ModemFlowControl:       xonxoff
ModemHardFlowCmd:       AT&H1&I0&R2
ModemMfrQueryCmd:       !USR
ModemModelQueryCmd:     ATI3
ModemNoFlowCmd:         AT&H0&I0&R1
ModemRate:              19200
ModemResultCodesCmd:    ATQ0X4
ModemRevQueryCmd:       ATI7
ModemSetupAACmd:        AT+FCLASS=0
ModemSetupDCDCmd:       AT&C1
ModemSetupDTRCmd:       ATS13=1&D2
ModemSoftFlowCmd:       AT&H2&I2&R1
Class1NFLOCmd:          AT&H0&I0&R1
Class1HFLOCmd:          AT&H1&I0&R2
Class1SFLOCmd:          ""
Class1SwitchingCmd:     "<delay\0727>"

Are these ok [yes]?

Creating new configuration file /var/spool/hylafax/etc/config.ttyACM0...
Done setting up the modem configuration.

Checking /var/spool/hylafax/etc/config for consistency...
...everything looks ok; leaving existing file unchanged.

Don't forget to run faxmodem(8C) (if you have a send-only environment)
or configure init to run faxgetty on ttyACM0.

[root@server ~]# minicom
minicom: WARNING: configuration file not found, using defaults

Welcome to minicom 2.1

OPTIONS: History Buffer, F-key Macros, Search History Buffer, I18n
Compiled on Jan  7 2007, 01:16:05.

Press CTRL-A Z for help on special keys

AT S7=45 S0=0 L1 V1 X4 &c1 E1 Q0
OK
ATI0
5601

OK
ATI1
E7C4

OK
ATI2
OK
ATI3
U.S. Robotics 56K FAX USB V1.1.0

OK
ATI4

 ----Option----- --Setting-- Cmd  ----Option----- --Setting-- --Cmd--
 Comm Standard   CCITT       B0   Answer Ring#    0            S0=000
 Command Echo    Enabled     E1   Escape Char     43           S2=043
 Speaker Volume  Low         L1   CR Char         13           S3=013
 Speaker Control OnUntilCD   M1   LF Char         10           S4=010
 Result Codes    Enabled     Q0   BS Char         8            S5=008
 Dialer Type     Tone        T/P  Dial Pause      3 sec        S6=003
 Result Form     Text        V1   NoAns Timeout   45 sec       S7=045
 Extend Result   Enabled     X4   "," Pause       2 sec        S8=002
 DialTone Detect Enabled     X4   No CD Disc      2000 msec   S10=020
 BusyTone Detect Enabled     X4   DTMF Speed      95 msec     S11=095
 DCD Action      Std RS232   &C1  Esc GuardTime   1000 msec   S12=050
 DTR Action      Std RS232   &D2  Calling Tone    Enabled     S35=001
 V22b Guard Tone Disabled    &G0  Line Rate       33600       S37=000
 Flow Control    Hardware    &H1
 Error Control   V42,MNP,Bfr &M4
 Compression     44 42b MNP5 &K1

OK
ATI5

 ----Option----- --Setting-- Cmd  ----Option----- --Setting-- --Cmd--
 Comm Standard   CCITT       B0   Answer Ring#    0            S0=000
 Command Echo    Enabled     E1   Escape Char     43           S2=043
 Speaker Volume  Medium      L2   CR Char         13           S3=013
 Speaker Control OnUntilCD   M1   LF Char         10           S4=010
 Result Codes    Enabled     Q0   BS Char         8            S5=008
 Dialer Type     Tone        T/P  Dial Pause      3 sec        S6=003
 Result Form     Text        V1   NoAns Timeout   60 sec       S7=060
 Extend Result   Enabled     X4   "," Pause       2 sec        S8=002
 DialTone Detect Enabled     X4   No CD Disc      2000 msec   S10=020
 BusyTone Detect Enabled     X4   DTMF Speed      95 msec     S11=095
 DCD Action      Std RS232   &C1  Esc GuardTime   1000 msec   S12=050
 DTR Action      Std RS232   &D2  Calling Tone    Enabled     S35=001
 V22b Guard Tone Disabled    &G0  Line Rate       33600       S37=000
 Flow Control    Hardware    &H1  &Z0=
 Error Control   V42,MNP,Bfr &M4  &Z1=
 Compression     44 42b MNP5 &K1  &Z2=

OK
ATI6

 U.S. Robotics 56K FAX USB Link Diagnostics...


 Blocks Sent                         NA
 Blocks Resent                       NA
 Blocks Received                     NA
 Blers                               NA
 Retrains Requested                  NA
 Retrains Granted                    NA
 Data Compression                    NA
 Protocol                            NA
 Initial Transmit Speed              NA
 Initial Receive  Speed              NA
 Final   Transmit Speed              NA
 Final   Receive  Speed              NA
 Last Call                (hh:mm:ss) 00:00:00
 Disconnect Reason                   0

OK
ATI7
Configuration Profile...

Product Type           US/Canada USB
Product ID:            USR5637
Options                V32bis,V.80,V.34+,V.90,V.92
Error Correction       MNP,V.42
Data Compression       MNP5,V.42bis,V.44
Fax Options            Class 1
Line Options           Caller ID

Flash Date             01/30/2008
Flash Rev              1.1.0

OK
ATI8
OK
ATI9
(01.00HSM0A00\\MODEM \PNP0303\U.S.Robotics V.92 USB Modem23)

OK
ATI10
ERROR
ATI11

 U.S. Robotics 56K FAX USB Extended Link Diagnostics...

 Modulation                          Failure
 Receive Level                (-dBm) NA
 Transmit Level               (-dBm) NA
 Near Echo Loss               (-dBm) NA
 Far  Echo Loss               (-dBm) NA
 Round Trip Delay             (msec) NA
 SNR                                 NA
 Speed Shifts Requested              NA
 Speed Shifts Granted                NA
 RBS Pattern                         NA
 Digital Pad Loss               (dB) NA

OK


# $Id: usr-56k-fax-usb,v 1.0 2009/04/14 17:04:32 elindsey Exp $

#

# HylaFAX Facsimile Software

#

# Copyright (c) 1990-1996 Sam Leffler

# Copyright (c) 1991-1996 Silicon Graphics, Inc.

# HylaFAX is a trademark of Silicon Graphics, Inc.

#

# Permission to use, copy, modify, distribute, and sell this software and

# its documentation for any purpose is hereby granted without fee, provided

# that (i) the above copyright notices and this permission notice appear in

# all copies of the software and related documentation, and (ii) the names of

# Sam Leffler and Silicon Graphics may not be used in any advertising or

# publicity relating to the software without the specific, prior written

# permission of Sam Leffler and Silicon Graphics.

#

# THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,

# EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY

# WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

#

# IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR

# ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,

# OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,

# WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF

# LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE

# OF THIS SOFTWARE.

#
 

# CONFIG:CLASS1:"5601":"U.S. Robotics 56K FAX USB V1.1.0":RTSCTS: Manufacturer='U.S. Robotics' Model='56K USB Faxmodem'

#

# BEGIN-SERVER

# END-SERVER

#
 

ModemAnswerCmd:                 ATA     # string, command for answering phone

ModemAnswerDataBeginCmd:        ""      # string, command for start of answered data call

ModemAnswerDataCmd:             ATA     # string, command for answering data call

ModemAnswerFaxBeginCmd:         ""      # string, command for start of answered fax call

ModemAnswerFaxCmd:              ATA     # string, command for answering fax call

ModemAnswerResponseTimeout:     180000  # integer, answer command timeout (ms)

ModemAnswerVoiceBeginCmd:       ""      # string, command for start of answered voice call

ModemAnswerVoiceCmd:            ATA     # string, command for answering voice call

ModemATCmdDelay:                0       # integer, delay before sending modem an AT cmd (ms)

ModemBaudRateDelay:             0       # integer, delay (ms) after setting baud rate

ModemClassQueryCmd:             AT+FCLASS=?     # string, command for querying modem services

ModemCommaPauseTimeCmd:         ATS8=2  # string, command for setting time to pause for comma in dialing string

ModemDialCmd:                   ATDT%s  # string, command for dialing (%s for number to dial)

ModemDialResponseTimeout:       180000  # integer, dialing command timeout (ms)

ModemEchoOffCmd:                ATE0    # string, command for disabling command echo

ModemFlowControl:               None    # string, DTE-DCE flow control scheme

ModemFrameFillOrder:            LSB2MSB # string, bit order for HDLC frames

ModemHardFlowCmd:               ""      # string, command for setting hardware flow control between DTE and DCE

ModemMinSpeed:                  2400    # string, minimum acceptable transmit speed

ModemMfrQueryCmd:               ""      # string, command for querying modem manufacturer

ModemModelQueryCmd:             ""      # string, command for querying modem model

ModemNoAutoAnswerCmd:           ATS0=0  # string, command for disabling auto-answer

ModemNoFlowCmd:                 ""      # string, command for disabling hardware flow control between DTE and DCE

ModemOnHookCmd:                 ATH0    # string, command for placing phone ``on hook''

ModemPageDoneTimeout:           180000  # integer, page send/receive timeout (ms)

ModemPageStartTimeout:          180000  # integer, page send/receive timeout (ms)

ModemRate:                      19200   # integer, baud rate to use for DCE-DTE communication

ModemRecvFillOrder:             LSB2MSB # string, bit order for received facsimile data

ModemResetCmds:                 ""      # string, additional commands when resetting modem

ModemResetDelay:                2600    # integer, delay (ms) after sending modem reset commands

ModemResultCodesCmd:            ATQ0    # string, command for enabling result codes

ModemRevQueryCmd:               ""      # string, command for querying modem firmware revision

ModemSendBeginCmd:              ""      # string, command to send on establishing carrier

ModemSendFillOrder:             LSB2MSB # string, bit order for sending facsimile data

ModemSetVolumeCmd:              "ATM0 ATL0M1 ATL8C1 ATL2M1 ATL3M1"      # string, commands for setting modem speaker volume level

ModemSetupAACmd:                ""      # string, command for setting up adaptive answer

ModemSetupDCDCmd:               ""      # string, command for setting up DCD handling

ModemSetupDTRCmd:               ""      # string, command for setting up DTR handling

ModemSoftFlowCmd:               ""      # string, command for setting software flow control between DTE and DCE

ModemSoftResetCmd:              ATZ     # string, command for doing a soft reset

ModemType:                      Class1  # string, modem type

ModemVerboseResultsCmd:         ATV1    # string, command for enabling verbose result codes

ModemWaitForConnect:            No      # boolean, force server to wait for ``CONNECT'' response on answer

ModemWaitTimeCmd:               ATS7=60 # string, command for setting time to wait for carrier when dialing
 

Class1Cmd:                      AT+FCLASS=1     # string, command to enter class 1

Class1HFLOCmd:                  AT+FL0=2        # string, command to set hardware flow control

Class1FrameOverhead:            4       # integer, extra bytes in a received HDLC frame

Class1NFLOCmd:                  AT+FL0=0        # string, command to set no flow control

Class1RecvAbortOK:              100     # integer, max wait (ms) for ``OK'' after recv abort

Class1RecvIdentTimer:           35000   # integer, max wait (ms) for initial ident frame

Class1SFLOCmd:                  AT+FL0=1        # string, command to set software flow control

Class1TCFMaxNonZero:            10      # integer, max% of non-zero data in good TCF

Class1TCFMinRun:                1000    # integer, minimum zero run in good TCF

Class1TCFRecvTimeout:           4500    # integer, max wait (ms) for TCF

Class1TCFResponseDelay:         75      # integer, delay between TCF and ack/nak

Class1SendPPMDelay:             75      # integer, delay before sending post-page message

Class1SendTCFDelay:             75      # integer, delay between sending DCS and TCF

Class1TrainingRecovery:         1500    # integer, delay after failed training

Open in new window

0
Comment
Question by:eslindsey
  • 3
5 Comments
 
LVL 8

Accepted Solution

by:
LunarNRG earned 500 total points
ID: 24144402
The previous poster (of the related question) included a comment that you may not be able to see. I'll paste it below, perhaps you'll find it helpful.

henry007 wrote:
"""
I noticed that minicom was using "FLOWCONTROL" HARDWARE, and Class 1 faxmodems are software by hylafax, so I changed flow control and shaaazaaammm.
"""

You may notice in the data you provided that you also have a mismatch -- what the modem reports though minicom and what faxaddmodem detects regarding flow control.

In which case, you might find it helpful to change ModemFlowControl to rtscts in your config, as henry007 did I presume.
0
 

Author Comment

by:eslindsey
ID: 24160052
You're right, I was not able to see that comment.  So I altered my config file as you suggested, and deleted the config.ttyACM0 file that faxaddmodem created last time (forcing it to recreate from scratch), and when it prompted me I responded:
DTE-DCE flow control scheme [default]? RTSCTS

At which point it replied with:
Modem manufacturer is "3Com U. S. Robotics".
Modem model is "3CP5610".
Using prototype configuration file usr-rts...

So it seems that it still is not using the config file I created for it, and I can't figure out why.  I did finally get it using my config file by changing my #CONFIG line to match the one that came with the usr-rts file:
# CONFIG:CLASS1:"5601":"U.S. Robotics 56K FAX USB V1.1.0":RTSCTS: Manufacturer='U.S. Robotics' Model='56K USB Faxmodem'
changed to
# CONFIG:CLASS1:5601:.*:RTSCTS: Manufacturer=USRobotics Model="56K USB Faxmodem"

Then when I ran faxaddmodem, it said:
Using prototype configuration file usr-56k-fax-usb...
as expected.

And guess what?!  Now when I restarted hylafax service and it restarted faxgetty, I run faxstat and get:
Modem ttyACM0 (+0.000.000.0000): Running and idle

Bravo!  Now, I just need to figure out access controls and how to get hylafax to perform advanced routing based on original destination fax number... That's my next challenge.  But kudos for helping me get around this one!

For anyone that may find it useful, I have attached the final config file that I created that allows Hylafax to communicate with my U.S. Robotics 56k USB FAX Modem.
# $Id: usr-56k-fax-usb,v 1.0 2009/04/14 17:04:32 elindsey Exp $

#

# HylaFAX Facsimile Software

#

# Copyright (c) 1990-1996 Sam Leffler

# Copyright (c) 1991-1996 Silicon Graphics, Inc.

# HylaFAX is a trademark of Silicon Graphics, Inc.

#

# Permission to use, copy, modify, distribute, and sell this software and

# its documentation for any purpose is hereby granted without fee, provided

# that (i) the above copyright notices and this permission notice appear in

# all copies of the software and related documentation, and (ii) the names of

# Sam Leffler and Silicon Graphics may not be used in any advertising or

# publicity relating to the software without the specific, prior written

# permission of Sam Leffler and Silicon Graphics.

#

# THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,

# EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY

# WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

#

# IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR

# ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,

# OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,

# WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF

# LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE

# OF THIS SOFTWARE.

#
 

# CONFIG:CLASS1:5601:.*:RTSCTS: Manufacturer=USRobotics Model="56K USB Faxmodem"

#

# BEGIN-SERVER

# END-SERVER

#
 

ModemAnswerCmd:                 ATA     # string, command for answering phone

ModemAnswerDataBeginCmd:        ""      # string, command for start of answered data call

ModemAnswerDataCmd:             ATA     # string, command for answering data call

ModemAnswerFaxBeginCmd:         ""      # string, command for start of answered fax call

ModemAnswerFaxCmd:              ATA     # string, command for answering fax call

ModemAnswerResponseTimeout:     180000  # integer, answer command timeout (ms)

ModemAnswerVoiceBeginCmd:       ""      # string, command for start of answered voice call

ModemAnswerVoiceCmd:            ATA     # string, command for answering voice call

ModemATCmdDelay:                0       # integer, delay before sending modem an AT cmd (ms)

ModemBaudRateDelay:             0       # integer, delay (ms) after setting baud rate

ModemClassQueryCmd:             AT+FCLASS=?     # string, command for querying modem services

ModemCommaPauseTimeCmd:         ATS8=2  # string, command for setting time to pause for comma in dialing string

ModemDialCmd:                   ATDT%s  # string, command for dialing (%s for number to dial)

ModemDialResponseTimeout:       180000  # integer, dialing command timeout (ms)

ModemEchoOffCmd:                ATE0    # string, command for disabling command echo

ModemFlowControl:               RTSCTS  # string, DTE-DCE flow control scheme

ModemFrameFillOrder:            LSB2MSB # string, bit order for HDLC frames

ModemHardFlowCmd:               ""      # string, command for setting hardware flow control between DTE and DCE

ModemMinSpeed:                  2400    # string, minimum acceptable transmit speed

ModemMfrQueryCmd:               ""      # string, command for querying modem manufacturer

ModemModelQueryCmd:             ""      # string, command for querying modem model

ModemNoAutoAnswerCmd:           ATS0=0  # string, command for disabling auto-answer

ModemNoFlowCmd:                 ""      # string, command for disabling hardware flow control between DTE and DCE

ModemOnHookCmd:                 ATH0    # string, command for placing phone ``on hook''

ModemPageDoneTimeout:           180000  # integer, page send/receive timeout (ms)

ModemPageStartTimeout:          180000  # integer, page send/receive timeout (ms)

ModemRate:                      19200   # integer, baud rate to use for DCE-DTE communication

ModemRecvFillOrder:             LSB2MSB # string, bit order for received facsimile data

ModemResetCmds:                 ""      # string, additional commands when resetting modem

ModemResetDelay:                2600    # integer, delay (ms) after sending modem reset commands

ModemResultCodesCmd:            ATQ0    # string, command for enabling result codes

ModemRevQueryCmd:               ""      # string, command for querying modem firmware revision

ModemSendBeginCmd:              ""      # string, command to send on establishing carrier

ModemSendFillOrder:             LSB2MSB # string, bit order for sending facsimile data

ModemSetVolumeCmd:              "ATM0 ATL0M1 ATL8C1 ATL2M1 ATL3M1"      # string, commands for setting modem speaker volume level

ModemSetupAACmd:                ""      # string, command for setting up adaptive answer

ModemSetupDCDCmd:               ""      # string, command for setting up DCD handling

ModemSetupDTRCmd:               ""      # string, command for setting up DTR handling

ModemSoftFlowCmd:               ""      # string, command for setting software flow control between DTE and DCE

ModemSoftResetCmd:              ATZ     # string, command for doing a soft reset

ModemType:                      Class1  # string, modem type

ModemVerboseResultsCmd:         ATV1    # string, command for enabling verbose result codes

ModemWaitForConnect:            No      # boolean, force server to wait for ``CONNECT'' response on answer

ModemWaitTimeCmd:               ATS7=60 # string, command for setting time to wait for carrier when dialing
 

Class1Cmd:                      AT+FCLASS=1     # string, command to enter class 1

Class1HFLOCmd:                  AT+FL0=2        # string, command to set hardware flow control

Class1FrameOverhead:            4       # integer, extra bytes in a received HDLC frame

Class1NFLOCmd:                  AT+FL0=0        # string, command to set no flow control

Class1RecvAbortOK:              100     # integer, max wait (ms) for ``OK'' after recv abort

Class1RecvIdentTimer:           35000   # integer, max wait (ms) for initial ident frame

Class1SFLOCmd:                  AT+FL0=1        # string, command to set software flow control

Class1TCFMaxNonZero:            10      # integer, max% of non-zero data in good TCF

Class1TCFMinRun:                1000    # integer, minimum zero run in good TCF

Class1TCFRecvTimeout:           4500    # integer, max wait (ms) for TCF

Class1TCFResponseDelay:         75      # integer, delay between TCF and ack/nak

Class1SendPPMDelay:             75      # integer, delay before sending post-page message

Class1SendTCFDelay:             75      # integer, delay between sending DCS and TCF

Class1TrainingRecovery:         1500    # integer, delay after failed training

Open in new window

0
 

Author Comment

by:eslindsey
ID: 24201394
My configuration file was not correct, as I discovered when I tried to send a fax out.  I got the flow control command wrong, it is AT+FLO, not AT+FL0 (damn those O's and 0's!).  Also, I added a few parameters to support Caller ID.  Here is an updated, (hopefully) correct file:
# $Id: usr-56k-fax-usb,v 1.0 2009/04/14 17:04:32 elindsey Exp $

#

# HylaFAX Facsimile Software

#

# Copyright (c) 1990-1996 Sam Leffler

# Copyright (c) 1991-1996 Silicon Graphics, Inc.

# HylaFAX is a trademark of Silicon Graphics, Inc.

#

# Permission to use, copy, modify, distribute, and sell this software and

# its documentation for any purpose is hereby granted without fee, provided

# that (i) the above copyright notices and this permission notice appear in

# all copies of the software and related documentation, and (ii) the names of

# Sam Leffler and Silicon Graphics may not be used in any advertising or

# publicity relating to the software without the specific, prior written

# permission of Sam Leffler and Silicon Graphics.

#

# THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,

# EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY

# WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

#

# IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR

# ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,

# OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,

# WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF

# LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE

# OF THIS SOFTWARE.

#
 

# CONFIG:CLASS1:5601:.*:RTSCTS: Manufacturer=USRobotics Model="56K USB Faxmodem"

#

# BEGIN-SERVER

# END-SERVER

#
 

ModemAnswerCmd:                 "ATA"           # string, command for answering phone

ModemAnswerDataBeginCmd:        ""              # string, command for start of answered data call

ModemAnswerDataCmd:             "ATA"           # string, command for answering data call

ModemAnswerFaxBeginCmd:         ""              # string, command for start of answered fax call

ModemAnswerFaxCmd:              "ATA"           # string, command for answering fax call

ModemAnswerResponseTimeout:     180000          # integer, answer command timeout (ms)

ModemAnswerVoiceBeginCmd:       ""              # string, command for start of answered voice call

ModemAnswerVoiceCmd:            "ATA"           # string, command for answering voice call

ModemATCmdDelay:                0               # integer, delay before sending modem an AT cmd (ms)

ModemBaudRateDelay:             0               # integer, delay (ms) after setting baud rate

ModemClassQueryCmd:             "AT+FCLASS=?"   # string, command for querying modem services

ModemCommaPauseTimeCmd:         "ATS8=2"        # string, command for setting time to pause for comma in dialing string

ModemDialCmd:                   "ATDT%s"        # string, command for dialing (%s for number to dial)

ModemDialResponseTimeout:       180000          # integer, dialing command timeout (ms)

ModemEchoOffCmd:                "ATE0"          # string, command for disabling command echo

ModemFlowControl:               "RTSCTS"        # string, DTE-DCE flow control scheme

ModemFrameFillOrder:            "LSB2MSB"       # string, bit order for HDLC frames

ModemHardFlowCmd:               ""              # string, command for setting hardware flow control between DTE and DCE

ModemMinSpeed:                  2400            # string, minimum acceptable transmit speed

ModemMfrQueryCmd:               ""              # string, command for querying modem manufacturer

ModemModelQueryCmd:             ""              # string, command for querying modem model

ModemNoAutoAnswerCmd:           "ATS0=0"        # string, command for disabling auto-answer

ModemNoFlowCmd:                 ""              # string, command for disabling hardware flow control between DTE and DCE

ModemOnHookCmd:                 "ATH0"          # string, command for placing phone ``on hook''

ModemPageDoneTimeout:           180000          # integer, page send/receive timeout (ms)

ModemPageStartTimeout:          180000          # integer, page send/receive timeout (ms)

ModemRate:                      19200           # integer, baud rate to use for DCE-DTE communication

ModemRecvFillOrder:             "LSB2MSB"       # string, bit order for received facsimile data

ModemResetCmds:                 "AT#CID=1"      # string, additional commands when resetting modem

ModemResetDelay:                2600            # integer, delay (ms) after sending modem reset commands

ModemResultCodesCmd:            "ATQ0"          # string, command for enabling result codes

ModemRevQueryCmd:               ""              # string, command for querying modem firmware revision

ModemSendBeginCmd:              ""              # string, command to send on establishing carrier

ModemSendFillOrder:             "LSB2MSB"       # string, bit order for sending facsimile data

ModemSetVolumeCmd:              "ATM0 ATL0M1 ATL8C1 ATL2M1 ATL3M1"      # string, commands for setting modem speaker volume level

ModemSetupAACmd:                ""              # string, command for setting up adaptive answer

ModemSetupDCDCmd:               ""              # string, command for setting up DCD handling

ModemSetupDTRCmd:               ""              # string, command for setting up DTR handling

ModemSoftFlowCmd:               ""              # string, command for setting software flow control between DTE and DCE

ModemSoftResetCmd:              "ATZ"           # string, command for doing a soft reset

ModemType:                      "Class1"        # string, modem type

ModemVerboseResultsCmd:         "ATV1"          # string, command for enabling verbose result codes

ModemWaitForConnect:            No              # boolean, force server to wait for ``CONNECT'' response on answer

ModemWaitTimeCmd:               "ATS7=60"       # string, command for setting time to wait for carrier when dialing
 

Class1Cmd:                      "AT+FCLASS=1"   # string, command to enter class 1

Class1HFLOCmd:                  "AT+FLO=2"      # string, command to set hardware flow control

Class1FrameOverhead:            4               # integer, extra bytes in a received HDLC frame

Class1NFLOCmd:                  "AT+FLO=0"      # string, command to set no flow control

Class1RecvAbortOK:              100             # integer, max wait (ms) for ``OK'' after recv abort

Class1RecvIdentTimer:           35000           # integer, max wait (ms) for initial ident frame

Class1SFLOCmd:                  "AT+FLO=1"      # string, command to set software flow control

Class1TCFMaxNonZero:            10              # integer, max% of non-zero data in good TCF

Class1TCFMinRun:                1000            # integer, minimum zero run in good TCF

Class1TCFRecvTimeout:           4500            # integer, max wait (ms) for TCF

Class1TCFResponseDelay:         75              # integer, delay between TCF and ack/nak

Class1SendPPMDelay:             75              # integer, delay before sending post-page message

Class1SendTCFDelay:             75              # integer, delay between sending DCS and TCF

Class1TrainingRecovery:         1500            # integer, delay after failed training
 

CallIDPattern:                  "NMBR="

CallIDPattern:                  "NAME="

Open in new window

0
 
LVL 3

Expert Comment

by:glenthorne
ID: 24773386
I have installed and support a few Hylafax servers.  I have tried to use US Robotics modems on USB->Serial adapters and had similar problems.  I even was able to get Hylafax and faxgetty to appear to work fine.  They would even receive a one page fax, but then fail to receive the second page or fail to reset properly.  

After doing some digging (and personal experience), I have found that the USB to Serial drivers in Linux do a pretty good job for many serial devices, but seem to struggle with the flow requirements that faxing demands (some of them even block the Cisco break key for entering into the RMON prompt).  I ended up returning the USB-Serial devices and installed PCI-Serial cards and all works wonderfully now.  

Another option that I am using is one of Digi's C/Con devices  This will give you a large number of serial ports to use and only use up one PCI slot.
0
 

Author Comment

by:eslindsey
ID: 24777477
I have been using the USB modems without trouble for some time now. I don't bother with serial ports or adapters. The native USB modem drivers that come with my version of CentOS are working perfectly. I just needed the correct configuration file to tell Hylafax what commands to send.
0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

Suggested Solutions

Before I go to far, let's explain HA (High Availability) and why you should consider it.  High availability is the mechanism used to provide redundancy to any service at the same site and appears as a single service to the users of that service.  As…
Every server (virtual or physical) needs a console: and the console can be provided through hardware directly connected, software for remote connections, local connections, through a KVM, etc. This document explains the different types of consol…
Learn how to get help with Linux/Unix bash shell commands. Use help to read help documents for built in bash shell commands.: Use man to interface with the online reference manuals for shell commands.: Use man to search man pages for unknown command…
Learn how to find files with the shell using the find and locate commands. Use locate to find a needle in a haystack.: With locate, check if the file still exists.: Use find to get the actual location of the file.:

762 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

21 Experts available now in Live!

Get 1:1 Help Now