Xtel 3.2Emulateur 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_TVRL'é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 |
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 :
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 :
L'installation du démon xteld se décompose en
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
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)
Le fichier "xtel.services" définit les services accessibles aux
utilisateurs de XTEL. Une ligne du fichier définit un service :
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:
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).
Voici quelques exemples d'utilisation:
Le programme renvoit alors 4 paramètres:
Notez que les blancs sont systématiquement remplacés par le caractère -
(moins). La ligne correspondante dans xtel.lignes est:
Notez que mdmdetect ne fonctionne PAS (pour l'instant) à travers un
proxy.
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 :
Si vous installez XTEL sur XFree-86 (version 2 ou 3), vous pouvez (et
même devez) indiquer au serveur le répertoire des fontes XTEL.
Pour XFree86-2.1: ajouter le path des fontes XTEL dans le "FontPath" :
Pour XFree86-3.1: ajouter une ligne du type :
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.
3.2 Installation du démon xteld
xtel 1313/tcp
dans le fichier "/etc/services" (ajout d'un nouveau service TCP).
xtel stream tcp nowait root /usr/X11R6/bin/xteld xteld
dans le fichier "/usr/etc/inetd.conf" (ou "/etc/inetd.conf"), pour
informer le super-démon "inetd" que l'on a créé un nouveau demon
"xteld" (ATTENTION, sur certains systèmes, les champs doivent être séparés
par des TAB et non des blancs). Le chemin d'accès absolu à "xteld" varie
bien évidemment suivant les systèmes.
kill -1 le_pid_de_inetd
xteld
en tant que root. ATTENTION, ne *jamais* lancer "xteld" à la main
dans le cas d'une installation avec réseau !
#define INSTALLDEMON
dans le fichier "Config.tmpl", puis un:
make install
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
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
[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'.
make_xtel_lignes
pierre@pcpf % mdmdetect -h
Usage: mdmdetect [-d] [-l modem_list] [-b builder] [-q] tty_device
pierre@pcpf % mdmdetect -q
Hayes
COM1
Olitec
USR
Kortex
root@pcpf # mdmdetect -b COM1 cua1
.
PC-Card-MC218 , 38400 \dat&fm1e0&k3f3\r-OK
# COM1 PC Card MC218
modem0,/dev/cua1,38400,7,E,\dat&fm1e0&k3f3\r OK atdt\T\r CONNECT,30
root@pcpf # mdmdetect -l http://www.com1.fr/~pficheux/xtel/modem.list -b COM1 cua1
Appel de pcpf...OK
.
PC-MCIA-MC218 , 38400 \dat&fm1e0&k3f3\r-OK
! localhost ==> serveur local
*serveur: localhost
*commandeImpression: xwdtopnm %s | pnmflip -r90 | pnmtops | lpr
On utilise le package PBMPLUS pour convertir la fenêtre
d'émulation du format XWD --> POSTSCRIPT (voir fichier "imprime.c").
*nomService: xtel
à priori, pas de raison de changer ...
*petiteFonte: False
par défaut, on utilise la grande fonte (émulation sur 640x500 pixels).
make install
qui installe :
xtel 1313/tcp
dans le fichier "/etc/services" (ajout d'un nouveau service TCP). Ceci n'est
vrai que dans la version reseau.
$(LIBDIR)/fonts/xtel
par exemple avec :
xset +fp /usr/X11R6/lib/X11/fonts/xtel
A T T E N T I O N !
FontPath "/usr/X386/lib/X11/fonts/misc/,/usr/X386/lib/X11/fonts/75dpi/,/usr/X386/lib/X11/fonts/xtel/"
FontPath "/usr/X11R6/lib/X11/fonts/xtel/"
bien sûr, il faut relancer le serveur...
make install.man
Style "xtel" Icon xtel.xpm
Pour tvtwm :
# indispensable pour inhiber l'icone initial de XTEL
ForceIcons
Icons {
"xtel" "xtel.xpm"
}
xtelw stream tcp nowait root /usr/X11R6/bin/xteld xteld -H
La modif du fichier /etc/services sera du type:
xtelw 1314/tcp
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