Login
The login page accepts username + password. Only users with superadmin permission (level 0) can authenticate.Management Console
Dashboard
Shows system health and quick stats.Users
Manage user accounts — create, edit, delete, and assign permissions.Extensions
Manage Asterisk extensions (SCCP, SIP, PJSIP) linked to users.Phones
The phone inventory table shows all registered Cisco phones:| Column | Description |
|---|---|
| MAC | Phone MAC address |
| Model | Phone model (e.g. 8845, 7960) |
| Software | SCCP, SIP, or SIPE |
| Current Profile | Name of the currently deployed profile (or “None”) |
| IP | Phone IP address |
| KEMs | Number of attached Key Expansion Modules |
| Actions | 🗂️ View config, ⚙️ Edit KEMs, ✏️ Edit, ❌ Delete |
Profiles
Create and manage phone profiles (SEP XML configs). Each profile belongs to a user and can be restricted by:- Compatible Models — comma-separated list of phone models (e.g.
8845, 8851) - Software Type —
SCCP,SIP, orSIPE(empty = all)
- Backs up the existing
SEP<MAC>.cnf.xmlvia FTP rename - Uploads the new config
- Restarts the phone (SIP NOTIFY for SIP/SIPE, CGI for SCCP)
- Clears the phone’s service session (next visit to phone service forces login)
Corporate Directory
Manage company-wide contacts — name, work/mobile/home numbers, email, department, location, building, ringtone.Services
Manage Cisco XML service definitions (directory URLs, etc.).Tab Navigation
| Tab | Content |
|---|---|
| Dashboard | System overview |
| Users | User management |
| Extensions | Extension management |
| Phones | Phone inventory + current profiles + KEMs |
| Profiles | Phone profile CRUD + deploy |
| Corporate Directory | Company contacts |
| Services | XML service definitions |
Authentication Flow
- Login → receives JWT + refresh token
- JWT attached as
Authorization: Bearer <token>to all API calls - On 401 (expired token) → auto-redirects to login page
- Refresh token used to obtain new JWT without re-entering credentials
API Base URL
Configured viaVITE_API_URL env var (default: http://localhost:3000/api/v1).