Phone Provisioning
What's covered here
Chapter 7 walked through provisioning your first desk phone. This chapter goes deeper: button layouts, expansion modules, multi-phone management, and the operational considerations of running a fleet of desk phones.
The Phones page
Top nav → Phones (or Provisioning → Phones depending on your menu layout).
Columns:
- MAC address
- Phone model
- Extension assigned
- Status (Pending / Registered / Online / Offline / Disabled)
- IP address
- Firmware version
- Last registered timestamp
- Actions (edit, reboot, reset, unassign, delete)
Supported phone models
Most major business desk phone manufacturers:
- Yealink — T4x, T5x series, EXP modules
- Grandstream — GXP series, GRP series, GXV (video) series
- Cisco SPA — SPA303, SPA504G, SPA525G, etc. (older but still common)
- Polycom — VVX series
Other models: contact your service provider. They can usually add support for new models with a few hours of work.
Adding a phone
Click Add Phone:
| Field | What to enter |
|---|---|
| MAC Address | 12-character ID from the phone's sticker |
| Phone Model | Pick from dropdown |
| Extension | Which extension this phone registers as |
| Display Name | Optional friendly label |
| Timezone | Defaults to tenant default |
| Button Layout | Optional — apply a saved layout |
| Expansion Modules | Optional — apply expansion module layouts |
| Admin Password | Optional override of the device's local admin password |
| Local SIP Port | Defaults to 5060 |
Save.
Plugging in the phone
Connect to network (Ethernet recommended). Phone boots, gets IP, looks up provisioning server, downloads config, registers. Total time: 2-5 minutes.
Status flips Pending → Provisioning → Registered → Online.
Phone status meanings
- Pending — added to dashboard, hasn't checked in yet
- Provisioning — checked in, downloading config
- Registered — config loaded, SIP-registered
- Online — registered and reachable for incoming calls
- Offline — was registered, hasn't sent a keepalive in 60+ seconds
- Disabled — manually disabled in dashboard
Button Layouts
Most phones have programmable buttons. Configure once, apply to many phones.
Where they live
Top nav → Provisioning → Button Layouts.
Creating a layout
Click New Button Layout. Form fields:
- Name — display name
- Description
- Phone Model — which model this layout is for (button counts vary)
- Default — toggle on if this should be the default layout for new phones of this model
The layout editor shows the phone's button positions. Click each to assign:
- Line key — registers an additional SIP line on the phone
- BLF (Busy Lamp Field) — monitors another extension's status (free/busy/ringing); button lights match
- Speed Dial — one-touch dial of a number (internal extension or external)
- Feature Code — one-touch dial of a star code
- Park — park the active call to a parking slot
- Park Retrieve — pick up a call parked on a specific slot
- Conference — start a conference
- Custom — manually enter a dial string
Save.
Applying to a phone
When adding a phone (or editing an existing one), pick the button layout from the dropdown. Save. The phone re-downloads config and the buttons update on the next reboot or check-in.
Updating a layout
Edit the layout. Save. Every phone using this layout picks up the change on the next config check (within 1 hour by default; sooner if you reboot).
Common layout patterns
Receptionist phone — line keys for the main lines, BLF for every extension in the office (so the receptionist can see who's on a call), park-retrieve buttons for slots 71-75.
Sales rep phone — line keys for personal extension, BLF for fellow reps, speed dial for the manager, feature code button for "queue agent toggle pause."
Conference room phone — line keys for the main line, speed dial for IT support and the front desk.
Expansion modules (sidecars)
Some phones (Yealink T58, Polycom VVX 401, etc.) support expansion modules — sidecars that add 20-50 more buttons.
Compatible modules
The platform tracks which expansion modules are compatible with which phones. When editing a phone, the dropdown only shows compatible modules.
Common modules:
- Yealink EXP40 — 40 buttons (with 2 pages → 80)
- Yealink EXP50 — 20 buttons (color)
- Polycom VVX EXP — 28 buttons
Configuring buttons on the module
Same as the phone: assign each button to BLF, speed dial, feature code, etc.
Expansion Module Layouts
Same concept as Button Layouts but for the modules. Create once, apply to many.
Top nav → Provisioning → Expansion Module Layouts.
Multi-phone operations
For a fleet of 50+ phones, individual config gets tedious. Use:
- Bulk apply layout — select multiple phones, apply the same button layout
- Bulk reboot — restart many phones at once
- Provisioning Profile — a saved set of defaults (admin password, time zone, button layout) applied to phones in bulk
Firmware management
Phones run firmware that occasionally needs updating (security fixes, bug fixes, new features).
The platform tracks the current firmware version on each phone. When new firmware is available:
- Your service provider uploads the new firmware to their library
- You see a "Firmware update available" indicator on the phone
- Click Update Firmware. Phone downloads and installs (5-10 minutes; phone is offline during).
Schedule firmware updates during off-hours.
Common provisioning issues
| Symptom | Likely cause | Fix |
|---|---|---|
| Status stuck on Pending | Phone hasn't checked in | Verify Ethernet, DHCP. Check the phone's network screen for an IP. |
| Status stuck on Provisioning | Can't reach provisioning server | Check the phone's network logs. Likely outbound HTTPS blocked by firewall. |
| Registers, but calls fail | SIP credentials don't match | Reboot phone (clear cache). Verify MAC address in dashboard matches the phone exactly. |
| Two-way audio fails (one-way audio) | NAT/firewall not allowing RTP | Configure firewall to allow outbound UDP 10000-20000. SIP ALG should be OFF on your firewall. |
| BLF not updating | Phone's BLF subscription failed | Reboot phone. If still broken, check phone-side BLF setting. |
Phone reset / factory wipe
If a phone is misbehaving, sometimes a factory reset is the fastest fix.
- From the dashboard — click Reset to Defaults in phone actions. Phone reboots, re-downloads config from scratch.
- From the phone — most phones have a "factory reset" option in the local menu (varies by model).
After reset, the phone re-provisions from our server within a few minutes.
Removing a phone
Click Delete on the phone. The MAC address is forgotten by the dashboard. The phone, once it can't reach the provisioning server with valid config, stops working.
If you want to redeploy the same phone for a different person: delete it from the dashboard, then re-add with the new extension assignment. Phone re-provisions automatically.