Have problems connecting with your modem ? Get error messages
like "pppd daemon died
unexpectedly", "remote computer hang up" or "no carrier".
Already tried out several free access providers, made your dial
settings very carefully and still get no proper connection ?
Here follow the ways I found out
to solve the problem with my installation. I'm not sure every
configuration option I use really matters but most do.
This text does not explain
how exactly the different configurations can be set, since this
depends on which internet dial program you are using. But you
should find it out by clicking around inside the program's
configuration windows. I'm using Linux. But most proposals
in this page should
be possible with other systems too.
Configure a large modem timeout. For example 120
seconds. Each time the computer sends a command to the modem,
the modem must give a response. The timeout is the time the
computer accepts to waits for that response of the modem. If
the modem didn't give the awaited response the computer
considers the connection procedure failed. The most important
command the computer sends to the modem is to dial the phone
number of the remote computer of the provider (e.g.
ATDT042423030). That's when you hear the dialtones and then
hazy sounds (if you configured appropriately the modem
loudspeaker volume). Once the remote computer responded and made
successful agreements with your modem, the modem sends to your
computer the response CONNECT. Now the remote computers sometimes
seem to
be very slow. So your computer has to wait a long time for the
response CONNECT. If it was configured with a little timeout,
it will simply consider the connection failed and stop wait for
the CONNECT response. It will try again to dial the number or
stop and display a fail message.
Configure AT&F instead of ATZ to reset the modem.
AT&F makes sure the modem uses its default factory burned-in
tunings. ATZ on the other hand makes the modem load tunings
that were programmed inside a flash memory. These tunings can
be changed by anybody. It is quite
surprising this matters since a dump of the registers of
my modem shows no difference between AT&F and ATZ...
Configure a connection speed (baud rate) for the serial port
of your computer (connected to the modem) close to the
aimed 56k. That is 57600 baud. I do not understand
why this matters. The
speed the computer talks to the modem has no link with the
speed between the modem and the remote computer, over the phone
line. Between computer and modem any speed should do the job,
provided it is equal or higher than the speed over the phone
line. But only 57600 baud works fine. 115200 baud works
sometimes. Higher baud rates never work.
Do not use automatic DNS. Sometimes it seems to
work better. But you often get a DNS-less connection later.
If you redial just after a connection problem, best close
all your browsers and mailers first. In some cases, when they
are awaiting a response, they can pollute the pppd connection
start protocol.
Place your modem far from the computer and the monitor.
Put ferrite coils around the RS/232 serial COM cable between
computer and modem. This lowers the strength of the HF noise
(coming from your computer) that reaches the modem.
This made a difference with my modem.
Go to the Web site of the manufacturer or your modem and check if
new drivers are available for your modem. Or enhancements for the
modem internal program flash memory. The upload of
enhancements to the flash memory of my modem made a difference. I
got lower connection speeds yet more reliable.
Cut your phone line wire in two pieces and insert following
filter. I don't know exactly why a low-pass filter like this helps.
My first intention was to insert a 1k resistor to get a bad phone
line, so the modem would choose a lower transmission speed.
But on the contrary this made the modem connect faster and choose
higher transmission rates. So I bugged around trying several
resistor values and adding condensators. Till I got best results
with this layout. It also made the connection start much faster.
Try using additional arguments parameters for the pppd daemon call.
Type man pppd in a terminal window for details. For example
pap-max-authreq 100,
ipcp-max-configure 100 and lcp-max-configure 100.
Once the
CONNECT response is received from the modem, your computer
starts the pppd daemon. The
daemon "talks" to the remote computer to agree on certain things.
For example it sends him your login
name and password, using the PAP protocol. But it have
to wait a long time for the remote computer response. The
"max" options make the pppd daemon become
very patient and try over and over again, every three second
(tunable too), to
get a correct response. At first I
was able to solve some problems this way. But
afterwards I realized that if the communication is so bad
then you always get problems later on. If the standard
settings for your pppd daemon don't do the job the problem
is elsewhere.
Ask for as much logs as possible and try analyzing them.
Ask your dial program to display the AT commands send to the
modem when dial starts (and the answers of the modem).
Give W2 as an argument inside one of the Hayes AT command strings
send to the modem. For example transform ATDT into AT W2 DT. This makes
the modem responds with the real connection speed once the
connection is established. for example CONNECT 33600. Otherwise it will
respond with the serial port speed, which is set by you.
Give record filename as a parameter for the pppd daemon.
this will create a file that contains every character exchanged
between your computer and the remote computer as well as the timings.
You can then display this information with pppdump. Type pppdump
filename in a terminal window. For example if you see your computer
sends over and over again the same string every three second without
a reply, obviously there is a communication problem.
When the connection fails some Internet Dialer, for example kppp,
propose to display and save to file a full log.
Send a mail to the manufacturer of your modem, describing your
problem and giving the model number and serial number of your modem.
I got a most useful hint that way.
Search the Web for a recommended Hayes AT initialization string
for your modem. Several pages exist that list bunches of such
strings far all sorts of modems. Use a Web search engine with a search
entry like +init* +modem +string* (query formulated for
www.altavista.com).
Make your modem use a lower connection speed. This gives excellent
results. My modem was too optimistic and always made connections
with a high speed. When I made enhancements like placing a HF filter coil
on the serial cable and the low-pass filter on he phone line I got
higher and higher speeds, but the main problem remained : the modem
kept choosing too high speeds. So I forced a little lower speed
(38000 baud) by
inserting +MS=56,,,38000 inside the ATDT command string, that thus became
AT +MS=56,,,38000 DT. See the Web for full
reference on the +MS command. One very useful reference page starts with
the words "The Hayes AT command set is the industry standard method
of communicating". Numerous copies of that page exist all over web. Beware : a relatively high speed that seems to be OK is not necessarily the best one. At first everything seemed all right when I tried 40000 baud. But analyzing the graphs of byte input and output I realized a fluent transfer was only realized half or even one third of the time. And the time between the CONNECT echo of the modem and the end of the start of the communication was rather long (in other words the start of the pppd daemon was slow). With 38000 baud I have a quick start (the pppd daemon starts in an snap) and 100% time of fluent exchange. Whatever the problems on your phone line or any other disturbance, forcing very low communication speed should most often allow to communicate. Once I got my modem down to 7200 baud, using an awful phone line.
Keep on trying out other Internet providers. Currently I have
perfect connections with three out of the four I tried. I keep having
problems with the fourth one. Without any of the enhancements listed inside
this page, only one of them worked, sometimes.
Try out other modems. Obviously some are better than others. That's
the sole thing I didn't try out. I succeeded making my modem work
perfectly.
Try to unplug your phone, leaving the modem alone on the phone line.
A friend got problems with his wireless phone because of the HF
radio waves.
Distrust the content of this page. Telecommunication is a fuzzy domain. You may get the impression an enhancement you try gives excellent result yet get poor data exchange later on. You can only claim you got good results if you tried out an enhancement over an over again over a week or so. For example I just removed the low-pass filter described above.