qm-fsw-ctl
The qm-fsw-ctl utility provides administrative commands for managing Uniloader services, tenants, and diagnostics.
When installing via Ansible, the script qm-fsw-ctl is installed as well; it
helps with a number of manual administrative tasks. It is immediately available
after Ansible runs; and will print extensive help if invoked directly.
qm-fsw-ctl [tenants|sync|dumpstate|svcstate|trace] qm-fsw-ctl [logs|qlog]
qm-fsw-ctl tenants
Prints all configured domains and the current size of their recordings.
# qm-fsw-ctl tenants
Tenants configured on this server:
1.2G ./abc.xy
2.8M ./def.xy
qm-fsw-ctl sync
Outputs the current presence state (all agents on all queues) to the queue_log.
# qm-fsw-ctl sync
Syncing queue information
2025/11/18 14:05:43 Asking for a queue refresh on 127.0.0.1:8021 with pass '*******'
2025/11/18 14:05:43 Event was sent in 0 ms - all went well
You will see all presence state rewritten to the queue_log file.
qm-fsw-ctl dumpstate
Prints the current inner state of service uniloader-freeswitch. As that is written on the service journal, it shows the journal. Press Ctrl-C to stop.
# qm-fsw-ctl dumpstate
Dumping inner state of daemon uniloader-fusion
2025/11/18 14:06:35 Asking Uniloader Fsw on 127.0.0.1:8021 with pass '*******' to log its status
2025/11/18 14:06:35 Event was sent in 0 ms - all went well
Nov 18 14:06:35 svr uniloader[569941]: 2025/11/18 14:06:35 ========== Γνῶθι σεαυτόν - NOSCE TE IPSVM ===========
Nov 18 14:06:35 svr uniloader[569941]: 2025/11/18 14:06:35 Open Calls: 14 - Open agents: 145 (waiting for tiers: 0)
Nov 18 14:06:35 svr uniloader[569941]: 2025/11/18 14:06:35 Ag:04c76072-01a0-4b5e-91a6-cbedc05c4e82 C:user/2002@abc.xy Logged Out,Waiting Qs:NONE
....
Nov 18 14:06:35 svr uniloader[569941]: 2025/11/18 14:06:35 C:fe84a(mc)-Q=q-outbound@abc.xy-A=-B=83843-n:
Nov 18 14:06:35 svr uniloader[569941]: 2025/11/18 14:06:35 ----------------- That's all folks -----------------
qm-fsw-ctl svcstate
Prints the current state for all services.
● uniloader-freeswitch.service - Loway Uniloader 25.09.3 - FreeSwitch
Loaded: loaded (/etc/systemd/system/uniloader-freeswitch.service; enabled; preset: enabled)
Active: active (running) since Tue 2025-11-18 10:40:10 UTC; 5h 43min ago
Main PID: 2354555 (uniloader)
Tasks: 4 (limit: 4531)
Memory: 5.0M
CPU: 166ms
CGroup: /system.slice/uniloader-freeswitch.service
└─2354555 /usr/bin/uniloader fsw ....
Nov 18 16:05:16 fusion2 uniloader[2354555]: 2025/11/18 16:05:16 Uniloader 25.09.3 (0-20251118.1037) up - GR: 3 - Mem: Alloc 666k (Free 0k) Sys 6743k
....
● uniloader-splitter.service - Loway Uniloader 25.09.3 - Splitter
Loaded: loaded (/etc/systemd/system/uniloader-splitter.service; enabled; preset: enabled)
Active: active (running) since Tue 2025-11-18 10:40:11 UTC; 5h 43min ago
Main PID: 2354619 (uniloader)
Tasks: 5 (limit: 4531)
Memory: 8.3M
CPU: 7min 54.911s
CGroup: /system.slice/uniloader-splitter.service
└─2354619 /usr/bin/uniloader .....
Nov 18 16:12:01 fusion2 uniloader[2354619]: 2025/11/18 16:12:01 [http://116.203.46.244:8080/queuemetrics/] Driver error: retrying in 300000 ms
....
● uniloader-audiovault.service - Loway Uniloader 25.09.3 - AudioVault
Loaded: loaded (/etc/systemd/system/uniloader-audiovault.service; enabled; preset: enabled)
Active: active (running) since Tue 2025-11-18 10:40:13 UTC; 5h 43min ago
Main PID: 2354680 (uniloader)
Tasks: 4 (limit: 4531)
Memory: 2.9M
CPU: 167ms
CGroup: /system.slice/uniloader-audiovault.service
└─2354680 /usr/bin/uniloader av serve ....
Nov 18 15:35:19 fusion2 uniloader[2354680]: 2025/11/18 15:35:19 Uniloader 25.09.3 (0-20251118.1037) up - GR: 2 - Mem: Alloc 539k (Free 0k) Sys 6487k
....
qm-fsw-ctl trace
Creates trace files to be sent to Loway (events and logs). This can be run in parallel to an existing uniloader-freeswitch server, so you can run it on a full production server without interrupting operations.
The command displays where the trace files will be saved.
Once the trace is over, press Ctrl-C to interrupt.
Though you do not need to stop and start the uniloader-freeswitch server, make sure that there are no external calls running apart from the test you want to make, as logs are extremely verbose and hard to understand.
|
# qm-fsw-ctl trace
Now running event trace files:
- /opt/fusion-splitter-data/traces/evt_251118-1408_trace.txt
- /opt/fusion-splitter-data/traces/evt_251118-1408_qlog.txt
Press Ctrl+C to terminate.
2025/11/18 14:08:54 Uniloader 25.09.3 (0-20251118.1037) up - GR: 2 - Mem: Alloc 508k (Free 0k) Sys 6743k
2025/11/18 14:08:54 Starting : FS: 127.0.0.1:8021 (auth '*******') - Qlog: '/opt/fusion-splitter-data/traces/evt_251118-1408_qlog.txt' Events: '/opt/fusion-splitter-data/traces/evt_251118-1408_trace.txt' - DB uri: '127.0.0.1/fusionpbx?sslmode=disable' user: 'fusionpbx' pass: '*************************' - Shorten? true Addmembers? false - Flt Outbound: Caller All, Callee All
2025/11/18 14:08:54 Reading all events from ESL - Do not use in production
2025/11/18 14:08:54 ========== Now syncing all agents ===========
2025/11/18 14:08:54 [Cache] Searching for agent: 04c76072-01a0-4b5e-91a6-cbedc05c4e82
2025/11/18 14:08:54 [Cache] Searching for agent: 0803f46d-b51f-4b9a-810f-588493ae2fa1
2025/11/18 14:08:54 [Cache] Searching for agent: 09213a07-aeac-4f13-927b-1d52d6b47bcf
^C
When done, gather the files in /opt/fusion-splitter-data/traces and send them over, complete with a detailed description of what was tested.
| For more details, see this FAQ. |
qm-fsw-ctl logs
Tails the aggregate logs for services uniloader-freeswitch and uniloader-splitter. Press Ctrl-C to stop.
# qm-fsw-ctl logs
Tailing current state of services
Nov 18 14:06:35 svr uniloader[569941]: 2025/11/18 14:06:35 C:83843(ma)-Q=q-outbound@abc.xy-A=Agent/27875638048@abc.xy-B=fe84a-n:
qm-fsw-ctl qlog
Tails the aggregate queue_log file for all tenants. Press Ctrl-C to stop.
# qm-fsw-ctl qlog
Tailing aggregate queue_log file at /opt/fusion-splitter-data/queuelog-synth-fsw.txt
1763474993|f246360e-1682-4f1d-af7d-d5ccc4cb675a|abc-q-outbound|Agent/abc-27875638075|CONNECT|0||||
1763474998|ul.3912e|abc-q-outbound|Agent/abc-27875638080|ADDMEMBER|||||