Debian note: This file is the original installation instructions
in french. You may not need this file, which is here for information.

--
                        XTEL 3.0

                Emulateur minitel sous X11

                Pierre Ficheux     09/94


0) Preambule
------------

        Par PITIE, lisez ce fichier avant de vous poser (ou de ME poser) des
question sur l'installation !


	Merci a ceux qui m'ont transmis leurs remarques et problemes sur les 
	versions 2.2/2.3/2.4 et/ou contribue a l'evolution et la diffusion de XTEL :

		Michel.Fingerhut@ircam.fr
		Laurent.Ghys@ircam.fr
		alain@sdv-plurimedia.fr
		combe@greco-prog.fr
		stuart@genethon.fr
		Christophe De Traversay
		Christophe Wolfhugel
		Rene Cougnenc
		Remy Card
		
	Je tiens a remercier particulierement :

	Bernard Fouche (CPIO S.A.) et Florent Pillet (ex CPIO S.A.) pour les 
	multiples corrections de bugs concernant le decodage Videotex.

	Pierre Beyssac (SYSECA) pour:
		
		- l'amelioration du demon xteld
		- l'integration	du code pour utiliser le Minitel 2 comme modem.
		- le code d'utilisation du demon syslogd

	Bertrand Petit pour son floppy de pages d'exemples DRCS.

	Sylvain Meunier pour:

		- les bases du code d'emulation tele-informatique
		- les bases des macros de conversion des fontes BDF en OpenWindows



	Pour connaitre les differences avec la 2.4, voir le fichier HISTOIRE.

	Pour voir ce que donne un ecran XTel, vous pouvez visualiser le fichier
"xtel.gif".

1) Presentation
---------------
1.1) But
--------

        XTEL permet d'emuler un Minitel 2 ou 1B sur un terminal X, ou une station de 
travail couleur, monochrome ou a niveaux de gris.

        Il est utilisable en reseau, c'est a dire qu'une des machines
du reseau commande les MODEMS et dialogue avec les services Teletel, les
utilisateurs de XTEL dialoguent avec cette machine "serveur" par socket 
internet (utilisation d'un service TCP et du super-demon "inetd").

	La version 2.4 et >  permet egalement une utilisation en "local" (sans
package TCP/IP). Cela permet d'utiliser XTel sur des machines autonomes non 
connectees a un reseau. XTel utilise alors des sockets "unix" (AF_UNIX).

        On peut generer XTEL avec 2 toolkits possible :

                - Toolkit Athena 
                - Toolkit OSF-Motif 


	J'utilise XTEL sur Linux 1.1 (xtel et xteld), SunOS 4.1.3, System V 
3.2, SVR4...

	 J'ai teste la partie xtel sur:

		System V 3.2
		Linux 0.99pl13 et >
		SVR4.0
		SunOS 4.1.1 et >
		Solaris 2.3 et >
		DGUX
		
	Pour la partie xteld (en particulier la gestion des lignes series), 
je n'ai *vraiment* teste que sur System V 3.2 et Linux 0.99pl13 et >
                
1.2) Description des repertoires :
----------------------------------

	./		le source de XTEL + des exemples de fichiers de 
			configuration (xtel.lignes, xtel.services)

	./Videotex	le widget Videotex (+ un petit exemple et la doc 
			developpeur)

	./Xsra		le selecteur de fichier pour Athena (venant de SRA, 
			Tokyo, Japon, et deja utilise dans GhostView, Pixmap, 
			etc...)

	./fonts		les fontes

	./bitmaps	bitmaps particuliers a XTEL

	./exemples	quelques pages videotex et DRCS. Voir "arkanoid.vdt"
			qui prouve qu'on peut avoir un look correct avec un 
			M2...

1.3) Methode de simulation des couleurs en monochrome :
-------------------------------------------------------

	Sur un ecran monochrome (1 plan memoire), on simule les 8 couleurs du 
MINITEL en utilisant des "pixmaps" et en les affectant au "stipple" d'ecriture
 (XSetStipple). On passe ainsi la couleur standard d'ecriture (le blanc) au 
travers d'une "passoire" ce qui simule des niveaux de gris (si on utilise la 
version "petit ecran" de XTEL, option -p, certains affichages, de caracteres 
en particulier, ne sont pas tres lisibles).

2) Generation
-------------
        
   La generation de XTEL utilise le systeme des "Imakefile". Les options de 
configurations sont maintenant dans le fichier "Config.tmpl".

   A partir du fichier "Imakefile" fourni sur la distribution, vous 
pouvez alors generer un "Makefile" par :
 
		xmkmf
 
	Puis pour generer la disribution XTEL :

        	make Xtel


   Si tout se passe bien (!!!), vous devez avoir apres le "make all" :

        - xtel          client XTEL
        - xteld         demon lance sur la machine "serveur"
        - les fontes    fonts/*.snf si X11R4, fonts/*.pcf si X11R5
	- les fichiers uid si vous utilisez Motif

3) Installation et configuration
--------------------------------
3.1) Introduction
-----------------
        
   La configuration de XTEL se decompose en :

        1) installation et configuration du demon "xteld" sur la machine 
        serveur (ou bien sur la machine locale dans le cas de la version
	sans reseau)
        
        2) installation du client "xtel" sur toutes les machines du reseau 
desirant l'utiliser

3.2) Installation du demon "xteld"
----------------------------------
        
    Cette installation s'effectue sur la machine serveur (supportant le(s)
Modem(s)) . Si la machine serveur est egalement celle sur laquelle vous generez
XTEL, vous pouvez creer la regle d'installation par :

	#define INSTALLDEMON 

	dans "Config.tmpl"

    L'installation du demon xteld se decompose en :

        1) copier le programme "xteld" sur le repertoire "/usr/bin/X11" .

        2) copier les fichier "xtel.lignes" et "xtel.services" sur le
        repertoire "$(LIBDIR)/xtel" .

          * Le fichier "xtel.lignes" definit les lignes "tty" utilisables
            par "xteld". Une ligne du fichier definit une ligne "tty" :

                [device,]nom_tty,[vitesse,][nb de bits,][parite,]chat_script,delai_connexion

	    device		nom symbolique du device associe a cette 
				configuration de la ligne physique. Ce nom est
				choisi par l'utilisateur (par exemple v23, tvr) 
				et sera utilise dans le fichier "xtel.services"

            nom_tty             nom du tty (/dev/ttyxx)

	    vitesse		vitesse en bauds de la lignes. Les valeurs 
				supportees sont: 50, 75 110, 134, 150, 200, 300, 
				600, 1200, 1800, 2400, 4800, 9600, 19200, 38400.

	    nb de bits		nombre de bits. Les valeurs supportees sont: 5, 6, 
				7, 8.

	    parite		parite. Les valeurs supportees sont E (pair), 
				O (impair), N (sans parite).

            chat_script		Description du chat-script entre xteld et le
				modem. La sysntaxe du chat-script est similaire
				a celle utilisee par UUCP. L'interet du 
				chat-script est de permettre une phase 
				d'initialisation du modem avant la composition
				du numero (par exemple, passer le modem en 
				modem V.23 - et non pas en automode - avant de
				composer ==> augmentation de la vitesse de 
				connexion). Si le chat-script est
				remplace par la chaine:

					minitel2

				la ligne utilisera un Minitel 2 comme modem
				(idem pour un minitel1, mais il faudra alors
				composer les numeros a la main...)

		Les sequences reconnues par le chat-script sont :

			\n	emet un LF 
			\r		CR
			\t		VT
			\d	tempo de 1 s
			\a	bip (^G)
			\T	remplace par le numero de telephone courant
			\xyz	emet le caractere code en DECIMAL par xyz 
				(3 digits OBLIGATOIRES)
			\xab	emet le caractere en HEXADECIMAL (2 digits)
							

            delai_connexion     delai maxi d'attente de la chaine ci-dessus 
                                en secondes

	    L'ancienne syntaxe (sans la notion de device) est toujours supportees
	    (elle est detectee par la presence d'un '/' en debut de ligne)

            exemples:

                le_v23,/dev/tty01,1200,7,E,\dat\r OK atdt\T\r CONNECT,30

		- nom du device = le_v23

                - ligne /dev/tty01, 1200 bauds, 7 bits, parite paire
                
		- le chat-script decrit la conversation suivante (to chat = 
		  converser)

			xteld emet			Modem doit repondre

			\d				Delai de 1s pour attendre
							le demarrage du soft du
							modem (SOUVENT NECESSAIRE)
			at + CR				OK
			atdt + numero telephone + CR	CONNECT

                
                - delai maxi = 30 s

	        le_tvr,/dev/tty01,9600,8,N,\dat\r OK at+xm3\r OK atdt\T\r CONNECT,30

		- config en Teletel Vitesse Rapide


		/dev/tty02,minitel2,30

		- ligne /dev/tty02

		- on utilise un Minitel 2 comme modem, delai maxi = 30s

          * le fichier "xtel.services" definit les services accessibles aux
            utilisateurs de XTEL. Une ligne du fichier definit un service :

                [Device,]Nom_du_service,numero_de_telephone[liste_d_utilisateurs]

		Device			Device utilise (doit etre defini dans
					"xtel.lignes")

                Nom_du_service          Chaine de caractere affichee dans le
                                        menu "Services" de "xtel"

                numero_de_telephone     numero du service

		liste_d_utilisateurs	liste des utilisateurs autorises 
					pour un service donne (optionnel)

             exemples :

                le_v23,Annuaire electronique,11
                le_v23,Teletel 1,3613:pierre:olivier
                le_tvr,Teletel TVR,3623
                le_v23,Direct,0:pierre

             La derniere ligne "Direct,0" permet de fournir aux utilisateurs
             l'acces a la composition directe des numeros (dangereux car
             certains services teletel sont hors de prix ! ==> a proteger).

          La configuration de ces 2 fichiers est de la responsabilite de
          l'administrateur systeme suivant le budget telephonique alloue !!

	Dans le cas d'une installation avec reseau:
	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       
          3) ajouter la ligne :
  
                xtel    1313/tcp

             dans le fichier "/etc/services" (ajout d'un nouveau service TCP).

          4) ajouter la ligne :

		xtel stream tcp nowait root /usr/bin/X11/xteld xteld
          
             dans le fichier "/usr/etc/inetd.conf" (ou "/etc/inetd.conf"), pour
             informer le super-demon "inetd" que l'on a cree un nouveau demon
             "xteld" (ATTENTION, sur certains systemes, les champs doivent etre
  	     separes par des TAB et non des blancs)
        
          5) forcer "inetd" a relire le fichier "inetd.conf" par :

                kill -1 le_pid_de_inetd

	Dans le cas d'une installation sans reseau:
	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

	  3) Ajouter le lancement automatique du demon "xteld" dans le(s) 
	     fichier(s) de demarrage de votre systeme (/etc/rc, ou autre, ca 
	     depend du systeme)

	  4) Le premier coup, vous pouvez lancer le demon a la main en faisant:

		xteld

	     (il faut etre root).

3.2) Installation du client "xtel"
----------------------------------

        Cette installation doit etre effectuee sur chaque machine du reseau
desirant utiliser XTEL. Elle se decompose en :

        1) Configuration du fichier de ressources 

           Le fichier de ressources permet de definir l'aspect et le 
comportement de "xtel" :

                - nom du serveur (ressource "serveur")

			! localhost ==> serveur local 
                        *serveur:       localhost

                - format de la commande d'impression de page (ressource
                "commandeImpression")

                        *commandeImpression: xwdtopnm %s | pnmflip -r90 | pnmtops | lpr

                  On utilise le package PBMPLUS pour convertir la fenetre
                  d'emulation du format XWD --> POSTSCRIPT (voir fichier
                  "imprime.c"). 
                        
                - nom du service (ressource "nomService")

                        *nomService:    xtel   

                  a priori, pas de raison de changer ...

                - taille de la fenetre d'emulation (ressource petiteFonte)

                        *petiteFonte: False

                  par defaut, on utilise la grande fonte (emulation sur 
                  640x500 pixels) 

        2) Installation 

           L'installation est effectuee par :

                make install

           qui installe :

                - xtel sur $(BINDIR) (et xteld si INSTALLDEMON est defini)

                - XTel (ou XTelm si version Motif) sur $(LIBDIR)/app-defaults
                - les fontes  sur $(LIBDIR)/fonts/xtel

		- xtel.lignes et xtel.services si INSTALLDEMON est defini

        3) Ajout du nom du service "xtel"

                ajouter la ligne :

                        xtel    1313/tcp

          dans le fichier "/etc/services" (ajout d'un nouveau service TCP).

	  Ceci n'est vrai que dans la version reseau.

        4) Information au serveur X de la presence de nouvelles fontes sur

                $(LIBDIR)/fonts/xtel

           par exemple avec :

                xset +fp $(LIBDIR)/fonts/xtel    

	A T T E N T I O N
	-----------------

	Si vous installez Xtel sur XFree-86 (version 2 ou 3), vous pouvez (et
	meme devez) indiquer au serveur le repertoire des fontes Xtel. 

	Pour XFree86-2.1: ajouter le path des fontes Xtel dans le "FontPath", 
	exemples:

	  FontPath	"/usr/X386/lib/X11/fonts/misc/,/usr/X386/lib/X11/fonts/75dpi/,/usr/X386/lib/X11/fonts/xtel/"

	Pour XFree86-3.1: ajouter une ligne du type:

	  FontPath    "/usr/X11R6/lib/X11/fonts/xtel/"

	bien sur, il faut relancer le serveur...


        5) Installation du manuel

                make install.man


                 L'INSTALLATION DE XTEL EST TERMINEE !!!

	Remarques:
	=========

	==> Si vous disposez d'un ecran couleur, et d'un window-manger 
supportant les icones au format XPM (tvtwm sous R5 par exemple), vous pouvez 
utiliser le fichier "xtel.xpm" comme icone. Pour cela, il faut ajouter les 
lignes suivantes dans le .twmrc :

	# indispensable pour inhiber l'icone initial de XTel
	ForceIcons		

	Icons {
		"xtel"	"xtel.xpm"
	}


	==> Si vous compilez avec l'interface Motif (version 1.2.3 ou 1.2.4),
il y a un bug dans le compilateur UIL qui interdit la compilation du fichier 
"pf.uil". Il faut alors remplacer celui-ci par "pf.uil-1.2.3" (qui n'utilise
pas

	==> Si vous utilisez AIX (pauvre de vous !), il semble qu'il faille 
definir NO_TERMIO dans le fichier "Config.tmpl"

4) Remarque sur l'utilisation
-----------------------------

        Lorsqu'un utilisateur est connecte a un service, "xteld" cree un
fichier ".xtel-nom_utilisateur" sur le repertoire /tmp. Ce fichier contient
des infos sur la connexion (pid du demon, nom de ligne, nom de service)
pages enregistrees.

	Les caracteristiques de la connexion (heure, duree, service, ...) sont 
sauvees sur un fichier de "log" (par defaut $(LIBDIR)/xtel/xtel.log).

5) Bugs et limitations
----------------------

	- Je n'ai pas beaucoup modifie les fontes depuis la version 2.4 (il
le faudrait pourtant dans le jeu G2 qui semble etre + etendu sur le M2 que sur
le M1). Le fait est que je me lasse vite de remplir des grilles de caracteres, 
donc avis aux amateurs...

	- Les sequence CSI ne sont pas entierement traitees (XTel ne traite
que les positionnements et les debut/fin d'insertion...)	

        - Le decodage VIDEOTEX est relativement complexe et il reste 
certainement des bugs de decodage. Si vous en trouvez un, merci de m'envoyer
un mail explicitant le bug (service teletel, moyen de parvenir a la page et 
surtout la page incriminee "uuencode").

        Je suis bien entendu a l'ecoute de toutes les remarques constructives.



                                Ave feune,

                                Pierre Ficheux

                                Lectra Systemes
                                service R & D
                                ZI Marticot
                                33610 Cestas, FRANCE

                                tel : +33 57 97 80 00 (poste 1335)
                                fax : +33 57 97 82 32

                                E-mail: pierre@rd.lectra.fr



