Match the real Anveo SMS tab, and document provider-continuity steps

The SMS tab has one control — a "Forward to URL" checkbox and field, with
SAVE/RETURN buttons where RETURN discards. The instructions described a
destination dropdown that isn't there. Also flags that the generated URLs are
long (~90 chars relay, ~150+ direct) and worth re-opening the tab to confirm
they saved whole.

Adds a provider-risk section: the realistic way to lose the number is account
action or a lapsed balance rather than the company folding, so keep the
balance small, save a recent invoice offline (porting out needs a signed LOA
plus the latest bill, which you can't download once an account is closed),
and note that Anveo states it does not block port-outs.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NAddJGE1G6eGaPzmScG5Vh
This commit is contained in:
Claude
2026-07-25 09:57:48 +00:00
parent e709413157
commit 0eb09eec9c
2 changed files with 46 additions and 9 deletions
+38 -4
View File
@@ -254,10 +254,17 @@ reach it:
but the URL you paste into Anveo carries your ntfy token, and the `&` case but the URL you paste into Anveo carries your ntfy token, and the `&` case
loses the tail of the message. loses the tail of the message.
Then in the Anveo portal: **Phone Numbers → the DID → SMS tab**, set the Then in the Anveo portal: **Phone Numbers → the DID → SMS tab**. The tab has
destination to **URL**, and paste the string the installer printed. Keep the exactly one control — a **Forward to URL** checkbox and a text field. Tick the
`$[message]$` placeholder **last** — that's what makes the unescaped-`&` case box, paste the string the installer printed into the field, and press **SAVE**
recoverable. (not RETURN, which discards). Keep the `$[message]$` placeholder **last** in
that URL — that's what makes the unescaped-`&` case recoverable.
The field has no visible length limit, but the generated URLs are long
(~90 characters in relay mode, ~150+ in direct mode, since that one carries
the ntfy auth parameter). After saving, reopen the tab and confirm the whole
string came back intact rather than truncated — if it didn't, relay mode is
the shorter of the two.
Send a text to the number from another phone; the notification should arrive Send a text to the number from another phone; the notification should arrive
within seconds. `journalctl -u sms-inbound -f` shows sender, recipient and within seconds. `journalctl -u sms-inbound -f` shows sender, recipient and
@@ -286,6 +293,33 @@ iOS lets nothing write to Messages at all. Codes arrive as ntfy push
notifications instead — which, for a passcode you're about to read and type, notifications instead — which, for a passcode you're about to read and type,
is the more useful place anyway. is the more useful place anyway.
## Provider risk and keeping the number
Anveo is small — founder-run since ~2006, bootstrapped (no outside funding),
around 8 people. The clunky portal reads as a niche business that hasn't
needed to rewrite its UI rather than one in trouble: they shipped a Hosted
STIR/SHAKEN signing service for the June 20 2025 reseller deadline, added
carrier-sourced mobile DIDs, and support answers technical tickets within a
day or two.
The realistic way to lose a number here isn't insolvency, it's **account
action or a lapsed balance**. There are long-standing reports of accounts
closed without warning, sometimes with prepaid credit still on them, and the
AUP penalises high volumes of very short or non-conversational calls. Three
cheap precautions:
- **Keep the balance small** — enough for a few months, no more. Auto-recharge
stays off anyway for the toll-fraud reasons above, which conveniently caps
what's at risk.
- **Save a copy of a recent invoice now**, offline. Porting a number out
requires a signed LOA *plus* the latest bill from the losing carrier — and
if the account is already closed you can't download one.
- **Know the exit exists.** Anveo Direct states it does not block or restrict
port-outs (a provider refusing to release numbers is the real warning sign).
The process is at `anveo.com/lnp.asp`: signed authorisation form plus that
invoice, 36 weeks, non-refundable porting fee. Service must stay active on
the number until the port completes.
## Bugs hit and fixed along the way (informational — already fixed) ## Bugs hit and fixed along the way (informational — already fixed)
These were all real, confirmed-live bugs in earlier versions of this These were all real, confirmed-live bugs in earlier versions of this
+8 -5
View File
@@ -309,8 +309,9 @@ Mode: **${_mode}**
## The URL to paste into your DID provider ## The URL to paste into your DID provider
In the provider portal, open the DID's SMS settings, choose "forward to URL" In the provider portal, open the DID's SMS settings and paste this into the
and paste this: "forward to URL" field (on Anveo: Phone Numbers → the DID → SMS tab, tick the
checkbox, paste, press SAVE — RETURN discards):
\`\`\` \`\`\`
${_url} ${_url}
@@ -601,12 +602,14 @@ ENV
echo " 1. Subscribe to this topic in the ntfy app:" echo " 1. Subscribe to this topic in the ntfy app:"
echo " ${NTFY_TOPIC_URL}" echo " ${NTFY_TOPIC_URL}"
echo "" echo ""
echo " 2. In your DID provider's portal, open the number's SMS settings," echo " 2. In your DID provider's portal, open the number's SMS settings and"
echo " choose \"forward to URL\", and paste exactly:" echo " paste this into the \"forward to URL\" field, exactly:"
echo "" echo ""
echo " ${FORWARD_URL}" echo " ${FORWARD_URL}"
echo "" echo ""
echo " Keep the message placeholder last — see the README for why." echo " On Anveo: Phone Numbers → the DID → SMS tab; tick the checkbox,"
echo " paste, then press SAVE (RETURN discards). Reopen the tab after"
echo " saving to confirm the whole URL came back — it is a long string."
echo "" echo ""
echo " 3. Text the number from another phone. The notification should" echo " 3. Text the number from another phone. The notification should"
echo " arrive within a few seconds." echo " arrive within a few seconds."