Fanvil IP Door Phone — SIP Setup via Independent Trunk
Written after a real job (Warwicks Amusements, August 2026) that took three site visits partly because two specific gotchas below weren't yet known. Read the two gotchas sections before troubleshooting anything else if a unit is already installed and misbehaving.
System Overview
| Hardware | Fanvil i-series IP door phone (e.g. i32V — screen-less outdoor station, built-in RFID reader, illuminated call button) |
| Problem | BT Cloud Voice (and similar hosted platforms) only support a closed catalogue of certified handsets — no generic/manual SIP device option |
| Fix | Independent SIP trunk (e.g. Voipfone Flex) dialling the existing hunt group's full external number |
| Power | 12V DC only, separate from data — never 12V AC, it kills the unit |
The Structural Problem — BT Cloud Voice Won't Host Third-Party SIP Hardware
Confirmed via BT support and independent research — this is a platform limitation, not just an unhelpful support answer:
- BT Cloud Voice only supports a closed catalogue of certified handsets (Yealink/Poly/Cisco/etc) plus a narrow whitelist of Algo alerter devices.
- No generic/manual SIP device option exists.
- BT cannot release SIP credentials for a user even on request — they're locked inside an encrypted, MAC-bound auto-provisioning flow that BT's own staff can't retrieve.
Don't attempt to register third-party door entry hardware directly on a client's BT Cloud Voice (or similar) account. Go straight to the workaround below.
The Workaround — Independent SIP Trunk
Sign up an independent SIP trunk (this job used Voipfone Flex, roughly £5/month) entirely separate from the client's own phone system. The door phone registers to this trunk, not to BT.
The trick: have the door phone dial the full external number of the existing hunt group/extension you want it to ring, not an internal extension. The door phone isn't a member of the client's phone network, so it has to call in from outside like any external caller — dialling an internal extension does nothing. This rings the existing hunt group exactly as before, with no changes needed on the host platform's side at all.
Voipfone Flex — Signup & Portal Walkthrough
- Sign up for a Flex line at voipfone.co.uk — this issues an account number and a first extension. The small monthly "forced number" fee (a real DDI attached to the extension) is mandatory even though that number is never actually given out or dialled by anyone — it's just how Flex provisions a routable extension.
- SIP credentials for the door phone come straight from that signup, no separate step: Phone Number and Authentication Name are both
<account>*<extension>, Authentication Password is whatever the portal issued, Proxy issip.voipfone.netport5060. - The provider's portal is what you'll actually use ongoing — key sections to know on Voipfone Flex:
- Master Account — billing and balance. This is where you top up, and critically, where you should enable auto top-up before leaving site — see the credit gotcha below, this exact page is the fix for it.
- Call Barring — check there's no destination restriction blocking the number being dialled, especially if outbound calling fails and the balance looks fine.
- Phone Numbers — routing table for any numbers on the account, only relevant if the account is also handling inbound routing.
- Confirm Line Status shows Registered on the door phone before touching any dial configuration at all. If it doesn't register, the fault is in steps 1-2 above, not anything covered further down this guide.
Trunk config on the Fanvil (Line → SIP1 → Basic Settings)
- Phone number / Authentication Name: the trunk account's SIP username
- Authentication Password: as issued by the provider
- SIP Proxy Server Address / Port: as issued by the provider
- Activate: ticked
- Confirm Line Status shows "Registered" before doing anything else
Auto-dial: the Hotline feature
Line → SIP1 → Advanced Settings → Hotline: Enable = Yes, Hotline Delay = 0, Hotline Number = the full external number to ring. Also set DTMF Type = RFC2833 and Enable Rport = Yes (NAT reliability, since the phone registers over the open internet with no VPN).
This alone does not make a screen-less door station's physical call button work — see the first gotcha below.
⚠️ Gotcha 1 — The Physical Call Button Is Driven by a DSS Key, Not Hotline
Everything above can be 100% correct — SIP registered, Hotline configured, DTMF type correct — and the physical call button will still do nothing at all: no tone, no LED change, no call attempt, no log entry. That's because on this hardware the button's actual behaviour is governed by a separate DSS Key mapping under Function Key, and it does not ship pointed at Hotline.
Symptom: press the call button → zero reaction. Not a dial failure — genuinely no response of any kind.
Root cause: DSS Key 1 left at its manufacturer default — Type: Key Event, Subtype: OK — a menu-navigation no-op, meaningless on a door station with no screen. The button press never reaches the dialler at all.
Fix (Function Key page → Dss Key 1):
- Type: Hot Key
- Number 1: the same external number used for Hotline
- Line: SIP1
- Subtype: Speed Dial
This is per the manufacturer's own printed quick-start manual — worth keeping a copy if the unit ships with one.
Don't assume Hotline alone drives a screen-less door phone's call button — check the Function Key / DSS Key mapping first if the button does nothing.
⚠️ Gotcha 2 — Zero Trunk Credit Fails Silently, Looks Identical to a Config Problem
Once the DSS Key is fixed, the button will attempt a real call. If the trunk account has £0 credit, the call fails with a generic recorded message ("Sorry, call can't be connected, please try again") and an engaged tone — while SIP registration stays showing "Registered" the entire time. There is nothing on the door phone's own side, in its config, or in its registration status, that indicates a credit problem. It looks exactly like a routing/config fault.
Check the SIP trunk provider's own portal for account balance before chasing anything else if a correctly-configured button dials but fails to connect. On Voipfone Flex specifically: Master Account for balance, Call Barring for destination restrictions. Set up auto top-up on that same Master Account page before leaving site — a door phone's outbound calling is now a live dependency for the client's physical access, and a silent zero-credit outage has no warning at the door itself. Don't treat "topped it up and it worked" as finished — the auto top-up is what actually prevents a repeat callout.
DTMF Door Release
Under EGS Setting → Features → Common Settings:
- Calling Password: a short DTMF sequence (e.g. a single digit) that fires the relay when pressed during an active call. Field is password-masked in the web UI — if unsure it's saved correctly, clear and retype rather than trust the masked dot count.
- Remote Code Check Length: must match the length of the Calling Password.
- Talk Duration: caps how long an answered call can run (20–600s). Worth reducing on a paid-per-minute trunk to protect credit and stop a call being left open indefinitely.
Manual relay test (no call needed)
Door Lock page → Door Lock Control → Door Lock 1, Action Door Open, Open Mode Once → Execute. Fires the relay directly, independent of SIP/DTMF entirely — use this to isolate relay/strike wiring faults from call-path faults.
Relay & Power Wiring
- Electric strike relay wired as a series switch: PSU 12V+ → relay COM, relay NO → strike's live terminal, strike's other terminal → PSU 12V-/ground return. The relay interrupts the strike's power feed; it isn't a power source itself.
- Confirm the strike is rated 12V DC, not AC-only, before wiring it to a DC-only door phone PSU.
- If sharing one PSU between the phone and the strike, watch for brownout on the phone when the strike fires — if the phone drops registration or the webgui glitches the moment the strike releases, fit a dedicated PSU for the strike.
- The door phone is not PoE capable and needs 12V DC separately from data — never 12V AC. Feeding AC to the unit looks like a software fault (network stack alive, web server dead) but is a hardware one, and it's not recoverable.
- Passive power injection over a single Cat6 run: data on pins 1/2/3/6 (10/100 only), 12V DC on the spare pairs (4+5 bonded, 7+8 bonded), kept isolated from the switch port. Terminate power injection before the patch into the switch, never through the switch port.
RFID Card Access
Built-in reader, enabled by default (Enable Card Reader / Enable Access Table under EGS Setting → Features).
To register a card:
- Open EGS Logs, present the card to the reader
- A new log entry shows the card's ID as the reader actually reads it — use this value, not what's printed on the card
- EGS Access → Add Access Rule: paste the ID, add a Name, Card State = Enable, Card Control Lock =
1, leave calling-related fields blank - Present the card again to confirm it physically releases the strike — registering it in software is not the same as confirming it opens the door
Recovery — Unit Unresponsive / Bricked Config
If the web UI is unreachable but the network stack still pings:
- Power off, power on, immediately long-press
#+*for ~5s to enter POST mode (fixed IP192.168.10.1, telnet port 23) - Set a PC/Mac network interface to a static IP in
192.168.10.0/24(e.g.192.168.10.2) — same LAN segment, no crossover cable needed - Telnet to
192.168.10.1with a real telnet client, not rawnc— the service is single-shot per boot and may drop mid-negotiation if probed first - Option
3— Clear Configuration - Option
4— Exit and Reboot
This wipes everything — SIP, DSS Key, DTMF, card table — all need reconfiguring from scratch afterwards.
Quick Troubleshooting Reference
| Symptom | Likely cause | Check |
|---|---|---|
| Call button: zero reaction (no tone, no LED change) | DSS Key not mapped to Hot Key/Speed Dial | Function Key page, DSS Key 1 Type/Subtype |
| Call button dials but "can't be connected" + busy tone | Trunk account at £0 credit, or call barring | Provider's own portal — balance and barring, not the door phone |
| Manual Execute test fires strike, real call doesn't | Fault is in the call/DTMF path, not wiring | Calling Password / Remote Code Check Length match; DTMF Type RFC2833 |
| Manual Execute test does nothing | Relay/PSU/wiring fault | Relay wiring, PSU voltage/type (DC not AC), shared-PSU brownout |
| Web UI unreachable, network still pings | Corrupted config, not dead hardware | POST-mode recovery above before writing the unit off |
| SIP shows Registered throughout a failed call | Registration ≠ working outbound calling | Don't stop troubleshooting just because Line Status looks fine |
