f0fyf

f0fyf

lundi 20 novembre 2017

Décodage Tetra sous linux avec Telive


Le mode tétra ( ou Terrestrial Trunked Radio ) est un protocole de communication numérique dont l'ETSI a conçu la norme afin de l'harmoniser sur le plan européen. Le Tétra utilise le mode TDMA : 4 canaux multiplexés espacés de 25Khz à faible débit pour de la communication point à point ou point à multipoints. Ce mode peut-être crypté ou non. La méthode qui suit,concerne pour l'instant, les modes non cryptés. 
Pour trouver une emission tétra, il suffit de scanner entre 426 - 430.0 Mhz, 915- 921 Mhz, 460 - 470 Mhz. Contrairement à d'autres modes, le tétra envoie un signal permanent donc facile à trouver.


Sur le waterfall du SDR, vous devriez apercevoir ceci :

 Ici, 7 trames Tétra sont bien visibles

Afin de décoder tout ceci, il vous faudra le programme de SQ5BPF se nommant Telive. Pour ceux qui espèrent pouvoir décoder les services officiels de l'Etat ( police, gendarmerie ... ), passez votre chemin, il n'y a rien pour vous ici. Ce programme existe sous windows mais très lourd et encore avec quelques bugs. Avant de le récupérer, il nous faudra les prérequis, à savoir la librairie libosmocore, vorbis-tools, sox, libncurses, alsa-utils et gnuradio, de préférence, la version 3.7 ou plus. 

on prépare le système
$ sudo apt-get update       
$ sudo apt-get upgrade

on installe les prérequis  
$ sudo apt-get install sox vorbis-tools libncurses-dev alsa-utils 
$ git clone https://github.com/sq5bpf/libosmocore-sq5bpf
$ cd libosmocore-sq5bpf && autoreconf -i
$ ./configure && make

$ sudo make install
$ sudo ldconfig  
 

on install gnuradio
$ wget http://www.sbrac.org/files/build-gnuradio && chmod a+x ./build-gnuradio && ./build-gnuradio -v all 

On récupère ensuite le script qui permettra d'installer le programme Telive
wget https://raw.githubusercontent.com/sq5bpf/telive/master/scripts/install_telive.sh
On donne au fichier récupéré, le droit d'être exécuté
$ chmod 755 install_telive.sh
On lance l'installation
$ ./install_telive.sh

Le programme est dorénavant installé sur votre machine mais avant tout, il va falloir récupérer le codec à jour de la norme Tétra. Pour cela, il va falloir se rendre sur http://pda.etsi.org . Dans l'onglet en haut, on va sélectionner "Standard" puis dans la fenêtre, on va rechercher "en 300 395-2" puis on clique sur la petite loupe.


Dans la liste trouvée, il faudra aller chercher la norme "REN/TETRA-05059" en faisant une recherche dans le bandeau de gauche.


La liste va s'affiner et il faudra aller cliquer et sauvegarder le premier fichier zip de la liste nommé ETSI EN 300 395-2 V1.3.1 (2005-01) (ou clique droit sur ce lien, succeptible d'être modifié par l'etsi ). Une fois récupéré, placez l'archive dans le répertoire /tetra/osmo-tetra-sq5bpf/etsi_codec-patches/ et ensuite : 
$ unzip -L en_30039502v010301p0.zip
$ patch -p1 -N -E < codec.diff
$ cd c-code && make
$ sudo cp cdecoder sdecoder /tetra/bin

Tout est prêt maintenant pour commencer. Il sera possible de réaliser un petit script afin de lancer toutes les commandes en une seul fois mais pour l'instant, on va réaliser ces étapes pas à pas. Dans un terminal : 
On lance notre décodeur 
$ ~/tetra/osmo-tetra-sq5bpf/src/ ./receiver1 1 
On ouvre ensuite une fenêtre pour lancer le moniteur de canaux
$ /usr/bin/xterm -font fixed -bg black -fg white -geometry 203x60
Et dans cette fenêtre crée : 
$ ~/tetra/telive/ ./rxx
On ouvre un second onglet à notre fenêtre terminal où fonctionne receiver1 et on lance tetrad, qui permettra de faire le lien entre le moniteur et le décodeur
$ cd /tetra/bin/ && ./tetrad
Enfin, dernière étape, on ouvre gnuradio et on va lancer le récepteur 1 canal simple ( qui se trouve dans le répertoire ~/tetra/telive/gnuradio-companion/receiver_pipe )

 
Dans la première fenêtre de receiver1, vous allez alors avoir les infos de synchro qui défileront. Si vous n'êtes pas sur la fréquence correcte, vous n'aurez que des séries comme ci-après qui défileront :

### AFC: 0.665247
### AFC: 0.652904
### AFC: 0.646628

Il vous faudra alors ajuster dans votre fichier grc ( telive_1ch_simple_gr37 ) la fréquence de réception en déplaçant le fine_tune, en modifiant la fréquence, le ppm de votre clé afin d'avoir la synchro qui, dans la fenêtre receiver1, se symbolisera par des séries donnant toutes les infos nécessaire au décodage, par exemple : 

TMV-UNITDATA.ind 27/06/3/000 AACH CRC=1 ACCESS-ASSIGN
ACCESS-ASSIGN PDU: ACCESS2: A/8 DL_USAGE: Assigned control
CRC COMP: 0x1d0f OK
NDB 27/06/3/000 type1: 0000000000010000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
TMV-UNITDATA.ind 27/06/3/000 UNKNOWN CRC=1 RESOURCE
RESOURCE Encr=0, Length=2 Addr=Null PDU() sq5bpf req mle_pdisc=0 req=0
CRC COMP: 0x1d0f OK
NDB 27/06/3/000 type1: 1000010010000010010011000000101001101110011000010101111110111101000000100010000000000000000000101111111111111111110101100101
TMV-UNITDATA.ind 27/06/3/000 UNKNOWN CRC=1 BROADCAST
BNCH SYSINFO (DL 428862500 Hz, UL 418862500 Hz), service_details 0x0d65 LA:2 Hyperframe 5627
    Advanced link: 1
  
    Air encryption: 0  très important, c'est ce qui déterminera que le réseau que vous écoutez n'est pas encrypté
    SNDCP data: 1
    unknown 0x8: 0
    Circuit data: 0
    Voice service: 1
    Normal mode: 1
    Migration supported: 0
    Cell never uses minimum mode: 1
    Priority cell: 0
    De-registration mandatory: 1
    Registration mandatory: 1
Il faudra faire en sorte que sur votre ftt de votre grc, la courbe soit la plus rectangulaire possible.

exemple d'une réception

Quand vous aurez ceci, il vous faudra alors attendre une émission qui s'affichera dans le moniteur Tetra et que vous pourrez alors entendre en clair via vos écouteurs. Par ailleurs, il est possible d'enregistrer en vous mettant sur la fenêtre moniteur et en faisant Shift + r et de logger les SSID ( indicatifs des emetteurs ) ou infos de canal en cliquant sur l ( l'état de ces options est visible dans la ligne du haut avec record:1 et log:1 )


Les fichiers audio sont stockés dans le répertoire : /tetra/out/date_du_jour au format ogg
Le log est stocké dans le répertoire /tetra/log/

Il est possible de basculer la fenêtre monitor afin d'avoir des infos complémentaires en tapant sur la lettre t , vous obtiendrez alors :



Il est également possible de récupérer les messages SDS, genre de sms entre opérateurs via la fenêtre receiver et également plein d'autres choses intéressantes qui feront l'objet d'un nouvel article mais vous avez dorénavant les bases pour débuter vos écoutes .. 




5 commentaires:

  1. Super article bien expliqué !

    En attendant la suite !

    RépondreSupprimer
  2. bonjour, c'est pour cela que je dis il n' y a rien de mieux que linux :)

    RépondreSupprimer
  3. bande de blaireau s'est impossible d'ecouté du digitale ! gros fake et gros mito ! il faut du materiele hyper perfectioné pour pouvoir ecouté . s'est des grosses conneries que tu dis

    RépondreSupprimer
    Réponses
    1. En temps normal, je n'aurais pas pris la peine de répondre et j'aurais supprimé le commentaire ..

      1 - Je ne publie jamais de choses qui ne fonctionne pas, tu peux toujours rechercher sur le net des exemples qui le prouve, ce n'est pas à moi de de le faire pour toi .. Il est parfaitement possible de décoder du tetra, tout comme d'autre modes numérique non crypté, il suffit juste de se donner la peine d'essayer :)

      2 - Il existe un bel ouvrage appelé dictionnaire pour t'aider à avancer dans la vie et également un livre dont tu devrais prendre le temps de comprendre, même si je sais que c'est peine perdue pour toi, qui se nomme "le bescherelle". Ils te rendraient tous deux, d'immenses services !

      Supprimer
    2. [supprimé par F0FYF]

      Supprimer