SSH.net Exception :: Timeout occurred due to inact (wodSSH / wodSSH.NET)
So i am having this response most of the time in conjunction with using the Execute() Method.
(one other thing -- i am very very green to the software development world. If any of you out there are familiar with AMX System Control hardware, this is the type of programming i am familiar with (kinda of like C, but with its very significant differences).
TO START ->
Here is a quick break down of my assignment, my program and its environment:
I was task with the job of creating of what is called the VC Connector . Its task is to do the following:
Connect to (up to) 230 video conferencing systems (ie CODECS) via ssh providing back the functions of: Call, Disconnect, Call Status, Camera Control, Volume Control, Content Sharing, Microphone Muting.
These functions will be available via a Web/HTTP service that will be constantly accesses from another program (written by others) that will consume those a fore mention functions.
There are two Manufactures of VTC Codecs being used: Cisco Tele-Presence (CTS) Codecs.
Tandberg C-Series and EX-Series Codecs (Now owned by Cisco)
The Program: (Where the ssh.net library comes in)
I have written a class that will be used to create each VTC (codec) object. Inside the class, i use the ssh.net library.
So, for each instance of my VTC class, an instance of the ssh.net library is created inside that object.
The hardware limitations of Cisco CTS codecs:
Whenever you connect to a Cisco CTS codec, it can take up to 15 to 20 seconds to log-in before you can issue a command. When it is ready, the prompt is basically this: admin:
Now the really issue: When you execute a command to a Cisco CTS Codec, it can take from 3 to 10 seconds before you get a reply message back.
But on top of that, it may between .5 to 1 second after you receive the response message, before you get the prompt of admin: back. Plus, during its long reply time, NO COMMAND can be sent while waiting for the prompt to return.
This is where I need help to understand what is going inside the ssh.net library.
ssh.net library version -> 2.5.4.141
To begin, here is my constructor:
ssh = new SSH();
ssh.LicenseKey = xxxx-xxxx-xxxx-xxxx ; ( Don't want to share my key with everyone :) )
ssh.Hostname = this.ipAddress;
ssh.Login = this.user;
ssh.Password = this.pass;
ssh.DebugFile = @ G: acconnectorssh_logsssh_ + this.e164number + .log ;
ssh.Compression = 6;
ssh.Protocol = SSH.SupportedProtocols.SSHAuto;
ssh.Blocking = true;
ssh.Timeout = 1800;
ssh.DataReceivedEvent += new SSH.DataReceivedDelegate(sshDataReceivedEvent);
ssh.StateChangedEvent += new SSH.StateChangedDelegate(sshStateChangedEvent);
ssh.DisconnectedEvent += new SSH.DisconnectedDelegate(ssh_DisconnectedEvent);
so when I use my instance of the ssh library (which I cleverly call ssh ) i am doing this: (example)
try
{
string prompt = admin: ;
string cmd = call state
;
string str = ssh.Execute(cmd,prompt); (--> I have also used the third parameter of time setting it to 30 which i assume is 30 seconds.)
}
catch(Exception ex)
{
printLn(ex.Message);
}
The following is an excerpt from my own logs:
INFO ,2012-07-25 11:14:55,TAC : -> Call? : VTC #036 (143.3.230.85)
INFO ,2012-07-25 11:14:55,VTC : -> #036 :: -> GetStatus() Request
INFO ,2012-07-25 11:14:55,VTC : -> #036 :: -> Execute() Request
ERROR,2012-07-25 11:15:11,VTC : !! #036 :: Execute(22) Exception :: Timeout occurred due to inactivity.
INFO ,2012-07-25 11:15:36,TAC : -> Call? : VTC #036 (143.3.230.85)
INFO ,2012-07-25 11:15:36,VTC : -> #036 :: -> GetStatus() Request
INFO ,2012-07-25 11:15:36,VTC : -> #036 :: -> Execute() Request
ERROR,2012-07-25 11:15:52,VTC : !! #036 :: Execute(179) Exception :: Timeout occurred due to inactivity.
(Where is it getting the roughly 16 second timeout from?)
----------------
Now, the log service that is built in the ssh.net library is to simple, in that it does not provide alot of information such as:
-The time a command went out and when/or if it w