Got dialtone on laptop modem at work, no dialtone at home

Felecha

Golden Member
Sep 24, 2000
1,434
0
0
I'm developing an app in VB.Net that has to be able to open a dialup connection to an ISP when the system has a problem, and send out an email to the Maintenance people. The code is working, and I've been testing it OK. I created a Connection in Network Connections (WinXP SP2) for it and the code uses a commercial component that uses RAS to dail the PhoneBook entry. I set up the same Connection on my laptop at work before I left yesterday, and could connect to the ISP just fine.

Here I am at home today and I got out a cord from the pile of old cords in the cellar, and tried to connect using the same Dialup Connection (after removing the 9 from the number to dial from work), and I get Error 680 No dialtone.

I plugged the same cord into my phone and get dialtone. I've tried several other cords. I've tried every combination I can think of for the number to dial, 1 and not a 1, areacode and no areacode, etc.

Device Manager says This device is working properly.

Any ideas?
 

Felecha

Golden Member
Sep 24, 2000
1,434
0
0
I have an ethernet connection, too, a home network with a router. I tried unplugging that, even though that should make no difference, should it?
 

Felecha

Golden Member
Sep 24, 2000
1,434
0
0
Looking in TroubleShooting in Device Manager, I see it says it's on COM3. But under Ports COM1 is listed and COM3 is not. Just COM1 and LPT1. Is Com3 not there?

I tried "Query modem" under Diagnostics and got a bunch of AT commands.
 

Felecha

Golden Member
Sep 24, 2000
1,434
0
0
How can I get in and see what's happening with COM3? A friend suggested that it I can see AT commands in Diagnostics, it has to be dealing with a COM port somewhere. So why doesn't COM3 show in Device Manager/Ports if it's in use with the modem?

I looked under Computer/ACPI and in the dropdown box for COM Port it shows "COM3 - in use". So Windows knows something about it, but it doesnt show in DeviceManager/Ports
 

Felecha

Golden Member
Sep 24, 2000
1,434
0
0
I bet I found the problem. Up to a week ago we had 2 lines at our house. Now that the last kid left to go off to college, we dropped the second line. Of the 4 pins in the connector, I bet the pair for the dropped number is the one that the modem is trying to get dialtone from.

I looked at my wife's Dell laptop and the port only shows the two inner pins. But my HP N5470, which is what I've been using, has 4 pins inside the port. I'm guessing that the outer pins are now the "live" pair. I put a 2-pin phone cable into the wall jack and plugged it into the phone - no dial tone!

So is there some way of telling my HP modem (ESS) to listen on the outer pins???
 

Felecha

Golden Member
Sep 24, 2000
1,434
0
0
POTS? What's that? I have a cable modem for my home ethernet network. I'm just using the modem because I'w working on an app for a customer that will have to use a dailup connection
 

Felecha

Golden Member
Sep 24, 2000
1,434
0
0
That was it. i switched the wires inside the wall jack, and now it works.

So clear when you find out what it was
 

bleuless

Senior member
Jul 25, 2001
437
0
76
let me guess before your kid's phone was a 2 line unit? that's how its capable of "seeing all 4 pins" they do sell adapters for switching the wire pairs (assuming you have 4 pins at the wall). typically the modem only has 2 inner pins (main line) the outer pins are for 2nd line. if it has 4, its probably just for looks, or capable of using 2 lines? (don't ask me how).
 

KC5AV

Golden Member
Jul 26, 2002
1,721
0
0
POTS = Plain Old Telephone System, as opposed to a digital phone line, or multi-line phone.
 

Thoreau

Golden Member
Jan 11, 2003
1,441
0
76
easiest/cheapest wy is to either take the wallplate off and swap the wires around, or go out to where yer telco terminates to your house (careful... lotsa power to kill ya with in there) and switch it there. The latter will make the changes work for all of yer household jacks vs just whichever one(s) you choose to switch.
 

Felecha

Golden Member
Sep 24, 2000
1,434
0
0
Well, the switching of wires in my office wallplate was the thing to do, not outside at the terminal box. It was only that phone that was improperly reversed.

But now another question comes up for me, if any of you know anything about it. Here I am, trying to write my program for the customer's need and there are some basic things I just don't even know (as you've seen).

I've figured out the programming to use the commercial software we bought that calls the RAS stuff to control the modem. It's now doing just what I want. It looks to see if there's an open connection, and opens one if there is none. Then it sends the email. But there's a hitch - we intend to use the same modem that will be sending "trouble reports" out by email as a means of getting into the system with pcAnywhere if we need to get a look at what the problem is. We've used pcAnywhere in other customer sites and it's great. Saves a trip to the customer usually.

But if pcAnywhere has control of the connection and the system decides it's time to send out an email, I expect it will find the device open and active, so it would not know that it can't send an email to the ISP's mail server just now. I have code that works fine to Connect() if there is no connection, but I have to figure out how to detect that the modem is connected but not by my code, so the email will hold off.

I see in the commercial component's objects that I can call a method ListConnections() that will fire a ConnectedEntryEvent for every open RAS connection no matter who opened it. I can get the Handle for the connection from that method.

So here's where I presume something and hope I'm correct.

I figure that the Handle is a software value assigned to the connection that is created. I assume that the modem will not allow more than one process to create a connection for it at the same time. So calling ListConnections() should only return one Handle. I figure I can determine if that handle is the same as the most recent handle resulting from creating a connection by my own code (I can store a Handle when I create one) and stop things right there if it's not. Then I would wait in a loop until the Handle returned is 0 (which is what happens if there are NO connections) and then open one for the email.

So that's the question - if a process has the modem connected, would any other attempt be refused?

Remember, my code at present would cheerfully start sending out the email if it found an open connection, presently there's no determination as to who opened it. It would bomb out when it finds no email server on the other end

Did I describe that clear enough?
 

Felecha

Golden Member
Sep 24, 2000
1,434
0
0
Well, I finally thought of a simple test that probably answers my question.

Since I'm here at home with the laptop, and I'm plugged into my home phone system, I can mimic the customer's situation. I tried calling myself on the phone so I was sitting at a busy signal and then told the application to dial out through the modem, and I got the error for "no dial tone". I then called my office, knowing that I would get the recording (Sunday morning) saying "Thank you for calling *****. Our normal hours are ... ". With that condition I again made the app try to dialup a connection and again got "no dial tone"

So I would conclude that if pcAnywhere was connected to the customer's system, the code for dialing up and sending an email would get "no dial tone" and I know how to handle that in code.

Does this sound right?

I hate to seem like such a dummy, but these are things I really don't have experience with, hands-on, and I won't be able to actually try it till I get back to work tomorrow, and there's a deadline so I'd like to be working on it today.

Any advice appreciated, for sure.