How to make an oldschool analog modem PPP Dial-In with Linux and Windows XP

How to make an oldschool analog modem PPP Dial-In with Linux and Windows XP

What we need:

  1. USB Modem (DELL) connected to my raspberry PI3
  2. Old Fritzbox 7130 with two POTS ports
  3. Old Laptop with Windpows XP and Winmodem (sucks on linux for driver issues)
  1. Two Telephone Cables
  2. Connecting Raspberry PI to FritzBox -> **2
  3. Connecting Laptop to FB -> **3

First connecting from XP to Linuxmachine:

  1. Open Network-Connections
  2. File -> New Network Connection:
  3. Look at the screen (Sorry for german language)
want to call the rpi modem over the fritzbox 
Now we start a small script on the raspberry called dreamkodi.sh (Originally this script is for dreamcast online gaming purposes only, but at this time we can also use it here as PPP-ISPRouter)
"Short" preview of the script ;)
now we can connect with the User / Password

Connecting from Linux machine to Windows/Linux PPP Server

  1. Create a new Connection in Windows and setup an Fake-ISP:
  2. Create a advanced connection settings:
Choose your modem
create a new user for the PPP Login

Click next, chooses TCP/IP and Finish the process.

Now you can start your Linux machine.

  1. Download PPP and chat
  2. Create a file /etc/ppp/options:
  3. Add: dream PPTP <password> * to /etc/ppp/chap-secrets
debug               #- log transactions to /var/log/messages
noauth
nobsdcomp
nodeflate
name dream          #- MS-CHAPv2
remotename PPTP
require-mppe-128    # 40 Bits also working with noccp
#mtu 552
#mru 552
noipx
noccp               #- No 'buggy' (Compression Control Protocol) negotiation
/dev/ttyS1          #- ( S1 = COM2, S2 = COM3, S3 = COM4)
115200              #- Baud rate. Max supported bu UART chipset, not modem.
modem               #- Serial link is connected to a modem
crtscts             #- Use hwflow control (RTS and CTS) to controlserial line
asyncmap 0          #- Choice of mapping of control characters
defaultroute        #- PPP becomes the default route to the internet
noipdefault         #- Not a static IP address. IP address assigned by ISP.
lock                #- Don't let other procs besides PPP _ (/var/lock/)
                    #
                    # Starting of chat to com:
                    #
connect "/usr/sbin/chat -v -t 240 -f /etc/ppp/chat-isp"
:

3. Create a file /etc/ppp/chat-isp:

ABORT 'BUSY'
ABORT 'NO CARRIER'
''     ATZ
#''     ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
OK     ATDT,**3    
CONNECT ""                                         
#ogin: <username>                                    
#sword: <password>

Optional:

ABORT 'NO DIALTONE'
ABORT 'NO ANSWER'
ABORT 'ERROR'
Mehr zu chat:

http://www.linuxhaven.de/dlhp/HOWTO/DE-PPP-HOWTO-14.html

4. Setup your ppp command as sticky to run without root: (this is not recommend for security reasons, only for testing)

chmod u+s /usr/sbin/pppd

5. Now run your PPP client to connect and you're finished.

Alternative linux ppp connect programs:

Wvdial:

I've build a small Bash-Script to automate the first run:

#! /bin/bash
#
# wvdial - runner script 0.1a
# (C) suuhm - https://the-suuhmmary.coldwareveryday.com

echo "wvdial config - and run tool"
echo; sleep 2

# Setup Config:
wvdialconf /etc/wvdial.conf

# Set SUID on wvdial for group dialout:
groupadd dialout
gpasswd -a username dialout
chgrp dialout /usr/bin/wvdial
chmod u+s,o= /usr/bin/wvdial

# Run:( in loop if connection / program breaks )
echo
echo "Run program:" ; sleep 2

(
   while : ; do
       wvdial
       sleep 10
   done
) &

exit 0;

More to read here:

Wvdial - ArchWiki

X-ISP

Older dial program with graphical interface lib:

X-ISP is a visual, X11/XForms based, user-friendly interface to pppd/chat, i.e. a dialup TCP/IP tool with an X11 interface. It is also a small ISP and phone company (PTT) database manager, and a dialup costs and usage logging/statistics tool. It provides maximum feedback from dialing and login phases on a message browser, versatility in interrupting a call in progress, a manual login terminal window, as well as call-back and per-ISP DNS selection capabilities.
X-ISP

Thanks to yolinux for some sources and more:

http://www.yolinux.com/TUTORIALS/LinuxTutorialPPP.html