Sujet TVR & Photo

Afin de ne pas encombrer inutilement le sujet « MiniPavi », j’ouvre un sujet spécifique TVR et Minitel photo.

Pour commencer, les documents de référence :

Ne concerne, à priori, que les matériels/logiciels ci-dessous :

  • Magis Club
  • Minitel 2 Alcatel avec option photo [plutôt très rare]
  • iTIMTEL
  • Certains modems COM1
  • Potentiellement [à confirmer], la série WebTouch

@Polo

  1. Autant que je me souvienne, il n’y a pas de particularité pour le câble de liaison « Magis Club <=> Série ». La prise DIN 8 broches (au lieu de la classique DIN5) est compatible pin à pin; les broches supplémentaires étant destinées à l’audio.
  2. Il y a quand même un avertissement vis à vis des câbles auto-alimentés et les « hautes » vitesses de transmission série
  3. Dans tous les cas, une lecture attentive de la doc apporte généralement des réponses pertinentes.
1 « J'aime »

Bonjour, et merci pour ce message.

Dans mon cas, le MAGIS Club reçoit bien les données du PC mais le PC ne reçoit rien du MAGIS Club. Et ce peu importe le mode de fonctionnement de la prise série sélectionné dans l’interface du MAGIS Club. Alors qu’avec le même câble, sur mon Minitel 2, ça fonctionne dans les deux sens.

N’ayant pas d’autre MAGIS Club, je ne peux pas vérifier si ça vient spécifiquement de mon exemplaire. Tu as déjà essayé la communication par le port série avec le tiens et un PC?

Voici un lien qui peut peut-être être intéressant :https://www.etsi.org/deliver/etsi_i_ets/300200_300299/300222/01_60/ets_300222e01p.pdf

Pensez-vous que l’on arrivera un jour à refaire du TVR et du Minitel photo. Et si oui, y arrivera-t-on avant 2026?

Cordialement.

Je pense que l’on touche au but là!
On a toutes les pièces du puzzle, il faudrait juste réussir à les assembler.

Seulement qui pourrait faire ça ?

@Jeff_HxC2001 Tu as déjà eu accès à ces documents?

Bonne journée. :slight_smile:

Cordialement.

C’est pas plutôt des STURM, dont on aurait besoin?
Pour le câble de liaison, pourquoi ne pas abandonner les adaptateurs RS232 et leur support d’un « standard » douteux, pour passer à du USB-TTL?

… L’USB <=> TTL est certainement la solution à privilégier … Il existe de nombreuses solutions, mais les fakes chinois peuvent être problématiques. Mon setup actuel (d’ailleurs branché sur un Magis Club, donc, ca devrait marcher, même si je n’ai pas revérifié [je ne vois pas pourquoi j’aurais laissé en l’état un truc qui ne marcherait pas]) est constitué d’un câble DIN5<=>DB25/DB9 que j’utilisais entre 1992 et 1996 quand j’étais développeur sur Atari [ce qui ne me rajeunit pas] accolé à un adaptateur USB <=> DB9 Alten (à base de FT232 de mémoire) lui même pluggé sur mon RPi4.

STUrM [« R » pour « Réseau » me semble-t-il] ? Je ne pense pas ; en principe, « tout » (ce que je connais sur TVR) est dans la doc Magis Club.

Il y a 3 questions sous jascentes :

  • La capacité à afficher des photos
    • Sur Magis Club / Minitel 2 Photo ==> Zigazou a produit une démo, que je me suis bien galéré à compiler (installation des prérequis du compilateur), et finalement, ça marchait. En conséquence, conversion JPEG => Données « Minitel photo » possible (à certaines conditions). Il me semble que T.Jaouen avait aussi produit quelque chose, mais je n’ai jamais réussi à en tirer quoi que ce soit.
    • Sur iTimtel (jamais réussi, il y a un truc qui le plante)
    • Peut être identifier un autre émulateur d’époque - Voir aussi si les WebTouch sont « compatibles photo » … Rien n’est moins sur.
  • La capacité à établir une connexion TVR basique : Je ne vois que 4 options, toutes avec une « ligne téléphonique fantôme », et pas nécessairement réalistes (et à condition de disposer d’un modem capable d’agir en tant que serveur)
  • La capacité à intégrer des photos dans un serveur opérationnel
    • Question du contrôle de flux
    • Question de l’identification du terminal [IE : une photo ne s’affiche pas sur un terminal/émulateur normal … et est bien bien bien plus grosse qu’une page normale] ==> Ne pas essayer d’envoyer à un truc qui ne pourrait pas afficher
    • Question 7 bits parité paire VS 8 bits …
    • Pour me moment, PyMoIP ne sait pas faire, c’est prévu … un jour !
      • Adaptation ‹ PyMoIP-User › en cours
      • 'PyMoIP-Gateway" à valider/modifier en conséquence (support 8 bits théoriquement OK)
      • ‹ PyMoIP-Serveur › à valider, probablement à modifier aussi
1 « J'aime »

Hello, je remonte ce topic parce que j’ai commencé à m’intéresser au TVR et qu’on a en effet aucune doc officielle précise là dessus

De ce que j’ai lu : utilisation norme V.29 pour communication (ou V.27ter mais déprécié à l’époque), et X.25 (X.32?) pour gestion du flux.

Le minitel Magis Club ne réagit pas à 1700Hz ou 1800Hz pour la connexion, mais uniquement à 1300 Hz et 2100 Hz (d’autres fréquences testées sans résultats). Il ne semble pas réagir à des données V.29 brutes ou à un fax ?

Pour pouvoir connecter un Minitel à un modem V.29, il faut savoir comment le Minitel peut détecte qu’il s’agisse d’un modem V.29. Porteuse spéciale ? Connexion en V.23 puis demande de basculement par le protocole ?

Enfin, dernière observation : le STUM R&P indique que lors de la réception de la commande PRO2 BASC2, le Minitel R&P « s’adapte au modem émetteur (V.23 ou V.27ter/V29 »).

EDIT: Après émission porteuse (1370 Hz - mais il devait entendre 1300 ou 1400 Hz ?) suivi de données V.29, j’ai pu entendre une tentative de réponse du Minitel. EDIT 2 : Ce n’est pas la porteuse qui a permis ça (elle a été ignorée).

EDIT 3 : https://nathaan.com/minitel/enreg_v29.mp3 (désolé, c’est un MP3) : deux signaux : le moins fort est celui que j’envoie, le plus fort est celui du Minitel. On entend aussi un bruit lorsque le le minitel décroche et raccroche (dû à la résistance - il s’agit du Magis Club, le Sillage n’était pas raccroché pour pouvoir entendre en même temps et tester sans avoir à numéroter à chaque fois). Il y a aussi le signal pour l’annulation d’echo - est-il obligatoire ? En tout cas, à priori, ça semble être possible d’implémenter un modem V.29 TVR software grâce à freeswitch/spandsp.

EDIT 4 : Après décodage d’une des trames envoyées par le Minitel, je peux confirmer qu’elle suit bien la spécification X.25 (en tout cas, dans son format). Implémenter un serveur TVR revient à implémenter un module qui implémente toute cette spécification - ce n’est pas impossible, mais très coûteux en temps !

Ressources disponibles :

EDIT 5 : (encore un) J’ai tendance à oublier de vérifier si des gens ont déjà implémentés ça et puisqu’il s’agit d’un protocole assez standard, il se trouve qu’il est implémenté dans spandsp. (c’est la partie la plus simple du protocole - il faut maintenant gérer la qualité du flux)

EDIT 6 : Notice MAGIS CLUB : « Trame LAPX » : LAPX semble être une variante de LAPB pour les communications half-duplex (c’est le cas ici - les deux modems communiquent sur les mêmes fréquences sur une même ligne donc pas possible de transmettre en même temps). « Paquet X25 » : donc la variante de HDLC décrite dans X.25?

1 « J'aime »

Enregistrement V.29 (puis V.27ter, à priori) du Minitel :
v29_recording.wav

On remarque la présence d’une tonalité 1700 Hz avant les données V.29 et 1800 Hz avant les données V.27ter (ou inversement, mais le premier c’est du V.29). Mais plus étrangement, on remarque aussi des données présentes en plein milieu sans cette tonalité…

L’un des problèmes si on voulait implémenter ça en VoIP serait la gestion de la latence (et sa variation) et de l’écho.

Analyse des données : https://www.nathaan.com/minitel/tvr/fichiers/20250111_v29_recording.html
Les « 4 paires de données courtes » au milieu du fichier audio (qui n’ont pas de porteuse) ne sont pas décodées par spandsp (probablement pas de données ou pas valides ? pourquoi le Sillage les envoie et sans porteuse ?).

Le Minitel semble émettre des données dès la fin de la réception de données (quand il n’y a plus de son). Je crois avoir compris sur les docs que l’envoi de 15 « 1 » consécutifs permet de céder le droit d’émettre.

Avec mon installation totalement VoIP actuelle, je reçois côté serveur tout ce que j’émet avec un décalage de +/- 280ms, ce qui fait que je peux parfois recevoir mon propre droit d’émettre et donc que j’émet deux fois là où il ne faudrait pas. Il y a plusieurs façons de contourner ce problème, mais avec un protocole pareil, la latence risque d’être mon plus gros ennemi…

Il faudrait que j’essaye de retourner le Magis Club et de le faire communiquer avec le Sillage, mais comment le retourner en V.29…

EDIT : J’ai décidé d’envoyer manuellement des trames et j’ai pu recevoir quelques données qui m’indiquent qu’en plus de la surcouche LAPX/HDLC/X.25/X.32, il y a un protocole particulier dans le transfert données. Peut-être qu’il est décrit dans ces documents, mais en tout cas voilà quelques informations.

Adresse: 01
Commande: [20] I Information (N(S)=0 N(R)=1 P=0)
Données : 10 00 FB 00 00

Ci-dessus la première trame envoyée après la connexion. Adresse de destination 01 = le « serveur ». La deuxième trame (ci-dessous) m’a été envoyée qu’après avoir envoyé la même première trame

Adresse: 01
Commande: [22] I Information (N(S)=1 N(R)=1 P=0)
Données : 10 01 0B 00 06 42 07 07 43 06 06 01 00 00 00 13 53

J’ai immédiatement relevé le « 13 53 » qui correspond à « SEP 53 » => « Connexion ou deconnexion du modem. ». Pour le reste, pas la moindre idée.

Le Sillage et le Magis Club envoient exactement les mêmes données (pour ces 2 trames). La seule différence jusque là entre les deux, c’est que le Magis Club envoie davantage de « 01111110 » (séparateur), comme convenu dans la doc X.32

Peut-être ETS 300 223?

EDIT : Il s’agit du PLP (Packet Layer Protocol) défini dans l’ISO 8208, téléchargeable gratuitement depuis Publicly Available Standards

Analyse de la trame 1 :

1.  General Format Identifier (sur 4 bits).
    Ici, modulo 8, delivery confirmation=0,
    "A/Q"-bit=0

.0  \  Logical Channel
01  /  Identifier (12 bits)

0B  Packet Type Identifier
    Ici, CALL REQUEST

    Address block:
0.  Calling DTE Address Length (4 bits) en semi-octets
.0  Called DTE Address Length (4 bits) en semi-octets
(Ici il y aurait les adresses, mais elles sont vides)

06  Facility Length (les 6 octets suivants)
42  Flow Control Parameter Negotiation - packet sizes
0.  Must be 0
.7  Packet size from called DTE: 2^7 = 128 bits
0.  Must be 0
.7  Packet size from calling DTE: 2^7 = 128 bits

43  Flow Control Parameter Negotiation - window sizes
06  (bits 1-7=window size from called DTE -> 6) (unité?)
06  (bits 1-7=window size from called DTE -> 6) (unité?)

01 00 00 00 13 53  Call User Data -- que représente-t-il ?

Bon, à priori, les serveurs TVR ça sera pas pour demain.

Dissecteur Wireshark pour ça : wireshark/epan/dissectors/packet-x25.c at master · wireshark/wireshark · GitHub

1 « J'aime »

Bonjour,

J’ai un MAGIS Club, tu voudrais que je t’appel pour faire des essais ?

Cordialement.

Malheureusement je crois qu’on est très loin d’avoir quelque chose de fonctionnel. Peut-être à l’occasion pour tester l’écho ou la latence, mais pour le moment tout est éteint…

Je viens de configurer Wireshark pour lire les packets LAPB et il a réussi à identifier la présence d’un énième protocole (X.29 cette fois)

image

Deux octets en trop dans data - j’ai oublié d’enlever le CRC. Le reste correspond à l’analyse manuelle

EDIT : Le côté PLP (ISO 8208) est aussi documenté dans X.25

1 « J'aime »

Merci pour tous ces essais !

Honnêtement, mes compétences techniques ne sont pas assez bonnes pour comprendre tout ce que tu as fait.

Mais d’après tes tests, si je comprends bien, ce n’est pas simplement du Minitel en 9600 bps.
En gros, il ne suffirait pas d’envoyer une page classique à cette vitesse. Il y a tout un protocole X25 qui faudrait utiliser côté serveur.

Je me souviens que pour tester la fonction photo de mon MAGIS Club, je lui avais envoyé une page JPEG via la prise série en mode 9600 bps 8 bits de données, et ça avait fonctionné. Pour ça, j’avais utilisé Hyperterminal sous Windows 98 SE, et sa fonction « Envoyer un fichier texte ».

J’ai aussi essayé de le faire se connecter via ligne téléphonique à mes différents modems, mais ça ne fonctionnait qu’en V23.
Pour ce faire, je connectais un modem au port série de mon PC, et avec Hyperterminal, je le règlais pour qu’il attende et prenne les appels. Ce modem était branché sur ma ligne VOIP Freebox.

Le Minitel était branché à ma ligne RTC Orange.
Lorsqu’il appelait le PC, il prenait la porteuse V23 et se connectait sans problème. Le PC pouvait ensuite lui envoyer des pages classiques (Pas de JPEG), en utilisant la fonction « Envoyer un fichier texte ».

J’ai essayé avec différents modems, notamment une carte Conexant en PCI.

J’ai essayé en 9600 bps, ça n’a jamais fonctionné. Les modems que je possède ne gèrent le V29 que pour le fax.

Penses-tu qu’avec un modem compatible TVR côté PC en mode « Attente d’appel », on pourrait faire la même chose qu’avec le V23 sous Hyperterminal, à savoir Envoyer simplement les pages classiques et photos avec la commande « Envoyer un fichier texte » ?

Autre chose : Mon MAGIS Club semble avoir un problème de communication en série, et ce en mode 1200 bbs et 9600 bps. Il reçoit bien les données du PC, mais il n’envoie aucune données au PC. Pourtant, avec le même câble série, aucun problème de communication entre mon PC et le Minitel 2, ou le Minitel 1 ABCD.

Penses-tu à un problème sur mon MAGIS Club, et si oui comment le corriger ?

Edit : Quand ne tape X.29 sur Google, je trouve des articles sur un avion, mais rien sur un protocole de communication. S’agit-il d’un bug de ton logiciel qui identifie mal un protocole utilisé en TVR?

Merci encore pour ces essais.

Cordialement.

https://www.itu.int/rec/T-REC-X.29-199712-I/en
qui est identifié grâce à
https://www.itu.int/rec/T-REC-X.263/en

Pour le modem TVR : si il gère le côté serveur, pas de raison que ça marche pas. Mais ça dépend de jusqu’à quelle couche du modèle OSI il gère (LAP-B ? PLP ? X.29 ? Couche application ?).

Il faudrait lire intégralement les docs X.25 et X.32 (X.29 est très court) pour pouvoir se faire une idée du fonctionnement de tout ça, mais il y a 200 pages et je n’ai pas vraiment énormément de temps

Pour le port série : je ne l’ai jamais essayé sur MAGIS CLUB, je testerai avec le miens à l’occasion

Merci pour tous ces documents :slight_smile:

On avance, on commence à avoir de plus en plus de pièces du puzzle!

Sinon, au début de la connexion, juste quand le modem décroche, la porteuse TVR (V29) est différente de la porteuse V23, ou c’est la même porteuse aiguë?

Pour les documents de 200 pages, même si je lisais tout, je ne pense pas que je comprendrais. Il faudrait qu’un ingénieur retraité se penche dessus.

Cordialement.

La porteuse est appelée « TEP » (Talker Echo Protection). Elle dure 180 ms, et elle est de 1700 Hz pour du V.29 et de 1800 Hz pour du V.27ter. Elle est suivi d’une très courte pause puis des données. Le Minitel semble utiliser cette porteuse pour identifier le type de données (V.29 ou repli V.27ter) et semble ignorer les données présentes sans cette porteuse.

Une fois que le Minitel reçoit des données, il commence à émettre. Le Magis Club n’affiche pas « Connexion en cours » à la réception de cette porteuse suivi de données, mais la numérotation devient bloquée.


J’ai commencé à écrire une mini implémentation des différentes couches du protocole, au moins pour la lecture et l’écriture des informations. Une fois ça fait, ça peut permettre de faire davantage de tests. Il faudrait que je me fasse un câble jack coaxial audio vers RJ11/prise téléphonique pour tester sans ligne VoIP et sans latence.

1 « J'aime »

D’accord, mais quand on appel le serveur, on entend pas la porteuse aiguë caractéristique du Minitel ?

Bizarre qu’il n’affiche pas « Connexion en cours ».
Une fois la connexion faite, le F sur le côté droit de l’écran passe bien à C?

J’ai un jack vers prise en T, avec une prise pour le micro et une prise pour la sortie son. J’ai aussi une carte son externe en USB qui fonctionne bien en V23 avec le logiciel de Jeff.
Les outils que tu as utilisé peuvent-ils être facilement installés sur un PC Windows 10, ou il faut forcément du Linux ?

Cordialement.

Je n’ai aucun outil encore fonctionnel ni sur Linux ni sur Windows. Si tu veux tester la réponse du Magis Club (ou autre minitel TVR), tu peux juste utiliser Audacity (ou autre lecteur) et jouer un des signaux présents dans le fichier audio v29_recording.wav - après ça, tu devrais pouvoir entendre les réponses du Minitel.

Je vais essayer de me bricoler un câble dans la journée et commencer à écrire un soft qui permet de tester tout ça. Je partagerai ce que j’ai quand j’aurai une démo technique fonctionnelle (si j’y arrive). Je ne vois pas de problème pour compiler ça sur Windows

Alors j’ai fait le test en utilisant mon portable.
Mon MAGIS Club bloque son clavier et coupe son haut parleur à partir de 10 secondes sur le fichier de ton dernier message. Preuve qu’il essaye de se connecter. En revanche, il ne passe jamais en mode « C », il reste en mode « T ». Peut-être qu’il attend une réponse précise à la séquence qu’il envoie. Et qu’une fois la bonne réponse reçu, il passera en mode « C », avec le message « Connexion en cours »

Edit : Si je lance la vidéo à 9 secondes, le clavier ne se bloque pas, et le haut parleur ne se coupe pas . Preuve que tous les signaux d’avant ont une utilité.

Il faudrait essayer de lui envoyer une page ou une séquence de texte pour voir si on arrive à afficher un truc à l’écran.

Edit : As-tu essayé d’appeler un fax ou un modem en mode fax avec le MAGIS Club? Si oui, est-ce qu’il réagit de la même façon?

Merci encore pour tous ces essais. :slight_smile:

Cordialement.

Pour ma part j’utilise un câble Minitel vers port série sur le port série d’un PC K6-2 de la fin des années 90.

Cela fonctionne très bien en bidirectionnel avec le M2 ou le M1 ABCD, mais uniquement dans le sens PC vers Minitel avec le MAGIS Club.

Avec le Chauffe plat, cela ne fonctionne pas du tout.

Cordialement.

Je me demande si quand on appelait le 3623, au début, on avait la même porteuse que sur un service classique, puis une fois cette dernière prise par le Minitel, le serveur envoyait une porteuse particulière et les signaux spécifiques pour basculer le Minitel en mode TVR.

Ou alors, c’était directement une porteuse spécifique un peu comme ce que @nathaantfm a recrée.

Cordialement.

… Je vois que tu avances ‹ fortement › …

J’ai regardé (survolé) les sources Asterisk. J’y ai trouvé :

  • app_softmodem.c ==> Tu connais, n’est-ce pas !
  • res_fax.c + res_fax_spandsp.c ==> Hum ? Un module SoftModem fax ?
  • res_pjsip_t38.c ==> Une interface SIP <=> T38 ?

J’ai vraiment du mal avec Asterisk !

@nathaantfm @hwarin Je ne sais pas si ça peut aider, mais j’ai essayé d’appeler un fax avec mon MAGIS Club. Comme la porteuse de départ est la même que pour un serveur Minitel classique, il affiche bien « Connexion en cours » et passe de T à C clignotant. Par contre, le haut parleur ne se coupe pas. Je ne sais plus si le clavier se bloque.

Cordialement.