#!/usr/bin/php <?
/* ============================================================================ This script will continuously print active voice call table of Cisco gateway ============================================================================ */
//This function will print table entries function myHandler($str){ if(preg_match("/(ANS)|(ORG)/",$str))echo $str."\n"; }
include_once("fsmchatclass.inc.php");
$chatter=new FSMChat();
//------------------------- //Now let's define FSM
//In ENABLE state, when cisco gives an enable command prompt, request active call table //FSM State unchanged. $chatter->FSM('/\#$/','sleep(1);return("show call active voice compact\n");',NULL,"ENABLE");
//Immediately continue output if there is more than 25 lines (only in ENABLE state) //FSM State unchanged. $chatter->FSM('/\s--More--/','return(" ");',NULL,"ENABLE");
//All other strings will be passed to my handler (only in ENABLE state) //FSM State unchanged. $chatter->FSM('/.*/','myHandler($STRING);',NULL,"ENABLE");
//Here we will log in and enter enable mode //FSM State changes from LOGIN (initial) through LOGGEDIN to ENABLE during login process $chatter->FSM('/^Level\s1\:/','return("cisco_user");',"LOGIN"); $chatter->FSM('/^Level\s2\:/','return("cisco_password\n");',"LOGGEDIN","LOGIN"); $chatter->FSM('/\>$/','return("enable\n");',"LOGGEDIN","LOGGEDIN"); $chatter->FSM('/^Level\s2\:/','return("enable_password\n");',"ENABLE","LOGGEDIN");
//Ignore all other data from cisco $chatter->FSM('/.*/','',NULL);
//---------------- //Let's go!
$conn=fsockopen("cisco1.domain.tld",23);
//Telnet session, packet-oriented algorithm chosen. echo "STOP:".$chatter->RunPacket($conn,"LOGIN",1)."\n";
fclose($conn);
?>
|