BBSSH Roadmap and Overview
by Marc on Feb.05, 2010, under other
Here’s a kind of loose roadmap for BBSSH’s planned development combined with a planned feature list and status. As it stands now, it is actually functional to the point where I’m using it on my own BB, but I’m more forgiving of certain issues than I’d expect anybody else to be.
Expect the first public OTA download beta in 2-3 weeks. If you’d like to play with it before then, I would appreciate any early feedback – just drop me a comment here and I’ll send you the link by this weekend (or later if you contact me later…) If you’re not able to provide feedback and bug reports, please don’t request an early build at this time.
MidpSSH Implemented Features
These features exist in MidpSSH and have been successfully re-implemented (or retained) already.
- Connection Management
- SSH
- Telnet
- HTTP proxy (should be functional but untested for now)
- All connection types (BIS, BES, Wifi)
- Rendering of bitmap font to session window based on BB screen objects
- Connection management and properties.
- BBSSH settings.
New Implemented Features
- New main screen intended to make it easy to connect immediately.
- Hybrid mode editing – a small overlay that appears every time you start to type when not using “direct typing” mode. This does not obscure the screen, however it can expand to include multiple lines as you type; and shift-enter will force a newline. Enter will submit the text along with the enter key.
- Moved most global settings to be session specific, including font.
- Multiple concurrent /active connections
- Copy existing connection properties into a new connection
- No more “low level connection” popup warning, since this is a signed app now.
- local key-pair: 90% (everything works except dumping the key to current connection
- Import session definitions via HTTP: 50% but also being enhanced significantly.
- Special Keys: Partial support. Most frequently used special keys are mapped to BB keys. This is temporary as the plan here is to have key mappings 100% customizable, though configured with reasonable defaults. For the early releases, it will likely be as follows:
- VolUp : Ctrl
- VolDn: Alt
- Wheel/trackbutton clikc: Esc
- SYM: Tab , or if typing into hybrid overlay it will display the symbol screen.
- Directional keys: wheel/trackbutton
- PageUp/PageDown: Shift+Up, Shift+Dn
- Home, End: Shift+Left, Shift+Right
Removed or Obsolete Features
- 90/270 screen rotation. This feature will still be present, but the supporting code for it is getting removed – my understanding is that this is “automatic” on Blackberry, as long as the application is aware of the changed dimensions and responds correctly. If I’m proven incorrect, obviously this will need to go back in completely.
- Full-screen edit window removed. (Replaced with “hybrid mode” expanding edit field overlay that does not obscure the screen by default)
- Menu-driven special keys- to be replaced with key-bindings and optional on-screen keypad.
- Special keys Enter and Shift are being removed – on the blackberry these are present on the keyboard.
- Modes being removed: Scroll, Cursor. Unlike the lowest-common-denominator that MidpSSH had to cater to, Blackberry devices have dedicated directional keys via the nav wheel/button. As such, by default these keys will always send movement commands to the server.
- local buffer scrolling may be implemented if practical and helpful
New Features – Future
- Key bindings: Map any blackberry key, key combination , or touch-screen gesture (pinch, swipe, tap, etc) to:
- Any special key (Alt, Ctrl, F1-12, Break, Pause, etc)
- Any macro you define
- Any key combination you want to send.
- Any BBSSH function such as displaying a symbols screen, extended keypad, screenshot, settings etc
- TrueType font instead of rendered bitmap. This is only supported in OS 5.0 and later, so it’s lower on the priority list.
- Initial Command: configure an initial command to be sent after connection is completed.
- (Possibly) Scripting support in macros using javascript – not sure if there’s a benefit to this or not though.
- Automatic detection of portrait/landscape mode (Storm, Storm2). Allow locking in so that it’s not constantly switching back and forth.
- Allow sending of session definitions to BB messenger contacts
- Copy and paste support.
- Public/private key pairs: key-pairs including support for password protected, importing from external source, and possibly sharing of private key between devices.
- Screen capture
- URL scraping from screen content
- “Special Key” onscreen keypad instead of menus
- Notification icon on the Home screen when an active SSH session requires attention
I think that covers the big stuff…
February 12th, 2010 on 1:28 pm
I’d be interested in helping you test… please let me know the jad d/l and i’ll get a testin!
February 12th, 2010 on 1:57 pm
Thanks Dan, I’ll email that over to you this weekend. I got started on the next major change (custom key bindings) so things are a bit broken
Tomorrow night should have things set right, though.
February 21st, 2010 on 10:38 pm
awesome! i’d also be very interested in helping. i use ssh clients like they’re going out of style. thank you so much for dev’ing this! let me know if you need an OTA host for the files too. i’d like to help out in any way possible
February 21st, 2010 on 11:14 pm
Thanks John, I’ve a new build coming out in a day or two — many additions, but the biggest one is the ability to import openssh format key-pairs from remote locations, including those that are passphrase-encrypted. This will let folks use keys that they have already established at remote servers. I’ll drop you a line once the new JAD is ready. What model BB(s) do you have?
As far as hosting, etc, I think we’re in good shape for now. Thanks for the offer though
February 22nd, 2010 on 8:47 am
Sounds good man. I’m currently running a Tour9630 (OS 5). Midpssh works on it, so I imagine yours should as well.
February 22nd, 2010 on 8:47 am
..my wife has a Curve 8330, if you need it tested on that device too.
February 23rd, 2010 on 12:22 pm
I think I have built for OS 4.6 and later – which I believe starts with the BB Bold (original and new) , Tour, Storm, and Storm2. I also plan to support 4.5 after the initial release. 4.5 should include 8800 and 8700 models.
I can try a build against 4.3 (8330) — I am curious as to how it would fare using the non-qwerty keyboard, I suspect not so well — but at present I don’t plan to specifically support pre-4.5 versions.
Currently I’ve got one major bug to resolve before I can post the updates (causes a hard “hang” of the app), but I expect that to be fixed for tonight.
February 23rd, 2010 on 12:47 pm
kick a**! ya screw 4.3(8330). i was just saying i can test, if needed. anyone using that old of a blackberry probably isn’t the best of tech savvy people that would even utilize an ssh client properly
February 27th, 2010 on 12:04 pm
Thanks Marc! I’m trying it out now (just received the e-mail you sent out to everyone)
March 5th, 2010 on 3:41 pm
Thanks for picking up the midpSSH project and porting it to BlackBerry!
The main issue I have with BBSSH at this time is connection timeouts. I have set `ClientAliveInterval 300` in sshd_config and this works flawlessly for Pader-SyncSSH, but not with BBSSH / midpSSH.
March 5th, 2010 on 4:31 pm
@Ron – I had actually into timeouts on one server, but using ClientAliveInterval of 300 did resolve it.
The odd thing, though, is that it was only on one server — my other servers use the default values in all cases (and did not set ClientAliveInterval), and I do not ever see a timeout. The servers are running the same OS install and SSHD version.
This makes me wonder if it could not be a firewall issue? On my working servers, I’m using a iptables-based NAT solution, while on the server that has this problem I’m using only NAT.
In either case, I will take a look into this and see if I can find anything more on the client side. Thanks for the feedback!
March 8th, 2010 on 7:38 am
Marc, do you mind if I post a link to your website telling people about BBSSH? It’ll be in CrackBerry’s 3rd party apps section.
March 8th, 2010 on 10:29 am
@John I think I’d like to hold off for another few days — there’s one more relatively major bug I want to get fixed (application freezes when using menu on the input window) first.
March 8th, 2010 on 10:44 am
Sounds good. Glad I asked first.. =P
March 12th, 2010 on 4:38 am
Hi, I tried your app, but it ask me for APN. If I set it, in need to pay for additional traffic not included in Blackberry bundle traffic. Direct TCP is different from BIS. My operator is TIM Italy.
Some months ago I tried MidpSSH modded by asskick and it goes with BIS setting enable without APN setted.
Can you please modify your app to support BIS?
ed – mp
The link for midpSSH 1.7.4 by asskick is http://www.deltatech.com.mx/midpssh/beta2/midpssh-bb-ota.jad
Thank you
March 19th, 2010 on 1:10 am
Hi marc, trying to use my bb to download this but a prereq check is failing, complaining about “This application requires the following module, which is not installed:
net_rim_bbapi_messagelist”
I only have 4.5 installed however, when I code for storm, I can build with jde 4.7
And it works with os’s and devices as far back as 4.2 without compiling for each old os, any reason your specifically using the messagelist (didn’t check to see what functionality it adds) because with it, it seems you leave out all the people who don’t upgrade there os all that often (like me)
Just curious and wanted to letb you know in case you wanted to be “more backwards compatible”
Jay
March 19th, 2010 on 1:31 am
@jay – thanks for the feedback. BBSSH is actually using the 4.6 notifications and alerts APIs, which will prevent it from loading on any prior OS version.
The problem is that for the time being, this is a “spare time” project. While I do plan on splitting out builds for specific OS versions (as far back as 4.5 but no older), the list of things to get done before that is quite long — and my time is limited. To compound that, I know that as soon as I split into multiple builds I have multiple places to perform maintenance… Probably wouldn’t be so bad if I were willing to slap some j2me preprocessor code into BBSSH, but I’m a bit of a purist and can’t quite bring myself to entertain the notion
As far as backward compatibility — well, as I said I do plan on providing a build for 4.5 at least, as that seems to be where the feature threshold for usability is — I looked earlier and there are just too many APIs missing in prior JDEs to make it worth my time to develop workarounds. If anyone else is interested in doing that work, I would gladly accept patches to the project; though it will at minimum require the platform-specific build framework to be in place.
This is more rambling than I meant to be. So: short recap… BBSSH is using 4.6 specific content; 4.5 build is planned (as well as 5.0+ for new features it offers) but is at least a few weeks out.
March 19th, 2010 on 5:09 pm
Hi Marc
i was looking for an ssh client and found your site! The tool is very helpful, exactly what i was searching, but there is one thing i couldn’t found called “port forwarding”. I don’t saw that this is on the features list so i want to ask if you add it? It would help me to tunnel http ports that i can browse for example webmin or nagios
Thanks for your great work
Andres
March 19th, 2010 on 5:16 pm
Thanks for the feedback Andres. So you were looking for the BB web browser to recognize tunnels opened via BBSSH? I’m not sure that it’s technically feasible to do that, but it might be an interesting challenge to try
If you wouldn’t mind, could you open a feature request on the sourceforge site and include a couple of detailed example use cases? Registration not required.
I can’t guarantee if or when I will be able to get it in, but I will give it a try once some of the more pressing bugs and features are implemented.
March 29th, 2010 on 4:00 am
Hello, I used to use MIDPssh but for a while now I keep getting the Session report error with:
IN: 312 bytes
OUT: 0 bytes
TOTAL: 312 bytes
or similar, the same thing seems to happen on BBSSH, any ideas why?
March 29th, 2010 on 10:47 am
Andrei – based on this it sounds like the initial “handshake” is occurring from the server to the client, but the client is not able to successfully send any data outbound. Is there any specific error message that’s displayed on BBSSH?
This is likely a matter of your service provider’s configuration, though that may be difficult to pinpoint. Release 1.1.6 (tonight or tomorrow) will contain a new connection option for WAP — you may want to try that and see if it helps. Unfortunately, I have not been able to test it myself, b/c my provider does not allow non-port 80 traffic via WAP, but may providers do.