Accueil Les News Nous contacter Les Tutoriaux
Suivez nous sur Facebook Suivez nous sur Twitter

Forum Non-Officiel & Indépendant




Filtrage des appels entrant

 
Poster un nouveau sujet   Répondre au sujet    C-Alice.org > Forum C- Alice - Le Cercle des Aliciens et des Freenautes - Index du Forum -> Téléphonie Free
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
MSG
Modérateur
Modérateur




Inscrit le: 17 Avr 2012
Messages: 2891

MessagePosté le: 11 Mar 2023, 00:24  ->    Sujet du message: Filtrage des appels entrant Répondre en citant

Bonsoir ,

Lors d'appels reçus de démarchage ou autres , Free propose une commande (351) pour créer une liste de filtrage d'appels entrants de numéros ou de préfixes indésirables .

https://assistance.free.fr/articles/telephone-fixe-filtrer-les-appels-entrants-548

Malheureusement , si un numéro qu'on ne veut pas filtrer se retrouve par erreur dans cette liste , il n'y a pas d'autre choix que de tout effacer avec le code #351# , puis ressaisir tous les numéros de la liste un à un (si on les a noté quelque part) ou des préfixes (généralement les 6 premiers chiffres) .

Comme je viens de coder un programme similaire pour envoyer des commandes DTMF , mais pour un autre usage et n'ayant plus de Freebox , je me suis dit que ça pourrait intéresser certains .

Le programme est créé en Python3 , du nom de la commande : 351.py
Un fichier contenant la liste de numéros ou préfixes : 351_liste_noire.txt à modifier selon vos besoins
Et les fichiers audio des DTMF correspondant aux touches : DTMF_touche_( 0 à 9 + E et F ).wav et no.wav .

S'assurer de la présence du programme de lecture audio play , (présent sous Linux , sous windows je n'ai pas de quoi tester) .
Dans la console , tester avec la commande : play -q DTMF_touche0.wav
Le son DTMF devrait se faire entendre en sortie d'un HP ou casque audio , il faut juste augmenter le volume pour bien l'entendre.

Les fichiers doivent être dans le même dossier et le programme se lance avec la commande : python3 351.py
Il est possible d'ajuster le temps entre chaque numéro pour pouvoir raccrocher et décrocher sur la variable tp.


Listing du programme 351.py
Code:
#!/usr/bin/python3

#===============================================#
# Reprogrammation filtrage des appels entrant   #
#                                               #
# Service : Freebox ligne fixe                  #
#                                               #
# Programmation : MSG - (c) 03-2023             #
#===============================================#
#///////////////////////////////////////////////
from time import sleep
import os

def DTMF(n):
   # Code pour supprimer les espaces entre les chiffres
   if n.count(" "): n = n.replace( " " , "" )
   print(n)
   n = n.replace( "*" , "E" )
   n = n.replace( "#" , "F" )
   for c in n:
      if c in tuple("0123456789EF"):
         os.system("play -q DTMF_touche_" + c + ".wav")
      else:
         os.system("play -q no.wav")
   return

#
# lecture du ficher txt associé
#===============================
#//////////////////////////////
liste = ["# 351 #",]       # code vider la liste
fo = open( "351_liste_noire.txt" , "r")
l = fo.read()
EOL = l.count( "\n" )
fo.seek(0,0)
for n in range( EOL ):
   liste.append( fo.readline()[0:-1] ) # ajoute numéros à la liste
fo.close()

#
# Séquence de programmation
#===========================
#//////////////////////////
tp = 5   # pause (en secondes) raccrocher - décrocher
for n in range( EOL ):
   if n == 0:
      print("\n--- Décrocher ---")
      sleep( tp )
      DTMF( liste[n].strip(" ") )
   else:
      print("--- Raccrocher - Décrocher --- %2i/%i" %( n , EOL ))
      sleep ( tp ) 
      DTMF( "* 351 * " + liste[n].strip(" ") + " #" )
print("--- Raccrocher - C'est fini --- %i/%i\n" %( n+1, EOL ))



Le résultat de la séquence de préfixes que j'ai programmé :
Citation:
$ python3 351.py

--- Décrocher ---
#351#
--- Raccrocher - Décrocher --- 1/19
*351*018656#
--- Raccrocher - Décrocher --- 2/19
*351*021901#
--- Raccrocher - Décrocher --- 3/19
*351*022164#
--- Raccrocher - Décrocher --- 4/19
*351*025545#
--- Raccrocher - Décrocher --- 5/19
*351*027983#
--- Raccrocher - Décrocher --- 6/19
*351*035349#
--- Raccrocher - Décrocher --- 7/19
*351*036748#
--- Raccrocher - Décrocher --- 8/19
*351*037466#
--- Raccrocher - Décrocher --- 9/19
*351*037933#
--- Raccrocher - Décrocher --- 10/19
*351*042285#
--- Raccrocher - Décrocher --- 11/19
*351*044902#
--- Raccrocher - Décrocher --- 12/19
*351*046563#
--- Raccrocher - Décrocher --- 13/19
*351*048793#
--- Raccrocher - Décrocher --- 14/19
*351*051807#
--- Raccrocher - Décrocher --- 15/19
*351*053294#
--- Raccrocher - Décrocher --- 16/19
*351*055464#
--- Raccrocher - Décrocher --- 17/19
*351*055465#
--- Raccrocher - Décrocher --- 18/19
*351*098829#
--- Raccrocher - C'est fini --- 19/19

$


PS: ci-joint le ZIP des fichiers nécessaire pour son fonctionnement .[

_________________
Ex Alicebox, Freebox , Sosh fibre.
Orange fibre coup de pouce - Livebox 4 - 500 Mb/s symétrique .
HP Elitebook 840 G3 - i5 6300u - recyclé AfB .
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
Busyspider
Adjoint-Admin
Adjoint-Admin




Inscrit le: 06 Sep 2005
Messages: 68407

MessagePosté le: 11 Mar 2023, 09:00  ->    Sujet du message: Répondre en citant

Bonjour MSG

Merci de ce tuto.

Faut quand même être très spécialiste pour pouvoir le mettre en place !

_________________
.
...............
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
MSG
Modérateur
Modérateur




Inscrit le: 17 Avr 2012
Messages: 2891

MessagePosté le: 11 Mar 2023, 10:55  ->    Sujet du message: Répondre en citant

Bonjour ,

Pour être spécialiste (sur système Linux) , il faut savoir : Wink (pour Windows , j'ai pas !)

- Télécharger le fichier ZIP en pièce joointe
- Créer un dossier et Dézipper le fichier téléchargé
- S'assurer d'avoir le language Python3 sur sa machine (présent sur Linux)
- S'assurer de la présence d'un programme permettant la lecture fichiers WAV . Sur Linux il y a play
(play -q fichier_quelconque.wav) . Modifier le programme si vous avez un autre utilitaire de lecture audio .

- Editer le fichier 351_liste_noire.txt pour créer sa propre liste noire .
- Ouvrir une console de commande
- Lancer le programme avec la commade ci-dessous et suivre les instructions en collant la sortie son du PC sur le micro du téléphone fixe .
(python3 351.py)

Je peux compiler le programme pour le rendre exécutable , mais ça empêcherait les usagers potentiels de vérifier que je n'y ais pas mis de commande dangereuse pour leur système ou données de leur ordinateur . Ça permet de comprendre et de le modifier si par exemple l'intervalle entre les numéros est trop court ou autre .

Je suis à l'écoute de vos remarques (pour la version Linux) et si un utilisateur Windows pouvait vérifier le programme sur ça machine , ça aiderait à l'adapter pour ce système . Le langage Python est universel , donc il ne devrait pas y avoir de problème pour le faire tourner sur Windows ,

PS: le contenu du fichier ZIP en pièce jointe .
- 351_liste_noir.txt (fichier contenant la liste des numéros et préfixes à filtrer , un numéro par ligne)
- 351.py (le programme Python qui va exécuter la programmation)

13 fichiers audio WAV correspondant aux sons émis par les touche du téléphone fixe
- DTMF_touche0.wav
- DTMF_touche1.wav
etc
- DTMF_touche9.wav
- DTMF_toucheE.wav (touche étoile)
- DTMF_toucheF.wav (touche dièse)
- no.wav (pour toutes autres touches inexistantes)

Le langage Python se trouve sur le lien ci-dessous (pour les utilisateurs windows) :
https://www.python.org/downloads/windows/


MSG

_________________
Ex Alicebox, Freebox , Sosh fibre.
Orange fibre coup de pouce - Livebox 4 - 500 Mb/s symétrique .
HP Elitebook 840 G3 - i5 6300u - recyclé AfB .
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
mickeul16
Administrateur
Administrateur




Inscrit le: 31 Mar 2008
Messages: 19406

MessagePosté le: 16 Mar 2023, 16:25  ->    Sujet du message: Répondre en citant

On peut faire du Python sur Windows aussi (j'en ai utilisé pour récupérer et convertir des SMS et des contacts WindowsPhone pour les mettre sur mon Android, ça marchait du tonnerre, le mec qui avait codé ce script avait fait du super boulot), par contre, il faut connaitre la version de Python utilisée par ton script pour installer la bonne version

Je penses même que tu dois pouvoir faire un exe à partir de ton script Python (le script pour mes transferts avait été transformé par le même gars pour que ça soit exécutable directement)

EDIT: j'ai lu en diagonale Laughing

_________________
FreeBox Révolution FTTH 39.99 € Freebox V6 TV by Canal -- Technicien réseau freelance ne me contactez par MP qu'à ma demande, les messages non sollicités ne seront pas lus ni répondus
#SauvezDesVies,RestezChezVous, Télétravaillez
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
MSG
Modérateur
Modérateur




Inscrit le: 17 Avr 2012
Messages: 2891

MessagePosté le: 16 Mar 2023, 20:23  ->    Sujet du message: Répondre en citant

Bonsoir ,

Je suis avec la version :
Citation:
Python 3.5.7 (default, Apr 4 2019, 11:58:21)
[GCC 5.5.0] on linux


Mais peu importe , une version python 3 fera l'affaire , surtout pas du python 2 .

La première ligne sert de path pour le programme python sous Linux et pour l'éditeur de texte qui me colore automatiquement les variables , les mots clefs et gère aussi l'indentation avec les petites flèches bleu à gauche , qui me ferme une partie du code à la demande (boucles , fonctions) , très pratique . Il y a aussi une miniature du code à gauche (ascenseur) , qui permet de se déplacer rapidement lorsque le programme est très long .




Pour la compilation , Linux ne fonctionne pas pareil que windows , Je n'ai qu'à changer une valeur dans les paramètres du fichier pour le rendre exécutable ou pas . Avec Windows , il faut le compiler pour en faire un fichier.exe , à moins que ça ait changer .

Pour la programmation , j'ai une notice en anglais qui me sert souvent : https://www.tutorialspoint.com/python3/index.htm

MSG

_________________
Ex Alicebox, Freebox , Sosh fibre.
Orange fibre coup de pouce - Livebox 4 - 500 Mb/s symétrique .
HP Elitebook 840 G3 - i5 6300u - recyclé AfB .
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
MSG
Modérateur
Modérateur




Inscrit le: 17 Avr 2012
Messages: 2891

MessagePosté le: 17 Avr 2023, 18:29  ->    Sujet du message: Répondre en citant

Bonjour ,

Voilà , je me suis équipé d'un PC avec Windows 10 , j'ai téléchargé la dernière version de python (3.11.3) , mais une version antérieure ne devrait pas poser de problème .

Il faut lancer l'IDLE(python 3.11) qui est la fenêtre qui affiche le résultat , puis créer un nouveau dossier et ficher pour ce programme . Le soucis c'est qu'il stocke dans le répertoire python , qui n'est pas accessible (caché) , pour y ajouter les fichiers audios des codes DTMF . je l'ai donc créer dans le dossier documents\python\free liste noire

Le nouveau fichier va lancer une seconde fenêtre qui est la fenêtre de codage , coller le listing ci-dessous et l'enregistrer dans le dossier créé . Ajouter les fichiers audio que je vais ajouter et créer un fichier texte contenant la liste des numéros à bloquer , fichier qui devra s'appeler liste_noire.txt

On revient sur la fenêtre de codage et on fait un Run module F5 et le son sort normalement des haut parleurs , si le son n'est pas coupé .

J'ai codé et corrigé quelques bugs que je n'avait pas détecté , et ça donne le code suivant :

Code:
#! python3
from time import sleep
from winsound import *

def DTMF( num ):
    sleep( 5 )  # pause en secondes entre chaque numéros
    if num.count(" "): num = num.replace( " ", "" )
    print(num)
    num = num.replace( "*", "E" )
    num = num.replace( "#", "F" )
    for c in num:
        if c in tuple("0123456789EF"):  file = "DTMF_" + c + ".wav"
        elif c == "+" :                 file = "DTMF_00.wav"
        else :                          file = "no.wav"
        PlaySound(file, SND_FILENAME)
    return

# Lecture du fichier txt associé
#================================
liste = ['#351#',]
fo = open( "liste_noire.txt", "r")  # ouvre le fichier en lecture
EOF = len( fo.read() )              # taille du fichier
fo.seek(0,0)                        # repositionne au début
while fo.tell() < EOF:              # jusqu'à la fin du fichier
    rl = fo.readline()              # lire une ligne du fichier
    rl = rl.replace( "\n", "" )     # efface le retour à la ligne \n
    rl = rl.strip( " " )            # supprime les espaces
    if rl != "":                    # la ligne ne doit pas être vide
        liste.append( rl )          # ajoute le numéro à la liste
fo.close()                          # ferme l'accès au fichier

# Sequence de programmation
#===========================
EOL = len( liste )
for n in range( EOL ):
    if n :
        print("Raccrocher - Décrocher  (%i/%i)" %( n, EOL ))
        num = "*351*" + liste[n] + "#"
    else :
        print("Décrocher")
        num = liste[n]
    DTMF( num )
print("Raccrocher , c'est fini (%i/%i)" %( n+1, EOL ))


Le programme peut être lancé depuis son répertoire en ligne de commande , voir image ci-dessous ,
avec la commande py 351.py .



PS : l'action de raccrocher - décrocher peut se faire simplement en appuyant sur la touche R du combiné .
La séquence commence toujours par le code de vidage #351# .
Le fichier liste_noire.txt ne contient que les numéros à bloquer , le programme s'occupe d'ajouter les commandes *351* du début et # à la fin .

Le contenu de mon fichier liste_noire.txt
Code:
012345
023456
034567
045678
056789



S'assurer que la fonction de filtrage des appels entrants est bien activée chez l'opérateur :
https://assistance.free.fr/articles/548

_________________
Ex Alicebox, Freebox , Sosh fibre.
Orange fibre coup de pouce - Livebox 4 - 500 Mb/s symétrique .
HP Elitebook 840 G3 - i5 6300u - recyclé AfB .
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet       Forum C- Alice - Le Cercle des Aliciens et des Freenautes - Index du Forum -> Téléphonie Free Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum
Vous ne pouvez pas joindre des fichiers
Vous ne pouvez pas télécharger des fichiers
Les indispensables pour vos demandes d'aide
Carte de couverture Free Mobile
Réseau Free Mobile
Votre débit descendant et ascendant
Testez votre débit
Accès à l'interface web de votre box
V5 Administration
Accès à l'interface web de votre box
V6 Administration
Accès à l'interface web de votre box
V2 Administration
Carte du Dégroupage Free
Carte dégroupage
Votre IP - Votre Réseau - Votre DSLAM
Quelle est votre IP
Eligibilité et Caractéristiques de votre ligne
Test de l'éligibilité





© 2004-2014 | C-Alice.org | Charte | Contact | Mentions Légales | Signaler un contenu illicite | Powered by : phpBB | Traduction par : phpBB-fr.com | Design by : C-Alice.org | Mod Anti-Spam phpBB