1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896
|
+--------------+
| REQUIREMENTS |
+--------------+
In order to make use of the xisp package, you need to have ppp-2.2.0f
or newer properly installed on your system. You also need to configure
your modem for verbose result codes (this can be done, e.g. for a US
Robotics Sportster, from within xisp by adding the "V1" command to the
modem init command - details below), and if possible, for reporting
your true connection speed rather than the computer-modem connection
speed (i.e. the DTE<->DCE interface speed). Connection must be reported
via a 'CONNECT xxxxx' string where 'xxxxx' is the speed string, and a
busy phone status must be indicated by the string 'BUSY'. Since version
2.5, the connection string is user modifiable, e.g., strings like
'CARRIER xxxxx' can also be accommodated.
To compile and install this package from the source distribution, you
need a properly installed X11R6 (XFree86-3.1.2 for i386 Linux) or newer,
as well as the forms library (XForms GUI by T.C. Zhao and Mark Overmars)
version 0.88 or later. You can get a copy of this library at:
http://bloch.phys.uwm.edu/xforms or
http://bragg.phys.uwm.edu/xforms
You'll also need a copy of the XPM library (libXpm version 3.4f or later),
if you don't have it already; get this from your favorite public FTP site.
+---------+
| GENERAL |
+---------+
The xisp package implements a user-friendly interface to pppd/chat
and provides maximum feedback from the dial-in and login phases on a
browser screen, as well as a manual login terminal window. It also
provides greater versatility in interrupting a call in progress and in
general enhances the user's feeling of "what's going on", especially
if she/he is not all that well acquainted with the intricacies of
system log files. Furthermore, it incorporates a mechanism to log ISP
connections and calculate/store phone-call costs. It's also much nicer
to look at as compared to connection scripts writing output on the
terminal :) The main application, xisp, relies on a special dialer,
xispdial, which is spawned by pppd in order to perform the dialing,
and a "bare bones" terminal interface, xispterm. For more details on
the workings of xisp, xispdial and xispterm, as well as their
interaction with pppd and chat, see the "ARCHITECTURE" section below.
The other facility provided by xisp is that of maintaining two small
data bases, one for ISPs and one for phone companies (PTTs). The
implementation supports a variable number of records for both data
bases. Each ISP entry, aside from user account name and password,
has space for 8 telephone numbers, two dialing parameters determining
number of dialing tries and inter-dialing delay, sixteen user
customizable script lines for the chat program, and a wealth of dialing
and pppd options to cover most communication needs. All ISP data base
information is saved in the xisp resource control file (.xisprc) in the
user's home directory. The phone company database supports all (known)
PTT attributes applicable while logging phone-call costs, and saves its
information in a separate file, in sub directory .xisplogs, in the
user's home directory. For details on the user interface look in the
"USER INTERFACE" section below. As of version 1.9, the .xisprc file
converter (xisprccv) provided with the distribution, understands all
ISP data base formats beginning with version 1.2, and can be used to
upgrade an old .xisprc file to the latest xisp version.
+--------------+
| ARCHITECTURE |
+--------------+
The architecture of the xISP, xispdial and xispterm applications,
and their interaction with pppd and chat is depicted in the
schematic representation below.
+-------------+
| | +-------------+
+-------------+ | | | |
| | | | Exec \| ip-up/ |
| | Exec \| pppd |-------| -down and |
| |---------------| | /| children |
| | /| | | |
| | | | +-------------+
| | +-------------+ | Output
| | /|\ | Exec |
| X-ISP | | | |
| main | --------|-----|------------------
| interface | | | |
| | | Stat | \|/
| | Named | +-------------+
| |/ Pipe \|/ | | +-------------+
| |----------o----| |/ Stat | |
| |\ /|\ | |-------| |
| | | \| xispdial |\ \| xispterm |
| |---------------| |-------| |
| | Dialing | /| | Exec /| |
+-------------+ Environ- | | | +-------------+
| ment | +-------------+ /|\ |
| Exec | /|\ | Script | |
| | | | | |
| | | | | I/O |
| | | | | |
\|/ | Output | \|/ | |
+-------------+ | +-------------+ | \|/
| | | | | +-------------+
| ~/.xisp-up/ | Output | | |/ | |
| -down and |---------- | |-------| |
| children | | chat |\ I/O \| MODEM |
| | | |-------| |
+-------------+ | | /| |
| | +-------------+
+-------------+
The way it works goes like this. When an ISP is selected in xISP,
a dialing environment file (.xispenv) is created in the user's
home directory. The file contains all the information needed by
xispdial in order to complete the dial, for example, the user account
name, the password, the phone numbers to dial, and the script lines
containing the special prompts used by the ISP during login. Then,
pppd is started, with xispdial as its connect program. pppd then
starts xispdial, which reads the dialing environment file, stores all
the info internally and deletes the file. xispdial then proceeds to
make the connection using chat. All output from chat as well as any
report messages from xispdial are conveyed to xISP via a named pipe
residing (by default) in /tmp (.xisppipe.<username>). After connection,
and in the case that a manual login window is selected as desirable via
xisp, xispdial starts xispterm, giving it control of the modem. The user
can then login manually, and at the end to choose whether to complete
successfully or to abort the connection. When a PPP interface is set
up, and in the case that the ip-up/ip-down feature is used (read the
pppd(8) manual page for detailed information on ip-up/ip-down), all
output from ip-up and/or ip-down as well as from any processes spawned
by them (read the ip-up and ip-down example scripts distributed with
xisp) appears on the xisp browser window. Furthermore, as of version
2.1, the supplied ip-up/ip-down scripts include DNS server selection
capabilities on a per ISP basis, manipulating /etc/resolv.conf with
DNS information passed on by xisp. In addition to ip-up/ip-down support,
and as of version 2.3, xisp has the added capability of executing files
.xisp-up or .xisp-down in the user's home directory, if they exist when
the PPP link is setup or torn down respectively. Details on their use
are included in the sample.xisp-up and sample.xisp-down files supplied
with the xisp distribution. The link status, once a PPP link is
set up, is monitored by xisp every 15 seconds. If for some reason the
link drops, the status on your xisp window will be updated in at most
15 seconds, at which time the "Connect" button will be activated again
enabling you to redial for a new connection. If automatic redialing is
selected, xisp will attempt to restore the connection by redialing the
selected ISP. If PAP is selected for password authentication, xisp
passes the username and password to pppd (ver. 2.2.0f) using the +ua
option, via the .xisppap temporary file in the user's home directory.
This file is generated just prior to launching pppd and is deleted after
pppd forks to put itself in the background, hence remaining in the
user's home directory for only a split second on a lightly loaded system.
In the case that PAP-Secrets (PAP using the pap-secrets file) is selected,
the username and remote-name specified within xisp are passed on to pppd
via the 'user' and 'remotename' options, while if CHAP-Secrets (CHAP
using the chap-secrets file) is selected, host and remote-host names are
passed to pppd via the 'name' and 'remotename' pppd options. For both
PAP-Secrets and CHAP-Secrets, appropriate entries must exist in files
pap-secrets and chap-secrets respectively (read the pppd(8) manual
page for syntax and details on their use). If pppd version 2.3.x is
used with xisp, special option files called "xisp_<device>" (where
<device> stands for your modem serial port(s)) must be installed in
directory /etc/ppp/peers, while xisp starts pppd with the additional
option "call xisp_<device>". The default peer information file generated
when installing xisp is "xisp_modem" and corresponds to the "/dev/modem"
special device. Read the "PPPD 2.3.x PEER FILES" section below for
details.
+----------------+
| USER INTERFACE |
+----------------+
When started, xisp displays a form with four buttons, three menus and
a drop-choice list. Normally, in order to commence dialing, an ISP must
be selected. The one selected by default right after startup is the
first entry in the list of ISPs, or the one set as "Default ISP" from
within the "Account Information" form. All defined ISPs appear in the
drop list, for quick selection. The "Quit" button is always activated.
The other button activated at this time is the "Connect" button. After
a connection is initiated, and up until a PPP link is established,
"Connect" is deactivated while "Interrupt" is activated. After a link
is established, "Interrupt" is deactivated and "Disconnect" is
activated. The "Help" menu selection is self explanatory, I guess :).
The "Options" menu contains five items, "Account Information", "Dialing
and Login", "Communication Options", "TCP/IP Options" and "Paths Setup".
"Account Information"
Brings up a list of ISP accounts to choose from, allowing editing
of their properties. It also contains five input fields, one set
of check buttons, one set of radio buttons, and four push buttons.
The first time xisp is executed all ISP names will be blank. One can
add an ISP entry by pressing the "Add" button. You can also create
new entries by selecting existing entries, copying them by pressing
the "Copy" button, and pasting them by pressing the "Paste" button.
When adding or pasting entries, the new entry is always appended to
the existing list of ISPs. Edit the ISP name by double-clicking on
an entry in the list. The selected ISP can be set as the default
selection upon xisp startup, by enabling the "Default ISP" check-
button. If you want xisp to dial this ISP entry automatically after
it starts up, enable the "Auto-dial upon startup" check-button. If
you desire automatic re-dialing of dropped PPP connections to the
selected ISP, enable the "Re-dial dropped links" check-button. Note
that, contrary to the default ISP selection, auto-dialing and re-
dialing of dropped links are per-ISP attributes. The first of five
input fields contains the list of phone numbers to dial for the
selected ISP, the second is the user account name to use, and the
third is the password. The radio buttons enable use of password
authentication via PAP or CHAP, both via the pap-secrets and chap-
secrets pppd files. PAP without using the pap-secrets file, i.e. via
the +ua option is supported only for pppd version 2.2. Since this
option was removed starting with pppd version 2.3, this selection
will be marked as unavailable when using xisp with pppd version 2.3
or later. The fourth input field contains the argument to the 'user'
or 'name' argument to pppd, and the fifth contains the argument to
the 'remotename' pppd option. Note that when any one of two available
authentication methods is selected, any user script lines entered
via the "Dialing and Login" menu, are ignored. In the phone number
input field, more than one telephone numbers, and up to a total of 8
can be entered by separating them with the semicolon (';') character.
The total length of each phone number is currently limited to 32
characters. A brief note on password security is in order here. The
plaintext password entered in the "Password" input field is encoded
using encrypt(3) with a key saved in the xisp executable. This key
is itself scrambled so that it is not visible in the xisp binary.
Since any one having access to the source can eventually come up
with the key used, and potentially decode users' .xisprc entries
yielding the plaintext ISP passwords, system administrators
installing xisp are urged to change the key employed. For more
details, read the SECURITY file included with the xisp distribution.
"Dialing and Login"
Brings up a window with fields for entering the three dialing
parameters, namely the number of dialing tries, the inter-dialing
delay and the maximum time to wait for modem connection, as well
as up to sixteen user customizable script lines. It also enables the
launching of a manual login window after a connection is established,
the size of which can be specified via the "Terminal columns:" and
"rows:" input fields, or enables ISP server call-back and editing of
up to sixteen user customizable call-back script lines. In xisp
version 2.6 and later, a manual login terminal window can be enabled
for the call-back connection, independently of the one selected for
the dial-in phase. All numeric input fields are straight forward;
the default values should be adequate for most cases. The sub-form
for editing the call-back script is activated by pressing the "Call-
back Options" button, which is enabled only if you specify that the
"ISP server will call back" via the corresponding radio button. This
form also includes a field for entering the time to wait for the
call-back connection, a terminal size if a manual terminal login is
selected for the call-back phase, or a telephone number (that is,
our phone number) to be called by an NT-RAS call-back server (this
last option requires a patched version of the pppd daemon -- check
section "NT-RAS CALL-BACK SUPPORT" below for details). The script
section, both for dial-in and call-back, is divided into "Expect:"
and "Send:" sections, as used by the call to the chat(8) command.
Here the user must enter the script lines used by chat to successfully
negotiate a login for the particular ISP. Dial-in/call-back script
lines are not used when manual login or authenticated (PAP,CHAP)
login is selected. However, it is possible to use call-back with
authenticated login. For detailed script-line syntax and various
examples please read the chat(8) manual page. The following simple
example should give you an idea. Let us assume that the ISP of
interest employs a terminal server which prompts the user with
'Username:', then with 'Password:' and then gives the server prompt,
a single '>', at which point the user must type 'ppp' and press enter.
The user customizable expect-send pairs for the above procedure would
be:
Expect: Send:
ername:--ername: %U
ssword: %P
>--> ppp
Note the special "%U" and "%P" variables in the script lines. "%U"
is (quite obviously) replaced by your user account name (by the
xisp program when it creates the dialing environment file), and "%P"
by your password. A maximum of one "%U" and one "%P" can exist in
either section (expect or send) of each script line. Entering more
will make xisp print a message and abort the dial. All special
escape characters supported by chat(8) (e.g. \n, \r etc.) can be
entered in either the the "expect" or the "send" portion of a script
line. In xisp versions prior to 2.5p3, any such special characters
would have to be escaped by preceding them with an extra '\'. This
is no longer needed as all characters beginning with '\' are now
automatically handled by xispdial. Note that since version 1.9 of
xisp, when the script lines were divided into "Expect:" and "Send:"
sections, you no longer need to enclose commands including spaces
with single quotes. As an example, if at the end of the login session
you start PPP using the command "ppp /compress", in versions prior
to 1.9 you would need to enclose the command in single quotes and
enter your script line as ">--> 'ppp /compress'" in the above
example. For versions 1.9 and later this is not necessary, as
expect-send pairs are automatically quoted before being passed on
to chat.
"Communication Options"
Brings up a window with eight input fields and five sets of radio
buttons. The "Device" input field is for selecting the special
device file referring to the modem port, /dev/modem being the
default. The input field named "Reset" contains the modem reset
string, the field named "Init" enables customization of the modem
initialization string (before dialing), and the "Connect String"
field allows modification of the string by which the modem employed
reports the connection speed. The default reset string is "ATZ"
which should work with most modems. The default initialization
string is a simple "AT" command, to which you could add, e.g. when
using a USR modem, an "M0" to disable the speaker during modem
operation. Note that xispdial appends an "H0" to the user defined
initialization string. Note here that you can use command sequences
which begin with '\' in the modem "Reset" and/or "Init" strings, but
you have to prepend them with an extra '\': e.g. if you want to enter
"AT \N2" in the modem init string, you need to enter "AT \\N2" in
the "Init:" input field. The string used for modem connection speed
reporting is by default assumed to be "CONNECT". The sets of radio
buttons enable selection of modem port (i.e. DCE<->DTE interface)
speed, port flow control used (hardware or software), dialing mode
(tone, pulse, ISDN) and type of software compression. The "Dialing
extras" input field allows defining extra command characters (up to
8 in total) to be inserted between "AT" and "D" when dialing. The
"SW Compression" section allows you to choose one of two compression
methods available, or to turn compression off completely. Note that
"BSD" compression will only work of your PPP subsystem was built to
support it; on ix86 Linux systems this happens if you build PPP
support as a kernel module. The "Level" input field is the transmit
and receive compression level as explained in the pppd(8) manual page,
having a default value of 12. The last two input fields enable
selection of the asyncmap and escape options provided by pppd; see
the pppd(8) manual page for details on their function. The vast
majority of dialup setups won't need the escape parameter, and that
is the reason why it is off by default. The value of asyncmap, on the
other hand, is automatically adjusted by your selection of flow
control, i.e. whenever you change flow control type, the default
value for asyncmap is inserted in the input field. Although the two
default values should be adequate for general use, you can modify
them further, to suit your needs.
"TCP/IP Options"
Brings up a window with seven input fields and four sets of radio
buttons. With the exception of the primary and secondary DNS server
entries, all remaining fields in this form are options which should
only be changed if you understand their function; the default values
are what you would need for your typical ISP connection. Please
refer to the pppd(8) manual page for reading details on the function
of these parameters, when you need to change their values. The last
set of radio buttons enables DNS support via the ip-up and ip-down
scripts, allowing the user to enter IP addresses for a primary and
(possibly) a secondary DNS server. The ip-up and ip-down scripts
normally reside in /etc/ppp, and are automatically invoked by pppd
when the link is set-up and torn-down respectively. Enabling this
option will instruct xisp to do two things. Firstly, to call pppd
with the extra option 'ipparam', passing a string as a sixth
argument to ip-up and ip-down; this string contains the name of the
pipe node from which xisp reads xispdial output, the description
string entered via the "Account Information" form, and the primary
(and possibly secondary) DNS server IP addresses entered via the
corresponding input fields. Secondly, to read extra input from the
named pipe node, after xispdial terminates, effectively writing any
output from ip-up and ip-down to the xisp browser. The ip-up and
ip-down scripts provided with xisp, must be installed in /etc/ppp
for the xisp DNS settings to have any effect. Both ip-up and
ip-down include user customizable sections for performing tasks
like, for example, downloading mail or news, on a per ISP basis.
"Paths Setup"
Enables editing the paths to a) the pppd daemon, b) the location
where pppd saves its process ID files, c) the chat utility, d) the
xispdial and xispterm utilities and e) the location where xisp shall
keep the named pipe node used for communicating with its components.
All five paths are entered in corresponding input fields. For the
first four, the "Default" button restores the path to its built-in
default value specified during compilation. The "Status:" field
beside each one of the first four entries will contain "OK" if the
program binaries are indeed found in the specified path, or "Error"
otherwise. IMPORTANT NOTE: the last path, i.e. the path to the
named-pipe node, should NOT be on an NFS mounted filesystem.
The "Logging" menu contains two items, "Logging Options" and
"Statistics".
"Logging Options"
Brings up a window with two sets of radio buttons, two drop
choice lists, three buttons for phone company (PTT) manipulation,
and an information display browser. The radio button set for the
"OnLine Counter", enables selection of either "time in seconds"
or "call charge" in local currency, as display option on the main
program window. The other set of radio buttons enables selection of
the logging period, affecting the file names of log files in the
xisp logging directory $HOME/.xisplogs. Unless "None" is selected,
two logging files are kept. One keeps track of the total time (in
seconds) spent online as well as the total number of units charged
(in the case when the chosen phone company charging method is "per
minute" rather than "in units", this number is the total cost
instead). The other log file keeps ISP connection logs for the
desired logging period. The first file has the base name "xispcost"
and suffixes of ".W<week number>", ".<abbr. month>" or
".B<month-pair number>", depending on whether "Weekly", "Monthly"
or "Bimonthly" logging is selected. The second log file has base
name "xisplog" and the same suffix as the first one. As an
example, for date "Fri Sep 26 17:08:39 EET DST 1997", the suffixes
would be ".W39", ".Sep" or ".B5" corresponding to "Weekly",
"Monthly" or "Bimonthly" logging periods. Whenever the phone
company and/or the logging period is changed, the old log file
is renamed to <the old name>.bak, and a new one is created.
The two drop choice lists are for selecting one of the supported
phone companies and the charging zone from the zones defined for
that company. The "Edit PTT" button brings up the PTT editor form
for the selected PTT. This editor has its own help text, describing
the usage of all supported PTT information fields, and explaining
how user information is employed by the PTT tariff calculations.
This help text is also included here, in section "PTT Editor" below.
The "Add PTT" button creates a new phone company entry in file
$HOME/.xisplogs/xispPTTs, prompting the user for the new PTT name,
and then starting the PTT editor. The "Remove PTT" button removes
the PTT entry currently selected. The information browser displays
charging method and costs for all zones and time-of-day categories
defined for the currently selected PTT. These categories are simply
different charging tariffs used by the phone company for different
times of day and night.
"Statistics"
Displays time/cost information collected in the xispcost.* files,
according to the logging period selected. It displays the number of
online seconds and total cost for each period on a text browser,
and also displays a bar chart of costs for each corresponding
period, and a pie chart with the yearly cost breakdown per period.
The bar chart uses yellow color for the periods prior to the current
one, white for the current period and dark cyan for the remaining
periods up to the end of the current year. These remaining periods
are assumed to belong to cost information collected during the
previous year. For this reason, two different total time and cost
values are calculated and displayed on the text browser, one for
the periods up to and including the current one, and one for the
remaining periods to the end of the year. The pie chart employs
alternating yellow and dark cyan colors for clarity; the slice
corresponding to the current period is white. Note that this menu
option is active only if connection logs have been enabled from
"Logging Options".
"PTT Editor"
This form enables editing the phone company information maintained
by xisp. With the exception of the first three input fields (the
PTT name, the number of charging zones defined for this PTT and
the number of tariff categories per zone), all information is split
up in three sections. Section "PTT charges" includes general
information on PTT charging method and currency. Section "Zone
information" enables editing the names and attributes of charging
zones for the selected PTT. Last, "Category rules" enables editing
the tariff categories (or otherwise termed "rules") for each zone.
Tariff categories are comprised of a (complex attribute) rule and a
cost value. If the rule applies, then the cost value is applied.
The application of a rule depends on whether or not the attributes
for this rule apply to the current calendar date and/or time. Note
that the PTT tariff calculation engine in xisp searches zone
categories in a first to last sequence, and applies THE FIRST
matching rule ONLY. This should be kept in mind when writing and/or
modifying category rules for a PTT entry. In the following
paragraphs, the functionality of each field on the PTT editor form
is described. Also note that in the text below, the "|" character
is used as a short-hand for the word "or".
General:
--------
PTT name:
Enables changing the name string for the selected PTT.
Charging zones:
Used to specify the number of charging zones supported by the
selected PTT entry.
Categories/zone:
Specifies the number of tariff categories (or rules) for each
charging zone.
PTT charges:
------------
By unit:
Specifies that the selected PTT charges its customers by a
"unit" which costs a fixed amount of money. The rate (in seconds)
at which such units are charged changes according to tariff rules.
Minimum units:
The minimum number of units charged for a call. This should not
be confused with the "quantization" used by PTTs which charge
"by unit". I.e. if the selected PTT charges a minimum of one unit
per phone-call, don't put "1" in this input field, as this will
result in 2 units being recorded by xisp for every short call
you make. The PTT charges you with a single unit even if you don't
consume the time corresponding to one unit during your short call.
Per minute:
Specifies that the selected PTT charges its customers by the
minute. This also implies that the quantization in time
measurement (and consequently charging) by the PTT is set to 60
seconds. I.e. even even if your call lasts 23 seconds, you'll be
charged for one minute.
Minimum cost:
This field is enabled both for "Per minute" and "Per second(s)"
charging schemes. It specifies the minimum amount of money charged
by the selected PTT for each phone-call. This minimum charge may
correspond to a certain amount of time in a linear relationship
fashion, or it may not (i.e. minimum charge-time is non linear --
also see the "Zone Information" section).
Per second(s):
Specifies that the selected PTT charges its customers by a fixed
number of seconds.
Period:
The charging period in number of seconds for "Per second(s)"
charging schemes.
Price/(unit|minute):
The price in local currency for either each "unit", or for one
minute if the charging scheme is "Per minute" or "Per second(s)".
Currency:
The local currency string for the selected PTT.
Decimal digits for bill printouts:
The number of decimal digits desired for saving/printing billing
information in xisp's forms and log files.
Currency placement:
Specify "Left" or "Right" for the desired location of the
currency string when printing out PTT charges.
Zone information:
-----------------
Zone:
Use this browser to select a zone for browsing/editing its
information, by clicking on a line. Double-click to edit the zone
name.
Default tariff:
Specifies the default tariff. For "By unit" charging schemes
it is measured in seconds per unit. For "Per minute" and "Per
second(s)" charging schemes, it is measured in the currency
specified in the "Currency" field, per minute.
Minimum charge time length:
This field is defined only for "Per minute" and "Per second(s)"
charging schemes. It specifies the fixed amount of time for which
the "Minimum cost" applies. This can either be "Linear", in which
case the "Minimum cost" lasts for time equal to the ratio of its
cost value over 60, times its "Price/minute", or "Non-linear", in
which case a fixed time length can be specified for each zone.
Length for this zone (seconds):
When the "Minimum charge time length" is non-linear, the "Minimum
cost" shall last for the specified number of seconds, when the
selected charging zone is in effect. As expected, this field is
defined only for "Per minute" and "Per second(s)" charging
schemes.
Extra discount for this zone:
Specifies whether or not there is any special discount for the
selected zone. If "Yes", the discount specified in "Discount" as
a percentage of the full charge, will be applied if the phone-
call start time is not between the specified starting and ending
period within the 24-hour day. This field is not defined for "By
unit charging schemes".
Category rules:
---------------
Category number:
Using this counter, select the category (or otherwise "rule")
number which you wish to browse or edit.
Category type:
Specifies the type of the selected rule. "Weekday-special" and
"Weekend-special" are used to specify reduced tariffs for dates
during the calendar year, usually falling between two holiday
dates, or within a holiday season. An example could be the
weekend between Christmas and New Year's eve. "Holiday-absolute"
is used for fixed holiday dates in the calendar year, like for
example, national holidays. "Holiday-relative" is used for
specifying holidays relative to (Catholic) Easter Sunday which
is specified with index number "0". Good Friday is specified as
"-2" while Pentecost as "50".
Apply zone discount:
Allows or disallows application of "Discount" (from "Zone
information" above) to this rule. This facility is not defined
for "By unit" charging schemes.
Zero minimum charge time length:
Allows inhibiting application of the minimum charge time length
to this rule. This is for accommodating cases whereby "Minimum
cost" is applied to each phone-call WITHOUT being linked to a
specified charge time length, i.e. when the selected PTT charges
"Minimum cost" as a base and adds to it the amount corresponding
to the time the call lasts. This facility is not defined for "By
unit" charging schemes.
Rule tariff:
Specifies the rule tariff. For "By unit" charging schemes it
is measured in seconds per unit. For "Per minute" and "Per
second(s)" charging schemes it is measured in the currency
specified in the "Currency" field, per minute.
Rule date:
For "Holiday-absolute" specifies the calendar date only. For
"Weekday-special" and "Weekend-special" you also need to specify
the "End date", as the "Calendar date" is the starting date in
this case. For "Holiday-relative", specify the relative date in
the "Day relative to Easter Sunday" field.
Rule start time and Rule end time:
The starting and ending time during which the selected rule
applies. Note that the time interval includes the "Rule start
time" but not the "Rule end time", i.e. for specifying that a
rule applies from 08:00:00 to 10:59:59 inclusive, start time
would be entered as 08:00:00 and ending time as 11:00:00. This
follows standard PTT conventions with regards to changes in
tariff as a function of time within the 24-hour day.
The main window includes one status and three connection indicators.
the status indicator appears below the program icon, indicating the
current interface state. There are three distinct states: "OFF-LINE"
for "disconnected", "XISPDIAL" indicating that dialing is in progress
and "ON-LINE". The "Assigned IP Address:" indicator prints the IP
address assigned to your PPP interface after successfully establishing
a link. The "Modem Speed:" indicator prints the speed as returned by
the modem connection-speed string, and the "Time On-Line"/"Call Charges"
indicator measures your connection time or charges with a resolution
of five seconds. The measured time (or sum of charges) will remain
there after disconnection, until a new dialing sequence is initiated.
The IP address can be selected for later pasting in some other window
by clicking the left mouse button on the IP readout. Clicking again
deselects it.
+---------+
| SIGNALS |
+---------+
The following signals have the specified effect when sent to the xisp
process using the kill(1) command:
SIGINT,SIGTERM: The xisp process is terminated and the PPP link is
disconnected.
SIGUSR1: If xisp is in the disconnected state, sending it this
signal is equivalent to pressing the "Connect" button.
If xisp is either dialing or in the connected state,
this signal has no effect.
SIGUSR2: If xisp is dialing, sending it this signal is
equivalent to pressing the "Interrupt" button, and if
xisp is in the connected state, it is equivalent to
pressing "Disconnect". If xisp is in the disconnected
state, this signal has no effect.
Look in contrib/README and contrib/.fvwm2rc.add for an example on how
this feature could be used to control xisp from a window-manager menu.
+----------+
| XISPDIAL |
+----------+
The script employed by xispdial for the connection is the
concatenation of its internal script, and the user customizable script
lines entered via xisp. The internal script used is the following:
TIMEOUT 3
ABORT BUSY
ABORT 'NO CARRIER'
ABORT 'NO DIALTONE'
ABORT enied
ABORT imeout
'' 'AT <dial extras>D<dialing method> <the phone number>'
TIMEOUT <maximum wait for connection>
<connect str> \c
TIMEOUT 5
\r \c
The "connect str" is the string returned by your modem upon connection
(it's "CONNECT" for a US Robotics Sportster, but it might be the word
"CARRIER" for your modem; please consult with your modem's user manual).
As seen above, the timeout value after connection is set to 5 seconds.
If for some reason it takes more than that to log into a system, one
could specify a new timeout value in the user script lines. For
instance, in the example given in the previous section, if it takes 6
seconds for a prompt from the terminal server in question, the user
customizable expect-send pairs could be:
Expect: Send:
ername:--ername: %U
ssword: %P
TIMEOUT 10
>--> ppp
allowing 10 (6 + an extra 4) seconds for receiving the '>' character.
If call-back is selected, the following script is appended to the
concatenation of user customizable script lines and a modified version
of the internal script:
TIMEOUT <delay for call-back connection>
RING ATA
TIMEOUT 30
<connect str> \c
TIMEOUT 5
\r \c
And following that, the user call-back script lines are appended to it.
This instructs chat to wait the user-specified delay time for a "RING"
from the modem, to make it pick up the phone and try to connect to the
server dialing back, waiting at most 30 seconds for the modems to
negotiate connection speed, and then to use the login procedure
specified in the call-back script. The dial-in internal script is
modified by deleting the
ABORT 'NO CARRIER'
expect-send pair, since the carrier drops when the remote side hangs-up
prior to calling back.
+----------+
| XISPTERM |
+----------+
xispterm is a stripped-down version of a terminal emulation program
which is used by xispdial as a manual login window. It only understands
the backspace (^H) and kill (^U) control characters, but it gets the
job done! Also note that it can also be used independently as a quick
pppd dialer as follows. Stick all your pppd options in a file, and then
invoke pppd with xispterm as dialer and your file as the options file.
If, for example, you saved the options in a file called "myopts", and
xispterm resides in the directory /usr/lib/ppp/xispterm, the command
line to invoke pppd would be:
pppd file myopts connect /usr/lib/ppp/xispterm
Then, you could talk directly to your modem, dial a number with an AT
command, once connected you would login to your ISP and start PPP on
the remote end, and then you would press the "Continue" button to tell
pppd that all is OK for setting up the link. Pressing "Abort" would
terminate pppd and your connection along with it.
+----------+
| XISPRCCV |
+----------+
xisprccv is a .xisprc file converter for version 1.2 and up to the
current version, and it is run without arguments. Before performing the
upgrade, it creates a backup copy of the user's .xisprc file in her/his
home directory, with a '-V.R' suffix, where 'V' is the version and 'R'
the revision number.
+-----------------------+
| PPPD 2.3.x PEER FILES |
+-----------------------+
To accommodate the changes in pppd versions 2.3.x and later for which
bidirectional authentication is turned on by default (as specified by
default use of the "auth" option in directory /etc/ppp/options), special
peer information files called "xisp_<device>" (where <device> stands for
your modem serial port(s) without the "/dev/" prefix) are installed by
xisp in directory /etc/ppp/peers. In these files, bidirectional
authentication is turned off via the "noauth" pppd option. However, this
has the following two side effects: it makes the modem device file
specification, and the use of the "connect" pppd option, privileged
options. For resolving the former, the modem device is specified in each
"xisp_<device>" peer file, while for the latter, a "call xisp_dialer"
option in each "xisp_<device>" file, reads-in the second special peer file
which sets xisp's dedicated dialer. When the modem device is changed from
within xisp's "Communication Options" form, or when the path to xispdial
is changed in the "Paths Setup" form, special information dialogs inform
the user that he/she should check whether the appropriate "xisp_<device>"
file exists, or that the path to xispdial is correctly defined in
"xisp_dialer", respectively. When xisp starts pppd 2.3.x, it does
so using the option "call xisp_<device>", where "<device>" is the modem
device entered in the "Communication Options" form, without the "/dev/"
prefix. The default peer information file generated when installing xisp
is "xisp_modem" and it corresponds to the "/dev/modem" special device.
In summary:
- If you change the location of the xispdial binary, make sure you edit
/etc/ppp/peers/xisp_dialer and update the path to xispdial.
- If you install a new modem on a serial device on your system, make
a copy of your existing "xisp_<device>" file for the new device, and
the edit it to update the device name.
Both "xisp_modem" and "xisp_dialer", installed by default in directory
/etc/ppp/peers, contain helpful comments to aid you in editing their
contents; xisp will prompt you with suggestions on when that needs to
be done.
+--------------------------+
| NT-RAS CALL-BACK SUPPORT |
+--------------------------+
In order for NT-RAS call-back to work you need:
1. To have a patched version of pppd which includes support for NT-RAS
call-back. Patches exist for relatively old (e.g. 2.2.0f), as well
as for recent (e.g. 2.3.8) versions of pppd. The xisp source
distribution includes a patch for pppd-2.2.0f in subdirectory
./contrib; the patch for version 2.3.x is included in the official
pppd source distribution (files README.cbcp and README.mschap80
include all necessary information/instructions).
2. If the NT box is part of a domain and your account is a domain
(as opposed to a local) account, then the user name both in xisp's
"User/Name:" input field ("Account Information" form), and in pppd's
/etc/ppp/chap-secrets file, must include the domain name. Assuming
for example that the domain name is "MYDOMAIN" and the user name is
"dbouras", the "User/Name:" input field must contain:
MYDOMAIN\dbouras
while the "Remotename:" input field may contain the word:
ras
In such a case, the /etc/ppp/chap-secrets file must contain
the following two entries:
MYDOMAIN\\dbouras ras my_password
ras MYDOMAIN\\dbouras my_password
NOTES: - the double backslash between NT domain name and user
account name above is NOT a typogrpahical mistake; it
needs to be that way in file /etc/ppp/chap-secrets.
contrary to this, in the "User/Name:" input field you
need only one backslash
- the remote name "ras" can be anything you choose
since it is ignored at the NT side. However, it must
be the same in the "Remotename:" input field in the
"Account Information" form, and in the two lines in
file /etc/ppp/chap-secrets.
3. If your NT account is local to the RAS server (and it has dial-in
privileges), then you don't need to specify the domain name in
xisp's "User/Name:" input field, nor in file /etc/ppp/chap-secrets.
In such a case and for the above example, the entries in file
/etc/chap-secrets would be:
dbouras ras my_password
ras dbouras my_password
while the "User/Name:" input field should contain simply the account
name "dbouras".
NT-RAS call-back support was introduced with xisp version 2.6 and it
was tested both with pppd-2.2.0f and pppd-2.3.5.
+----------------+
| TESTED SYSTEMS |
+----------------+
I have personally built and tested xISP under Linux-ix86 kernel
versions 2.0.28 - 2.0.35, as well as 2.2.3 - 2.2.7, ppp-2.2.0f
and ppp-2.3.5, libforms.so.0.88 with X11R6 libX11.so.6.0 as well as
X11R6.1/X11R6.3 libX11.so.6.1. The modems used were two US Robotics
Sportster models, one at 28,800 Baud and one supporting 56K Baud (V90).
xISP versions 2.2 and later were also tested under SunOS-4.1.4,
ppp-2.2, libforms.so.0.88 with X11R6 libX11.so.4.20 and X11R6.1/X11R6.3
libX11.so.4.30. Versions 2.5 and later were additionally tested
under Solaris-2.5, ppp-2.3.5, libforms.so.0.88 with X11R6
libX11.so.4.20, using two US Robotics Sportster modems, a 14,400
Baud and a 33,600 Baud model.
+--------+
| AUTHOR |
+--------+
The author of xisp can be reached at:
+----------------------+----------------------------------------------+
| Dimitrios P. Bouras | Voice: +30-1-895-6380 or +30-1-895-3552 |
| 16 El. Venizelou St. | E-Mail: dbouras@hol.gr, d.bouras@ieee.org |
| 166 73 Athens | dbouras@atmel.gr, dimitri@ece.ubc.ca |
| GREECE | Web: http://users.hol.gr/~dbouras |
+----------------------+----------------------------------------------+
|