[R1C Projet] Macro TeraTerm Pro, Connexion et extraction des données d’un PABX

Voici un exemple de macro pour TeraTerm Pro (séparé en 3 modules). Le fichier « R1C-EXTRAC.tt » fait appel à deux autres fichiers « R1C-CNX-PABX.ttl » et « R1C-CNX-PABX-PARAM.ttl ».

Macro « R1C-EXTRAC.ttl » pour extraire les données d’un PABX

;=====================================================================================================================
; Macro pour Tera Term Pro
; Connexion par Telnet au PABX 4400/OXE
;=====================================================================================================================
; Fichier 		: R1C-EXTRAC.ttl
; Auteur 		: CHARRETEUR Erwan
; Modification 		: 24/05/2017
; Action 		: Extraire dans des fichiers textes la configuration d'un PABX (4400/OXE)
;=====================================================================================================================
; param2 = AdresseIP du PABX
; param3 = Titre de la fenêtre
; param4 = Nom du fichier extraction
; param5 = 
; param6 = 
; param7 = 
; param8 = 
; param9 = 
;=====================================================================================================================
; EXTRACTION ALVEOLE ( SANS LES CARTES VIRTUEL )
; EXTRACTION ALVEOLE ( AVEC CARTES VIRTUELS )
; EXTRACTION USAGERS ( commande edsbr )
; EXTRACTION USAGERS_IP ( commande ippstat )
; EXTRACTION USAGERS_SIP ( commande more /tmpd/localize.sip)
; EXTRACTION PLANNUM ( commande ednump )
; EXTRACTION LIST-OUT ( commande listout )
; EXTRACTION INCIDENTS ( commande incvisu )
; EXTRACTION ABREX ( commande edabv )
; EXTRACTION DECT ( commande 'dectview bs' et 'dectview ibs' )
; EXTRACTION TABLEACH ( commande 'echo "select * from TABACHDE;"|cuser' )
; EXTRACTION ANNUAIRE ( commande 'echo "select Mcdu,S_Name_Annu,F_Name_Annu from PHONEB WHERE Name_Index=0;"|cuser' )
; EXTRACTION ACTCPLPOS ( commande 'echo "select numan,crystal,coupler,position from POSTE;"|cuser' )
; EXTRACTION CATEGORIES ( commande 'echo "select numan,catptt,catexploit,ctconx from POSTE;"|cuser' )
; EXTRACTION TANDEM ( commande 'echo "select numan,tandem from POSTE;"|cuser' )
; EXTRACTION MEVO ( commande 'echo "select * from TABMEVO;"|cuser' )
; EXTRACTION USAGERS-MEVO ( commande 'echo "select numan,titusymp from POSTE;"|cuser' )
; EXTRACTION DOMAINES IP ( commande domstat 2 - all domains / 9 - all domains devices )
;=====================================================================================================================
 
;=====================================================================================================================
; Répertoire Courant de travail
;=====================================================================================================================
getdir repertoire
 
;=====================================================================================================================
; Lecture des paramètres d'affichage (fichier TTERMPRO.ini)
;=====================================================================================================================
filename = repertoire
strconcat filename "\INCLUDE\"
strconcat filename "R1C-CNX-PABX-PARAM.ttl"
include filename
 
;=====================================================================================================================
; Initialisation de la connexion au PABX avec mot de passe (ACTUEL/ANCIEN/DEFAUT)
;=====================================================================================================================
filename = repertoire
strconcat filename "\INCLUDE\"
strconcat filename "R1C-CNX-PABX.ttl"
include filename
 
;=====================================================================================================================
; Vérifier si la connexion au PABX est OK, sinon on ferme la macro
;=====================================================================================================================
strcompare CNX_OK '1'
if result=0 goto ALVEOLE1
goto FIN
 
;=====================================================================================================================
; Extraction des Alvéoles du PABX ( SANS LES CARTES VIRTUEL )
;=====================================================================================================================
:ALVEOLE1
timeout = 0
enablekeyb 0
flushrecv
sendln ''
wait ')xa' ')xb'
filename = repertoire
strconcat filename '\EXTRACT\ALVEOLE\'
foldercreate filename
strconcat filename param4
strconcat filename '.txt'
logopen filename 0 0 1 1 1
pause 2
 
commande = 1
flushrecv
sendln 'config'
wait 'all' ')xa' ')xb'
if result=1 commande = 2
if result=2 commande = 1
if result=3 commande = 1
 
flushrecv
sendln ''
wait ')xa' ')xb'
 
flushrecv
sendln 'config'
wait 'virtual card' ')xa' ')xb'
if result=0 goto ALVEOLE1_CHOIX_CONFIG
if result=1 commande = 3
if result=2 goto ALVEOLE1_CHOIX_CONFIG
if result=1 goto ALVEOLE1_CHOIX_CONFIG
 
:ALVEOLE1_CHOIX_CONFIG
flushrecv
sendln ''
if commande = 1 goto ALVEOLE1_config1
if commande = 2 goto ALVEOLE1_config2
if commande = 3 goto ALVEOLE1_config3
 
:ALVEOLE1_config1
for i 0 19
    wait ')xa' ')xb'
    int2str valstr i
    flushrecv
    send 'config '
    sendln valstr
next
wait ')xa' ')xb'
goto FinAlveole1
 
:ALVEOLE1_config2
wait ')xa' ')xb'
flushrecv
sendln ''
wait ')xa' ')xb'
flushrecv
sendln 'config all'
wait ')xa' ')xb'
goto FinAlveole1
 
:ALVEOLE1_config3
wait ')xa' ')xb'
flushrecv
sendln ''
flushrecv
wait ')xa' ')xb'
sendln 'config all'
wait ')xa' ')xb'
goto FinAlveole1
 
:FinAlveole1
pause 2
logclose
 
;=====================================================================================================================
; EXTRACTION ALVEOLE ( AVEC CARTES VIRTUELS )
;=====================================================================================================================
:ALVEOLE2
timeout = 0
enablekeyb 0
flushrecv
sendln ''
wait ')xa' ')xb'
filename = repertoire
strconcat filename '\EXTRACT\ALVEOLE\'
foldercreate filename
strconcat filename param4
strconcat filename '.vir'
logopen filename 0 0 1 1 1
pause 2
 
commande = 1
flushrecv
sendln 'config'
wait 'all' ')xa' ')xb'
if result=1 commande = 2
if result=2 commande = 1
if result=3 commande = 1
 
flushrecv
sendln ''
wait ')xa' ')xb'
 
flushrecv
sendln 'config'
wait 'virtual card' ')xa' ')xb'
if result=0 goto ALVEOLE2_CHOIX_CONFIG
if result=1 commande = 3
if result=2 goto ALVEOLE2_CHOIX_CONFIG
if result=1 goto ALVEOLE2_CHOIX_CONFIG
 
:ALVEOLE2_CHOIX_CONFIG
flushrecv
sendln ''
if commande = 1 goto ALVEOLE2_config1
if commande = 2 goto ALVEOLE2_config2
if commande = 3 goto ALVEOLE2_config3
 
; CONFIG (pour les anciens PABX ou la commande config all n'existe pas)
:ALVEOLE2_config1
for i 0 19
    wait ')xa' ')xb'
    int2str valstr i
    flushrecv
    send 'config '
    sendln valstr
next
wait ')xa' ')xb'
goto FinAlveole2
 
; CONFIG ALL (Sans cartes virtuel)
:ALVEOLE2_config2
wait ')xa' ')xb'
flushrecv
sendln ''
wait ')xa' ')xb'
flushrecv
sendln 'config all'
wait ')xa' ')xb'
goto FinAlveole2
 
; CONFIG ALL -V (Avec les cartes virtuel)
:ALVEOLE2_config3
wait ')xa' ')xb'
flushrecv
sendln ''
flushrecv
wait ')xa' ')xb'
sendln 'config all -v'
wait ')xa' ')xb'
goto FinAlveole2
 
:FinAlveole2
pause 2
logclose
 
;=====================================================================================================================
; EXTRACTION USAGERS ( commande edsbr )
;=====================================================================================================================
:USAGERS
flushrecv
sendln ''
wait ')xa' ')xb'
filename = repertoire
strconcat filename '\EXTRACT\USAGERS\'
foldercreate filename
strconcat filename param4
strconcat filename '.txt'
logopen filename 0 0 1 1 1
pause 1
 
flushrecv
sendln ''
wait ')xa' ')xb'
flushrecv
sendln 'edsbr -l FR0'
wait 'entrez un critere ou une commande :'
flushrecv
sendln 'clear'
wait 'entrez un critere ou une commande :'
flushrecv
sendln 'def'
wait 'entrez un critere ou une commande :'
flushrecv
sendln 'nblin printer 10000'
wait 'entrez un critere ou une commande :'
flushrecv
sendln 'nbcol printer 200'
wait 'entrez un critere ou une commande :'
flushrecv
sendln 'dir'
wait 'entrez un critere ou une commande :'
flushrecv
sendln 'hunt'
wait 'entrez un critere ou une commande :'
flushrecv
sendln 'name'
wait 'entrez un critere ou une commande :'
flushrecv
sendln 'code'
wait 'entrez un critere ou une commande :'
flushrecv
sendln 'typ'
wait 'entrez un critere ou une commande :'
flushrecv
sendln 'iak'
wait 'entrez un critere ou une commande :'
flushrecv
sendln 'act'
wait 'entrez un critere ou une commande :'
flushrecv
sendln 'cpl'
wait 'entrez un critere ou une commande :'
flushrecv
sendln 'pos'
wait 'entrez un critere ou une commande :'
flushrecv
sendln 'entity'
wait 'entrez un critere ou une commande :'
flushrecv
sendln 'pna'
wait 'entrez un critere ou une commande :'
flushrecv
sendln 'fc'
wait 'entrez un critere ou une commande :'
flushrecv
sendln 'cxc'
wait 'entrez un critere ou une commande :'
flushrecv
sendln 'vmdir'
wait 'entrez un critere ou une commande :'
flushrecv
sendln 'ass'
wait 'entrez un critere ou une commande :'
flushrecv
sendln 'v24'
wait 'entrez un critere ou une commande :'
flushrecv
sendln 'rout'
wait 'entrez un critere ou une commande :'
flushrecv
sendln 'cc'
wait 'entrez un critere ou une commande :'
flushrecv
sendln 'ccname'
wait 'entrez un critere ou une commande :'
flushrecv
sendln 'cbn'
wait 'entrez un critere ou une commande :'
flushrecv
sendln 'go'
wait 'Puis appuyer sur return' 'Aucune instance'  ')xa' ')xb'
if result=1 goto EDSBR_OK
if result=2 goto EDSBR_NOK
if result=3 goto EDSBR_NOK2
if result=4 goto EDSBR_NOK2
 
:EDSBR_OK
flushrecv
sendln ''
wait '=' ')xa' ')xb'
flushrecv
sendln ''
 
:EDSBR_NOK
wait 'entrez un critere ou une commande :'
flushrecv
sendln 'q'
wait ')xa' ')xb'
 
:EDSBR_NOK2
pause 2
logclose
 
;=====================================================================================================================
; EXTRACTION USAGERS_IP ( commande ippstat )
;=====================================================================================================================
:USAGERS_IP
flushrecv
sendln ''
wait ')xa' ')xb'
filename = repertoire
strconcat filename '\EXTRACT\USAGERS_IP\'
foldercreate filename
strconcat filename param4
strconcat filename '.txt'
logopen filename 0 0 1 1 1
pause 1
 
flushrecv
sendln ''
wait ')xa' ')xb'
flushrecv
sendln 'ippstat'
wait 'not found' 'your choice'
if result=1 goto USAGERS_IP_NOK
if result=2 goto USAGERS_IP_OK
 
:USAGERS_IP_OK
flushrecv
sendln '3'
wait 'press ENTER'
flushrecv
sendln ''
wait 'your choice'
flushrecv
sendln '0'
 
:USAGERS_IP_NOK
pause 2
logclose
 
;=====================================================================================================================
; EXTRACTION USAGERS_SIP ( commande more /tmpd/localize.sip)
;=====================================================================================================================
:USAGERS_SIP
flushrecv
sendln ''
wait ')xa' ')xb'
filename = repertoire
strconcat filename '\EXTRACT\USAGERS_SIP\'
foldercreate filename
strconcat filename param4
strconcat filename '.txt'
logopen filename 0 0 1 1 1
pause 1
 
flushrecv
sendln ''
wait ')xa' ')xb'
flushrecv
sendln 'more -30000 /tmpd/localize.sip'
wait ')xa' ')xb'
 
pause 2
logclose
 
;=====================================================================================================================
; EXTRACTION PLANNUM ( commande ednump )
;=====================================================================================================================
:EDNUMP
enablekeyb 0
sendln 'ednump -l FR0'
wait 'entrez un critere ou une commande :'
sendln 'clear'
wait 'entrez un critere ou une commande :'
sendln 'def'
wait 'entrez un critere ou une commande :'
sendln 'nblin printer 10000'
wait 'entrez un critere ou une commande :'
sendln 'nbcol printer 100'
wait 'entrez un critere ou une commande :'
sendln 'dir'
wait 'entrez un critere ou une commande :'
sendln 'mean'
wait 'entrez un critere ou une commande :'
sendln 'info'
wait 'entrez un critere ou une commande :'
sendln 'digit'
wait 'entrez un critere ou une commande :'
sendln 'go'
wait 'Puis appuyer sur return'
 
filename = repertoire
strconcat filename '\EXTRACT\PLANNUM\'
foldercreate filename
strconcat filename param4
strconcat filename '.txt'
logopen filename 0 0 1 1 1
pause 1
flushrecv
sendln ''
wait '='
pause 1
logclose
flushrecv
sendln ''
wait 'entrez un critere ou une commande :'
flushrecv
sendln 'q'
wait ')xa' ')xb'
 
;=====================================================================================================================
; EXTRACTION LIST-OUT ( commande listout )
;=====================================================================================================================
filename = repertoire
strconcat filename '\EXTRACT\LIST-OUT\'
foldercreate filename
strconcat filename param4
strconcat filename '.txt'
logopen filename 0 0 1 1 1
pause 1
flushrecv
sendln ''
wait ')xa' ')xb'
flushrecv
sendln 'listout'
wait ')xa' ')xb'
 
pause 2
logclose
 
;=====================================================================================================================
; EXTRACTION INCIDENTS ( commande incvisu )
;=====================================================================================================================
filename = repertoire
strconcat filename '\EXTRACT\INCIDENTS\'
foldercreate filename
strconcat filename param4
strconcat filename '.txt'
logopen filename 0 0 1 1 1
pause 1
flushrecv
sendln ''
wait ')xa' ')xb'
flushrecv
sendln 'incvisu'
wait ')xa' ')xb'
 
pause 2
logclose
 
;=====================================================================================================================
; EXTRACTION ABREX ( commande edabv )
;=====================================================================================================================
filename = repertoire
strconcat filename '\EXTRACT\ABREX\'
foldercreate filename
strconcat filename param4
strconcat filename '.txt'
logopen filename 0 0 1 1 1
pause 1
 
flushrecv
sendln ''
wait ')xa' ')xb'
flushrecv
sendln 'edabv -l FR0'
wait 'entrez un critere ou une commande :'
flushrecv
sendln 'clear'
wait 'entrez un critere ou une commande :'
flushrecv
sendln 'def'
wait 'entrez un critere ou une commande :'
flushrecv
sendln 'nblin printer 10000'
wait 'entrez un critere ou une commande :'
flushrecv
sendln 'nbcol printer 200'
wait 'entrez un critere ou une commande :'
flushrecv
sendln 'pref != ' 39 39
wait 'entrez un critere ou une commande :'
flushrecv
sendln 'num'
wait 'entrez un critere ou une commande :'
flushrecv
sendln 'name'
wait 'entrez un critere ou une commande :'
flushrecv
sendln 'go'
wait 'Puis appuyer sur return' 'Aucune instance' ')xa' ')xb'
flushrecv
sendln ''
wait '=' ')xa' ')xb'
flushrecv
sendln ''
wait 'entrez un critere ou une commande :' ')xa' ')xb'
flushrecv
sendln 'q'
wait ')xa' ')xb'
 
pause 2
logclose
 
;=====================================================================================================================
; EXTRACTION DECT ( commande 'dectview bs' et 'dectview ibs' )
;=====================================================================================================================
filename = repertoire
strconcat filename '\EXTRACT\DECT\'
foldercreate filename
strconcat filename param4
strconcat filename '.txt'
logopen filename 0 0 1 1 1
pause 1
flushrecv
sendln ''
wait ')xa' ')xb'
flushrecv
sendln 'dectview bs'
wait ')xa' ')xb'
flushrecv
sendln 'dectview ibs'
wait ')xa' ')xb'
 
pause 2
logclose
 
;=====================================================================================================================
; EXTRACTION TABLEACH ( commande 'echo "select * from TABACHDE;"|cuser' )
;=====================================================================================================================
filename = repertoire
strconcat filename '\EXTRACT\TABLEACH\'
foldercreate filename
strconcat filename param4
strconcat filename '.txt'
logopen filename 0 0 1 1 1
pause 1
flushrecv
sendln ''
wait ')xa' ')xb'
flushrecv
sendln 'cd /usr3/mao'
wait ')xa' ')xb'
flushrecv
sendln 'echo "select * from TABACHDE;"|cuser'
pause 4
sendln ''
wait ')xa' ')xb'
 
pause 2
logclose
 
;=====================================================================================================================
; EXTRACTION ANNUAIRE ( commande 'echo "select Mcdu,S_Name_Annu,F_Name_Annu from PHONEB WHERE Name_Index=0;"|cuser' )
;=====================================================================================================================
filename = repertoire
strconcat filename '\EXTRACT\ANNUAIRE\'
foldercreate filename
strconcat filename param4
strconcat filename '.txt'
logopen filename 0 0 1 1 1
pause 1
flushrecv
sendln ''
wait ')xa' ')xb'
flushrecv
sendln 'cd /usr3/mao'
wait ')xa' ')xb'
flushrecv
sendln 'echo "select Mcdu,S_Name_Annu,F_Name_Annu from PHONEB WHERE Name_Index=0;"|cuser'
pause 4
sendln ''
wait ')xa' ')xb'
 
pause 2
logclose
 
;=====================================================================================================================
; EXTRACTION TYPPOSTE ( commande 'echo "select numan,dtyterm from POSTE;"|cuser' )
;=====================================================================================================================
filename = repertoire
strconcat filename '\EXTRACT\TYPPOSTE\'
foldercreate filename
strconcat filename param4
strconcat filename '.txt'
logopen filename 0 0 1 1 1
pause 1
flushrecv
sendln ''
wait ')xa' ')xb'
flushrecv
sendln 'cd /usr3/mao'
wait ')xa' ')xb'
flushrecv
sendln 'echo "select numan,dtyterm from POSTE;"|cuser'
pause 4
sendln ''
wait ')xa' ')xb'
 
pause 2
logclose
 
;=====================================================================================================================
; EXTRACTION ACTCPLPOS ( commande 'echo "select numan,crystal,coupler,position from POSTE;"|cuser' )
;=====================================================================================================================
filename = repertoire
strconcat filename '\EXTRACT\ACTCPLPOS\'
foldercreate filename
strconcat filename param4
strconcat filename '.txt'
logopen filename 0 0 1 1 1
pause 1
flushrecv
sendln ''
wait ')xa' ')xb'
flushrecv
sendln 'cd /usr3/mao'
wait ')xa' ')xb'
flushrecv
sendln 'echo "select numan,crystal,coupler,position from POSTE;"|cuser'
pause 4
sendln ''
wait ')xa' ')xb'
 
pause 2
logclose
 
;=====================================================================================================================
; EXTRACTION CATEGORIES ( commande 'echo "select numan,catptt,catexploit,ctconx from POSTE;"|cuser' )
;=====================================================================================================================
filename = repertoire
strconcat filename '\EXTRACT\CATEGORIES\'
foldercreate filename
strconcat filename param4
strconcat filename '.txt'
logopen filename 0 0 1 1 1
pause 1
flushrecv
sendln ''
wait ')xa' ')xb'
flushrecv
sendln 'cd /usr3/mao'
wait ')xa' ')xb'
flushrecv
sendln 'echo "select numan,catptt,catexploit,ctconx from POSTE;"|cuser'
pause 4
sendln ''
wait ')xa' ')xb'
 
pause 2
logclose
 
;=====================================================================================================================
; EXTRACTION TANDEM ( commande 'echo "select numan,tandem from POSTE;"|cuser' )
;=====================================================================================================================
filename = repertoire
strconcat filename '\EXTRACT\TANDEM\'
foldercreate filename
strconcat filename param4
strconcat filename '.txt'
logopen filename 0 0 1 1 1
pause 1
flushrecv
sendln ''
wait ')xa' ')xb'
flushrecv
sendln 'cd /usr3/mao'
wait ')xa' ')xb'
flushrecv
sendln 'echo "select numan,tandem from POSTE;"|cuser'
pause 4
sendln ''
wait ')xa' ')xb'
 
pause 2
logclose
 
;=====================================================================================================================
; EXTRACTION MEVO ( commande 'echo "select * from TABMEVO;"|cuser' )
;=====================================================================================================================
filename = repertoire
strconcat filename '\EXTRACT\MEVO\'
foldercreate filename
strconcat filename param4
strconcat filename '.txt'
logopen filename 0 0 1 1 1
pause 1
flushrecv
sendln ''
wait ')xa' ')xb'
flushrecv
sendln 'cd /usr3/mao'
wait ')xa' ')xb'
flushrecv
sendln 'echo "select vm_Directory_Number,vm_Name,def_vm_COS,vm_entity from TABMEVO;"|cuser'
pause 4
sendln ''
wait ')xa' ')xb'
 
pause 2
logclose
 
;=====================================================================================================================
; EXTRACTION USAGERS-MEVO ( commande 'echo "select numan,titusymp from POSTE;"|cuser' )
;=====================================================================================================================
filename = repertoire
strconcat filename '\EXTRACT\USAGERS-MEVO\'
foldercreate filename
strconcat filename param4
strconcat filename '.txt'
logopen filename 0 0 1 1 1
pause 1
flushrecv
sendln ''
wait ')xa' ')xb'
flushrecv
sendln 'cd /usr3/mao'
wait ')xa' ')xb'
flushrecv
sendln 'echo "select numan,titusymp from POSTE;"|cuser'
pause 4
sendln ''
wait ')xa' ')xb'
 
pause 2
logclose
 
;=====================================================================================================================
; EXTRACTION DOMAINES IP ( commande domstat 2 - all domains / 9 - all domains devices )
;=====================================================================================================================
filename = repertoire
strconcat filename '\EXTRACT\DOMAINS-IP\'
foldercreate filename
strconcat filename param4
strconcat filename '.txt'
logopen filename 0 0 1 1 1
pause 1
flushrecv
sendln ''
wait ')xa' ')xb'
flushrecv
sendln 'domstat'
wait 'your choice'
flushrecv
timeout = 5
 
:ALLDOMAINS
sendln '2'
wait 'ENTER' 'your choice'
if result=0 goto ENCOREALLDOMAINS
if result=1 goto ENCOREALLDOMAINS
if result=2 goto ALLDEVICES
 
:ENCOREALLDOMAINS
sendln ''
wait 'ENTER' 'your choice'
if result=0 goto ENCOREALLDOMAINS
if result=1 goto ENCOREALLDOMAINS
if result=2 goto ALLDEVICES
 
:ALLDEVICES
sendln '9'
wait 'ENTER' 'your choice'
if result=0 goto ENCOREALLDEVICES
if result=1 goto ENCOREALLDEVICES
if result=2 goto FINDOMSTAT
 
:ENCOREALLDEVICES
sendln ''
wait 'ENTER' 'your choice'
if result=0 goto ENCOREALLDEVICES
if result=1 goto ENCOREALLDEVICES
if result=2 goto FINDOMSTAT
 
:FINDOMSTAT
sendln '0'
wait ')xa' ')xb'
 
pause 2
logclose
 
;=====================================================================================================================
; FIN DES EXTRACTIONS
;=====================================================================================================================
:QUIT
pause 2
sendln 'exit'
goto FIN
 
;=====================================================================================================================
;Fin de la MACRO
;=====================================================================================================================
:FIN

Sous Macro « R1C-CNX-PABX-PARAM.ttl » de connexion au PABX

;=====================================================================================================================
; Macro (INCLUDE) pour Tera Term Pro
; Ce type de macro ne peut pas être exécuté seule (Elle est appelé par une autre macro)
;=====================================================================================================================
; Fichier 		: R1C-CNX-PABX.ttl
; Auteur 		: CHARRETEUR Erwan
; Modification 	: 11/05/2017
; Action 		: Initialisation de la connexion au PABX avec mot de passe (ACTUEL/ANCIEN/DEFAUT)
;=====================================================================================================================
; param2 = AdresseIP
; param3 = Titre de la fenêtre
; param4 = Commande à lancer sur le PABX (ou fichier extraction)
; param5 = 
; param6 = 
; param7 = 
; param8 = 
; param9 = 
;=====================================================================================================================
; LOG : PASSWORD\LOG-Password.log contient les connexions avec les mots de passe (ACTUEL/ANCIEN/DEFAUT/INCONNU)
;=====================================================================================================================
 
;=====================================================================================================================
; Définition du titre de la fenêtre Tera Term
;=====================================================================================================================
strcompare param2 ''
if result=0 then
   gettitle TITRE
else
   TITRE = param2
endif
 
;=====================================================================================================================
; Connexion par login/password au PABX (3 types de mots de passe)
; Le fichier (PASSWORD\PABX-password_now.dat) contient les mots de passe ACTUEL
; Le fichier (PASSWORD\PABX-password_def.def) contient les mots de passe DEFAUT
; Le fichier (PASSWORD\PABX-password_old.dat) contient les mots de passe ANCIEN
;=====================================================================================================================
 
;=====================================================================================================================
; Connexion par login/password au PABX (mots de passe ACTUEL)
;=====================================================================================================================
:CONNEXION_CPU
CNX_OK = '0'
UsernamePrompt = 'ogin:'
Username = 'mtcl'
PasswordPrompt = 'assword:'
getpassword PABX_PASSWORD_NOW Username Password
 
;=====================================================================================================================
; Test si on a une réponse (si non on ferme la macro)
;=====================================================================================================================
timeout = 5
wait UsernamePrompt
if result=0 then
	goto PB_ACCES
else
	strcompare param3 ''
	if result = 0 then
	else
		settitle param3
	endif
	goto IDENTIFICATION_NOW
endif
 
;=====================================================================================================================
; IDENTIFICATION AUTOMATIQUE VIA LOGIN + MOT DE PASSE
;=====================================================================================================================
:IDENTIFICATION_NOW
motdepasse = 'NOW'
flushrecv
sendln Username
wait   PasswordPrompt
if result=0 goto PB_ACCES
timeout = 50
flushrecv
sendln Password
wait 'CPU' 'ogin incorrect' '(E)x'
if result=0 goto PB_ACCES
if result=1 goto IDENTIFICATION_OK
if result=2 goto LOGIN_NOK_MTCL_DEF
if result=3 goto PB_RUNTEL
 
;=====================================================================================================================
; VERIFIER IDENTIFICATION (par défaut)
;=====================================================================================================================
:LOGIN_NOK_MTCL_DEF
motdepasse = 'DEF'
getpassword PABX_PASSWORD_DEF Username Password
pause 2
if VISU_STATUS=1 then
	statusbox 'Test des mots de passe par défaut...' TITRE
	pause 2
	closesbox
endif
sendln Username
wait   PasswordPrompt
sendln Password
wait 'CPU' 'ogin incorrect' '(E)x'
if result=0 goto PB_ACCES
if result=1 goto IDENTIFICATION_OK
if result=2 goto LOGIN_NOK_MTCL_OLD
if result=3 goto PB_RUNTEL
 
;=====================================================================================================================
; VERIFIER IDENTIFICATION (anciens mots de passe)
;=====================================================================================================================
:LOGIN_NOK_MTCL_OLD
motdepasse = 'OLD'
getpassword PABX_PASSWORD_OLD Username Password
pause 2
if VISU_STATUS=1 then
	closesbox
	statusbox 'Test des anciens mots de passe...' TITRE
	pause 2
	closesbox
endif
sendln Username
wait   PasswordPrompt
sendln Password
wait 'CPU' 'ogin incorrect' '(E)x'
if result=0 goto PB_ACCES
if result=1 goto IDENTIFICATION_OK
if result=2 goto PB_ACCES_PASSWORD
if result=3 goto PB_RUNTEL
 
;=====================================================================================================================
; Connexion OK avec fenêtre d'nformations sur le type de mot de passe
;=====================================================================================================================
:IDENTIFICATION_OK
CNX_OK = '1'
strcompare motdepasse 'NOW'
if result = 0 then
	if VISU_STATUS=1 then
		closesbox
		message = 'Identification OK, veuillez patienter...'
		statusbox message TITRE
	endif
	; LOG de la connexion avec mot de passe actuel
	getdir repertoire_log
	getdate date
	filename = repertoire_log
	strconcat filename '\PASSWORD\'
	strconcat filename 'LOG-Password.log'
	fileopen  fhandle_MDP filename 1
	message = 'password actuel'
	message_log = date
	strconcat message_log ';'
	strconcat message_log TITRE
	strconcat message_log ';'
	strconcat message_log "1"
	strconcat message_log ";"
	strconcat message_log message
	filewriteln fhandle_MDP message_log
	fileclose fhandle_MDP
endif
strcompare motdepasse 'DEF'
if result = 0 then
	if VISU_STATUS=1 then
		closesbox
		message = 'Identification OK, Mot de passe par défaut...'
		statusbox message TITRE
	endif
	; LOG de la connexion avec mot de passe par defaut
	getdir repertoire_log
	getdate date
	filename = repertoire_log
	strconcat filename '\PASSWORD\'
	strconcat filename 'LOG-Password.log'
	fileopen  fhandle_MDP filename 1
	message = 'password defaut'
	message_log = date
	strconcat message_log ';'
	strconcat message_log TITRE
	strconcat message_log ';'
	strconcat message_log "0"
	strconcat message_log ";"
	strconcat message_log message
	filewriteln fhandle_MDP message_log
	fileclose fhandle_MDP
endif
strcompare motdepasse 'OLD'
if result = 0 then
	if VISU_STATUS=1 then
		closesbox
		message = 'Identification OK, Anciens Mot de passe...'
		statusbox message TITRE
	endif
	; LOG de la connexion avec mot de passe ancien
	getdir repertoire_log
	getdate date
	filename = repertoire_log
	strconcat filename '\PASSWORD\'
	strconcat filename 'LOG-Password.log'
	fileopen  fhandle_MDP filename 1
	message = 'password ancien'
	message_log = date
	strconcat message_log ';'
	strconcat message_log TITRE
	strconcat message_log ';'
	strconcat message_log "2"
	strconcat message_log ";"
	strconcat message_log message
	filewriteln fhandle_MDP message_log
	fileclose fhandle_MDP	
endif
wait '(E)x' ')xa' ')xb'
if result=0 goto PB_ACCES
if result=1 goto PB_RUNTEL
if result=2 goto VERIFICATION_CPU
if result=3 goto VERIFICATION_CPU
 
;=====================================================================================================================
; Vérification des CPU (main/stand-by)
;=====================================================================================================================
:VERIFICATION_CPU
flushrecv
sendln ''
;sendln 'timout 0'
wait '(E)x' ')xa' ')xb'
closesbox
if result=0 goto PB_ACCES
if result=1 goto PB_RUNTEL
if result=2 goto CPU_OK
if result=3 goto CPU_OK
 
;=====================================================================================================================
; Vérification (main/stand-by)
;=====================================================================================================================
:CPU_OK
flushrecv
sendln 'role -p'
wait '(M)' '(M/s)' '(M/?)' '(S/m)'
if result=0 goto PB_ACCES
if result=1 goto CPUAB_OK
if result=2 goto CPUAB_OK
if result=3 goto CPUS_HS
if result=4 goto CPUSM_OK
 
;=====================================================================================================================
; Information tout est OK mais on est connecté sur la CPU de secours
;=====================================================================================================================
:CPUSM_OK
message = 'Attention (Connecté sur la CPU de secours)'
if VISU_STATUS=1 then
	closesbox
	statusbox message TITRE
	pause 1
endif
goto FIN_TESTCPU
 
;=====================================================================================================================
; Information tout est OK et on est sur la CPU main
;=====================================================================================================================
:CPUAB_OK
goto FIN_TESTCPU
 
;=====================================================================================================================
; Information la CPU de secours est Hors Service
;=====================================================================================================================
:CPUS_HS
message = 'CPU de secours (Hors Service)'
if VISU_STATUS=1 then 
	closesbox
	statusbox message TITRE
	pause 1
endif
goto FIN_TESTCPU
 
;=====================================================================================================================
; Problème d'accès
;=====================================================================================================================
:PB_ACCES_PASSWORD
message = 'Mots de Passe inconnu !!!'
if VISU_STATUS=1 then 
	closesbox
	statusbox message TITRE
	pause 1
endif
; LOG de la connexion avec mot de passe inconnu
getdir repertoire_log
getdate date
filename = repertoire_log
strconcat filename '\PASSWORD\'
strconcat filename 'LOG-Password.log'
fileopen  fhandle_MDP filename 1
message = 'password inconnu'
message_log = date
strconcat message_log ';'
strconcat message_log TITRE
strconcat message_log ';'
strconcat message_log "3"
strconcat message_log ";"
strconcat message_log message
filewriteln fhandle_MDP message_log
fileclose fhandle_MDP	
 
;=====================================================================================================================
; Problème d'accès
;=====================================================================================================================
:PB_ACCES
closett
end
 
;=====================================================================================================================
; Information l'application téléphonique n'est pas démarrée
;=====================================================================================================================
:PB_RUNTEL
closesbox
message = 'Erreur : Application téléphonique !!!'
statusbox message TITRE
pause 1
timeout = 5
setsync 0
enablekeyb 1
wait 'RUNTEL'
if result = 0 then
	goto FIN_TESTCPU
endif
 
;=====================================================================================================================
; FIN du Test CPU
;=====================================================================================================================
:FIN_TESTCPU
setsync 0
enablekeyb 1

Sous Macro « R1C-CNX-PABX-PARAM.ttl » pour les paramètres de connexion aux PABX

;=====================================================================================================================
; Macro (INCLUDE) pour Tera Term Pro
; Ce type de macro ne peut pas être exécuté seule (Elle est appelé par une autre macro)
;=====================================================================================================================
; Fichier 		: R1C-PARAM-CNX.ttl
; Auteur 		: CHARRETEUR Erwan
; Modification 	: 11/05/2017
; Action 		: Lecture de paramètres de connexion et de visualisation des fenêtres TeraTerm
;=====================================================================================================================
; param2 = AdresseIP
; param3 = Titre de la fenêtre
; param4 = Commande à lancer sur le PABX (ou fichier extraction)
; param5 = 
; param6 = 
; param7 = 
; param8 = 
; param9 = 
;=====================================================================================================================
 
;=====================================================================================================================
; Répertoire Courant de travail
;=====================================================================================================================
getdir rep_macro
 
;=====================================================================================================================
; Fichier contenant les mots de passe
; Le fichier (PABX-password_new.dat) contient les mots de passe NOUVEAU
; Le fichier (PABX-password_now.dat) contient les mots de passe ACTUEL
; Le fichier (PABX-password_def.def) contient les mots de passe DEFAUT
; Le fichier (PABX-password_old.dat) contient les mots de passe ANCIEN
;=====================================================================================================================
; Mots de passe actuel
PABX_PASSWORD_NEW = rep_macro
strconcat PABX_PASSWORD_NEW '\PASSWORD\'
strconcat PABX_PASSWORD_NEW 'PABX-password_new.dat'
 
; Mots de passe actuel
PABX_PASSWORD_NOW = rep_macro
strconcat PABX_PASSWORD_NOW '\PASSWORD\'
strconcat PABX_PASSWORD_NOW 'PABX-password_now.dat'
 
; Mots de passe par défaut des PABX
PABX_PASSWORD_DEF = rep_macro
strconcat PABX_PASSWORD_DEF '\PASSWORD\'
strconcat PABX_PASSWORD_DEF 'PABX-password_def.dat'
 
; Mots de passe ancien
PABX_PASSWORD_OLD = rep_macro
strconcat PABX_PASSWORD_OLD '\PASSWORD\'
strconcat PABX_PASSWORD_OLD 'PABX-password_old.dat'
 
;=====================================================================================================================
; Date et Heure
;=====================================================================================================================
getdate date
gettime heure
 
;=====================================================================================================================
; Ouverture du fichier qui contient les paramètres d'affichage des fenêtres
;=====================================================================================================================
filename = rep_macro
strconcat filename '\INCLUDE\'
strconcat filename 'TTERMPRO.ini'
fileopen fhandle filename 0
filemarkptr fhandle
 
;=====================================================================================================================
; Lecture de la variable VISU_MACRO
;=====================================================================================================================
fileseekback fhandle
filestrseek fhandle 'MACRO='
if result=0 goto ERREUR_PARAM
filereadln fhandle PARAM
str2int VISU_MACRO PARAM
 
;=====================================================================================================================
; Lecture de la variable VISU_TTERM
;=====================================================================================================================
fileseekback fhandle
filestrseek fhandle 'TTERM='
if result=0 goto ERREUR_PARAM
filereadln fhandle PARAM
str2int VISU_TTERM PARAM
 
;=====================================================================================================================
; Lecture de la variable VISU_STATUS
;=====================================================================================================================
fileseekback fhandle
filestrseek fhandle 'STATUS='
if result=0 goto ERREUR_PARAM
filereadln fhandle PARAM
str2int VISU_STATUS PARAM
goto FERMER
 
;=====================================================================================================================
; Impossible de lire le fichier "TTERMPRO.ini"
;=====================================================================================================================
:ERREUR_PARAM
VISU_MACRO=-1
VISU_TTERM=1
VISU_STATUS=1
 
;=====================================================================================================================
; Fermeture du fichier
;=====================================================================================================================
:FERMER
fileclose fhandle
 
;=====================================================================================================================
; Afficher La fenêtre de la macro en fonction des droits d'accès
;=====================================================================================================================
show VISU_MACRO
 
;=====================================================================================================================
; Connexion au PABX ( Login + Mot de passe ) 
;=====================================================================================================================
timeout = 5
connect param2
if result = 0 then
	closett	
	end
else
	setsync 1
	enablekeyb 0
endif
 
;==============================================================================
; Afficher La fenêtre Tera Term en fonction des droits d'accès
;==============================================================================
showtt VISU_TTERM
 
;==============================================================================
; Lecture du fichier "TTERMPRO.ini" OK
;==============================================================================
:PARAM_OK

 

 

Soyez le premier à commenter

Poster un Commentaire

Votre adresse de messagerie ne sera pas publiée.


*