                       *** DPPP Setup Utility 1.0 ***

                              Configuring DPPP

                       Setup Utility by Brad Friedman
             DPPP and all related Documentation by Detlef Pleiss

For support please refer to Detlef Pleiss
               Internet:   det@goliath.de
               Compuserve: 74101.755

or the DPSoft mailing list:
               to subscribe send a message to majordomo@mail.msen.com with
               "subscribe dpsoft" in the body (no quotes)

====================================================================

Requirements

The DPPP Setup Utility DPPPSET.EXE requires VBRUN300.DLL, FPTAB11.VBX,
MLIST.VBX and THREED.VBX in your \WINDOWS\SYSTEM directory. The VBX files come
with the DPPP distribution, the DLL can be downloaded separately. You should
not have duplicates of any of the .VBX's or .DLL's anywhere on your hard drive
to avoid problems!

====================================================================

Installation

DPPPSET.EXE can reside where ever you like, but it's convenient to keep it
in the PowerBBS home directory.

====================================================================

Running the Program

The DPPP setup information is stored in the file DPPP.INI in the \WINDOWS
directory. On startup, DPPPSet reads the information from that file and
displays your current configuration.
If you run the program for the first time, so do not have a DPPP.INI yet, it
defaults to a reasonable configuration. The only field you must fill in is the
"Domain Name Server (DNS) to use". Fill in the IP address of your (ISPs) Domain
Name Server.
If you press "Cancel" or choose it from the menu, your changes to the
configuration are not stored, DPPP.INI remains untouched.
If you close the window, press "Exit" or choose it from the menu, a backup
of your old configuration is stored as \WINDOWS\DPPP.BAK and your new
configuration is written to \WINDOWS\DPPP.INI.
If a value for some setting is not valid, DPPPSet will not save and exit but
instead pop up a message box, telling you which value is invalid, what values
it expects and what the default value for that field is.

====================================================================

Settings for Port / Global Defaults

With DPPPSet you can define a "Global Default" configuration that is valid for
all COM ports. If you want to use different options only on some COM ports
(like some lines running (C)SLIP instead of PPP), choose the COM port from the
drop down list and change the settings to what you want for that COM port.
If you want the same settings for all COM ports, just edit the "Global
Default"s and leave the drop down list untouched.
If you change a "Global Default" setting after you entered some COM port
specific value for that setting, a dialog box will pop up where you can decide
if and for which COM ports to keep the previously specified settings or to use
the newly configured "Global Default" setting.
While editing the "Global Defaults" you can press the "Reset to DPPP Defaults"
button to do exactly that. It will revert all settings to the built-in default
values (but leave the registration information, DNS and BBS IP addresses
untouched). When editing a COM port specific setup, the button changes to
"Reset to Global Defaults", so pressing it will restore all settings that
were configured for this COM port to what you configured as "Global Defaults".

====================================================================

General Tab

"BBS Name", "Sysop Name" and "DPPP Registration Number" is the DPPP
registration information. Without being registered, DPPP is limited to 20
minutes per call. Refer to DOCS\DPPP.TXT for information on how to register.
The value to fill in at "DPPP Registration Number" is sent to you by email
when you register DPPP for a given "BBS Name" and "Sysop Name".

"Domain Name Server (DNS) to use" is the only field that must be filled in.
All other fields have reasonable defaults. Fill in the IP address of your
(ISPs) Domain Name Server.

If your BBS machine has a fixed IP address, you may fill that in at "IP
Address of BBS Machine". In most cases, especially if your ISP connection uses
dynamic IP's, you should leave this field blank. Fill it in if for some reason
DPPP is not able to determine the BBSs IP address at runtime, especially if
the BBS host machine is "multihomed", speak has multiple TCP/IP network
interfaces (i.e. a Proxy Gateway on a networked BBS, in that case use the IP
address of your actual Internet connection, not that of your LAN interface).

The "To launch Dialer run ..." field takes the full path to a batch file to
be executed on each DPPP startup. It is meant to be used if your TCP/IP stack
does not support dial-on-demand. The batch file must end with a
"del %1" line. In general it is preferable if the TCP/IP stack does support
dial-on-demand. If it does, leave the field in DPPPSet empty. For a more
in-depth discussion of using DPPP on a dial-up ISP connection see
DOCS\SYSOP\DIALUP.TXT.

DPPP translates some special IP addresses in incoming packages from the caller
to different IP addresses or to its built-in Telnet Command Line. The "Special
Address" setting defines which range of IP addresses to use for this
translation. DPPP uses the first three digits of this setting (the last digit
must be "0") to match incoming IP addresses for special handling. If the last
digit of an incoming matching IP address is "0", it connects the caller to the
DPPP built in Telnet Command Line. If the last digit is "2", the incoming IP
address is translated to the IP address of the BBS machine. If the last digit
is "3", the incoming IP address is translated to the configured "Domain Name
Server (DNS)" address. The default "Special Address" setting is 10.0.2.0, so
connections to   get translated to
10.0.2.0         the DPPP built-in Telnet Command Line
10.0.2.2         the actual IP address of the BBS machine
10.0.2.3         the configured DNS IP
This address translation is why a) PA/Net nodes or Internet servers running on
the BBS machine are always accessible to the caller under the IP address
10.0.2.2 and b) callers can always configure their TCP/IP stack to use
10.0.2.3 as DNS address.
Additionally, DPPP answers IP echo requests ("ping") to all IP addresses that
match the first three digits of the "Special Address" setting. It also answers
"ping"s to the IP address of the BBS machines. "Ping"s to other addresses are
emulated using the UDP echo protocol. See DOCS\DPPP.TXT for more detail.
There is one special case with the "Special Address" configuration: If you
fill in 0.0.0.0 here, DPPP forwards all connections to the BBS machine it runs
on, regardless of what the IP address in the package is. You may want to use
this setting if you want to force your callers to go through a Proxy
server on the same machine. With this setting they can not connect directly
out to the Internet. Be aware that in this case even DNS requests will always
go to the BBS host. So your Proxy must either be able to forward them to a
real DNS server, or you must run one yourself on that machine.

You can configure a "Password for Telnet Command Line". If you fill in
something here, callers must know the given password before they can use the
DPPP built-in Telnet Command Line. If you leave the field blank, no password
is required. Defining a password here defeats the use of DPInfo!
Note: The password is case sensitive.

If you configure "Hangup on inactive Callers after" to something different
from 0, DPPP hangs up on the caller, if for that number of minutes there is
neither incoming nor outgoing modem activity.

====================================================================

Accounting Tab

If a callers security level is less than the configured "Minimum Security
Level", DPPP hangs up on him.

To define a user record flag a caller must have set to use DPPP, fill in the
number of that flag (0 to 79) in the "Flag" field. If the caller does not have
that flag set in his user record, DPPP hangs up on him.

The "Each Minute on DPPP counts as" setting is a multiplier for online time
allowance and usage. The default value of 1 means that 1 minute BBS online
time equals 1 minute DPPP online time. A value of for example 2 means that
the caller gets half the online time for DPPP as what the BBS would allow, and
twice the really used online time gets deducted from the callers daily online
time allowance. If launched from an ANSI menu, DPPP uses the online time
allowance PowerBBS tells it the user has, and then divides it by the
configured value.

Additionally you can configure "Credits to deduct for each Minute using DPPP".
If this field is set to a value other than 0, it is the number of credits
to be deducted from the user record per minute. In that case, if the caller
has not enough credits for all of his online time left for today, DPPP limits
his online time according to the credits he has. If he has no credits left,
DPPP hangs up on him. Note: The DPPP "Credits" setting is independent from
wether you run the BBS as a credit system or not. DPPP only cares about what
is configured in DPPPSet. This way you can run DPPP based on credits
accounting (charging per minute online time) even if the rest of your BBS is
not credit based. If the "Credits" setting is 0, DPPP does neither care about
nor alter the credits in the user record.

Note:
DPPP does all the accounting on itself, wether it's launched from PBBS PPP
autodetection or from an ANSI menu. Therefore, if you configure an ANSI menu
to launch DPPP, set the "Time" setting in the ANSI menu definition to "0.0" in
order to avoid charging your callers double for Internet access.

If you use PowerBBS' PPP autodetection, a caller can log in to a PA/Net node
using the same account he uses for the DPPP connection itself. In that case,
DPPP can either deduct online time and credits for both, the PA/Net connection
and the DPPP connection or only for the DPPP connection. The default behaviour
is to only deduct DPPP online time and (if configured) credits, while a PA/Net
connection to the BBS over DPPP is free. If you want to change that behaviour
to deduct online time and credits for both, check the "Deduct BBS Online Time
and Credits ..." box.

Note:
Be careful if your BBS is a credit system or you even sell goods or
services for BBS credits. In that case you may want to check this setting, so
callers don't get your services or goods for free when calling in over DPPP.

The online time for callers of a given security level is counted
per day. There is no provision to limit online time on a per call basis.
Online time a caller does not use on a given day is lost ... unless he stores
it in the Time Bank. Using the TIMEBANK command at the Telnet Command Line, a
caller can store online time he has left in his Time Bank account and withdraw
that time again from his account on another day. In order to do so, the
caller must have at least the configured "Minimum Security Level to use Time
Bank" and the "Maximum Account in Time Bank" must be set to something
different from 0. A caller cannot store more minutes than the configured
"Maximum Account" in his Time Bank account. If the "Maximum Account" is
configured to 0, the Time Bank function is disabled.
If you have "Deduct BBS Online Time and Credits ..." checked, the Telnet
Command Line Time Bank is disabled, in that case the caller has to use a Time
Bank program on the BBS itself.

====================================================================

Protocol Tab

By default, DPPP speaks the Internet standard protocol PPP to the caller. But,
you can also configure it to talk SLIP, at the "Type of Protocol to use" drop
down box. If you configure a line to talk SLIP, it does no longer understand
the PPP protocol. The protocol DPPP is configured to use on that line and the
protocol the caller uses must match.
SLIP comes in two flavours: With or without Van Jacobson IP header
compression. Normally, for SLIP connections, you should choose the "CSLIP or
SLIP" setting, as DPPP then understands both flavours. If there's a
problem with this SLIP/CSLIP autodetection, you can configure it to use
"SLIP only" or "CSLIP only". In that case it does not understand
the other flavour. With SLIP or CSLIP there is no caller authentication and
PowerBBS' PPP autodetection does not kick in. Therefore you can use SLIP only
if DPPP gets launched from an ANSI menu and your callers must use a login
script. During a SLIP login the callers TCP/IP stack may ask him for the IP
address of his machine. He must then enter 10.0.2.15 there.

As all other options on the "Protocol" tab are valid for PPP only, they are
disabled for non-PPP protocol settings.

With PPP, authentication of callers is required per default. Normally CHAP
is used, only when the callers PPP doesn't support that, PAP is used ("CHAP
or PAP" setting). You may switch the authentication option so that "CHAP only"
or "PAP only" is used and the other protocol is disabled. If you switch
authentication to "none", no authentication of the caller is required. You
should not choose "none", if you use PowerBBS' PPP autodetection, as DPPP then
never knows who the caller is and cannot perform most of its functions like
deducting online time, credits etc. You would then give free Internet access
to anyone calling your BBS lines with PPP. You may choose "none", if you
have DPPP launched from an ANSI menu ONLY, but even then it doesn't hurt to
request "CHAP or PAP" authentication from the caller. In case of CHAP the
password the caller uses must match exactly the password in the user base,
which in case of PowerBBS means up to 10 characters in all capitals. In case
of "PAP only" the password is compared case insensitive.

For detailed information about "Address/Control Compression", "Protocol Field
Compression" and "Magic Number Negotiation", please refer to the PPP
definition in RFC 1661 and RFC 1662. Normally you are safe leaving these
options checked, only when dealing with very old or non-standard PPP
implementations at the callers end it may help to play with these.

Normally, DPPP waits for PPP packets to arrive from the caller before it
starts the PPP negotiation process. When checking "Initiate the Sending of
Options" it starts the negotiation process immediately on its own.

Normally, DPPP accepts only 10.0.2.15 as the callers IP address and only the
actual BBS IP address for itself. If you check "Accept local IP Address", it
accepts whatever the caller thinks the DPPP (BBS) IP address should be. If you
check "Accept remote IP address", it accepts whatever the caller wants his own
IP address to be.

Normally, you don't need to fill in Async Map options, but should leave "Allow
Async Map Negotiation" checked, for if the caller requires it. The Async Map
defines characters that are not transfered over the line transparently
but need to be escaped (control characters like XON/XOFF etc.). In case of
DPPP you normally have a 8 bit clean connection, so no characters need to be
escaped. Note: Your modems should use RTS/CTS hardware handshake, NOT
XON/XOFF. Anyway, if there need to be characters escaped, you can define them
in two ways:
The "Async Map" field accepts a long word in hexadecimal notation, where each
bit, when set, represents a character to be escaped. If for example the
XON/XOFF characters 17 and 19 would need to be escaped, you would enter
the hexadecimal number with bit 17 and 19 set at "Async Map" as "A0000".
This way only characters in the range from 0 to 31 can be defined as to be
escaped. Using the "Char's to escape on Transmission" field, you can define
any set of characters in the 0-255 range as to be escaped. The field accepts a
comma separated list of hexadecimal values of characters to escape, or ranges
of character values denoted by a hyphen "-". If for example your link would be
7 bit only, so all characters in the 128-255 range (hexadecimal 80-FF) need to
be escaped, you would fill in "80-FF" to the "Char's to escape on
Transmission" field.

Without compression, each TCP/IP packet has a header of 40 bytes before the
actual data, so in the worst case it would take transfering 41 bytes to
transmit a single keystroke (even worse for cursor keys and such) in a Telnet
session. Van Jacobson (VJ) IP header compression is a way to compress this
header down to 3 bytes in most cases, which is far better than what modem
compression can achieve. So normally you will want to leave the "Allow VJ IP
Header Compression" option checked. Only in case of dealing with a broken PPP
implementation there would be reason to uncheck it. VJ IP Header Compression
stores information per active TCP connection in memory. You can configure the
maximum number of these "VJ Header Slots". The compressed data accesses this
stored information using a connection ID number, which normally is only
transfered if it changes from one packet to the next. You can disable this
part of the VJ IP Header Compression, the "Connection ID Compression",
separately. Again you would only want to do so in case of problems. For
details about the workings of VJ IP Header Compression refer to RFC 1144.
