Add Advanced Options for Connecting to Tablo from Cleint

That makes a lot of sense; use the interent to avoid scanning. This way, the only time the Tablo client would have to do a scan is if the internet connection is down.

If I purchase a brand new Roku, that has no knowledge that there’s a Tablo on a different subnet of my local LAN, I can see how what you’ve indicated could work way better than scanning. The code in the client would have to work like this:

  1. Send Tablotv.com a https post, so that they can detect your client’s public IP address.
  2. Base on the public ip source of the client, Tablotv.com can locate any tablo devices (in their database) that’s “last communication to base” was sourced from the same public IP address as the client.
  3. Since the tablo device probably reports it private IP address to base each time it connects to the internet, TabloTV’s database should be able to return a list of private ip addresses that the Tablo client should try to connect to before attempting a local scan.
  4. So, even if the device located on a different subnet, if the Tablo can route to that subnet, it will successfully make connection.

If that’s how they’re doing it, that’s great.

However, what if the tablo is located at a public IP address at a remote location (where proper port forwarding is enabled on that remote location’s firewall)? The client, in this example, has no awareness of which Tablo on the internet is your Tablo.

Therefore, the client application ought to have a feature that allows you to authenticate with Tablotv.com, so that the client can get the last public ip that your Tablo used, and then attempt connecting to that! Such a feature should also allow you to specify which ports to use at the public IP address to which connection should be attempted (port configuration is necessary in case the administrator has chosen non-standard ports that ultimately map to Tablo’s default ports within the LAN.

I’m sure Tablo’s developers are concerned about security too; they don’t want some hacker watching TV on someone else’s tablo. But this can be handled:

All they have to do, is require the client to authenticate to achieve remote connections. Before the tablo device allows a remote connection, it should contact tablotv.com to see if “a client sourced from that same public IP address as authenticated in the last x minutes”. If it has, then allow the connection. If it hasn’t don’t allow the connection. Sure it is possible that a client shares a public IP with an unknown 3rd party, but what are the odds of those unknown 3rd parties knowing the public IP address of your Tablo (they’d also have to know public ports you’ve chosen that forward to Tablo’s default ports)?

If you want to eliminate the possibility of other people on the same source IP as you connecting to the remote tablo, simply generate a key upon authentication and have both tablo and client knowing that key from tablotv.com via https. This way, the only remote client that can connect to the tablo, is the one that authenticated with tablotv.com

I hope the developers read this post. It is not cool to have to pair a 65 inch TV before taking it to the remote location you desire to serve with your Tablo. And, that local pairing doesn’t last forever either, eventually you have to take that big TV back to base to pair it again. So pairing needs to be possible via TabloTV.com (not just via local networking).