|
List Info
Thread: SSH4SC Introduction and Update status
|
|
| SSH4SC Introduction and Update status |

|
2007-05-25 00:26:57 |
|
Hi,
SSH4SC aims to provide SSH services integrated in SIP
Communicator An abstract of the project is available here
An outline of the design *-* Manage SSH type Accounts The user will be able to create/store/delete SSH type accounts where he will specify the details of the remote machine. ProtocolProviderFactory will provide services for adding/removing/loading from storage of SSH Type Accounts and ProtocolProviderService will manage the SSH sessions(create/initialize/destroy)
-*Outlay ProtocolProviderFactorySSHImpl.extends ProtocolProviderFactory - install/removeAccount -> SSHAccountID -> Collection of registeredAccounts - loadAccount -> ProtocolProviderServiceSSHImpl
- register/unregister-> connectAndLogin -> SSHSession -> JCraft SSH2 Library(JSch -> Session -> UserInfo) - initialize/shutdown resources - fireRegistrationStateChanged -> registrationListeners
*-* Status of Remote Machines The remote machine when subscribed will be either in online(both reachable[pinging] and SSH services enabled), offline(unreachable[not pinging]) or unknown(reachable[pinging] but SSH services unreachable). The machine will be added the Buddy List of the user via initializing Contact and ContactGroup of SSH Type where the status of the machine will be shown and status of the machine will be updated periodically.
-*Outlay - OperationSetPersistentPresenceSSHImpl - Persistent - false - supportedPresenceStatusSet -> online, offline, unknown - Resolved - false intially till the status of the remote machine is known
- initialize Contact/ContactGroup implmentation and add listeners - OperationSetPersistentPresenceSSHImpl - add/removeContactPresenceStatusListener - PublishPresenceStatus to fire and change in status of remote machines
*-* Emulation of chat sessions and File Transfer As chat sessions(emulated as SSH sessions) are started with the remote machine, the messages from the users will be optionally expanded(macros) and will be sent as commands to the remote server throught the JCraft SSH2 Library. OperationSets will be defined to support SSH functions which include PersistentPresence, BasicInstantMessaging and FileTransfer.
-*Outlay - OperationSetPersistentPresenceSSHImpl - managing contacts/groups and their listeners
- OperationSetBasicInstantMessagingSSHImpl - add/remove MessageListener - createMessage - > MessageSSHImpl
- sendInstantMessage -> deliverMessage -> assertConnected -> MessageSSHImpl - SSHMessageListener -> receiveInstantMessage - OperationSetFileTransferSSHImpl[Optional] - send/receive Files
- relay files from the remote machine to other users
I would real like you to scrutinize the design plan
Presently I have created a basic framework for implementing the above
- SSH Account Registration Wizard [Completed] - SSH Protocol Support [In progress]
Please find ssh4sc.tar.bz2 attached which includes - Source code of Registration Wizard and Protocol Support
- Diffs of felix.client.run.properties and build.xml - sc-bundles - protocol-ssh.jar and sshaccregwizz.jar (The above are ready to be tested )
The tutorial of how to implement new protocols was great and will like to extend it to include creation of account registration wizard
lastly thanks a lot to Damian and Yana for their great support
regards -- Shobhit Jindal
|
|
| Re: SSH4SC Introduction and Update
status |

|
2007-05-27 14:11:39 |
|
Hi,
After an off list discussion we have decided to go for a slightly different approach. Will update the design and implementation shortly
regards - Shobhit Jindal
On 5/25/07, Shobhit Jindal < jindal.shobhit gmail.com">jindal.shobhit gmail.com> wrote:
Hi,
SSH4SC aims to provide SSH services integrated in SIP
Communicator An abstract of the project is available here
An outline of the design *-* Manage SSH type Accounts The user will be able to create/store/delete SSH type accounts where he will specify the details of the remote machine. ProtocolProviderFactory will provide services for adding/removing/loading from storage of SSH Type Accounts and ProtocolProviderService will manage the SSH sessions(create/initialize/destroy)
-*Outlay ProtocolProviderFactorySSHImpl.extends ProtocolProviderFactory - install/removeAccount -> SSHAccountID -> Collection of registeredAccounts - loadAccount -> ProtocolProviderServiceSSHImpl
- register/unregister-> connectAndLogin -> SSHSession -> JCraft SSH2 Library(JSch -> Session -> UserInfo) - initialize/shutdown resources - fireRegistrationStateChanged -> registrationListeners
*-* Status of Remote Machines The remote machine when subscribed will be either in online(both reachable[pinging] and SSH services enabled), offline(unreachable[not pinging]) or unknown(reachable[pinging] but SSH services unreachable). The machine will be added the Buddy List of the user via initializing Contact and ContactGroup of SSH Type where the status of the machine will be shown and status of the machine will be updated periodically.
-*Outlay - OperationSetPersistentPresenceSSHImpl - Persistent - false - supportedPresenceStatusSet -> online, offline, unknown - Resolved - false intially till the status of the remote machine is known
- initialize Contact/ContactGroup implmentation and add listeners - OperationSetPersistentPresenceSSHImpl - add/removeContactPresenceStatusListener - PublishPresenceStatus to fire and change in status of remote machines
*-* Emulation of chat sessions and File Transfer As chat sessions(emulated as SSH sessions) are started with the remote machine, the messages from the users will be optionally expanded(macros) and will be sent as commands to the remote server throught the JCraft SSH2 Library. OperationSets will be defined to support SSH functions which include PersistentPresence, BasicInstantMessaging and FileTransfer.
-*Outlay - OperationSetPersistentPresenceSSHImpl - managing contacts/groups and their listeners
- OperationSetBasicInstantMessagingSSHImpl - add/remove MessageListener - createMessage - > MessageSSHImpl
- sendInstantMessage -> deliverMessage -> assertConnected -> MessageSSHImpl - SSHMessageListener -> receiveInstantMessage - OperationSetFileTransferSSHImpl[Optional] - send/receive Files
- relay files from the remote machine to other users
I would real like you to scrutinize the design plan
Presently I have created a basic framework for implementing the above
- SSH Account Registration Wizard [Completed] - SSH Protocol Support [In progress]
Please find ssh4sc.tar.bz2 attached which includes - Source code of Registration Wizard and Protocol Support
- Diffs of felix.client.run.properties and build.xml - sc-bundles - protocol-ssh.jar and sshaccregwizz.jar (The above are ready to be tested )
The tutorial of how to implement new protocols was great and will like to extend it to include creation of account registration wizard
lastly thanks a lot to Damian and Yana for their great support
regards -- Shobhit Jindal
-- Shobhit Jindal
|
| Re: SSH4SC Introduction and Update
status |

|
2007-06-13 09:38:30 |
|
Hi,
Finally beta-1 of SSH Protocol Provider is out! Please find it attached! 
I have tried it with some SSH Servers and it seems to work great.. so do give it a try! (It compiles fine with todays CVS snapshot, 13th June and an INSTALL file is enclosed)
Earlier remote machines were treated as separate accounts but they are now treated as contacts of one ssh account. There are some known issues/bugs which have been discussed later in this mail.
While working on above I got the idea of SSH ALARMS, and here is an introduction
***_*** Services running on remote machines need to monitored constantly and immediate actions need to be taken when alerted by existing systems (NMSs, Emails, Pagers etc) for any downtimes.
The idea is to monitor the service and popup a IM window when the service comes down. A short summary of the present status will be provided and a network administrator can right away start to work on the situation ( emulating chat sessions as ssh sessions )
To create an alarm, a user will provide a command (pointing to a script) and a set of normal/abnormal codes/status messages along with a update Interval. The remote machine will be regularly polled(as a daemon) and the return values of script will be checked and matched. In an abnormal condition the user will be immediately notified of the situation with an option to cancel/continue the alarm.
The user can easily rectify the situation from the chat window itself  ***_***
The above seems more useful than file-transfer in context of an IM system.. do let me know what you think 
** Here is the known bugs list **
- commands like ping, man, less, clear etc freeze SC
- contacts are not removed cleanly from contactlist.xml after the account has been deleted
- Icon(ssh-connecting.gif) is not shown correctly
- terminal type and update Interval time of contact are not restored to custom values after a SC restart
- Weird problems with ssh servers of RedHat based machines
(some commands like date may terminate the session)
- color information is commands like ls are shown as junk characters
** Here is the issues list **
- no event dispatchers for the event when user clicks a contact(a ssh session session should start now and IM window opens only when a successful shell session have been established)
when user closes the window(the shell session should terminate now)
- multi-threading issues need to found and corrected 
- exit command presently exits its JSch session(though immediately a new session is established for the next command)
It will close any other sessions associated with the remote machine and ideally it should only close its shell channel
- severe limitation of command completion and older commands navigation expected from a SSH client
- contact list -> contact -> user info -> should show configuration dialog for contact
- redundant code will be refactored
I guess its all
- Shobhit Jindal
On 5/28/07, Shobhit Jindal < jindal.shobhit gmail.com">jindal.shobhit gmail.com> wrote:
Hi,
After an off list discussion we have decided to go for a slightly different approach. Will update the design and implementation shortly
regards - Shobhit Jindal
On 5/25/07, Shobhit Jindal < jindal.shobhit gmail.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
jindal.shobhit gmail.com> wrote:
Hi,
SSH4SC aims to provide SSH services integrated in SIP
Communicator An abstract of the project is available here
An outline of the design *-* Manage SSH type Accounts The user will be able to create/store/delete SSH type accounts where he will specify the details of the remote machine. ProtocolProviderFactory will provide services for adding/removing/loading from storage of SSH Type Accounts and ProtocolProviderService will manage the SSH sessions(create/initialize/destroy)
-*Outlay ProtocolProviderFactorySSHImpl.extends ProtocolProviderFactory - install/removeAccount -> SSHAccountID -> Collection of registeredAccounts - loadAccount -> ProtocolProviderServiceSSHImpl
- register/unregister-> connectAndLogin -> SSHSession -> JCraft SSH2 Library(JSch -> Session -> UserInfo) - initialize/shutdown resources - fireRegistrationStateChanged -> registrationListeners
*-* Status of Remote Machines The remote machine when subscribed will be either in online(both reachable[pinging] and SSH services enabled), offline(unreachable[not pinging]) or unknown(reachable[pinging] but SSH services unreachable). The machine will be added the Buddy List of the user via initializing Contact and ContactGroup of SSH Type where the status of the machine will be shown and status of the machine will be updated periodically.
-*Outlay - OperationSetPersistentPresenceSSHImpl - Persistent - false - supportedPresenceStatusSet -> online, offline, unknown - Resolved - false intially till the status of the remote machine is known
- initialize Contact/ContactGroup implmentation and add listeners - OperationSetPersistentPresenceSSHImpl - add/removeContactPresenceStatusListener - PublishPresenceStatus to fire and change in status of remote machines
*-* Emulation of chat sessions and File Transfer As chat sessions(emulated as SSH sessions) are started with the remote machine, the messages from the users will be optionally expanded(macros) and will be sent as commands to the remote server throught the JCraft SSH2 Library. OperationSets will be defined to support SSH functions which include PersistentPresence, BasicInstantMessaging and FileTransfer.
-*Outlay - OperationSetPersistentPresenceSSHImpl - managing contacts/groups and their listeners
- OperationSetBasicInstantMessagingSSHImpl - add/remove MessageListener - createMessage - > MessageSSHImpl
- sendInstantMessage -> deliverMessage -> assertConnected -> MessageSSHImpl - SSHMessageListener -> receiveInstantMessage - OperationSetFileTransferSSHImpl[Optional] - send/receive Files
- relay files from the remote machine to other users
I would real like you to scrutinize the design plan
Presently I have created a basic framework for implementing the above
- SSH Account Registration Wizard [Completed] - SSH Protocol Support [In progress]
Please find ssh4sc.tar.bz2 attached which includes - Source code of Registration Wizard and Protocol Support
- Diffs of felix.client.run.properties and build.xml - sc-bundles - protocol-ssh.jar and sshaccregwizz.jar | |