Xtel 3.2

Emulateur Minitel pour X11

Pierre Ficheux (pierre@alienor.fr)

Septembre 1998


0. Préambule

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

Merci à ceux qui m'ont transmis leurs remarques et problèmes sur les versions 2.2/2.3/2.4/3.0/3.1 et/ou contribué à l'évolution et la diffusion de XTEL avec entre-autres :

Je tiens a remercier particulièrement :

Une pensée spéciale pour René Cougnenc, R.I.P ;-(

Pour connaitre les différences entre les versions, voir le fichier HISTOIRE.

Pour voir ce que donne un écran XTEL, vous pouvez visualiser le fichier xtel.gif.

1. Préambule

1.1 But

XTEL permet d'émuler un Minitel 1B, 2 ou TVR (Télétel Vitesse Rapide) sur un terminal X, ou une station de travail couleur, monochrome ou à niveaux de gris.

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

La version 2.4 et > permet également une utilisation en "local". Cela permet d'utiliser XTEL sur des machines autonomes sur lequel aucun package TCP/IP n'est installé. XTEL utilise alors des sockets "unix" (AF_UNIX).

On peut générer XTEL avec 2 toolkits (interfaces graphiques) possibles :

L'émulation "Télétel Vitesse Rapide" nécessite de modifier le fichier "Config.tmpl" pour commenter la ligne:

	#define NO_TVR
L'émulation n'est pas disponible par défaut car elle est très peu utilisée vu que les serveurs TVR (3623) sont assez peu nombreux et que la modulation est spécifique à FT... A ma connaissance, les seuls modems supportant cette modulation sont les
Djinn Flash vendus par FT et fabriqués par la société bordelaise COM1.

Cette émulation nécessite également la "libjpeg" (du JPEG independent group). Cette librairie est disponible sur ftp.uu.net:/graphics/jpeg.

Elle normalement présente sur la majorité des distributions LINUX.

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

J'ai personnellement testé la partie xtel sur:

Pour la partie xteld (en particulier la gestion des lignes séries), je n'ai *vraiment* testé que sur System V 3.2, SVR4, Solaris et Linux.

1.2 Description des répertoires

./ le source de XTEL + des exemples de fichiers de configuration (xtel.lignes, xtel.services)
./Videotex le widget de décodage Vidéotex
./Widgets les autres widgets spéciaux utilisées par XTEL
./Xsra le sélecteur de fichier pour Athena (venant de SRA, Tokyo, Japon, et déja utilisé dans GhostView, Pixmap, etc...)
./fonts les fontes
./bitmaps bitmaps particuliers à XTEL
./pixmaps pixmaps (.xpm) particuliers à XTEL
./exemples quelques pages vidéotex, DRCS et TVR

1.3 Méthode de simulation des couleurs en monochrome

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

2. Génération

La génération de XTEL utilise le système des "Imakefile". Les options de configurations sont dans le fichier "Config.tmpl".

A partir du fichier "Imakefile" fourni sur la distribution, vous pouvez alors générer un "Makefile" par :

		xmkmf

Puis pour générer la disribution XTEL :

        	make Xtel

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

3. Installation et configuration

Cette partie décrit point par point l'installation de Xtel. Si vous utilisez une archive binaire au format RPM de RedHat Software, vous n'avez normalement qu'à installer l'archive par la commande:

               rpm -ivh nom_archive_RPM_xtel

3.1 Introduction

La configuration de XTEL se décompose en :

3.2 Installation du démon xteld

Cette installation s'effectue sur la machine serveur (supportant le(s) Modem(s)) . Si la machine serveur est également celle sur laquelle vous générez XTEL, vous pouvez créer la règle d'installation par :

	#define INSTALLDEMON 
dans le fichier "Config.tmpl", puis un:
	make install

L'installation du démon xteld se décompose en

  1. copier le programme "xteld" sur le répertoire $(BINDIR) (/usr/X11R6/bin sous XFree86-3.1.x).
  2. copier les fichier "xtel.lignes" et "xtel.services" sur le répertoire $(LIBDIR)/xtel (/usr/X11R6/lib/X11/xtel sous XFree86-3.1.x).

Le fichier "xtel.lignes" définit les lignes "tty" utilisables par "xteld". Une ligne du fichier définit une ligne "tty" :

[device,]nom_tty[:rtscts],[vitesse,][nb de bits,][parité,]chat_script,délai_connexion [device,]nom_tty[:rtscts],[vitesse,][nb de bits,][parite,]chat_script,délai_connexion


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

            nom_tty             nom du tty (/dev/cuax sur Linux), avec 
				éventuellement le flag "rtscts" de contrôle de 
				flux hardware (pour TVR par exemple)

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

	    nb de bits		nombre de bits. Les valeurs supportées sont: 
				5, 6, 7, 8.

	    parite		parité. Les valeurs supportées sont E (pair), 
				O (impair), N (sans parite).

            chat_script		Description du chat-script entre xteld et le
				modem. La syntaxe du chat-script est similaire
				à celle utilisée par UUCP. L'intérêt du 
				chat-script est de permettre une phase 
				d'initialisation du modem avant la composition
				du numéro (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
				remplacé par la chaîne:

					minitel2

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

		Les séquences reconnues par le chat-script sont :

			\n	émet un LF 
			\r		CR
			\t		VT
			\d	tempo de 1 s
			\a	bip (^G)
			\T	remplace par le numéro de téléphone courant
			\xyz	émet le caractère code en DECIMAL par xyz 
				(3 digits OBLIGATOIRES)
			\xab	émet le caractère en HEXADECIMAL (2 digits)
							

            délai_connexion     délai maxi d'attente de la chaîne ci-dessus 
                                en secondes

L'ancienne syntaxe (sans la notion de device) est toujours supportées (elle est détectée par la présence d'un '/' en debut de ligne)

    exemples:

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

	- nom du device = le_v23

        - ligne /dev/cua1, 1200 bauds, 7 bits, parité paire
                
	- le chat-script décrit la conversation suivante (to chat = 
	  converser)

		xteld émet			Modem doit répondre

		\d				Delai de 1s pour 
						attendre le démarrage 
						du soft du modem 
						(SOUVENT NECESSAIRE)
		at + CR				OK
		atdt + numéro téléphone + CR	CONNECT

                
        - délai maxi = 30 s

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

	- config en Télétel Vitesse Rapide (avec contrôle de flux hard 	RTS/CTS 
	sur la ligne)


	/dev/cua1,minitel2,30

	- ligne /dev/cua1

	- on utilise un Minitel 2 comme modem, délai maxi = 30s

Le fichier "xtel.services" définit les services accessibles aux utilisateurs de XTEL. Une ligne du fichier définit un service :

  [Device,]Nom_du_service,numéro_de_téléphone[liste_d_utilisateurs]

		Device			Device utilise (doit être défini dans
					"xtel.lignes")

                Nom_du_service          Chaine de caractères affichée dans le
                                        menu "Services" de "xtel"

                numéro_de_téléphone[:nom]     numéro du service

		liste_d_utilisateurs	liste des utilisateurs autorisés 
					et des temps maxis de connexion pour 
					un service donné (optionnel, syntaxe
					"user=delai")

             exemples :

                le_v23,Annuaire electronique,3611,=180
                le_v23,Teletel 1,3613,pierre=120:olivier
		le_v23,Méteo,3615:METEO
                le_tvr,Teletel TVR,3623
                le_v23,Direct,0,pierre@pcpf:@pcwin
Dans cet exemple le service d'\fIAnnuaire\fP est autorisé à tous pendant 180 secondes (=180). Le \fITélétel1\fP est accessible à l'utilisateurs pierre pendant 120 secondes (pierre=120), il n'y a pas de limite d'accès pour l'utilisateur olivier. L'accès au 3615 est limité au service METEO. Le service Direct n'est accessible qu'à l'utiisateur 'pierre' sur la machine 'pcpf', et à tous les utilisateurs de la machine de nom 'pcwin'.

La dernière ligne "Direct,0" permet de fournir aux utilisateurs l'accès à la composition directe des numéros (dangereux car certains services Télétel sont hors de prix ! ==> à protéger).

La configuration de ces 2 fichiers est de sous responsabilité de l'administrateur système suivant le budget téléphonique alloué !

3.3 Détection/configuration des modems

Si vous utilisez l'installation sous LINUX par RPM (voir http://www.com1.fr/~pficheux/xtel/tele.html), la procédure doit détecter automatiquement le modem (si celui-ci fait partie de la liste bien sûr). La liste (modem.list) est localisée dans le répertoire /usr/X11R6/lib/X11/xtel ou bien par Internet (dernière version à jour) sur l'URL http://www.com1.fr/~pficheux/xtel/modem.list.

Si vous êtes sous LINUX, vous pouvez les modems détecter après l'installation et générer du coup un fichier xtel.lignes. Pour cela taper:

    make_xtel_lignes

Si vous n'êtes pas sous LINUX, vous pouvez toujours utiliser le programme mdmdetect pour tenter de détecter le type de modem présent sur une ligne série donnée (vous pouvez aussi adapter le script make_xtel_lignes à votre système).

pierre@pcpf % mdmdetect -h
Usage: mdmdetect [-d] [-l modem_list] [-b builder] [-q] tty_device

Voici quelques exemples d'utilisation:

3.3 Installation du client xtel

Cette installation doit être effectuée sur chaque machine du réseau désirant utiliser XTEL. Elle se decompose en :

L'INSTALLATION DE XTEL EST TERMINEE !!!

Remarques :

Utilisation de xteld avec HyperTerminal® sous Window$

Il est possible d'utiliser le démon xteld comme serveur de modem comme pour le programme HyperTerminal® Private Edition développé par Hilgraeve. Pour installer ce système il faut:

Cette méthode permet d'utiliser le serveur UNIX à la fois pour des clients xtel UNIX et pour des clients HyperTerminal® Windows.

4. Remarques sur l'utilisation

Lorsqu'un utilisateur est connecté a un service, "xteld" crée un fichier ".xtel-nom_utilisateur" sur le répertoire /tmp. Ce fichier contient des infos sur la connexion (pid du démon, nom de ligne, nom de service).

Les caractéristiques de la connexion (heure, durée, service, ...) sont sauvées sur un fichier de "log" (par défaut $(LIBDIR)/xtel/xtel.log).

5. Bugs et limitations

Je suis bien entendu à l'écoute de toutes les remarques constructives.

Ave feune,

Pierre Ficheux
E-mail:
pierre@alienor.fr
WWW : http://www.alienor.fr/~pierre