Forwarding codes¶
How the trade turns Polly on/off. Locked 2026-06-21 after end-to-end testing with Matt's mobile.
What the trade actually does¶
When a pilot is approved, the bridge sends them an SMS containing two vCard download links. Tapping each link → Safari → "Create New Contact" → the contact is saved on their iPhone with the MMI code in the phone-number field. To toggle Polly on or off, they open Contacts and tap the appropriate one.
That's it. No typing MMI codes by hand, no tel: links (which iOS mangles).
The two contacts¶
| Contact name | Phone number (MMI code) | What it does |
|---|---|---|
| Polly ON | **61*[YE_NATIONAL]**5# |
Forwards unanswered calls to Polly after 5 seconds |
| Polly OFF | ##002# |
Cancels ALL diversions on the SIM |
[YE_NATIONAL] is the pilot's dedicated UK number in 0-prefixed national form, e.g. 07862131940.
Why 5 seconds (locked)¶
Carrier voicemail typically kicks in at 15–20 seconds. The default no-answer timer on most UK SIMs is also 20–30s, which means the carrier's voicemail can beat our conditional forward to the call. Setting our forward to 5s guarantees Polly answers first on every UK network we've tested (EE, Vodafone, O2, Three + their MVNOs).
Valid timer values are multiples of 5: 5, 10, 15, 20, 25, 30. We use 5.
Why vCard delivery (locked)¶
tel:links containing MMI codes (tel:**004*<num>%23) do not reliably work on modern iOS. Apple restricted MMI execution fromtel:URIs in iOS 16+ for security reasons.- Plain MMI codes in SMS body are not reliably tappable via iOS Data Detectors.
- iPhone Contacts accept and dial MMI codes flawlessly once saved.
- vCard (
.vcf) downloads use the standard iOS "Add to Contacts" UI, which everyone over 50 already knows how to use.
vCard endpoint¶
Hosted on the bridge:
GET https://bridge.yourevenings.com/vcard/<provisionId>/polly-on.vcf
GET https://bridge.yourevenings.com/vcard/<provisionId>/polly-off.vcf
Returns a text/vcard payload like:
BEGIN:VCARD
VERSION:3.0
FN:Polly ON
N:Polly ON;;;;
TEL;TYPE=CELL:**61*07862131940**5#
NOTE:Tap to dial. This forwards your missed calls to Polly...
END:VCARD
SMS body the trade receives¶
The provision executor builds this automatically (see src/provision-executor.js):
Hi [Name] — Polly is live on your dedicated YE number:
+44 7xxx xxxxxx
One-time setup (30 seconds). Tap each link below → scroll down →
tap "Create New Contact" → Done. (Do NOT tap the blue tick at
the top of the screen — that's a different action.)
✅ https://bridge.yourevenings.com/vcard/<id>/polly-on.vcf
→ saves "Polly ON" (5-sec no-answer forward, beats voicemail)
🔕 https://bridge.yourevenings.com/vcard/<id>/polly-off.vcf
→ saves "Polly OFF" (clears all forwarding)
Then to toggle: Contacts → tap "Polly ON" → green phone icon →
confirmation pops up → done.
Test: get someone to ring you, don't answer — Polly picks up
and texts you the job details.
Verifying it worked¶
- Trade saves both contacts from SMS links.
- Trade taps Polly ON → green phone icon → carrier confirms "Call forwarding activated".
- From a different phone, ring the trade's number, don't pick up.
- After ~5 seconds the call diverts → Polly answers.
- After hang-up, the trade receives an SMS with job details within ~20 seconds.
To debug the forward state at any time, the trade can dial *#61# — that returns the current "no answer" target on screen.
When the trade wants to turn Polly off¶
Tap Polly OFF in Contacts → tap green phone → ##002# runs → carrier confirms "All call forwarding cancelled". Done.
Note: ##002# cancels all call forwarding on the SIM, including any unrelated diversions the trade might have set previously. That's a deliberate simplicity choice — if the trade has bespoke forwarding rules, they'd need to set those again after toggling Polly off, which is rare for our ICP.