This document is a guide for general information about CLI commands which can be used for troubleshooting PBXware systems.
CLI stands for Command-Line Interface. It is a text-based method for interacting with a computer or software program by entering commands into a terminal or console. In a CLI, users type specific textual commands, often accompanied by arguments and options, to perform tasks, configure settings, and execute various functions.
GENERAL:
PBXware is linux based, so Iinux commands will not be covered with this guide. We will focus on commands related strictly to PBXware.
In this section we will list commands for performing some basic actions.
/opt/pbxware/sh/pbxware reload —->Command for reloading PBXware. Reloading PBXware does not hangup active calls, it will resave configuration from the backend. It is important to note that this will affect the calls which are being charged, so if you are executing this on the system which is using PBXware billing, the calls which are active at the moment when you execute command might not be charged.
PBXware reload also helps if you notice there is: ‘Service is down issue shown on Dashboard’
/opt/pbxware/sh/pbxware restart —-> command for restarting PBXware services from the backend. This will logout all extensions, hangup active calls and restart PBXware services, so executing this command will cause downtime.
/opt/pbxware/sh/pbxware http_api_resave —> command to resave configuration from backend. It should be executed after every update of the system.
/opt/pbxware/sh/sngrep —--> enter sngrep tool (Detailed explanation about sngrep can be found in SNGREP guide (https://support.bicomsystems.com/a/solutions/articles/67000673400)
/opt/pbxware/sh/mysql —---> used for entering mysql (database). It is important to note that changes within mysql must be performed by someone who is familiar with it as any wrong change made here can lead to data loss or corruption of database
asterisk -rvvv —--> used for entering asterisk (number of v will define verbosity level)
Here is the list of the most important directories:
All logs can be found under the path /opt/pbxware/pw/var/log/
All configuration files can be found under the path /opt/pbxware/pw/etc/
Location for recordings: /opt/pbxware/pw/var/spool/asterisk/monitor/
Location for voicemails : /opt/pbxware/pw/var/lib/asterisk/voicemail
Location for asterisk sound files: /opt/pbxware/pw/var/lib/asterisk/sounds/
Location for moh: /opt/pbxware/pw/var/lib/asterisk/moh/
Location for asterisk configuration files: /opt/pbxware/pw/etc/asterisk/
Location for polycom firmware and phone configuration files: /opt/pbxware/pw/tftp
Location where asterisk core dumps are being saved: /opt/pbxware/pw/tmp
Log files
Log file is a text file that contains records of events, activities, and messages generated by the operating system, system services, and applications. Log files are essential for system administrators and users to monitor and troubleshoot various aspects of the system's performance and behavior.
You can view the contents of log files using text editors or command-line utilities such as cat, less, or tail. For example, you can use the tail command to view the last few lines of a log file in real-time, which is often useful for monitoring ongoing events. There commands are being used if you want to check the most recent log file, but if you want to check older log files which are compressed (.gz) format, the command to check it is zcat.
Below is a table with list of PBXware services, purpose of the services and log files location:
Restart commands:
Here is the list of restart commands which could be executed if there are issues with specific service, these restart commands are service specific, so they will affect that specific service:
PBXware services:
In this section basic information about every service can be found, location for log file, commands how to restart the service.
To get the list of services which are up and running, command which should be executed is ps fax which will list all services. If there is a need to check is some specific service is running use ps fax and grep name of that specific command, for example if you want to check if asterisk is running:
BicomSupportPBXware6 ~ # ps fax | grep 'asterisk'
32582 pts/4 S+ 0:00 \_ grep --colour=auto asterisk
64642 ? Sl 0:00 /usr/bin/gotty --config /etc/gotty/gotty.conf /usr/sbin/asterisk -rvvv
64735 ? Ssl 65:44 asterisk -d -g
Asterisk
Asterisk is the main service and the heart of PBXware. When asterisk is not running, extensions are not offline and that basically means our system is down.
Asterisk related information can be found in log: /opt/pbxware/pw/var/log/asterisk/messages
If asterisk full logging is enabled, it can be checked under /opt/pbxware/pw/var/log/asterisk/full
With full logging enabled, Asterisk writes all of the logging that you would see in real time on the CLI, to a log file at /var/log/asterisk/full
The full log is disabled by default, as it tends to become a very very large log file if left running.
Asterisk has its own CLI which can be accessed with command:
asterisk -rvvv (number of v defines verbosity level)
More information about asterisk CLI and commands can be found here: https://support.bicomsystems.com/a/solutions/articles/67000711513
If there is some problem which causes asterisk to crash, core dump will be generated and it can be found here: /opt/pbxware/pw/tmp
Asterisk core dumps files are named like asterisk-core…
To check asterisk core dumps, please contact support team.
MYSQL
MySQL is a database used in the PBXware environment which stores all data on the system.
Its purpose is to connect with literally everything thus providing the key structure of the PBXware.
Mysql log file can be found here: /opt/pbxware/pw/var/log/mysql/mysqld.err
To check if mysql is up and running use command:
ps fax | grep -i mysqld
To access mysql command is:
/opt/pbxware/sh/mysql -A
NOTE: Please do not use this if you are not familiar with mysql. Any wrong change can lead to data corruption.
CRM
CRM service provides integration with multiple Customer relationship management options with PBXware and gloCOM/Communicator.
Configuration file can be found here: /opt/pbxware/pw/etc/crmiservice/crmiservice.conf
By default the verbosity level in this configuration file is set to 4, when it is needed to get more information in log file, you will need to edit this configuration file and set verbosity level to 1.
Log file can be found under: /opt/pbxware/pw/var/log/crmservice/crmservice.log
PHP
PHP service is connected to multiple PBXware services such as nginx, smtp and mysql, so php log can be used to check multiple issues on the system.
For example if there is an issue with dashboard showing: Service is not running, but you check and see services are actually running and you have only issue with GUI (Dashboard), you will be able to see in php log issues with nginx.
Also for example if you are having issues with smtp, meaning e-mails not being sent out, you can check php log for more details.
Also for transcription issues you will be able to see more information in php log.
License related issues will also be shown in php log.
Failed mysql queries are also shown in php log, so if you are having issues when creating tenants, you can see in php log if there will be some issue shown.
PHP log can be found here: /opt/pbxware/pw/var/log/php/php.log
PNS
PNS is service in charge for sending Push notifications to mobile devices, so when the app is not opened and running in background this service will wake up the phone when the call comes to the extension.
If you notice push notifications service on Dashboard is showing as not running, you can check if pns process is running with command:
ps fax | grep ‘pns’
If it is not started you can start it with command :
/opt/pbxware/sh/pbxware start pns
Pns log can be found under: /opt/pbxware/pw/var/log/pns/pns.log
If you notice that push notifications are not being sent to the phone this is the place where you will see more information.
PNS service can be restarted with command:
/opt/pbxware/sh/pbxware restart pns
LDAP
LDAP service is service which allows you to provide LDAP users to the phone which can be entered under Central phone book option on PBXware.
The service can be started or stopped by doing the following:
/opt/pbxware/sh/pbxware start ldap_directory
/opt/pbxware/sh/pbxware stop ldap_directory
Or restarted by using command:
/opt/pbxware/sh/pbxware restart ldap_directory
Log can be found under the path: /opt/pbxware/pw/var/log/ldap_directory/ldap_directory.log
Configuration file can be found under: /opt/pbxware/pw/etc/ldap/ldap_directory.ini
In case there is a need to increase the number of max contacts which is by default set to 50, this can be done by editing configuration file but for this please contact bicom support.
SMS
SMS service enables sending/receiving SMS. SMS Service application works as a proxy between SMS providers (Telnyx, VoipInnovations) and PWProxy. It starts automatically when PBXware starts, and there is a command to restart it:
/opt/pbxware/sh/pbxware restart smsservice
If you are having problems with sending or receiving SMSs, more information can be found in log file: /opt/pbxware/pw/var/log/smsservice/sms.log
NGINX
In NGINX log you can find autprovisioning requests. Log can be found under the path:
/opt/pbxware/pw/var/log/nginx/
and this folder contains multiple logs. For example, if one would like to monitor autoprovisioning requests, those can be found under:
/opt/pbxware/pw/var/log/nginx/localhost.access_log
Under the same log you will be able to find also TFTP requests, which is important when we want to check if there is an TFTP attack occurring on the system if TFTP is enabled.
For phones which are autoprovisioned via HTTPS protocol, autoprovisioning requests will be written in /opt/pbxware/pw/var/log/nginx/localhost.ssl_access_log
Besides this there are also error logs under this folder.
To stop NGNIX service use command:
/opt/pbxware/sh/ngnix -s stop
To start it execute following command:
/opt/pbxware/sh/nginx
RPS
RPS service is used for touchless provisioning which allows you to automatically provision the phone without the need to enter the provisioning settings in the phone's user interface.
RPS as provisioning service is directly connected to nginx and if nginx is not running, we will not be able to provision the phone using the RPS.
Log file can be found under: /opt/pbxware/pw/var/log/rps/rps.log
Configuration file can be found on the path: /opt/pbxware/pw/etc/rps/rps.ini
If the phone is autoprovisioned via RPS, in nginx log for that phone request would look like this:
109.175.105.127 - - [11/Aug/2021:17:30:34 +0200] "GET /ztprov/xxxxxxxxxx.cfg HTTP/1.1" 401 316
"-" "Yealink SIP-T42G 29.80.0.137 xxxxxxxxxxx" "-"
Ztprov indicates that the phone is autoprovisioned via RPS.
E-mail to fax
E-mail to fax service is used for sending faxes via e-mail. The email attachment will be the fax content that will be sent. Attachment must be in PDF format.
Log file can be found under the path:
/opt/pbxware/pw/var/log/email2fax/email2fax.log
Command for restart this service is /opt/pbxware/sh/pbxware restart email2fax
Remote-fs
Remote file system is used for storing files from the PBXware to a chosen remote storage.
Remote-fs configuration file:
• /opt/pbxware/pw/etc/remote_fs/conf.ini
Remote-fs log files:
• /opt/pbxware/pw/var/log/remote_fs/mon.log
• → log for the application issues
All information about offload to remote storage can be found under:
/opt/pbxware/pw/var/log/remote_fs/remote-fs.log or /opt/pbxware/pw/var/log/remote_fs/log.log
Service can be restarted with command: /opt/pbxware/sh/pbxware restart remote-fs
Rsproxy
Rsproxy is service which is working closely with remote-fs service and it is used for downloading/listening to the remote content that is offloaded to a remote storage from the PBXware. So, in case when you are not able to listen/download recordings which are offloaded to remote site from PBXware GUI, this is the service which should be checked.
Log file for rsproxy can be found under the path: /opt/pbxware/pw/var/log/rsproxy/rsproxy.log
Service can be restarted with command: /opt/pbxware/sh/pbxware restart rsproxy
PWPROXY
Pwproxy is one of the major services in PBXware, and pwpoxy log will give you application related information, so all gloCOM/Communicator related information can be found in pwproxy log: /opt/pbxware/pw/var/log/pwproxy/pwproxy.log
Command for restart: /opt/pbxware/sh/pbxware restart pwproxy
Restarting pwproxy will logout all users from tha apps, so it is important to do it in off hours or inform clients if this command should be performed in working hours.
Ignoo-connector
Ignoo-connector is a service on which the meeting module is running.
It connects to the mysql database and works closely with the pwproxy service.
All relevant information for meeting issue can be found under the path: /opt/pbxware/pw/var/log/ignoo-connector/connector.log
Command for restarting this service is: /opt/pbxware/sh/pbxware restart ignoo-connector
SMTP
SMTP service is used for handling e-mail requests. The service process e-mails that are sent or received and delivers the same on a desired destination (e-mail address). SMTP information are being set through Setup wizard.
All information about e-mails which are being sent out from PBXware can be found in smtp log:
/opt/pbxware/pw/var/log/ssmtp/msmtp.log
Clickhouse server
Apart from MySQL, users can set ClickHouse as a database. It allows statistics to be very fast.
More information about clickhouse can be found here:
https://support.bicomsystems.com/a/solutions/articles/67000723593
Location for the service log is following:
/opt/pbxware/pw/var/log/clickhouse-server/clickhouse-server.log
Stats_proxy
Stats_proxy service is a centralized statistics proxy service that listens on requests and provides results for clients. Main purpose of this app is simple, reads request parameters, collects adequate data and returns it to the client.
If you see some error in statistics under PBXware GUI, this is a service which should be checked. To check if the service is running use ps fax command.
ps fax | grep 'stats'
Location for log file is:
/opt/pbxware/pw/var/log/stats_proxy/stats_proxy.log
Contact center specific services:
DIALER
Dialer enables auto dialing of list of numbers which are added to the database by an administrator, so agents do not need to dial numbers manually. Once a call is answered, the call center dialer connects the customer to call center representative.
Dialer app can be restarted with command:
/opt/pbxware/sh/pbxware restart dialer
Location for log files is:
/opt/pbxware/pw//var/log/dialer/dialer.log and this iis the main file for logging dialer messages.
Clir log files for each channel can be found under
/opt/pbxware/pw/var/log/dialer/clir/
Dialer has also its own CLI which can be accessed with command:
chroot /opt/pbxware/pw dialer -r
Once there, you can use command:
agent show
to get a list of all agents and their current states, if you want to check specific agent, use:
agent show xxxx
Where xxxx is agent number
To check campaign use command:
campaign show
Agentpool
Agentpool app is an application whose main target is to handle agent actions (logging, pausing, receiving calls), maintaining and publishing agent states, handling agent DTMFs etc….
It is an application that allows other applications to use agents as shared resources.
In agentpool log you can find information about your agents which you are using for campaigns and queues. Log can be found here:
/opt/pbxware/pw/var/log/agentpool/agentpool.log
Under /opt/pbxware/pw/var/log/agentpool/clir/ you can find clirs for the calls.
Agentpool has also its own CLI which can be accessed with command:
chroot /opt/pbxware/pw agentpool -r
Examples of running commands
agent show - gives detail list with states for every agent
agent show xxxx - gives more details about single agent where xxxx is agent number