This write-up explains how to connect two computers via a pair of wires and a couple of low cost dial-up analog modems without going through EPABX/private telephone exchange/public telephone system (and avoid extra cost of pair of public telephone connections and connectivity charges). This method was developed while trying to connect a client computer to windows NT based dial-up server (remote access server or RAS ), about a couple of kms away from the client. Most of information given here is based on information gathered during actually experimenting and trying out to find the best combination.
The electrical circuit is based on the principle of analog point- to point (hot-line) telephony. The diagram below shows how the two telephones are connected electrically. In case of dial-up telephones, once the call is received by lifting of receiver by the called party, the telephone exchange makes a similar circuit.
When receiver of telephone is off, the resistance of telephone between its two wires is infinite and a constant DC voltage is applied by exchange is effectively across open circuit.
When receiver is lifted (or "off hook"), the telephone resistance becomes about 350 ohms.
However, if Alternating Current (AC ) is applied to a telephone instrument, the current is passed on to telephone ringers via AC filter. Hence, the telephone rings. Once the telephone is lifted, the telephone exchange senses the same and switches off the Alternating Current and only DC voltage is applied. The above values were actually measured in telephones used. For more information on how they work in general, the following link would give you details
The resistance of the telephone microphone varies with the amplitude of voice. Microphone thus acts like a modulator of voice. This variation in resistance changes current through the above circuit. This change is converted into sound by speaker of the other telephone.
The analog modem is like a special telephone instrument which converts data into sound. Hence the above circuit can be used if telephone instruments are replaced by modems. By connecting two modems in series and connecting to a 10 V battery / battery eliminator (or adapter), the electrical circuit is complete for data transmission.
The important thing is to make the modem start handshaking (negotiation for establishing connection for data transmission). This happens only if one modem starts answering after the other modem has finished dialing and is waiting for response.
Another important requirement is that the softwares for client and server receive signal that such connection has been started and completed, so that the server and client can start their negotiations for connection at their level.
The simplest solution is to have the following arrangement as shown in the diagram below
In case you are using extrernal modems, connect the modems as shown above.In case of internal modems, the COM port is not required. RJ-11 is the standard plug/socket used to connect telephone instruments to the line. The following links give more information on RJ-11. http://www.lanshack.com/wire_phone_jack.aspx & http://www.kropla.com/rj11.htm
You can check the server/client configuration by connecting the two modems RJ-11jacks to two separate phone numbers of public telephone system and from the client dial-up the server and see that the system behaves properly. Then disconnect the modems from the public telephone lines.
Connect the modem RJ-11 jacks with pair of wires as connected as shown in the above diagram.
Make sure that your client dial-up software has the following settings –
disable dial-tone detection &
auto-answer off.
Give any phone number as dial-up server number
Start the client to make connection, i.e. start dialing the number.
As shonw in the diagram above, attach about 10 V AC supply in parallel with this modem with a switch ( a bell push type switch is most suitable) as shown in diagram above. This AC supply can be provided by step down transformer connected to 220/110 V AC mains supply. After starting your dial-up client software starts making attempt to make a connection, switch on the AC supply for a few seconds.
The AC current is sensed as “ringing current” by the server modem and it responds with “handshaking” screech, which would also be heard in client modem. The moment this handshaking is heard, switch off the AC current. The negotiation will continue till a connection is formed. After that, your client and server would behave as in any dial-up link.
However, if you are uncomfortable with providing any extra switch/ AC supply, an alternative method is as follows. This involves changing the modem driver. This system has been tested and used for over a couple of years with win95/98 client and WinNT version4 server. D-Link 56kbps dial-up modems were used.
Apply the following steps:
Modify the drivers. Details of changes required are shown in this write-up's section Changes in drivers. In case you are using similar D-Link modems, the original and modified drivers can be directly downloaded from following links
Original Driver
Modified Server Driver
Modified Client Driver
Connect the modems as shown in the diagram below
Make sure that your client dial-up software has the following settings –
Disable dial-tone detection
Auto-answer off.
Give any phone number as dial-up server number.
Start the client dial-up software to make connection, i.e. start dialing the number.
The rest of the process takes place automatically and the dial-up link is up.
Make sure that your windows system does not hide system files. This can be checked inWin98/95 by
“My computer” --> “view”-->tick ”Show system files”
In WinXP, sequence would be
“My computer” --> “tools”--> folder options --> "view"--> tick ”Show system files”
The modem driver is .inf file which was modified as follows. Your modem driver would be having similar entries which should be similarly modified.
- Modem6 = "56000bps External Fax Voice Modem" replaced with Modem6 = "56000bps Leased Line Modem for Server"
- HKR, Monitor, 1,, "ATS0=0<cr>" replaced with HKR, Monitor, 1,, "Atd<cr>"
- HKR, Responses, "2<cr>", 1, 08, 00, 00,00,00,00, 00,00,00,00 ; RING replaced with HKR, Responses, "<cr>", 1, 08, 00, 00,00,00,00, 00,00,00,00 ; RING
- HKR, Answer, 1,, "ATA<cr>" replaced with HKR, Answer, 1,, "<cr>"
- HKR, Settings, DialPrefix,, "D" replaced with HKR, Settings, DialPrefix,, "A"
- Modem6 = "56000bps External Fax Voice Modem" replaced with Modem6 = "56000bps Leased Line Modem for Dial-up Clients "
- transmit “^M”
In our case, the server side modem is configured to DIAL continuously and redial after every break of connection instead of monitoring ringing. This is done by changing the initialising command in the driver from“ATS0” with “ATD”. The modem would respond with "OK" only if the modem at OTHER end answers and a connection established. In case no reply is received within time-out period, the computer resends initialising string. The initialising string is also send if the connection drops. However, it is important that the modem is NOT switched off while the dial-up server is on.
If "ATA" is used as initialising command instead of "ATD", the server modem would keep giving handshaking screech till the client modem is connected.This would be irritating to anyone near the server if client is connects occasionally. However, in case you expect the client and server to be continously connected, this would not be major problem.
The client side driver is also modified. The dial command “ATD” is replaced with “ATA”. The client modem when it is asked to dial a number is actually ANSWERing instead of dialing.
Once the “ATD” of server matches with “ATA” of client, the hardware handshaking takes place and ANALOG connection between two modems is established. Hence any string from client modem would be passed on via server modem to the server computer.
However, the dial-up server software (usually PPP server) is not aware of the analog connection- its configuration is such that it waits for “ring” signal before it responds by sending connection string to PPP client. Hence to force the PPP server to respond, the ring signal in the driver is changed from "2<cr>" to "<cr>". The client dial-up script, which is executed after setting up of connection, sends two “^M”(which is <cr>) to the server modem, which faithfully transfers this to server software, which interprets it as “ring” signals and starts PPP server negotiations.
To prevent server from restarting Answering of Modem, HKR, Answer, 1,, "ATA<cr>”” is replaced with , HKR, Answer, 1,, "<cr>”.
After this the server and client are talking like in a normal dial-up link.