#!/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); 
 
?>
 
 |