Mise a jours de la LiveBox Sagem

Pouaahh…

Je viens de me faire réveiller en pleine nuit (Grosse lumière blanche qui clignote) par la mise a jours de ma Livebox Sagem, la pire nouvelle du mois.

Version: 4.0.21.3.3.1.31.FAST3202_26014A

En gros dans cette nouvelle version, le DNS ne fonctionnement plus pareil, je me retrouve avec des timeouts pour les premières connexions (ensuite Firefox dispose de son propre cache, mais pour certaines applications ça doit être pire).

Ils ont aussi pensé à brider complément la configuration de la box (super les gars … ça c’est du service .. ).

Le snmp faut même plus y penser.

Mon script cacti pour le monitoring ne marchait plus, ça j’ai pu le corriger (juste une ligne en trop).

Ce qui m’énerve le plus, c’est que je ne pourrai même pas menacer Orange de les quitter .. il sont quasiment en position de trust sur le marché et se foutent royalement de perdre des clients …

Pour plus d’infos sur les « nouveautés » de la Sagem : fr.reseaux.internet.fournisseurs

Edit : UNE bonne nouvelle, le téléphone VOIP semble désormais marcher correctement (plus de coupure).

Aller plus loin avec une livebox Sagem

Bon soyons sérieux, je déteste la LiveBox, seulement c’est le seul moyen d’avoir TV et Telephone chez Orange…
Il ne s’agit pas d’un appareil professionnel et pour lui faire cracher ne serait-ce que quelques valeurs comme la marge de bruit il faut se lancer dans tout un mic mac telnet machin truc chouette … (et j’en passe…).
Bref comme j’ai passé mon dimanche à triturer ce bout de ferraille, voici quelques brides de mes recherches.

L’interface Web de la live box permet d’obtenir ces valeurs, seulement pour automatiser sa récupération …prout…
Comme la livebox dispose AUSSI du service telnet j’ai commencé par chercher les valeurs nécessaires : user:root / pass:1234

Ensuite on se retrouve dans le système suivant :

[ root @ home ] $ adsl
[ root @ adsl ] $ mon
ADSL Monitoring is Successful.  The values are:

  adslLineStatus : Opérationnel
   adslMode  : G992_5_A
   Upstream = 944 Kb ( Intlv[LP0] )
   Downstream = 8524 Kb ( Intlv[LP0] )
 =================================================
   DIAG Info            :
=================================================
   Attenuation ( dB )   :       29.2        12.3 (FE)
   SNR margin  ( dB )   :        10         13 (FE)
   HEC counter          :      956
   CRC counter          :      131
  RTFirmwareVer  : 0x0c16010c

Superbe j’ai tous ce que je voulais et même plus. Il ne reste plus qu’à me faire un petit script pour automatiser tout cela :

#!/usr/bin/perl
# A Script to get LiveBox ADSL status by Bodman@wanadoo.fr
 # standard output :
 #   Up:944 Down:8524 LocalAtt:29.2 TermAtt:12.3 LocalSNR:10 TermSNR:13 HEC:960 CRC:135
 # Reason to get no output :
 #   no host param
 #   bad user/password (  <> root/1234 )
 #   bad adsl monitoring output ( <> 18 lines )
 #   livebox stress
# Get host,user,pass ( root / 1234 default )
 if ($ARGV[0] ne "") { $host = $ARGV[0]; } else { exit(); }
 if ($ARGV[1] ne "") { $user = $ARGV[1]; } else { $user = 'root' }
 if ($ARGV[2] ne "") { $pass = $ARGV[2]; } else { $pass = '1234' }
# Get Telnet env
 use Net::Telnet;
 $telnet = new Net::Telnet ( Timeout=>20 );
 $telnet->errmode(sub {die @_ unless $_[0] =~ /eof/});
# Telnet Login
 $telnet->open($host);
 $telnet->login($user,$pass);
#Go to adsl env and get monitoring
 $telnet->cmd("adsl");
 @tableau = $telnet->cmd("mon");
#End Telnet session in good condition
 $telnet->cmd("exit");
 $telnet->cmd("exit");
 $telnet->close;
if (@tableau == 18) #good data
 {
# FORME DU TABLEAU
 #=====================================================
 #...
 #5   Upstream = 944 Kb ( Intlv[LP0] )
 #6   Downstream = 8524 Kb ( Intlv[LP0] )
 #...
 #10  Attenuation ( dB )   :       29.2        12.3 (FE)
 #11  SNR margin  ( dB )   :        12         13 (FE)
 #12  HEC counter          :      956
 #13  CRC counter          :      131
 #...
 #=====================================================
#Prepare data
 @tableau[5] =~ s/^.* = ([0-9]*) Kb.*$/Up:\1 /;
 @tableau[6] =~ s/^.* = ([0-9]*) Kb.*$/Down:\1 /;
 @tableau[10] =~  s/^.*:[^0-9]*([0-9.]*)[^0-9]*([0-9.]*).*$/LocalAtt:\1 TermAtt:\2 /;
 @tableau[11] =~  s/^.*:[^0-9]*([0-9.]*)[^0-9]*([0-9.]*).*$/LocalSNR:\1 TermSNR:\2 /;
 @tableau[12] =~ s/^.*:[^0-9]*([0-9.]*).*$/HEC:\1 /;
 @tableau[13] =~ s/^.*:[^0-9]*([0-9.]*).*$/CRC:\1 /;
# cut \n
 chop(@tableau);
#print data
 print @tableau[5];
 print @tableau[6];
 print @tableau[10];
 print @tableau[11];
 print @tableau[12];
 print @tableau[13];
}
exit();

Avec ça on trouve une sortie compatible avec cacti :

./adsl_livebox.pl 192.168.1.1
Up:944 Down:8524 LocalAtt:29.2 TermAtt:12.3 LocalSNR:10 TermSNR:13 HEC:960 CRC:135

Chouette je n’ai plus qu’à faire de beaux graphiques 🙂