XCept Version 3.0

Copyright (c) 1995 IMMD IV (Operating Systems),
	Universitt Erlangen-Nrnberg, Germany.
Copyright (c) 1994, Department of Computer Science IV (Operating Systems), 
          University of Erlangen-Nrnberg, Germany.
Copyright (c) 1992, 1993 Arno Augustin, Frank Hoering, 
          University of Erlangen-Nrnberg, Germany.
All rights reserved.


Non-commercial, i.e. private and academic, redistribution and use in source
and binary forms, with or without modification, are permitted provided that
the following conditions are met:
1. Redistributions of source code must retain the above copyright
   notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
   notice, this list of conditions and the following disclaimer in the
   documentation and/or other materials provided with the distribution.
3. All advertising materials mentioning features or use of this software
   must display the following acknowledgement:
	This product includes software developed by the Department of
         Computer Science IV (Operating Systems), University of
	Erlangen-Nrnberg, Germany.
4. Neither the name of the University nor the names of its contributors
   may be used to endorse or promote products derived from this software
   without specific prior written permission.

All other kinds of redistribution and use, especially commercially, are
subject to license agreements, details of which are available on request
(contact: 
                Dipl.-Inf. Dirk Husemann
                Universitt Erlangen-Nrnberg
                IMMD IV
                Martensstrae 1
                D-91058 Erlangen
                
                Email:  husemann@informatik.uni-erlangen.de
                FAX:    +49 9131 858 732).

THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO
EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


WHAT IS XCEPT?

XCept is an X11 implementation of the CEPT videotext protocol terminal. It
has been extensively tested against the German Telekom's Datex-J/BTX
version of the CEPT videotext service.

This is the third major release of this software: XCept now utilizes the
Tcl/Tk script language --- the archaic script language of pre-3.0 versions
has been dropped. You can now redesign XCept's Control Panel, add buttons
to do specific scripts, use the full power of the Tcl script language to
controll XCept and access the information provided by the CEPT service
(e.g. German Telekom's Datex-J). In addition, the initialization script of
ceptd has been converted to tcl also. This will allow you to support both
ISDN and modem based access from one ceptd server, and also to support more
then one modem line. 

WHAT ARE XCept's CAPABILITIES?

XCept supports

     o  color and black & white displays

     o  multiple server, multiple clients (though at any given time only
        one client can be served by one server)

     o  Full Tcl/Tk scripting (customized XCept Control Panels, key
        bindings, ...)

     o  accounting (connect time and user)

     o  allow files (users, machines, and user@machine)

     o  session logging & off-line playback

     o  saving CEPT pages as ASCII or PBM (even if in black & white mode
        with all the original color information preserved)

     o  background mode (i.e. no X11 display is opened or needed) for
        automated retrieval

     o  Tcl controlled modem configuration file

     o  access over modem or ISDN

     o  the server can use multiple modems and ISDN

     o	UUCP style locking

     o  Software downloading


WHAT DO YOU NEED TO RUN Xcept AND Ceptd?

A Unix or Unix-look-alike system (BSD/OS, *BSD, SunOS, Solaris, Irix,
Lunix), a C compiler, Tcl/Tk, a modem, some kind of access to a CEPT
service provider (in Germany for example the Datex-J service of the German
Telekom).


STRUCTURE OF XCEPT

XCept utilizes the well-known client-server paradigm: The server deals with the
link layer protocol and takes care of 
     
     o  talking to the modem

     o  setting up and maintaining the connection to the videotext provider
        (e.g. the BTX-Zentrale of the German Telekom)

     o  dealing with the link layer protocol (OSI-2)

     o  closing down the connection once the videotext session is terminated

The client(s) talk(s) to the server via a TCP connection and take care of the
presentation layer protocol (OSI-6). At the same time the clients entertain the
user interface. Due to the single threaded nature of a CEPT videotext session
only one client can at any given time deal with one server (but one
ceptd can now support many modems and an ISDN interface).


RESTRICTIONS

There are almost none, except those noted in the copyrights: If you want to
use this software commercially we require that you enter a license
agreement with us (see copyright notice above).

N.B. for German users: The German Bundesamt fr Zulassungen in der
Telekommunikation tells us that no BZT approval for software CEPT decoders is
necessary anymore.

You are free to use the software for any purpose you want PROVIDED YOU KEEP
ALL THE COPYRIGHT NOTICES AND THE DISCLAIMERS INTACT AND OBEY AND ADHERE TO
WHAT THEY TELL YOU AND ALLOW AND FORBID YOU TO DO.


HOW TO INSTALL

As of version 3.0 we have merged all makefiles into one. You now only need
to do

   % make targetOS

e.g.

   % make bsdi

The xcept client should compile out of the box 8=) unless you want to set
the default XCept-Server to something different then localhost. But it
might be a good idea to look over xcept's makefile and make sure everything
is, where it's supposed to be.

XCept Version 3.0 should compile and run on BSD systems (e.g. BSD/386), 
SunOS 4.1.x, SysV Rel 4, SGI, Linux, SCO Unix, and Sun Solaris 2.x.


Installing ceptd


Finally create the lib directory (in our example /local/cept/lib), change the
DEST definition in lib/makefile, go into lib and do a

     % make install

TAKE CARE TO FOLLOW THE INSTRUCTIONS THAT THE VARIOUS MAKEFILES MIGHT ADVISE
YOU TO PERFORM.


ADVICE

        o  Some modems need to be told to NOT use the internal buffer
           (AT&M2, or something appropriate for your modem)!
	o  Some modems need to be told to NOT try and connect with compression,
	   use AT&K0 (or something appropriate for your modem),
        o  If using Ceptd and XCept on the same machine, make sure the name
           you're using for the XCept-Server (e.g. 'localhost') is known to
           your machine (i.e. entered into /etc/hosts or DNS)           

ENVIRONMENT VARS

Xcept pays attention to

     XCEPTHOST       which server to use
     XCEPTSCRIPTS    path(s) where scripts might live --- xbtx will look at all
                     the files it finds along the path and if they contain
                     the token `#XCEPT' as the first characters include
                     them in its list of known scripts (which it knows how
                     to locate and which will be included in the `Scripts'
                     menu)

GOODIES

(1) Datex-J-Login: If you use Xcept out-of-the-compiler-and-installed XCept
    will prompt you for your Datex-J-Parameters (Anschlukennung,
    Datex-J-Nummer, Mitbenutzer-Nummer, Pawort) and save that information
    inside your home directory as .xcept-login. Alternatively, you could
    edit the file systemwideLogin.tcl in lib/user of our cept hierarchy and
    enter the appropriate values there --- which would allow everyone on
    using XCept on your system to login in to Datex-J using those
    parameters. ONLY DO THIS IF YOU WANT THIS FUNCTIONALITY!

(2) Per-User-Accounting: You can exit a CEPT-Session by either hitting the
    Quit-Button (which will also quit XCept), hitting the disconnect button
    or pressing the "End" key on your keyboard (provided there's an end key
    on your keyboard, of course). If you use the "End" key you XCept will
    extract the accounting information from Datex-J for that session and
    log it in the file .xcept-account inside your home directory. For
    example,

    09131XYZUW-X 15:25@05.04.95 0:08 DM   2.88 (P: 0.00 T: 2.40 R: 0.00 M: 0.00)

    would tell me, that I closed my last Datex-J session at 15:25 on 5
    April 1995, I was connected for 8 minutes, that session will cost me DM
    2.88, of which DM 2.40 was caused by a time charge (those Bundesbahn
    pages again). P would tell me a page charge, R the charges for regional
    access, M for sending mail.

(3) The "+" key on the keypad part of the keyboard has been bound to send
    "19", the "Page Up" key to go a page back ("*#"), the "Page Down" and
    the "Enter" key to go a page forward ("#"), the "Delete" key to delete
    the last input ("**") --- but, of course, you're free to bind the keys
    to whatever function you like: It's XCept you're dealing with!

    REMEMBER: KEY BINDINGS LIKE THOSE DESCRIBED ABOVE WILL ONLY WORK AS
    LONG AS YOU KEEP THE MOUSE POINTER OVER THE XCept Control Panel! THEY
    WON'T WORK IF THE MOUSE IS OVER THE XCept Terminal WINDOW!!!


WHAT ELSE?

Have fun, take a look at the scripts in lib, enjoy your life, send in bug fixes
and improvements, spread the source, send us money, chocolate, ...



WHERE TO SEND BUGFIXES AND IMPROVEMENTS

I'll be happy to accept improvements and bug fixes. --- and `yes' if you really
don't get along you might try and send me a mail, too (although I certainly don't
guarantee same day response 8=) --- I can't even guarantee that to my PhD
thesis 8=(:

          husemann@informatik.uni-erlangen.de

Going were no man has gone before ...

        Dirk Husemann

Dirk Husemann
University of Erlangen-Nuremberg
Department of Computer Science IV
Martenstrasse 1 	   
D-W 8520 Erlangen, Germany

Dirk.Husemann@informatik.uni-erlangen.de
/C=de/A=d400/P=uni-erlangen/OU=informatik/S=husemann/G=dirk/

