1. Bicom Systems
  2. Solution home
  3. PBXware
  4. HOWTOs

How to: CLI Commands (in details)


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 catless, 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:



SERVICE

PURPOSE

LOG FILE

Asterisk 

Main service in charge for handling calls

/opt/pbxware/pw/var/log/asterisk/messages

MYSQL

Database which stores all data on the system.

/opt/pbxware/pw/var/log/mysql/mysqld.err

CRM

Provides integration with different CRM solutions

/opt/pbxware/pw/var/log/crmiservice/crmiservice.log

PHP

PHP

/opt/pbxware/pw/var/log/php/php.log

PNS

Push notification service

/opt/pbxware/pw/var/log/pns/pns.log

LDAP

Service used as a LDAP server for providing contact information to phones

/opt/pbxware/pw/var/log/ldap_directory/ldap_directory.log

SMS

Service for sending/receiving SMS messages

/opt/pbxware/pw/var/log/smsservice/sms.log

NGINX

Processes HTTP/HTTPS and TFTP requests

/opt/pbxware/pw/var/log/nginx/localhost.ssl_access_log
/opt/pbxware/pw/var/log/nginx/localhost.access_log

RPS

Service in charge for remote provisioning 

/opt/pbxware/pw/var/log/rps/rps.log

E-mail to Fax

Sending faxes via e-mail

/opt/pbxware/pw/var/log/email2fax/email2fax.log

Remote-fs

Storing files from the PBXware to a chosen remote storage

/opt/pbxware/pw/var/log/remote_fs/log.log

Rsproxy

Downloading/listening to the remote content that is offloaded to a remote storage from the PBXware.

 /opt/pbxware/pw/var/log/rsproxy/rsproxy.log

PWPROXY

Gateway to the Unified Communications platform based on Asterisk (gloCOM related)

/opt/pbxware/pw/var/log/pwproxy/pwproxy.log

Ignoo connector

Service in charge for meeting module

/opt/pbxware/pw/var/log/ignoo-connector/connector.log

SMTP

Handling e-mail requests

/opt/pbxware/pw/var/log/ssmtp/msmtp.log

Clickhouse server

New fast database for statistics

/opt/pbxware/pw/var/log/clickhouse-server/clickhouse-server.log

stats_proxy

Centralized statistics proxy service which maintains a connection between two databases: ClickHouse and MySQL

/opt/pbxware/pw/var/log/stats_proxy/stats_proxy.log

Dialer (CC)

Automates the process of dialing numbers in a Call center

/opt/pbxware/pw/var/log/dialer/dialer.log

/opt/pbxware/pw/var/log/dialer/clir/…

Agentpool (CC)

Handles agent actions (logging, pausing, receiving calls), maintaining and publishing agent states

/opt/pbxware/pw/var/log/agentpool/agentpool.log


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:


SERVICE

RESTART COMMAND

PNS

/opt/pbxware/sh/pbxware restart pns

LDAP

/opt/pbxware/sh/pbxware restart ldap_directory

SMS

/opt/pbxware/sh/pbxware restart smsservice

E-mail to fax

/opt/pbxware/sh/pbxware restart email2fax

Remote-fs

/opt/pbxware/sh/pbxware restart remote-fs

Rsproxy

/opt/pbxware/sh/pbxware restart rsproxy

PWPROXY

/opt/pbxware/sh/pbxware restart pwproxy

Ignoo-connector

/opt/pbxware/sh/pbxware restart ignoo-connector

Dialer

/opt/pbxware/sh/pbxware restart dialer



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