Installation et paramétrage du service dhsTelnet
dhsTelnet est un service qui assure l'interface entre un (ou plusieurs) programme(s) Diva et un (ou plusieurs) client(s) Telnet (douchettes, écrans passifs, …). Il attend la connexion des clients et, pour chaque client qui se connecte, lance l'exécution d'un programme Diva. Ce dernier peut alors dialoguer avec le client Telnet via des commandes spécifiques d'entrée-sortie.
Installation
Pour installer le service dhsTelnet, lancez le programme diva InstallTelnet.dhop (qui se trouve dans Divalto/Sys).
Liste des fichiers livrés
dhsTelnet.exe | Service dhsTelnet |
dhsTelnet.txt | Fichier paramètres de dhsTelnet |
Ytelnet.dhop | Module de traitement |
Ttelnet.txt | Définition des touches de base |
Tvt220.txt | Définition des touches en émulation vt52/vt100/vt220 |
TestTelnet.bat | Lancement de l'émulateur Telnet de Windows |
DemoTelnet.dhop | Programme de démonstration. |
Paramétrage
Au démarrage, le service dhsTelnet charge le fichier paramètres dhsTelnet.txt. Ce fichier doit préciser la liste des connexions Telnet à gérer, à raison d'un type de connexion par ligne.
Une ligne doit respecter la syntaxe suivante :
<port>numéro_de_port_à_écouter<prog>programme_à_lancer<user>code_utilisateur<env>environnement <show>visibilité<paramsytelnet>"<pc8>codage_pc8<timeout>valeur_du_timeout<crlf>crlf <fic>fichier_des_touches<debug>débogueur"<paramsharmony>"paramètre_à_transmettre"
numéro_de_port_à_écouter | Numéro du port TCP/IP utilisé par un client Telnet. |
programme_à_lancer | Nom du programme diva à lancer lorsque le client Telnet se connecte sur ce port. |
code_utilisateur | Code utilisateur sous lequel le programme diva doit s'exécuter. |
environnement | Nom de l'environnement d'exécution du service. Attention : La mise en œuvre des environnements est facultative mais si elle est activée, elle concerne obligatoirement tous les services dhsTelnet d'un même fichier paramètres. |
visibilité | 1 pour que les caractères en provenance du client Telnet soient affichés à l'écran. |
paramsytelnet | Paramètres complémentaires pour le module Ytelnet (à indiquer entre guillemets) : |
codage_pc8 | 1 si le client Telnet utilise des caractères codés en PC8. Si ce paramètre est absent (*), Ytelnet considère que le client Telnet utilise des caractères codés en ANSI. |
valeur_du_timeout | Si aucun message n'est envoyé par le client Telnet durant le nombre de minutes indiqué ici, Ytelnet coupera automatiquement la connexion. Si ce paramètre est absent (*) ou si la valeur 0 est indiquée ici, aucun time-out n'est mis en route et il n'y aura pas de déconnexion automatique. |
crlf | 1 si le client Telnet termine ses transmissions de message par les caractères CR (Entrée ou Return) et LF (passage à la ligne). Si ce paramètre est absent (*), Ytelnet considère que le client Telnet termine ses transmissions de message par le seul caractère CR. |
fichier_des_touches | Les terminaux Telnet utilisent en général soit une émulation type « vt220 » soit une émulation « Telnet de base » pour les touches de fonction F1 à F10 et les touches Suppr et Flèches haut/bas/gauche/droite. Si votre terminal utilise une émulation vt52/vt100/vt220, indiquez ici le fichier Tvt220.txt. Si ce paramètre est absent (*), Ytelnet utilisera le fichier de définition des touches Ttelnet.txt, correspondant à l'émulation Telnet de base. |
débogueur | 1 pour que le module Ytelnet trace les informations dans le fichier Ytelnet.log (*). |
paramsharmony | Paramètres complémentaires pour le programme diva (à indiquer entre guillemets) : |
paramètre_à_transmettre | Chaîne de caractères libre qui sera transmise au programme dans la variable d'environnement HARMONY_PARAM. Utilisez la fonction diva GetEnv ("HARMONY_PARAM") pour la récupérer (les guillemets ne sont pas transmis). Remarque : cette chaîne peut être au format HMP. |
(*) Les valeurs par défaut sont paramétrées dans Divalto.ini, au chapitre [ytelnet].
Voir aussi la rubrique Gestion des licences nommées dans Telnet.
Exemples :
<port>2260<prog>PanneauAffichage.dhop<user>AFF <port>2247<prog>demoxtelnet.dhop<user>DEMO<env>ERP210 <port>2248<prog>resultatbalance1.dhop<user>RB<paramsytelnet>"<pc8>1<timeout>0<crlf>1" <port>2350<prog>resultatbalance2.dhop<user>RB<paramsytelnet>"<pc8>1<timeout>0<crlf>1" <port>2247<prog>demo.dhop<user>DEMO<paramsytelnet>"<timeout>15"<paramsharmony>"<demo>1" Remarque : le fichier dhsTelnet.txt livré contient une première ligne de commentaires rappelant la syntaxe d'une ligne de paramètres et une deuxième ligne d'exemple permettant de lancer le programme de démonstration DemoTelnet.dhop : <port>2247<prog>demotelnet.dhop<user>DEMO
Gestion des licences nommées dans Telnet
Une application Telnet, s'exécutant sur un site pour lequel la gestion des licences nommées est active, doit être adaptée afin de prendre en compte cette nouvelle gestion. En effet, l'utilisateur de l'application Telnet doit s'authentifier avant de pouvoir exécuter l'application. Pour cela, les paramètres suivants doivent être spécifiés dans le fichier Dhstelnet.txt :
Balise <Login> | La valeur 1 indique que l'on souhaite mettre en œuvre l'authentification de l'utilisateur. Dans ce cas, le service Dhstelnet demande à l'utilisateur de s'authentifier en saisissant son compte et son mot de passe Windows. Le service lance alors le programme Diva associé au port en s'impersonnant sous le compte de l'utilisateur. Il vérifie que l'utilisateur est un utilisateur nommé sur le serveur de licences. |
Balise <msgconnect> | Cette balise permet de personnaliser le texte d'accueil, dont la valeur par défaut est "Connexion". Elle comporte trois sous-balises :
|
Balises <Lang> et <Langimp> | Ces balises permettent de définir les codes langue pour l'affichage et l'impression. |
Balise <User> | Dans ce contexte, le contenu de la balise <User> est ignoré. |
Programme Diva
Le programme Diva associé au port telnet peut récupérer les paramètres suivants :
Le mode Login, renvoyé par la fonction GetEnv ("TELNET_LOGIN"). Vaudra 1 si la balise <Login> est active dans le fichier paramètre. Ceci permet de développer des programmes Telnet compatibles avec les deux modes de licences.
Le compte de l'utilisateur est renvoyé par la fonction GetUserName. Il s'agit du compte de l'utilisateur Windows qui a effectué la connexion, soit en principe le compte de l'utilisateur Divalto, sauf si un alias est associé à ce compte.
La variable System.User contient le code de l'utilisateur Divalto.
Programmation d'un serveur Telnet
Un exemple de programmation de serveur Telnet est livré avec Harmony (DemoTelnet.dhsp dans le sous-projet Xtelnet du projet Exemples).
Vous y trouverez la liste des commandes du module Ytelnet (commentaires en début de source).
Pour exécuter cette démonstration, lancez au préalable le fichier batch TestTelnet.bat, qui fait appel à l'émulateur Telnet de Windows sur le port 2247.
DemoTelnet propose un menu avec les choix suivants (utilisez les touches du clavier a, p, c, l, x, y pour changer les paramètres de fonctionnement de Ytelnet) :
a = codage ANSI ; p = codage PC8
x = vt220 (fichier des touches tvt220.txt) ; y = telnet (fichier des touches dhsTelnet.txt)
c = crlf ; l = cr seul
Remarque : le logiciel d'émulation de terminal utilisé pour la démonstration est livré et installé avec le système Windows mais il diffère suivant les versions (2000 ou XP). Celui de Windows 2000 ne renvoie que CR alors que celui de Windows XP renvoie CR+LF.
Attention : ce programme de démonstration est un exemple « général » qu'il faudra évidemment adapter au(x) client(s) Telnet concerné(s).
Voir aussi la rubrique Gestion des licences nommées dans Telnet.