[Geofence] Fix to roaming problem: Auto-switch sim card while navigating borders on sea or land (countries / islands / etc.)

Hello everyone,

I am a software engineer with an extensive peplink setup and I encountered this problem while roaming across Europe between different countries.

Problem: when you cross borders you want to auto-switch between sim cards because of roaming costs; so basically you have a specific sim card per zone (country, island, area, etc. ) and depending on each zone you enter, it should auto-switch to it.

I’ve read through the pain points posted by people here Single device needs to be able to follow more than one geofence profile and I can relate to them so I spent a couple of days understanding the underlying technical problem deeper and how would an architectural solution look like. It’s really complex because there are a lot of variables and many unknowns but I believe it’s doable.

Here’s the summarized overview:

How your devices use our product to run the right SIM / roaming by location

Removes Peplink IC2’s one-geofence-profile-per-device limit, so a single router can change its own config across many zones.

        HOW YOUR DEVICES USE OUR PRODUCT TO RUN THE RIGHT SIM / ROAMING BY LOCATION

  ACTORS
  ------
   YOU          - set the rules once, watch status
   OUR PRODUCT  - (a) where you author rules   (b) the part running on the device
   YOUR DEVICE  - the router, its SIM slots, its roaming switches
   THE BORDER   - the zone edge where coverage / roaming is briefly in flux


  ┌──────┐                                                      ┌──────────────────┐
  │ YOU  │                                                      │  YOUR DEVICE     │
  └──┬───┘                                                      │  ┌─────────────┐ │
     │                                                          │  │ SIM A  US   │ │
     │  (1) Define zones + rules ONCE, centrally:               │  │ SIM B  US   │ │
     │      "Mainland  -> US SIMs (A+B) ON"                     │  │ SIM C local │ │
     │      "Alaska/Port -> SIM C, US roaming OFF"              │  └─────────────┘ │
     │      (many zones per device - IC2 won't do this)         └──────┬───────────┘
     ▼                                                                 │
  ┌──────────────────────────┐                                         │
  │  OUR PRODUCT (cloud)      │  (2) pushes the rule set DOWN to       │
  │  zone + rule authoring    │──────the device, where it's cached ───▶│
  └──────────────────────────┘                                         │
                                                                       │
                        ┌──────────────────────────────────────────────┘
                        ▼
          ┌──────────────────────────────────────┐
          │  OUR PRODUCT (on the device)         │  -- this is the part that
          │  detect -> decide -> apply, LOCALLY  │     makes it work at the border
          └───────────────┬──────────────────────┘
                          │
   (3) Device approaches THE BORDER ───────────────────────────────┐
                          │                                        │
                          ▼                                        ▼
          (4) Device notices the crossing           ┌────────────────────────────┐
              itself - by GPS and/or by             │  THE BORDER (zone edge)    │
              seeing the carrier change ───────────▶│  coverage + roaming in flux│
                                                    │  for a few seconds         │
                          │                         └────────────────────────────┘
                          ▼
          (5) Applies the right config INSTANTLY, on the spot:
              - switch to SIM C
              - turn US-SIM roaming OFF
              -> roaming window is near-zero (no waiting on the cloud)

                          │
                          ▼
          (6) Confirms it actually got a working connection.
              If the brief border flux left it without a usable link,
              it self-corrects to get back online - you do nothing.

                          │
     ┌────────────────────┘
     ▼
  ┌──────┐  (7) You see status, zone history, and every switch -
  │ YOU  │◀─────reported back up whenever the device has a connection.
  └──────┘

Your goal → how it’s met

Your goal How it’s met
Don’t pay US roaming charges abroad US roaming flips OFF the moment you cross, decided on the device, not after a cloud round-trip
Always have an uplink Right SIM / WiFi-as-WAN picked per zone, automatically, no manual reconfig
One router, many places Many zones per device — IC2’s hard limit is exactly what we remove

Why on the device and not just a dashboard: the decision happens locally, so the roaming-off switch lands the instant you cross — there’s no round-trip to a server that might not reach you in the brief seconds the border is fuzzy. That’s the difference you feel in the bill.

Follow-up question

The thing is since this is such a specific custom solution with little room for error, it will require a lot of extensive trial & error to get it right, so will require a lot of time from my side.

I just want to know if enough people are interested, I can work on it and deliver it.