Provisioning Templates Module Documentation
Table of Contents
- Module Overview (Technical)
- Module Overview (Commercial/Business)
- Module Overview (End User/Administrator)
- Configuration Tabs
- Settings Reference
- Common Scenarios & Examples
- Limitations & Important Notes
- Troubleshooting Tips
- Glossary
---
1. Module Overview (Technical)
What Are Provisioning Templates?
Provisioning Templates is a device configuration template module that creates reusable configurations for IP phones. Templates define DSS keys, expansion modules, phonebooks, GUI settings, and custom configuration using Jinja2 syntax.
Architecture
┌─────────────────────────────────────────────────────────────────┐
│ Provisioning Templates Architecture │
├─────────────────────────────────────────────────────────────────┤
│ │
│ Admin Panel │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ Provisioning Templates │ │
│ │ │ │
│ │ Template Settings: │ │
│ │ ├─ Model Selection (Yealink T54W) │ │
│ │ ├─ Server & Localization │ │
│ │ ├─ DSS Keys (BLF, Speed Dial) │ │
│ │ ├─ Expansion Modules │ │
│ │ ├─ Phonebooks │ │
│ │ ├─ GUI Settings (Wallpaper) │ │
│ │ └─ Custom (Jinja2 Template) │ │
│ │ │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ Applied to devices │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ Provisioning Devices │ │
│ │ │ │
│ │ Device (MAC) → Template → Generated Config │ │
│ │ │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ Generates config files │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ Configuration Files │ │
│ │ │ │
│ │ /var/www/provisioning/ │ │
│ │ ├─ AA-BB-CC-DD-EE-FF.cfg │ │
│ │ │ (Template + Device variables) │ │
│ │ └─ 11-22-33-44-55-66.cfg │ │
│ │ │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
Key Tables
| Table | Purpose |
|---|
public.provisioning_templates | Template definitions |
Key Files
| File | Description |
|---|
modules/provisioningTemplates/ | Frontend module | |
/var/www/provisioning/.cfg | Generated config files |
---
2. Module Overview (Commercial/Business)
Business Value
Provisioning Templates provides standardized device configuration:
| Without Templates | With Templates |
|---|
| Manual config | Automated setup | |
| Inconsistent | Standardized | |
| Error-prone | Template-driven | |
| Time-consuming | Rapid deployment |
Use Cases
- Bulk Deployment
- Deploy many phones quickly
- Consistent settings
- Department Templates
- Sales phone setup
- Support desk config
- DSS Key Programming
- BLF/Line keys
- Speed dial buttons
- Custom Branding
- Wallpapers
- Display settings
Feature Highlights
| Feature | Benefit |
|---|
| Model-Specific | Correct capabilities | |
| DSS Keys | BLF, speed dial, line keys | |
| Expansion Modules | Key attachment config | |
| Phonebooks | Directory integration | |
| GUI Settings | Wallpaper customization | |
| Jinja2 Templates | Dynamic configuration |
---
3. Module Overview (End User/Administrator)
What Can You Do?
- Create templates for phone models
- Configure DSS keys (BLF, speed dial, line)
- Set up expansion module keys
- Assign phonebooks
- Upload wallpapers
- Write custom Jinja2 configurations
- Set timezone and language
Provisioning Templates Interface
┌─────────────────────────────────────────────────────────────────┐
│ Provisioning Templates │
├─────────────────────────────────────────────────────────────────┤
│ │
│ [+ Create Template] │
│ │
│ ┌───────────────────────────────────────────────────────────┐ │
│ │ Name │ Vendor │ Model │ Devices │ │ │
│ ├───────────────────┼─────────────┼─────────┼─────────┼─────┤ │
│ │ Sales Team │ Yealink │ T54W │ 25 │ ✏️ │ │
│ │ Support Desk │ Yealink │ T46U │ 12 │ ✏️ │ │
│ │ Reception │ Grandstream │ GXP2170 │ 3 │ ✏️ │ │
│ │ Conference Room │ Polycom │ VVX450 │ 5 │ ✏️ │ │
│ └───────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
Create/Edit Template
┌─────────────────────────────────────────────────────────────────┐
│ Create Template │
├─────────────────────────────────────────────────────────────────┤
│ │
│ Template Name: [Sales Team ] │
│ │
│ Vendor: [Yealink ▼] Model: [T54W ▼] │
│ │
│ Server: [pbx.example.com ] │
│ Timezone: [America/New_York ▼] │
│ Language: [English ▼] │
│ │
│ Admin Password: [•••••••• ] │
│ Time Format: [12-hour ▼] │
│ Date Format: [MM/DD/YYYY ▼] │
│ Daylight Savings: ✓ │
│ │
│ ──────────────────────────────────────────────────────────────│
│ │
│ [DSS Keys] [Key Expansion] [Phonebooks] [GUI Settings] [Custom]│
│ │
└─────────────────────────────────────────────────────────────────┘
DSS Keys Tab
┌─────────────────────────────────────────────────────────────────┐
│ DSS Keys Configuration │
├─────────────────────────────────────────────────────────────────┤
│ │
│ T54W supports 10 DSS Keys │
│ │
│ ┌─────────────────────────────────────────────────────────────┐│
│ │ Key │ Type │ Value │ Line │ ││
│ ├─────┼─────────────┼────────────────┼──────┼───────────────┤│
│ │ 1 │ BLF │ 1001 │ 1 │ ✏️ 🗑 ││
│ │ 2 │ BLF │ 1002 │ 1 │ ✏️ 🗑 ││
│ │ 3 │ BLF │ 1003 │ 1 │ ✏️ 🗑 ││
│ │ 4 │ Speed Dial │ 5551234567 │ - │ ✏️ 🗑 ││
│ │ 5 │ Line │ 2 │ 2 │ ✏️ 🗑 ││
│ │ 6 │ N/A │ - │ - │ ✏️ ││
│ │ ... │ ... │ ... │ ... │ ... ││
│ └─────────────────────────────────────────────────────────────┘│
│ │
└─────────────────────────────────────────────────────────────────┘
Custom Tab (Jinja2)
┌─────────────────────────────────────────────────────────────────┐
│ Custom Configuration Template │
├─────────────────────────────────────────────────────────────────┤
│ │
│ Use Jinja2 syntax: {{ variable }} for dynamic values │
│ │
│ Available Variables: [mac] [extension] [password] [server] │
│ │
│ ┌─────────────────────────────────────────────────────────────┐│
│ │ # Custom Yealink Configuration ││
│ │ account.1.label = {{ extension }} ││
│ │ account.1.display_name = {{ name }} ││
│ │ account.1.user_name = {{ extension }} ││
│ │ account.1.password = {{ password }} ││
│ │ account.1.sip_server_host = {{ server }} ││
│ │ ││
│ │ local_time.time_zone = -5 ││
│ │ local_time.dst_time_type = 1 ││
│ └─────────────────────────────────────────────────────────────┘│
│ │
│ 38 lines | 1,245 characters │
│ │
│ [Reset to original template] │
│ │
└─────────────────────────────────────────────────────────────────┘
Quick Tips
TIP
Select Model First: Model determines available DSS keys.
TIP
Jinja2 Variables: Use
{{ mac }},
{{ extension }},
{{ password }}.
NOTE
Reset Available: Revert custom config to original template.
---
4. Configuration Tabs
DSS Keys Tab
| Setting | Description |
|---|
| Key | Key number | |
| Type | BLF, Speed Dial, Line, etc. | |
| Value | Extension/number | |
| Line | Associated SIP line |
Key Expansion Tab
| Setting | Description |
|---|
| Module | Expansion module number | |
| Keys per Module | Keys available | |
| Key Configuration | Same as DSS keys |
Phonebooks Tab
| Setting | Description |
|---|
| Phonebook | Select phonebook | |
| Server Address | Remote phonebook URL | |
| Authentication | User/password |
GUI Settings Tab
| Setting | Description |
|---|
| Wallpaper | Phone background image |
Custom Tab
| Setting | Description |
|---|
| Template | Jinja2 configuration text |
---
5. Settings Reference
DSS Key Types
| Type | Description |
|---|
| BLF | Busy Lamp Field (extension monitor) | |
| Speed Dial | Quick dial number | |
| Line | SIP line registration | |
| Transfer | Call transfer button | |
| Hold | Hold button | |
| DND | Do Not Disturb toggle | |
| Voicemail | Direct voicemail access |
Jinja2 Variables
| Variable | Description |
|---|
{{ mac }} | Device MAC address | |
{{ extension }} | SIP extension number | |
{{ password }} | SIP password | |
{{ server }} | SIP server address | |
{{ name }} | Display name | |
{{ domain }} | SIP domain |
| Format | Example |
|---|
| 12-hour | 2:30 PM | |
| 24-hour | 14:30 |
---
6. Common Scenarios & Examples
Scenario 1: Create Basic Template
- Click "Create Template"
- Enter name
- Select vendor and model
- Set server and timezone
- Save
- Open template
- Go to DSS Keys tab
- For each key:
- Type = BLF
- Value = extension number
- Line = 1
- Save
Scenario 3: Add Custom Config
- Open template
- Go to Custom tab
- Enter Jinja2 configuration
- Use available variables
- Save
Scenario 4: Set Up Phonebook
- Open template
- Go to Phonebooks tab
- Select phonebook
- Configure server if remote
- Save
---
7. Limitations & Important Notes
Technical Notes
NOTE
Model Selection: Template is model-specific.
NOTE
DSS Limits: Key count depends on model.
WARNING
Cannot Delete: Templates with devices cannot be deleted.
Best Practices
- Name Clearly: "Sales Team Yealink T54W"
- Select Model First: Before configuring keys
- Test Template: Create test device first
- Document Keys: Keep record of BLF mappings
- Backup Custom: Save custom templates elsewhere
Jinja2 Tips
{# Comment #}
{{ variable }}
{# Conditional #}
{% if extension %}
account.1.user_name = {{ extension }}
{% endif %}
{# Loop #}
{% for i in range(1, 3) %}
linekey.{{ i }}.type = 1
{% endfor %}
---
8. Troubleshooting Tips
Common Issues
| Symptom | Possible Cause | Solution |
|---|
| Can't delete template | Has devices | Remove devices first | |
| Keys not working | Wrong type | Check key type | |
| Config not applied | Template error | Check Jinja2 syntax | |
| BLF not lighting | Wrong extension | Verify extension exists |
Check Template
SELECT
t.name,
m.model_name,
t.settings
FROM public.provisioning_templates t
JOIN public.provisioning_device_models m ON m.id = t.model_id
WHERE t.name = 'template-name';
Validate Jinja2
Test template rendering before deployment using the preview feature.
---
9. Glossary
| Term | Definition |
|---|
| Template | Reusable configuration | |
| DSS Keys | Programmable phone buttons | |
| BLF | Busy Lamp Field | |
| Jinja2 | Template syntax | |
| Expansion Module | Key attachment | |
| Phonebook | Contact directory |
---
Lua Script Status ℹ️
Configuration Module
| Component | Status |
|---|
| Provisioning Templates | ℹ️ Configuration generator - processes Jinja2 templates |
Provisioning Templates is a configuration module. Templates are processed with Jinja2 to generate device-specific configuration files. No Lua handlers are used.
---
Documentation last updated: January 2026*