Per-user SIP line storage + System Console admin page for Slash SIP (Phase 9)
- Go 58%
- TypeScript 33.3%
- Makefile 6.2%
- JavaScript 2.5%
|
All checks were successful
Build slash-sip-plugin / build (push) Successful in 15s
Reviewed-on: #4 |
||
|---|---|---|
| .forgejo/workflows | ||
| public | ||
| server | ||
| webapp | ||
| .gitignore | ||
| CHANGELOG.md | ||
| LICENSE | ||
| Makefile | ||
| plugin.json | ||
| README.md | ||
slash-sip-plugin
Mattermost/Slash plugin: per-user SIP softphone credential storage for the
Slash SIP integration (Phase 9). Stores each user's SIP line(s) — extension,
password, WSS server — and serves them to the Slash SIP client
(slash-sip-client). This plugin never talks to the PBX and never
proxies SIP/RTP; all signaling/media is client-side over WSS.
API
| Route | Who | What |
|---|---|---|
GET /plugins/com.ncwcom.slash-sip/api/v1/lines |
any authed user | own lines, passwords masked |
GET …/lines?include_secret=true |
any authed user | own lines with decrypted password — the endpoint the softphone registers from |
GET …/api/v1/admin/users?term=x |
system admin | user search for the console page |
GET …/api/v1/admin/lines/{user_id} |
system admin | that user's lines, masked |
PUT …/api/v1/admin/lines/{user_id} |
system admin | replace lines; password ""/******** keeps the stored one |
Passwords are AES-256-GCM encrypted at rest in the plugin KV store, keyed by
the auto-generated EncryptionKey plugin setting. Admin responses never
contain a secret (write-only field).
Build
make bundle # server (linux amd64/arm64) + webapp -> dist/*.tar.gz
make install MM_HOST=... MM_TOKEN=...
System Console
Plugins → Slash SIP → SIP lines: search a user, add/edit/remove lines.
Extension values come from NCW's phone team after manual PBX provisioning
(see slash-deploy RUNBOOK.md, task #11).