Asterisk, un Thomson CSF de 1981 et une Freebox : faire dialoguer deux époques

Après Pi-hole et quelques incursions du côté spatial, retour à la maison pour un projet qui mélange allègrement deux époques : faire sonner, sur la même installation, un téléphone à cadran de 1981 et un poste IP dernier cri — le tout raccordé à une seule ligne, celle de ma Freebox Ultra, via un serveur Asterisk maison.

Asterisk, le standard téléphonique qui tient dans une VM

Asterisk est un projet open source né en 1999, créé par Mark Spencer alors qu’il cherchait un autocommutateur téléphonique (PABX) abordable pour sa petite entreprise de support Linux. Faute de budget pour une solution propriétaire, il a tout simplement écrit la sienne — et en a fait un logiciel libre. Vingt-cinq ans plus tard, Asterisk fait tourner aussi bien des petits standards associatifs que des plateformes d’opérateurs, et reste la brique de référence pour quiconque veut transformer un simple serveur Linux en véritable central téléphonique.

Ici, Asterisk tourne dans une VM dédiée sur mon cluster Proxmox — un choix qui isole complètement la téléphonie du reste de l’infrastructure, avec ses propres sauvegardes et snapshots, indépendamment des autres services hébergés sur le cluster.

Vue d’ensemble de l’architecture

Le serveur Asterisk communique avec une passerelle Grandstream HT813, qui fait le lien entre le monde IP (SIP) et le monde analogique grâce à ses deux ports :

  • Port FXO : raccordé à la ligne téléphonique analogique de la Freebox Ultra, il fait office de trunk vers le réseau téléphonique classique.
  • Port FXS : sur lequel est branché un vénérable téléphone Thomson CSF S63 de 1981, à cadran à impulsions, modifié pour générer des tonalités DTMF.

En complément, un téléphone IP Yealink est enregistré directement en SIP sur Asterisk.

FXO vs FXS, en une phrase : un port FXO (Foreign eXchange Office) se comporte comme un téléphone face à la ligne — il décroche, sonne, compose. Un port FXS (Foreign eXchange Subscriber) fait l’inverse : il se comporte comme la ligne face à un téléphone — il fournit la tonalité et le courant de sonnerie. C’est exactement pour ça qu’on branche la Freebox sur le FXO et le vieux combiné sur le FXS.

La passerelle Grandstream HT813 : le pont analogique

Côté FXO, la passerelle se comporte comme un téléphone classique vis-à-vis de la Freebox : elle détecte la sonnerie entrante, décroche, et relaie l’appel vers Asterisk en SIP. Dans l’autre sens, elle permet à Asterisk d’émettre des appels sortants via la ligne analogique, comme le ferait un téléphone filaire branché directement dessus.

Côté FXS, la passerelle fournit une ligne analogique classique (tonalité, courant de sonnerie, et surtout décodage DTMF) à laquelle on peut brancher n’importe quel téléphone filaire. C’est cette prise FXS qui va permettre de faire revivre un combiné de 1981 — à une condition près.

Le clou du spectacle : convertir les impulsions d’un Thomson CSF de 1981 en DTMF

Le Thomson CSF S63 est un classique des lignes françaises des années 1970-80 : cadran rotatif, numérotation par impulsions décimales (pulse dialing). Concrètement, composer un « 7 » ouvre et referme la ligne sept fois de suite, très rapidement — une méthode de numérotation purement mécanique et électrique, sans la moindre tonalité.

Le problème, c’est que le port FXS du HT813, comme la quasi-totalité des équipements téléphoniques modernes, n’écoute plus que le DTMF (Dual-Tone Multi-Frequency) — les petites tonalités musicales que l’on entend en tapant sur un clavier de téléphone, chaque touche combinant deux fréquences précises. Le support de l’impulsion décimale a quasiment disparu du matériel VoIP grand public.

La solution tient dans un petit boîtier convertisseur impulsion vers DTMF, intercalé entre le cadran du Thomson CSF et la ligne : il compte les ouvertures/fermetures de ligne générées par le cadran pour chaque chiffre composé, puis régénère la paire de fréquences DTMF correspondante à la place. Pour le HT813 comme pour Asterisk, tout se passe exactement comme si le numéro avait été composé au clavier d’un téléphone moderne — alors qu’en réalité, c’est toujours le bon vieux cadran mécanique de 1981 qui fait tout le travail de saisie.

La chaîne complète ressemble donc à ceci :

  1. Le cadran du Thomson CSF génère des impulsions pour chaque chiffre composé.
  2. Le petit chipset convertisseur traduit ces impulsions en tonalités DTMF.
  3. Le port FXS du HT813 reçoit ces tonalités (et la voix, en analogique) et les convertit en signalisation SIP, avec la voix numérisée dans le flux audio (codec G.711 par défaut).
  4. Asterisk reçoit cet appel SIP comme n’importe quel autre, sans distinction avec le Yealink.

Résultat : ce téléphone d’un autre temps peut émettre et recevoir des appels au même titre qu’un poste moderne, tout en conservant son cadran, sa sonnerie mécanique et tout son charme d’origine.

Le téléphone IP Yealink : le confort moderne

En parallèle, un poste Yealink est enregistré directement en SIP sur Asterisk. Il profite des fonctionnalités qu’on attend d’un téléphone IP moderne :

  • Identification de l’appelant (CLI/CID) sur les appels entrants, y compris ceux provenant du trunk analogique Freebox via le FXO.
  • Voyant de messagerie vocale (MWI — Message Waiting Indicator), qui s’allume dès qu’un message est déposé sur la messagerie configurée dans Asterisk.

Le résultat : deux époques, une seule installation

Le plus intéressant dans ce montage, c’est qu’Asterisk ne fait aucune distinction entre les deux postes : un appel entrant sur la ligne analogique de la Freebox peut sonner indifféremment sur le Thomson CSF de 1981 ou sur le Yealink, selon le plan de numérotation défini. De la même façon, chacun des deux postes peut composer un numéro sortant via le trunk FXO, comme s’ils étaient tous les deux branchés directement sur la Freebox.

Une belle façon de faire dialoguer un standard téléphonique de plus de 40 ans avec les usages téléphoniques actuels, le tout piloté depuis une simple VM Proxmox — et un petit convertisseur d’impulsions qui fait, à sa modeste échelle, exactement le même travail de traduction protocolaire que ce blog aime bien raconter : faire se parler deux mondes qui, sur le papier, n’étaient jamais censés se comprendre.