Configuring Modem Device
Once the modem hardware has been installed in the computer, it
is necessary to determine what device location the operating
system assigned to it, so applications like
chat be able to know which device
to talk to. This configuration process can be realized
through the wvdialconf command, distributed
with the wvdial package.
Another way to configure modems installed in your computer is
through the graphical interface provided by
system-config-network command. This
interface may result specially useful when you need to
configure your computer to establish Modem connections to
remote Internet Service Providers (ISPs). The interface
provided by system-config-network command
uses the same configuration file that
wvdialconf command does (e.g.,
/etc/wvdial.conf), however, there are
some differences in the way these commands create
configuration files that we need to be aware of.
This section describes how you could use the
wvdialconf and
system-config-network commands to configure
the modem installed in your computer, as well as possible
issues you might face if these two commands are arbitrarily
combined one another.
The wvdialconf Command
The wvdialconf automatically detects the
location the operating system assigned to your modem, its
maximum baud rate, a good initialization string for it, and
generates/updates the wvdial configuration
file (/etc/wvdial.conf) the
wvdial command needs to work. To set the
modem configuration through wvdialconf
command, run the command as follows:
sudo /usr/bin/wvdialconf /etc/wvdial.conf
This command will produce an output like the following:
Scanning your serial ports for a modem.
ttyS0<*1>: ATQ0 V1 E1 -- failed with 2400 baud, next try: 9600 baud
ttyS0<*1>: ATQ0 V1 E1 -- failed with 9600 baud, next try: 115200 baud
ttyS0<*1>: ATQ0 V1 E1 -- and failed too at 115200, giving up.
Port Scan<*1>: S1 S2 S3
WvModem<*1>: Cannot get information for serial port.
ttyACM0<*1>: ATQ0 V1 E1 -- OK
ttyACM0<*1>: ATQ0 V1 E1 Z -- OK
ttyACM0<*1>: ATQ0 V1 E1 S0=0 -- OK
ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1 -- OK
ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 -- OK
ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK
ttyACM0<*1>: Modem Identifier: ATI -- LT V.90 1.0 MT5634ZBA-USB
Data/Fax Modem (Dual Config) Version 5.18e
ttyACM0<*1>: Speed 4800: AT -- OK
ttyACM0<*1>: Speed 9600: AT -- OK
ttyACM0<*1>: Speed 19200: AT -- OK
ttyACM0<*1>: Speed 38400: AT -- OK
ttyACM0<*1>: Speed 57600: AT -- OK
ttyACM0<*1>: Speed 115200: AT -- OK
ttyACM0<*1>: Speed 230400: AT -- OK
ttyACM0<*1>: Speed 460800: AT -- OK
ttyACM0<*1>: Max speed is 460800; that should be safe.
ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK
Found an USB modem on /dev/ttyACM0.
Modem configuration written to /etc/wvdial.conf.
ttyACM0<Info>: Speed 460800; init "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0"
and a wvdial configuration file like the
following:
[Dialer Defaults]
Modem = /dev/ttyACM0
Baud = 460800
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ISDN = 0
Modem Type = USB Modem
; Phone = <Target Phone Number>
; Username = <Your Login Name>
; Password = <Your Password>
It is possible to configure the same computer to act both as
server (i.e., to receive incoming calls from clients) and
client (i.e., to realize outgoing calls to servers). However,
be aware that only one of these connections can be established
at a time.
The system-config-network Command
The interface provided by
system-config-network command doesn't
detect the configuration intially created by
wvdialconf command. In fact, if you set a
new (modem) hardware configuration through it, any
configuration previously created by
wvdailconf command will be lost. On the
other hand, if you firstly generate the configuration file
using the interface provided by
system-config-network command and later run
the wvdialconf command over it, you will
end up having two similar configuration settings under
different definitions stored in the same configuration file.
The wvdial command doesn't understand the
configuration file produced by
system-config-network command, even both
wvdialconf and
system-config-network commands use the same
configuration syntax to create the configuration file.
Inside the /etc/wvdial.conf configuration
file, the interface provided by
system-config-network identifies default
modem configurations through the [Modem0]
line,
while the wvdialconf command does the same
through the [Dialer Defaults]
line. Something
interesting about the configuration file created by
system-config-network is that it is
possible to create several ISP configurations that reuse
default settings in the [Modem0]
section. For
example, consider the following example:
[Modem0]
Modem = /dev/ttyACM0
Baud = 460800
SetVolume = 2
Dial Command = ATDT
Init1 = ATZ
Init3 = ATM1L2
FlowControl = CRTSCTS
[Dialer Vispa_Internet]
Username = signup
Password = rebel
Phone = 08453080125
Stupid Mode = 1
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Inherits = Modem0
The interface provided by
system-config-network command doesn't
provide modem detection (as wvdialconf
command would do) and uses the /dev/modem
as default location. This location doesn't exists by default,
so whatever configuration you set from it will not work. To
solve this issue, chose one of the following workarounds:
Replace the /dev/modem location by that
one wvdialconf found when the interface
provided by system-config-network ask you
to enter the modem device.
Create /dev/modem location as a symbolic
link to that location found by wvdialconf
command. For example:
sudo /bin/ln -s /dev/ttyACM0 /dev/modem