marc paradise

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.
MidpSSH Features in Progress:
  • 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…

:

21 Comments for this entry

  • Dan Horning

    I’d be interested in helping you test… please let me know the jad d/l and i’ll get a testin!

  • Marc

    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.

  • John

    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

  • Marc

    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 :)

  • John

    Sounds good man. I’m currently running a Tour9630 (OS 5). Midpssh works on it, so I imagine yours should as well.

  • John

    ..my wife has a Curve 8330, if you need it tested on that device too.

  • Marc

    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.

  • John

    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

  • John

    Thanks Marc! I’m trying it out now (just received the e-mail you sent out to everyone)

  • Ron

    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.

  • Marc

    @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!

  • John

    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.

  • Marc

    @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.

  • John

    Sounds good. Glad I asked first.. =P

  • Paolino

    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

  • jay glass

    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

  • Marc

    @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.

  • Andres

    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

  • Marc

    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.

  • Andrei Dragomir

    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?

  • Marc

    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.

Leave a Reply

Subscribe to updates via email: