Comme partagé dans le post Serveur Minitel voici le systeme que j’ai mis en place pour simuler un serveur minitel en gardant le minitel d’origine sans le moindre changement et en passant par son modem et sa prise en T.
C’est le résultat de mes notes, un peu indigeste… difficilement accessible pour un débutant malheuresement … mais cela fonctionne !!! Ca demande de l experience avec Asterisk, compilation,…
Le principe de fonctionnement:
Minitel ↔ Prise T ↔ Carte TDM410 ↔ Asterisk ↔ Softmodem ↔ TCP/IP ↔ Serveur
On utilise le minitel de la même manière que dans les année 1980. On numérote un 36xx, on prend la ligne Connexion/Fin et le serveur repond.
Le Hardware:
- un minitel 2 (je suppose que tout minitel doit fonctionné)
- un téléphone type Socotel S63 ou VOIP pour faire des tests mais pas obligatoire
- Un PC
- une carte TDM410 avec trois cartes filles verte.
Le software:
- Linux Debian 10
- Asterisk 16.10.0
- dahdi (pour controler la carte TDM410)
- la librairie spandsp
- asterisk-Softmodem (github: GitHub - PipoCanaja/asterisk-Softmodem: V.23 Softmodem for Asterisk with some Bildschirmtext-specific stuff in it.)
- php7 pour l ecriture du soft serveur.
Pour les softwares, je vous recommende de prendre les versions mentionnées car j’ai fait de multiples installations avec differentes versions avant de parvenir à faire une installation complète avec tous les modules qui fonctionnent. Maintenant ce n’est pas obligatoire mais doit permettre de vous faire gagner beaucoup de temps.
L’installation utilise un mélange de packages disponibles et des sources à compiler et installer.
Installation et configuration initiale :
-
Debian 10. Installation a partir d’un DVD (Boot du PC depuis le DVD) avec le minimum: pas d interface graphique et juste un serveur ssh. Je fais tout en ssh par la suite entant que root.
-
Asterisk
– Asterisk joue le role de central téléphonique. Il va recevoir les appels vers les numeros 3611, 3612,… et les transférer vers les serverus associés. Dans notre cas, nous devons l’installer par l intermédiaire des sources que nous allons compiler, puis installer les binaires.
– Un page de reference pour l installation: Installation d’Asterisk | Networklabapt-get install -y linux-headers-$(uname -r)
apt-get install -y git
apt-get install -y g++
apt-get install -y make
apt-get install -y libncurses-dev
apt-get install -y uuid-dev
apt-get install -y libjansson-dev
apt-get install -y libxml2-dev
apt-get install -y libsqlite3-dev
apt-get install -y patch
apt-get install -y libedit-dev
apt-get install -y patchcd /usr/local/src
wget https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-16-current.tar.gz
tar xvd asterisk-16.10.0
cd asterisk-16.10.0./configure
make distclean; ./configure pour etre sure. Ok.make menuselect
no change
xmake
make install
make samples
make config
/etc/init.d/asterisk start
asterisk –rvvvvvvvvvv -
dahdi
– contient les drivers de la carte TDM410
– Page de reference: Configuring TDM410P with Asterisk – IT Blog
– installationlspci -v
=> vous devez voir une ligne avec la reference de votre carte.apt-get install -y dahdi-source
apt-get install -y libtonezone2.0 libtonezone-dev
cd /usr/local/src/asterisk-16.10.0/
./configure
make menuselect et la je peux choisir le chan_dahdi
make install
dahdi_span_assignments -v auto
dahdi_genconf -v
=> genere la configuration dans les fichiers /etc/dahdi/assigned-spans.conf, /etc/dahdi/system.conf et /etc/asterisk/dahdi-channels.conf
=> Perso je les ai changé à la main comme indiqué dans le deuxieme post ci dessous.
dahdi_cfg -vvvv
=> applique la configuration
– Normalement cela suffi. Si vous avez des soucis voir la page de reference mentionée ci dessus. -
spandsp
– ibrairie qui fait le processing du signal pour softmodem.
– Reference page: Add Fax capabilities in Asterisk >=13 - Informatica PressapochistaInformatica Pressapochistacd /root
apt-get install libtiff-dev
wget https://www.soft-switch.org/downloads/spandsp/snapshots/spandsp-20180108.tar.gz
tar xvf spandsp-20180108.tar.gz
cd spandsp-0.0.6
./configure
make
make install -
asterisk-Softmodem
– c est l’élément clef de cette solution. Ce soft va gérer le modem logiciel.
– c est lui qui discute avec le modem du minitel et transmet les messages au serveur (Socket TCP).
– Commandes pour l installationcd /root
git clone GitHub - PipoCanaja/asterisk-Softmodem: V.23 Softmodem for Asterisk with some Bildschirmtext-specific stuff in it.
cp /root/asterisk-Softmodem/app_softmodem.c /usr/local/src/asterisk-16.10.0/apps
cd /usr/local/src/asterisk-16.10.0/
make apps
To use do a ‹ make install › on your asterisk source or copy apps/app_softmodem.so into your asterisk module directory (/lib/asterisk/modules).
/etc/init.d/asterisk stop; /etc/init.d/asterisk start
asterisk -rvvvvvvvv– verifions que le module est bien pris en compte
CLI> module show like app_softmodem.so
Module Description Use Count Status Support Level
app_softmodem.so Softmodem v22 0 Running extended
1 modules loaded -
Serveur en PHP7.
– asterisk-Softmodem va contacter le serveur sur un port TCP prédéfini. Le script doit donc écouter sur ce port et quand une connection arrive ouvrir la socket TCP.
– Pour tester vous pouvez utiliser telnetd. (apt-get install -y telnetd et dans le fichier extension utiliser le port 23)
– Le minitel envoie deux octets 0x13, 0x49 pour annoncer sa presence. Les codes sont décrit à cette page: Table des codes de programation du Minitel.
– le plus simple est de répondre avec du texte ASCII qui s’affiche sur l ecran.
– si vous appuyez sur le clavier du minitel le scrip php recoit les codes ascii associés.
– Pour faire tout cela je suis parti de l exemple de la page: PHP: Examples - Manual