The Modem Device This section describes the steps you should follow to install and configure the modem device in the computer. This section applies both to server and client computers. Installation The modem device installation consists on attacthing the modem hardware both to the computer and the telephone line. To connect the modem to your computer, you need to connect the serial or USB cable that comes from the modem hardware to the appropriate input on your computer. To connect the modem to the telephone line system, you need to unplug the cable that connects your phone device and plug it on the modem device, specifically in the port reserved for data transmission. Later, using a similar cable, you could connect your phone device to the modem's phone port, so you be able of realizing phone calls when no data transmition take place, as well. To be on the safe side, do all the installation with the computer turned off. Then, when everthing has been put in place, turn it on. Once the system is up, you can verify the modem hardware using either the lsusb or lspci commands. For example, if you are using an USB modem like that one we mentioned before, run the following command: sudo /sbin/lsusb and you should get an output similar to the following: Bus 003 Device 001: ID 0000:0000 Bus 001 Device 001: ID 0000:0000 Bus 001 Device 002: ID 058f:6366 Alcor Micro Corp. Multi Flash Reader Bus 002 Device 001: ID 0000:0000 Bus 005 Device 003: ID 06e0:f104 Multi-Tech Systems, Inc. MT5634ZBA-USB MultiModemUSB (new firmware) Bus 005 Device 001: ID 0000:0000 Bus 005 Device 002: ID 046d:c018 Logitech, Inc. Optical Wheel Mouse Bus 004 Device 001: ID 0000:0000 The relevant line here is that mentioning the existence of a Multi-Tech System, Inc. MT5634ZBA-USB MultiModemUSB (new firmware) device. Configuration Once the modem hardware has been installed in the computer, it is necessary to determine what device inside the operating system it was assigned to, so applications like pppd and chat can talk to it. This configuration process can be realized through the wvdialconf command distributed with the wvdial package or the system-config-network command. Once the <command>wvdialconf</command> The wvdialconf automatically detects your modem and generates/updates the wvdial configuration file (/etc/wvdial.conf) using the modem's maximum baud rate found in the auto-detection process, and a good initialization string for it, as well. To set the modem configuration through wvdialconf command, run the following command: 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> At this point, the computer should be ready to attend incoming calls. When an incoming call arrives to the server they are attended by the pppd deamon. To administer the way such incoming calls are attended (e.g., forcing user authentication, restricting the phone numbers the calls can be initiated from, etc.), you need to set the pppd deamon configuration to fit your needs. To know more about how to configure the pppd deamon and the options it provides, read its man page (e.g., man pppd). On the other hand, when you are configuring a computer to act as client (i.e., you are calling out an ISP to establish connection to it), you need to realize a few more tunning steps on /etc/wvdial.conf to set the information related of that Internet Service Provider (ISP) you want to get connected to (e.g., uncommenting the Phone, Username and Password lines above to set the appropiate values there). Once you've specified the ISP information, run the following command to stablish connection: sudo /usr/bin/wvdial Both wvdial and wvdialconf commands must be run with administrative privilages because its configuration file (/etc/wvdial.conf) is readable by the root user only. <command>system-config-network</command> In addition to the configuration process described so far, you can manage modem configurations through the system-config-network command. This command provides a graphical interface (administrative privileges required) which let you configure several ISP and alternate the one you connect to. This command has been already documented in the Deployment Guide availabe in the Deployment_Guide and we won't duplicate that information here. However, there are some differences between the output produced by system-config-network and wvdialconf commads you need to be aware of. The first thing to know is that both system-config-network and wvdialconf commands write configurations to the /etc/wvdial.conf file, but 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 the interface provided by the system-config-network command, any configuraion previously created by wvdailconf will be lost. The interface provided by system-config-network command doesn't provide modem device detection (as wvdialconf 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, 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 Inside the /etc/wvdial.conf configuration file, the interface provided by system-config-network identifies default modem configurations through the line [Modem0], while the wvdialconf command does the same through the line [Dialer Defauls]. 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