Extension Management
Extensions connect agents, devices, or bots to RustPBX. This chapter covers creation, bulk administration, and protection controls.
1. Extension model
- Core fields: number, display name, department, SIP password or certificate bundle.
- Policy fields: concurrency limit, outbound permissions, media parameters (DTMF mode, RTP ports, codec order).
- Related objects: queues, billing templates, and frequency limits (
models/frequency_limit.rs).
(Insert an “Extension list” screenshot.)
2. Creating an extension
- Console → Extensions → Create.
- Fill basic information and select an authentication method:
- Password: auto-generate or manually supply a strong secret.
- Certificate: pair with WebRTC clients.
- Configure calling permissions—black/white lists and domestic vs. international dialing policies.
- Save and distribute the credentials to the assigned device.
File / script import
For bulk onboarding, call the API or insert rows that match models/extension.rs, then refresh caches.
3. Registration & devices
- SIP softphones: enter server address, extension, and password; import certificates when TLS/SRTP is required.
- Desk phones: use auto-provision templates or manual configuration; restrict allowed IP ranges.
- WebRTC clients: leverage
static/phone_jssip.htmlorphone_sipjs.htmlsamples to establish secure browser sessions.
(Insert a WebRTC phone screenshot.)
4. Security & limits
- Frequency limits: define policies in
models/frequency_limit.rs, attach them via the console to mitigate abusive dialing. - ACL: coordinate with
config/acl/to restrict IP or network access. - Login alerts: enable failed-login alerts in Diagnostics; spike detection can auto-block offending IPs.
5. Operational routines
| Task | Recommended approach |
|---|---|
| Password rotation | Reset in bulk every quarter via API scripts |
| Status review | Diagnostics → SIP registrations to find long-offline extensions |
| Mass firmware/config updates | Use vendor provision servers so devices reboot and fetch new templates |
| Decommissioning | Disable from the extension detail page and remove queue/skill bindings |
6. Common issues
- Cannot register: verify password, proxy port, device clock, TLS certificate, and ACL rules.
- Call fails: confirm routing rules allow the extension to dial out and ensure frequency limits were not tripped.
- Poor audio: lower codec complexity, enable QoS on the device, or move the media server closer to the user.
Applying these practices keeps extensions secure, observable, and aligned with routing/queue policies.