Endpoint Manager
Endpoint Manager provides zero-touch auto-provisioning for IP phones.
1. Enable
[proxy]
addons = ["endpoint-manager"]
Database requirements: automatically creates the endpoint_devices table. Supports SQLite / MySQL / PostgreSQL.
2. Supported Brands
| Brand | Config Format | Example Models |
|---|---|---|
| Yealink | Plain text | T42S, T46S, T54S, VP530 |
| Fanvil | XML | X3S, X4S, X5S, X6S |
3. Device Management
3.1 Add a Device
Console → Endpoint Manager → Add Device:
| Field | Description | Example |
|---|---|---|
| MAC address | Phone MAC address | 80:5E:C0:12:34:56 |
| Brand/Model | Phone model | Yealink T46S |
| Label | Display name | John’s extension 1001 |
| Username | SIP registration username | 1001 |
| Password | SIP registration password | ******** |
| Server address | SIP server | 203.0.113.10:5060 |
3.2 Auto-provisioning Flow
Phone powers on
│
▼
DHCP obtains IP + Option 66/160 (Provision URL)
│
▼
Phone requests configuration
GET /provision/{mac}
│
▼
Endpoint Manager looks up device
│
├── Found → Generate brand/model config → Return
└── Not found → Return 404
3.3 DHCP Configuration
Configure on the DHCP server:
# ISC DHCP
option option-66 "http://203.0.113.10:8080/provision";
# Or Option 160 (some brands)
option option-160 "http://203.0.113.10:8080/provision";
3.4 Configuration Generation
Endpoint Manager automatically generates configuration based on the brand:
Yealink example:
#!version:1.0.0.1
account.1.enable = 1
account.1.label = 1001
account.1.display_name = 1001
account.1.auth_name = 1001
account.1.user_name = 1001
account.1.password = ********
account.1.sip_server_host = 203.0.113.10
account.1.sip_server_port = 5060
Fanvil example:
<config>
<sip_account>
<enable>1</enable>
<display_name>1001</display_name>
<auth_name>1001</auth_name>
<user_name>1001</user_name>
<password>********</password>
<sip_server>203.0.113.10</sip_server>
<sip_port>5060</sip_port>
</sip_account>
</config>
4. Remote Reboot
Trigger phone reboot via SIP NOTIFY:
POST /console/endpoint-manager/devices/{mac}/reboot
5. Configuration
config/endpoint_manager.toml:
provision_url_base = "http://203.0.113.10:8080/provision"
6. API
| Operation | Endpoint |
|---|---|
| Device list | GET /console/endpoint-manager/devices |
| Add device | POST /console/endpoint-manager/devices |
| Edit device | POST /console/endpoint-manager/devices/{mac}/edit |
| Delete device | POST /console/endpoint-manager/devices/{mac}/delete |
| Reboot device | POST /console/endpoint-manager/devices/{mac}/reboot |
| Auto-provision | GET /provision/{mac} |
| Settings | GET /console/endpoint-manager/settings |