Vous êtes ici : Accueil Members gma Quelques exemples de scripts pour piloter un PBX Nortel facilement via ssh
Actions sur le document

Quelques exemples de scripts pour piloter un PBX Nortel facilement via ssh

Par gma Dernière modification 21/09/2011 07:28

Pour automatiser et travailler rapidement :) On peut créer un ensemble de commandes pour automatiser les actions courantes sur un PBX NORTEL

Le système NORTEL de gestion de notre  PBX dysfonctionnait : un PC sous Linux m'a permis de piloter le PBX Nortel avec un ensemble de scripts.

Accessible via ssh, il permet des modifications à distance.

Voici quelques exemples...


/usr/local/bin/aide

La petite organisation des scripts...

#!/bin/bash
echo "
NORTEL : liste des commandes

aide: donne ce fichier d'aide
Attention: pour quitter minicom : ALT+Z
****: pour sortir en mode intéractif

I. On se connecte et on se déconnecte
nortel.connect : regarde l'état de la connection et se connecte si nécessaire
nortel.deconnect : déconnecte

( nortel.1 : script de connection
nortel : pour être en mode interactif
( nortel.0 : déconnection

II. Une fois connecté, on passe les commandes

II.A. Lecture des infos

nortel.info.tel 141 : donne les infos du tél 141
nortel.info.carte 12 : donne les infos sur la carte 12 - les cartes vont de 9 à 16.
nortel.info.carte.broche 12 2 : donne les infos sur la carte 12 pour la broche 2.

II.B. Modification de noms

nortel.nom.supprimer 141 : supprime le nom associé au numéro 141
nortel.nom.creer 141 "Nathalie K." : créé le nom associé au numéro 141 mais il faut supprimer le nom avant.

II.C. Création de poste de téléphone

III Gestion de la date
nortel.date: pour lire la date du nortel
nortel.date.autoset: pour synchroniser la date du nortel

PS: si on n'est pas loggué on lit OVL013 après un ld 20
si on est loggué on lit OVL000 après un return.

"


/usr/local/bin/nortel

Pour passer en mode interactif

#!/usr/bin/expect
set temps 0.1
spawn minicom
interact


/usr/local/bin/nortel.0

Pour se déconnecter

#!/usr/bin/expect
set temps 0.1
spawn minicom




sleep $temps
send "****\r"

expect ">"
sleep $temps
send "****\r"

expect ">"
sleep $temps
send "logo\r"


/usr/local/bin/nortel.1

Pour se connecter

#!/usr/bin/expect
set temps 0.1
spawn minicom

sleep $temps
send "\r"

expect ">"
sleep $temps
send "logi THE_LOGIN\r"

expect "PASS?"
sleep $temps
send "THE_PASSWORD\r"

expect ">"
#interact


/usr/local/bin/nortel.date

Pour lire l'heure du NORTEL

#!/bin/bash
log="/home/NORTEL/nortel/nortel_$(date +%Y%m%d_%a_%Hh%Mm%Ss)_date.log"
n1="$1"
#nortel.connect
date
/usr/local/bin/nortel.date.exp >> "$log"
cat "$log" | sed "s/\x0D//g" | perl -ne 'print if /ttad/.../EOF/' | sed "s/.ttad.//g" | grep "20[0-9][0-9]"
date
echo
chown NORTEL:NORTEL "$log"


/usr/local/bin/nortel.date.autoset

Pour synchroniser la date

#!/bin/bash
log="/home/NORTEL/nortel/nortel_$(date +%Y%m%d_%a_%Hh%Mm%Ss)_date_set.log"
#nortel.connect
echo
echo "Synchronise automatiquement la date du central avec le serveur nortel"

date
echo start
/usr/local/bin/nortel.date.set.exp  $( date --date='2 second' +'%d %m %Y %H %M %S' )  > "$log"
echo end
date
echo
chown NORTEL:NORTEL "$log"
echo
echo "Date Actuelle :"
/usr/local/bin/nortel.date

exit 0


/usr/local/bin/nortel.date.exp

Le script de dialogue pour lire la date du nortel

#!/usr/bin/expect
set n1 [lindex $argv 0]
set n2 [lindex $argv 1]
set temps 0.2
spawn minicom -m

sleep $temps
send "****\r"

expect ">"
sleep $temps
send "****\r"

expect ">"
sleep $temps
send "ld 02\r"

# consultation date

expect "."
sleep $temps
send "ttad\r"

expect "."
sleep $temps
send "****\r"

expect "."
sleep $temps
send "****\r"


expect "."
sleep $temps
send "****\r"


/usr/local/bin/nortel.date.set.exp

Le script de dialogue pour changer la date du NORTEL

#!/usr/bin/expect
set n1 [lindex $argv 0]
set n2 [lindex $argv 1]
set n3 [lindex $argv 2]
set n4 [lindex $argv 3]
set n5 [lindex $argv 4]
set n6 [lindex $argv 5]

set temps 0.2
spawn minicom -m

sleep $temps
send "****\r"

expect ">"
sleep $temps
send "****\r"

expect ">"
sleep $temps
send "ld 02\r"

# consultation date

expect "."
sleep $temps
send "stad $n1 $n2 $n3 $n4 $n5 $n6 \r"
sleep $temps
sleep $temps

expect "."
sleep $temps
send "****\r"

expect "OVL000"
sleep $temps
send "****\r"


/usr/local/bin/nortel.info.tel

Un script pour fournir les informations relatives à un téléphone y compris la position et le numéro du patch

#!/bin/bash
numero="$1"
log=/home/NORTEL/nortel/nortel_$(date +%Y%m%d_%a_%Hh%Mm%Ss)_T$(printf %04d $numero).log
#echo $log
#read kk

#nortel.connect
nortel.info.tel.exp $numero | sed "s/\[1;6[12]r//g" | sed "s/\[61;1H//g" | sed "s/\x1B/\n/g" | sed "s/\x0D/\n/g" | uniq > $log
chown NORTEL:NORTEL $log
#val="TN   012 0 00 01 KEY 00   MARP  DES 3902      14 MAY 2008"
carte=$( grep TN $log | awk '{print $2 }' )
broche=$( grep TN $log | awk '{print $5 }' )
position=$(( $(echo "($carte-5)*16+$broche+1" | bc )  ))
ligne=$(( $(echo "($position-1)/24+1" | bc ) ))
type=$( grep TN $log )
#| awk '{print $9 " " $10 " " $11 }' )
nom=$( grep NAME $log | sed "s/.*NAME//" | sed "s/\x0D.*//" )
echo "============================================================"
echo "Informations pour le numéro : $numero"
echo "============================================================"
echo "Carte: $carte"
echo "Broche: $broche"
echo
echo "Patch: $ligne"
echo "Position : $position"
echo
echo "Tél de type : $type"
echo
echo "Nom : $nom"
echo
echo "------------------------------------------------------------"
#echo "============================================================"



/usr/local/bin/nortel.info.tel.exp

Le script de dialogue pour obtenir les informations d'un téléphone

#!/usr/bin/expect
set temps 0.2
set numero [lindex $argv 0]
spawn minicom -m

sleep $temps
send "****\r"

expect ">"
sleep $temps
send "****\r"

expect ">"
sleep $temps
send "LD 20\r"

expect "PT0000"
sleep $temps
send "\r"

expect "REQ:"
sleep $temps
send "PRT\r"

expect "TYPE:"
sleep $temps
send "DNB\r"

expect "CUST"
sleep $temps
send "0\r"

expect "DN"
sleep $temps
send "$numero \r"

expect "DATE"
sleep $temps
send "\r"

expect "PAGE"
sleep $temps
send "\r"

expect "DES"
sleep $temps
send "\r"

#interact

expect "NACT"
sleep $temps
send "****\r"

expect ">"
sleep $temps
send "****\r"

expect ">"
sleep $temps
send "****\r"


Exemple d'utilisation : nortel.info.tel 107

On se connecte.

17:08:52[NORTEL@nortel^~]$nortel.1
Bienvenue avec minicom 2.3

OPTIONS: I18n
Compilé le Feb 24 2008, 16:35:15.
Port /dev/ttyS0

Tapez ESC,Z pour voir l'aide concernant les touches spéciales

TTY 01 SCH MTC   17:08
OVL111 IDLE   0
>logi user0
PASS?
.
TTY #01 LOGGED IN USER0 17:08  20/9/2011


On passe la commande

17:08:54[NORTEL@nortel^~]nortel.info.tel 107
============================================================
Informations pour le numéro : 107
============================================================
Carte: 011
Broche: 08

Patch: 5
Position : 105

Tél de type : TN   011 0 00 08 KEY 00   MARP  DES 3902      14 MAY 2008

Nom :  Nathalie K.
------------------------------------------------------------


On se déconnecte si nécessaire

17:09:12[NORTEL@nortel^~]$nortel.0

Bienvenue avec minicom 2.3

OPTIONS: I18n
Compilé le Feb 24 2008, 16:35:15.
Port /dev/ttyS0

               Tapez ESC,Z pour voir l'aide concernant les touches spéciales

****

OVL000
>****
OVL000
17:09:20[NORTEL@nortel^~]

En ssh, il faut moins de 30 secondes pour connaître une position sur un patch alors qu'on peut se trouver à 300 km du site.


Ce site respecte les normes suivantes :