Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents
minLevel1
maxLevel6
outlinefalse
stylenone
typelist
printablefalse

"fwconsole" is the Linux command that controls FreePBX 13+ from the Linux command prompt.  

...

Info

Some new commands have been added starting with FreePBX 15. See fwconsole commands (15+) for further information

Command List

Command Title

Command

Alias(es)

Description

Bulk Import

bulkimport

bi

This command is used to import extensions and dids

Certificates

certificates

Certificate Management

Chown

chown

Change ownership of files

Context

context

cx

Shows the specified context from the dialplan

Doctrine

doctrine

Specific database documentation (for Development)

Debug

dbug

debug

Stream log files for debugging

EPM

epm

endpoint

Endpoint Manager

External IP

extip

externalip

Get External IP

Firewall

Firewall

firewall

Firewall functions

help

help

Displays help for a command

list

list

Lists commands

Localization

localization

Localization Utilities

Database

mysql

Runs MySQL Client using freepbx credentials

Module Administration

moduleadmin

ma

Module Administration

Notification

notification

Manage notifications

Module System Manager

modulesystemmanager

msm

View and change Update/Notification Manager Settings

Qxact Reports

qxact

Reload

reload

r

Reload Configs and Asterisk

Paging Pro

pagingpro

Paging Pro Interface

Phone Apps

Debug Phone App Problems (For XML Style BLFs)

Process Management

pm2

Process Management

Setting

setting

set

Sound Languages

sound

Sound Languages Management

System Admin

sysadmin

sa

System Admin Functions

System Update

systemupdate

sysup,sys

Trunks

trunks

Enable and disable trunks from the command line

Unlock

unlock

un

Unlock Session

User Manager

userman

User Manager

Utilities

util

Common Utilities

Validate

validate

Validate the PBX against hacks

vqplus

vqplus

VQPlus functions

zulu

zulu

Zulu functions

Stop/Start/Restart

...

This is how FreePBX starts asterisk and any other processes it need.  You should always start and restart asterisk with the amportal command not the service asterisk or /etc/init.d/asterisk commands

...

Note

In the example above you will see two permissions set for one file. This is completely normal. The first one is the generic setting and the second one is the setting from the module itself.

Certificate Management

Code Block
[root@lorne14-pro ~]# fwconsole  certificates --help
______                   ______ ______ __   __
|  ___|                  | ___ \| ___ \\ \ / /
| |_    _ __   ___   ___ | |_/ /| |_/ / \ V /
|  _|  | '__| / _ \ / _ \|  __/ | ___ \ /   \
| |    | |   |  __/|  __/| |    | |_/ // /^\ \
\_|    |_|    \___| \___|\_|    \____/ \/   \/
 
Usage:
  certificates [options]
 
Options:
      --list             List Certificates
      --updateall        Check and Update all Certificates
      --import           Import any unmanaged certificates in /etc/asterisk/keys
      --generate         Generate Certificate
      --default=DEFAULT  Set certificate default by id
  -h, --help             Display this help message
  -q, --quiet            Do not output any message
  -V, --version          Display this application version
      --ansi             Force ANSI output
      --no-ansi          Disable ANSI output
  -n, --no-interaction   Do not ask any interactive question
  -default, --type=TYPE  Certificate Type
  -v|vv|vvv, --verbose   Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
 
Help:
  Certificate Management

Doctrine

This command is used to export out table information to be used in FreePBX table creation for module installations

...

The XML should be used in the module.xml file

Code Block
[root@freepbxdev1 framework]# fwconsole doctrine meetme --format=xml
<database>
  <table name="meetme">
    <field name="exten" type="string" length="50"/>
    <field name="options" type="string" length="15" notnull="false"/>
    <field name="userpin" type="string" length="50" notnull="false"/>
    <field name="adminpin" type="string" length="50" notnull="false"/>
    <field name="description" type="string" length="50" notnull="false"/>
    <field name="joinmsg_id" type="integer" notnull="false"/>
    <field name="music" type="string" length="80" notnull="false"/>
    <field name="users" type="smallint" default="0" unsigned="true" notnull="false"/>
    <field name="language" type="string" length="10"/>
    <key name="PRIMARY" type="unique">
      <column name="exten"/>
    </key>
  </table>
</database>

The PHP code should be used inside install.php or the module's class.

Code Block
[root@freepbxdev1 framework]# fwconsole doctrine meetme --format=php
$table = FreePBX::Database()->migrate("meetme");
$cols = array (
  'exten' =>
  array (
    'type' => 'string',
    'length' => '50',
  ),
  'options' =>
  array (
    'type' => 'string',
    'length' => '15',
    'notnull' => false,
  ),
  'userpin' =>
  array (
    'type' => 'string',
    'length' => '50',
    'notnull' => false,
  ),
  'adminpin' =>
  array (
    'type' => 'string',
    'length' => '50',
    'notnull' => false,
  ),
  'description' =>
  array (
    'type' => 'string',
    'length' => '50',
    'notnull' => false,
  ),
  'joinmsg_id' =>
  array (
    'type' => 'integer',
    'notnull' => false,
  ),
  'music' =>
  array (
    'type' => 'string',
    'length' => '80',
    'notnull' => false,
  ),
  'users' =>
  array (
    'type' => 'smallint',
    'notnull' => false,
    'unsigned' => true,
    'default' => '0',
  ),
  'language' =>
  array (
    'type' => 'string',
    'length' => '10',
  ),
);
 
$indexes = array (
  'PRIMARY' =>
  array (
    'type' => 'unique',
    'cols' =>
    array (
      0 => 'exten',
    ),
  ),
);
$table->modify($cols);
unset($table);

Reload

...

fwconsole reload - This will perform a reload of all the dialplan in Asterisk and all the modules in asterisk.  This is the same as pressing the "Apply Changes" button in the GUI of FreePBX

...

fwconsole m This will connect you to the mysql database as the FreePBX user automatically based on the username and password for MySQL in /etc/freepbx.conf

Code Block
[root@freepbxdev1 faxpro]# fwconsole m
Connecting to the Database...Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 123880
Server version: 5.1.73-log Source distribution
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>

Module Administration

Command line utility for controlling FreePBX Module installation.

Code Block
[root@ldev2 ~]# fwconsole ma
Module Administration Help:
Usage: fwconsole moduleadmin [-f][-R reponame][-R reponame][action][arg1][arg2][arg...]
Flags:
-f - FORCE
-R - REPO, accepts reponame as a single argument
--edge - EDGE, forces download from the edge repository
--skipchown           Skip the chown operation
--nopromptdisabled    Don't ask to enable disabled modules
--format              Format can be: json, jsonpretty
--tag                 Download/Upgrade to a specific tag
Module Actions:
checkdepends : Checks dependencies for provided module[s], accepts argument module[s]
disable : Disables module[s] accepts argument module[s]
download : Download module[s], accepts argument module[s] or URLs
downloadinstall : Download and install module[s], accepts argument module[s] or URLs
delete : Deleted module[s], accepts argument module[s]
enable : Enable module[s], accepts argument module[s]
install : Installs module[s], accepts argument module[s]
installlocal : Install local module[s], accepts argument module[s]
uninstall : Uninstalls module[s], accepts argument module[s]
upgrade : Upgrade module[s], accepts argument module[s]
All inclusive Module Actions:
installall : Installs all modules, accepts no arguments
enableall : Trys to enable all modules, accepts no arguments
upgradeall : Upgrades all modules, accepts no arguments
Repository Actions:
disablerepo : Disables repo, accepts argument repo[s]
enablerepo : Enables repo, accepts argument repo[s]
list : List all local modules, accepts no arguments
listonline : List online modules, accepts no arguments
showupgrades : Shows a list of modules that may be updated, accepts no arguments
i18n : Shows translation information for supplied modules, accepts argument module[s]
refreshsignatures : ReDownloads all modules that have invalid signatures

Edge modules:

In Framework 13.0.69 we added the ability to install edge modules. To upgrade to a module in the edge track pass the --edge flag

Code Block
fwconsole ma --edge upgrade foomodule
  • Check Module Dependencies

    Code Block
    [root@xxxxxx ~]# fwconsole ma checkdepends core
    All dependencies met for module core
  • Disable a module

    Code Block
    [root@freepbxdev1 faxpro]# fwconsole ma disable asterisk-cli
    Module asterisk-cli successfully disabled
    Updating Hooks...Done
  • Download a Module

    Code Block
    [root@xxxxxx ~]# fwconsole ma download core
    No repos specified, using: [standard,commercial] from last GUI settings
    Starting core download..
    Processing core
    Downloading...
     3076094/3076094 [============================] 100%
    Finished downloading
    Extracting...Done
    Module core successfully downloaded
    Code Block
    [root@xxxxxx ~]# fwconsole ma download <url>
    No repos specified, using: [standard,commercial] from last GUI settings
    Starting core download..
    Processing core
    Downloading...
     3076094/3076094 [============================] 100%
    Finished downloading
    Extracting...Done
    Module core successfully downloaded
  • Download a specific module

    Code Block
    [root@xxxxxx ~]# fwconsole ma download core --tag 1.2.3
    No repos specified, using: [standard,commercial] from last GUI settings
    Starting core download..
    Processing core
    Downloading...
     3076094/3076094 [============================] 100%
    Finished downloading
    Extracting...Done
    Module core successfully downloaded
  • Download and install a Module

    Code Block
    [root@xxxxxx ~]# fwconsole ma downloadinstall core
    No repos specified, using: [standard,commercial] from last GUI settings
    Starting core download..
    Processing core
    Downloading...
     3076094/3076094 [============================] 100%
    Finished downloading
    Extracting...Done
    Module core successfully downloaded
    Checking if directdids need migrating..already done
    updating zap callgroup, pickupgroup..not needed
    checking for delay_answer field ..already exists
    checking for reversal field ..already exists
    checking for pricid field ..already exists
    Migrating pickup groups to named pickup groups
    Migrating call groups to named call groups
    Checking if trunk table migration required..not needed
    Checking if privacy manager options exists..already exists
    Checking for noanswer_cid field..already exists
    Checking for busy_cid field..already exists
    Checking for chanunavail_cid field..already exists
    Checking for noanswer_dest field..already exists
    Checking for busy_dest field..already exists
    Checking for chanunavail_dest field..already exists
    Unable to add index to extensions field in users
    Checking for General Setting migrations..not needed
    Deleting unused globals..done
    Converting IAX notransfer to transfer if needed..updated 0000 records
    deleting obsoleted record_in and record_out entries..ok
    checking for dest field in outbound_routes..already exists
    checking for continue field in trunks..already exists
    upgrading any zap trunks to dahdi if found..ok
    Checking for possibly invalid emergency caller id fields..none found
    Generating CSS...Done
    Module core successfully installed
    Updating Hooks...Done
    Code Block
    [root@xxxxxx ~]# fwconsole ma downloadinstall <url>
    No repos specified, using: [standard,commercial] from last GUI settings
    Starting core download..
    Processing core
    Downloading...
     3076094/3076094 [============================] 100%
    Finished downloading
    Extracting...Done
    Module core successfully downloaded
    Checking if directdids need migrating..already done
    updating zap callgroup, pickupgroup..not needed
    checking for delay_answer field ..already exists
    checking for reversal field ..already exists
    checking for pricid field ..already exists
    Migrating pickup groups to named pickup groups
    Migrating call groups to named call groups
    Checking if trunk table migration required..not needed
    Checking if privacy manager options exists..already exists
    Checking for noanswer_cid field..already exists
    Checking for busy_cid field..already exists
    Checking for chanunavail_cid field..already exists
    Checking for noanswer_dest field..already exists
    Checking for busy_dest field..already exists
    Checking for chanunavail_dest field..already exists
    Unable to add index to extensions field in users
    Checking for General Setting migrations..not needed
    Deleting unused globals..done
    Converting IAX notransfer to transfer if needed..updated 0000 records
    deleting obsoleted record_in and record_out entries..ok
    checking for dest field in outbound_routes..already exists
    checking for continue field in trunks..already exists
    upgrading any zap trunks to dahdi if found..ok
    Checking for possibly invalid emergency caller id fields..none found
    Generating CSS...Done
    Module core successfully installed
    Updating Hooks...Done

Bulk Import

Code Block
[root@freepbx ~]# fwconsole bulkimport --help
 
Usage:
  bulkimport [options] [--] <filename>
  bi
 
Help:
  Import a file: fwconsole bulkimport --type=[extensions|dids] filename.csv --replace(Replace the existing values)

If the Bulk Handler module is installed, you can use the command line to import a csv file as follows:

Code Block
fwconsole bulkimport -t|--type="..." filename

You must specify the import type and the file name to a valid csv file for import.

CLI Examples:

Code Block
# fwconsole bi --type='dids' dids.csv
Importing bulk dids
# fwconsole bi --type='extensions' extensions.csv
Importing bulk extensions

EPM

Code Block
Usage: fwconsole endpoint action [arg arg...]
addmapping : Add extension to extension mapping.
Options:
       --brand     = Brand for extension ie: sangoma
       --mac       = MAC Address for extension.
       --template  = Template for extension.
       --model     = Model for extension.
       --account   = Account for extension.
       --accessory = Accessory setting for extension.
       --vpn       = VPN ID for extension.
listextensions : List extension(s) by order. Argument 1: Extension or ALL, Argument 2: Column to order by. Option --detail = All mapping information.
listtemplates : List all templates.
reboot : Request phone to reboot.  SANGOMA PHONES ONLY
rebuild : Rebuild the config files for an extension/template/all
rebuildupdate : Rebuild the config files for an extension/template/all and tell phone(s) to check config.
remove : Remove an extension. Specify extension.
update : Send a notify to an extension/template/all to check its the config.  Will cause most phones to reboot.
  • Add Mapping to Extension Mapping

    Code Block
    # fwconsole epm addmapping 4101 --brand=sangoma --mac=005058500002 --template=sangomatest --model=S700 --account=account1
    Extension 4101 added successfully.
  • List Extensions

    Code Block
    # fwconsole epm listextensions ALL
    +-----------+-------------+--------------+------------------+----------+----------+-------------+---------+---------------------+
    | Extension | Brand       | MAC          | Template         | Model    | Account  | Expansion 1 | Rebuild | VPN                 |
    +-----------+-------------+--------------+------------------+----------+----------+-------------+---------+---------------------+
    | 1012      | Grandstream | 000B82800001 | grandstream-test | GXP-2170 | account1 |             | 1       |                     |
    | 4101      | sangoma     | 005058500003 | sangomatest      |          | account1 |             |         |                     |
    | 4102      | Yealink     | 001565211111 | yealink-base     | SIP-T26P | account1 | EXP38-1     | 1       |                     |
    | 4103      | Sangoma     | 005058500001 | sangomatest      | S500     | account1 | EXP100-1    | 1       | 4103 - 4103 (ID: 4) |
    | 4104      | Sangoma     | 005058500002 | sangomatest      | S700     | account1 |             | 1       |                     |
    +-----------+-------------+--------------+------------------+----------+----------+-------------+---------+---------------------+
      
    # fwconsole epm listextensions ALL --detail
    +-----------+-------------+--------------+------------------+----------+----------+-----------+-------------+-------------+-------------+-------------+-------------+-------------+------------------+-----------+---------+---------------------+------------+------------+------------+-----------+
    | Extension | Brand       | MAC          | Template         | Model    | Account  | Accessory | Expansion 1 | Expansion 2 | Expansion 3 | Expansion 4 | Expansion 5 | Expansion 6 | BLF Substitution | BLF Label | Rebuild | VPN                 | Repeater 1 | Repeater 2 | Repeater 3 | Multicell |
    +-----------+-------------+--------------+------------------+----------+----------+-----------+-------------+-------------+-------------+-------------+-------------+-------------+------------------+-----------+---------+---------------------+------------+------------+------------+-----------+
    | 1012      | Grandstream | 000B82800001 | grandstream-test | GXP-2170 | account1 |           |             |             |             |             |             |             |                  |           | 1       |                     |            |            |            |           |
    | 4101      | sangoma     | 005058500003 | sangomatest      |          | account1 |           |             |             |             |             |             |             |                  |           |         |                     |            |            |            |           |
    | 4102      | Yealink     | 001565211111 | yealink-base     | SIP-T26P | account1 |           | EXP38-1     |             |             |             |             |             | None             |           | 1       |                     |            |            |            |           |
    | 4103      | Sangoma     | 005058500001 | sangomatest      | S500     | account1 |           | EXP100-1    | EXP100-2    | EXP100-3    | EXP100-4    | EXP100-5    | EXP100-6    | None             |           | 1       | 4103 - 4103 (ID: 4) |            |            |            |           |
    | 4104      | Sangoma     | 005058500002 | sangomatest      | S700     | account1 |           |             |             |             |             |             |             |                  |           | 1       |                     |            |            |            |           |
    +-----------+-------------+--------------+------------------+----------+----------+-----------+-------------+-------------+-------------+-------------+-------------+-------------+------------------+-----------+---------+---------------------+------------+------------+------------+-----------+
  • List Templates

    Code Block
     # fwconsole epm listtemplates
    +-------------+----------------------+-------------+-----------+----------------+-------------------+--------------------+----------+------------------+------------------+
    | Brand       | Template Name        | Destination | Time Zone | Provision Type | Provision Address | Background         | Firmware | Internal Default | External Default |
    +-------------+----------------------+-------------+-----------+----------------+-------------------+--------------------+----------+------------------+------------------+
    | grandstream | grandstream-test     | 10.100.0.3  | -06:00    | TFTP           | 10.100.0.3        | digit-on-phone.png | 1.14     |                  |                  |
    | sangoma     | sangomatest          | 10.100.0.3  | -06:00    | HTTP           | 10.100.0.3        | digit-on-phone.png | 1.23     |                  |                  |
    | yealink     | yealink-base         | 10.100.0.3  | -06:00    | TFTP           | 10.100.0.3        | sangomapad.png     | 1.16     | Yes              | Yes              |
    +-------------+----------------------+-------------+-----------+----------------+-------------------+--------------------+----------+------------------+------------------+
  • Reboot Devices

    Code Block
    # fwconsole epm reboot 4103
    Only works for Sangoma phones
    Extension 4103 sent reboot command.
      
    # fwconsole epm reboot sangomatest
    Only works for Sangoma phones
    Extension 4103 sent reboot command
    Extension 4104 sent reboot command
    Extension 4101 sent reboot command
  • Rebuild Configuration Files

    Code Block
    # fwconsole epm rebuild 4103
    Extension 4103 rebuilt
      
      
    # fwconsole epm rebuild sangomatest
    Extension 4103 rebuilt
    Extension 4104 rebuilt
    Extension 4101 rebuilt
  • Rebuild and Update Devices

    Code Block
    # fwconsole epm rebuildupdate 4103
    Extension 4103 rebuilt
    Update command sent to 4103
      
      
    # fwconsole epm rebuildupdate sangomatest
    Extension 4103 rebuilt
    Extension 4104 rebuilt
    Extension 4101 rebuilt
    Update command sent to 4103
    Update command sent to 4104
    Update command sent to 4101
  • Remove Devices

    Code Block
    # fwconsole epm remove 4103
    4103 removed succesfully
  • Update Devices

    Code Block
    # fwconsole epm update 4103
    Update command sent to 4103
     
     
      
    # fwconsole epm update sangomatest
    Update command sent to 4103
    Update command sent to 4104
    Update command sent to 4101
  • Logout device (hotdesking) - Endpoint ver. 15.0.27.39+

    Code Block
    # fwconsole endpoint logout 6013
    success
     
     
    << device reboots >>
     
     
    # fwconsole epm logout 6013
    Extension 6013-1 is already in logged out mode

Notification

Code Block
[root@freepbxdev1 faxpro]# fwconsole notification --help
Options:
 --list                list notifications
 --delete              Delete notification
 --help (-h)           Display this help message
 --json                format list as json
Help:
 Notifications Help:
 Usage: fwconsole notification [--list] [--delete module id]
  • List Notifications

    Code Block
    [root@freepbxdev1 faxpro]# fwconsole notification --list
    +---------------+-------------------------+----------------------------------------------------------+
    | Module        | ID                      | Text                                                     |
    +---------------+-------------------------+----------------------------------------------------------+
    | freepbx       | FW_UNSIGNED             | You have 95 unsigned modules                             |
    | freepbx       | NEWUPDATES              | There are 3 modules available for online upgrades        |
    | cron_manager  | EXECFAIL                | Cronmanager encountered 1 Errors                         |
    | dahdiconfig   | etcdahdimodules         | File /etc/dahdi/modules is not owned by asterisk         |
    | dahdiconfig   | etcdahdisystem.conf     | File /etc/dahdi/system.conf is not owned by asterisk     |
    | dahdiconfig   | etcmodprobe.ddahdi.conf | File /etc/modprobe.d/dahdi.conf is not owned by asterisk |
    | freepbx       | modules_disabled        | You have 10 disabled modules                             |
    | cidlookup     | noauth                  | OpenCNAM Requires Authentication                         |
    | fax           | invalid_email           | Invalid Email for Inbound Fax                            |
    | freepbx       | NEWMODS                 | 1 New modules are available                              |
    | retrieve_conf | SYMLINKNOTICE           | Symlink Conflict Resolved                                |
    | sipstationdid | ss7149223196            | SIPSTATION DID routed                                    |
    +---------------+-------------------------+----------------------------------------------------------+
    Code Block
    [root@freepbxdev1 faxpro]# fwconsole notification --list --json
    [["freepbx","FW_UNSIGNED","You have 95 unsigned modules"],["freepbx","NEWUPDATES","There are 3 modules available for online upgrades"],["cron_manager","EXECFAIL","Cronmanager encountered 1 Errors"],["dahdiconfig","etcdahdimodules","File \/etc\/dahdi\/modules is not owned by asterisk"],["dahdiconfig","etcdahdisystem.conf","File \/etc\/dahdi\/system.conf is not owned by asterisk"],["dahdiconfig","etcmodprobe.ddahdi.conf","File \/etc\/modprobe.d\/dahdi.conf is not owned by asterisk"],["freepbx","modules_disabled","You have 10 disabled modules"],["cidlookup","noauth","OpenCNAM Requires Authentication"],["fax","invalid_email","Invalid Email for Inbound Fax"],["freepbx","NEWMODS","1 New modules are available"],["retrieve_conf","SYMLINKNOTICE","Symlink Conflict Resolved"],["sipstationdid","ss7149223196","SIPSTATION DID routed"]]
  • Delete notification (by ID)

    Code Block
    [root@freepbxdev1 faxpro]# fwconsole notification --delete dahdiconfig etcdahdimodules
    Deleting notification
    Notification Deleted
    [root@freepbxdev1 faxpro]# fwconsole notification --list
    +---------------+-------------------------+----------------------------------------------------------+
    | Module        | ID                      | Text                                                     |
    +---------------+-------------------------+----------------------------------------------------------+
    | freepbx       | FW_UNSIGNED             | You have 95 unsigned modules                             |
    | freepbx       | NEWUPDATES              | There are 3 modules available for online upgrades        |
    | cron_manager  | EXECFAIL                | Cronmanager encountered 1 Errors                         |
    | dahdiconfig   | etcdahdisystem.conf     | File /etc/dahdi/system.conf is not owned by asterisk     |
    | dahdiconfig   | etcmodprobe.ddahdi.conf | File /etc/modprobe.d/dahdi.conf is not owned by asterisk |
    | freepbx       | modules_disabled        | You have 10 disabled modules                             |
    | cidlookup     | noauth                  | OpenCNAM Requires Authentication                         |
    | fax           | invalid_email           | Invalid Email for Inbound Fax                            |
    | freepbx       | NEWMODS                 | 1 New modules are available                              |
    | retrieve_conf | SYMLINKNOTICE           | Symlink Conflict Resolved                                |
    | sipstationdid | ss7149223196            | SIPSTATION DID routed                                    |
    +---------------+-------------------------+----------------------------------------------------------+

Module System Manager

Code Block
[root@freepbxdev1 faxpro]# fwconsole notification --help
Options:
 --list                List Configs
 --help (-h)           Display this help message
Help:
 Notifications Help:
 Usage: fwconsole modulesystemmanager [--list]

List Settings

Code Block
[root@Andrew14 framework]# fwconsole modulesystemmanager --list
+------------------------------+------------------------+
| Name                         | Value                  |
+------------------------------+------------------------+
| notification_emails          | admin@admin.com |
| system_ident                 | VoIP Server            |
| auto_system_updates          | disabled               |
| auto_module_updates          | enabled                |
| auto_module_security_updates | emailonly              |
| unsigned_module_emails       | disabled               |
| update_every                 | saturday               |
| update_period                | 4to8                   |
+------------------------------+------------------------+

Change a setting

Code Block
[root@Andrew14 framework]# fwconsole modulesystemmanager system_ident "My New Server"
Changing "system_ident" from [VoIP Server] to [My New Server]

Qxact Reports

Feature added in 14+

Running fwconsole qxact will display help text:

Code Block
# fwconsole qxact
Usage:
  qxactreports [options]
 
Arguments:
  command                    The command to execute
 
Options:
      --sync                 Syncronize
      --dryrun               Dont execute any SQL statements
      --forcetype=FORCETYPE  Force Type: database or file
      --import=IMPORT        Files to import separate by comma
      --reimport=REIMPORT    Files to reimport separate by comma
  -h, --help                 Display this help message
  -q, --quiet                Do not output any message
  -V, --version              Display this application version
      --ansi                 Force ANSI output
      --no-ansi              Disable ANSI output
  -n, --no-interaction       Do not ask any interactive question
  -v|vv|vvv, --verbose       Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
 
Help:
  QXact Reports

To re-import all the existing rotated queue_log files run:

Code Block
for i in $(ls -1tr /var/log/asterisk/queue_log*); do fwconsole qxact --reimport=$i --sync --verbose; done

Paging Pro

Code Block
[root@freepbxdev1 restapps]# fwconsole pagingpro --help
Usage:
 pagingpro [-c|--clean] [-e|--execute="..."] [-l|--list[="..."]]
Options:
 --clean (-c)          Cleanup stale pages and add needed pages
 --execute (-e)        Execute a scheduled page now
 --list (-l)           List Scheduled Pages
 --help (-h)           Display this help message
 --quiet (-q)          Do not output any message
 --verbose (-v|vv|vvv) Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
  • Cleanup stale pages and add needed pages (This is also run as a cron in crontab every minute. There it's called: */1 * * * * /var/lib/asterisk/bin/pagepro-scheduler.php 2>&1 >/dev/null)
    Run command with --verbose to get detailed data

    Code Block
    [root@freepbxdev1 framework]# fwconsole pagingpro --clean --verbose
    Found scheduled page for ID 500 occuring at 1466527800
  • List active scheduled pages

    Code Block
    [root@freepbxdev1 framework]# fwconsole pagingpro --list
    +---------+------------+-------------+
    | Page ID | Time       | Cron Exists |
    +---------+------------+-------------+
    | 500     | 1466527800 | Yes         |
    +---------+------------+-------------+
  • List specific scheduled page by id

    Code Block
    [root@freepbxdev1 framework]# fwconsole pagingpro --list 500
    +---------+------------+-------------+
    | Page ID | Time       | Cron Exists |
    +---------+------------+-------------+
    | 500     | 1466527800 | Yes         |
    +---------+------------+-------------+
  • Execute a scheduled page immediately (for testing) using the paging pro page scheduler processes

    Code Block
    [root@freepbxdev1 framework]# fwconsole pagingpro --execute 500
    [root@freepbxdev1 framework]# <phones should be ringing>

Phone Apps

Code Block
[root@freepbxdev1 restapps]# fwconsole phoneapps --help
Arguments:
 blf                   Show BLF States: <ext> [<app>]
Options:
 --help (-h)           Display this help message
 --quiet (-q)          Do not output any message
 --verbose (-v|vv|vvv) Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
  • Get statuses of BLF lights for extension

    Code Block
    [root@freepbxdev1 restapps]# fwconsole phoneapps blf 12000
    +-----------------+------------+
    | ID              | BLF Status |
    +-----------------+------------+
    | Call Forward    | Inactive   |
    | Conference      | Inactive   |
    | DND             | Inactive   |
    | Follow Me       | Active     |
    | Parking         | Inactive   |
    | Queues          | Inactive   |
    | Queue Agent     | Active     |
    | Time Conditions | Inactive   |
    | Voicemail       | Active     |
    | Call Flow       | Inactive   |
    +-----------------+------------+
  • Get status of BLF lights for single Application

    Code Block
    [root@freepbxdev1 restapps]# fwconsole phoneapps blf 12000 "Parking"
    +---------+------------+
    | ID      | BLF Status |
    +---------+------------+
    | Parking | Inactive   |
    +---------+------------+
  • Get more information about said hint by adding "--verbose"

    Code Block
    [root@freepbxdev1 restapps]# fwconsole phoneapps blf 12000 "Call Flow" --verbose
    +-----------+------------+------------------+
    | ID        | BLF Status | Hint             |
    +-----------+------------+------------------+
    | Call Flow | Inactive   | Custom:DAYNIGHT0 |
    +-----------+------------+------------------+

...

Used to manage background/long running processes

Code Block
[root@freepbxdev1 ~]# fwconsole pm2 --help
 ______             _____  ______   __
|  ____|           |  __ \|  _ \ \ / /
| |__ _ __ ___  ___| |__) | |_) \ V /
|  __| '__/ _ \/ _ \  ___/|  _ < > <
| |  | | |  __/  __/ |    | |_) / . \
|_|  |_|  \___|\___|_|    |____/_/ \_\
Usage:
 pm2 [--list] [--stop="..."] [--restart="..."] [--delete="..."] [--update] [--reload-logs] [--log="..."] [--lines="..."]
Options:
 --list                List Process
 --stop                Stop Process
 --restart             Restart Process
 --delete              Delete Process
 --update              Save processes, kill PM2 and restore processes
 --reload-logs         Reload all log file pointers
 --log                 Stream Logs from Process
 --lines               How many lines to stream
 --help (-h)           Display this help message
 --quiet (-q)          Do not output any message
 --verbose (-v|vv|vvv) Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
 --version (-V)        Display this application version
 --ansi                Force ANSI output
 --no-ansi             Disable ANSI output
 --no-interaction (-n) Do not ask any interactive question
  • List Processes

    Code Block
    [root@freepbxdev1 ~]# fwconsole pm2 --list
    +--------------+-------+--------+----------+---------------------+-----+----------+
    | Process Name | PID   | Status | Restarts | Uptime              | CPU | Mem      |
    +--------------+-------+--------+----------+---------------------+-----+----------+
    | xmpp         | 8495  | online | 0        | 6 hours, 29 minutes | 0%  | 218.13MB |
    | restapps     | 8665  | online | 0        | 6 hours, 29 minutes | 0%  | 47.63MB  |
    | zulu         | 8825  | online | 0        | 6 hours, 29 minutes | 0%  | 94.29MB  |
    | ucpnode      | 10048 | online | 0        | 6 hours, 28 minutes | 0%  | 73.53MB  |
    | qcallback    | 16218 | online | 30       | 5 hours, 54 minutes | 0%  | 29.59MB  |
    +--------------+-------+--------+----------+---------------------+-----+----------+
  • Stop Process

    Code Block
    [root@freepbxdev1 ~]# fwconsole pm2 --stop xmpp
    Process Stopped
    [root@freepbxdev1 ~]# fwconsole pm2 --list
    +--------------+-------+---------+----------+---------------------+-----+---------+
    | Process Name | PID   | Status  | Restarts | Uptime              | CPU | Mem     |
    +--------------+-------+---------+----------+---------------------+-----+---------+
    | xmpp         | 0     | stopped | 0        | 0                   | 0%  | 0.00B   |
    | restapps     | 8665  | online  | 0        | 6 hours, 30 minutes | 0%  | 47.63MB |
    | zulu         | 8825  | online  | 0        | 6 hours, 30 minutes | 0%  | 94.29MB |
    | ucpnode      | 10048 | online  | 0        | 6 hours, 29 minutes | 0%  | 73.54MB |
    | qcallback    | 16218 | online  | 30       | 5 hours, 55 minutes | 0%  | 29.59MB |
    +--------------+-------+---------+----------+---------------------+-----+---------+
  • Restart Process

    Code Block
    [root@freepbxdev1 ~]# fwconsole pm2 --restart xmpp
    Process Restarted
    [root@freepbxdev1 ~]# fwconsole pm2 --list
    +--------------+-------+--------+----------+---------------------+------+----------+
    | Process Name | PID   | Status | Restarts | Uptime              | CPU  | Mem      |
    +--------------+-------+--------+----------+---------------------+------+----------+
    | xmpp         | 8299  | online | 0        | 4 seconds           | 102% | 117.13MB |
    | restapps     | 8665  | online | 0        | 6 hours, 30 minutes | 0%   | 47.63MB  |
    | zulu         | 8825  | online | 0        | 6 hours, 30 minutes | 0%   | 94.29MB  |
    | ucpnode      | 10048 | online | 0        | 6 hours, 29 minutes | 0%   | 73.54MB  |
    | qcallback    | 16218 | online | 30       | 5 hours, 56 minutes | 0%   | 29.59MB  |
    +--------------+-------+--------+----------+---------------------+------+----------+
  • Delete Process (Only removes and stops it from the Process Management Module, does not remove the module itself)

    Code Block
    [root@freepbxdev1 ~]# fwconsole pm2 --delete xmpp
    Process Stopped and Deleted
    [root@freepbxdev1 ~]# fwconsole pm2 --list
    +--------------+-------+--------+----------+---------------------+-----+---------+
    | Process Name | PID   | Status | Restarts | Uptime              | CPU | Mem     |
    +--------------+-------+--------+----------+---------------------+-----+---------+
    | restapps     | 8665  | online | 0        | 6 hours, 31 minutes | 0%  | 47.63MB |
    | zulu         | 8825  | online | 0        | 6 hours, 31 minutes | 0%  | 94.29MB |
    | ucpnode      | 10048 | online | 0        | 6 hours, 30 minutes | 0%  | 73.55MB |
    | qcallback    | 16218 | online | 30       | 5 hours, 56 minutes | 0%  | 29.59MB |
    +--------------+-------+--------+----------+---------------------+-----+---------+
  • Tail log (Used to tail logs for an application/process)

    Code Block
    [root@freepbxdev1 ~]# fwconsole pm2 --log restapps --lines 20
    OUT > ==> /var/log/asterisk/restapps_err.log <==
    ==> /var/log/asterisk/restapps_out.log <==
    2017-04-12 01:34 -04:00: [8665][1001-conferences] Setting button linekeys:8 to NOT_INUSE
    2017-04-12 01:34 -04:00: [8665][1001-callforward] Setting button linekeys:7 to NOT_INUSE
    2017-04-12 01:48 -04:00: [8665][1001-presencestate] Setting button linekeys:14 to IN_USE
    2017-04-12 01:48 -04:00: [8665][1001-parking] Setting button linekeys:13 to NOT_INUSE
    2017-04-12 01:48 -04:00: [8665][1001-findmefollow] Setting button linekeys:11 to NOT_INUSE
    2017-04-12 01:48 -04:00: [8665][1001-donotdisturb] Setting button linekeys:10 to NOT_INUSE
    2017-04-12 01:48 -04:00: [8665][1001-conferences] Setting button linekeys:8 to NOT_INUSE
    2017-04-12 01:48 -04:00: [8665][1001-callforward] Setting button linekeys:7 to NOT_INUSE
    2017-04-12 02:02 -04:00: [8665][1001-presencestate] Setting button linekeys:14 to IN_USE
    2017-04-12 02:02 -04:00: [8665][1001-parking] Setting button linekeys:13 to NOT_INUSE
    2017-04-12 02:02 -04:00: [8665][1001-findmefollow] Setting button linekeys:11 to NOT_INUSE
    2017-04-12 02:02 -04:00: [8665][1001-donotdisturb] Setting button linekeys:10 to NOT_INUSE
    2017-04-12 02:02 -04:00: [8665][1001-conferences] Setting button linekeys:8 to NOT_INUSE
    2017-04-12 02:02 -04:00: [8665][1001-callforward] Setting button linekeys:7 to NOT_INUSE
    2017-04-12 02:17 -04:00: [8665][1001-presencestate] Setting button linekeys:14 to IN_USE
    2017-04-12 02:17 -04:00: [8665][1001-parking] Setting button linekeys:13 to NOT_INUSE
    2017-04-12 02:17 -04:00: [8665][1001-findmefollow] Setting button linekeys:11 to NOT_INUSE
    2017-04-12 02:17 -04:00: [8665][1001-donotdisturb] Setting button linekeys:10 to NOT_INUSE
    2017-04-12 02:17 -04:00: [8665][1001-conferences] Setting button linekeys:8 to NOT_INUSE
    2017-04-12 02:17 -04:00: [8665][1001-callforward] Setting button linekeys:7 to NOT_INUSE
  • Update PM2 (Used to update the PM2 binary in memory, this will stop all applications to update the PM2 library!)

    Code Block
    [root@freepbxdev1 ~]# fwconsole pm2 --update
    Be sure to have the latest version by doing `npm install pm2@latest -g` before doing this procedure.
    [PM2] Saving current process list...
    [PM2] Stopping PM2...
    [PM2] Applying action deleteProcessId on app [all](ids: 1,2,3,4)
    [PM2] [ucpnode](3) ✓
    [PM2] [restapps](1) ✓
    [PM2] [qcallback](4) ✓
    [PM2] [zulu](2) ✓
    [PM2] All processes have been stopped and deleted
    [PM2] PM2 stopped
    [PM2] Spawning PM2 daemon with pm2_home=/home/asterisk/.pm2
    [PM2] Restoring processes located in /home/asterisk/.pm2/dump.pm2
    [PM2] Process /usr/src/freepbx/restapps/restapps.php restored
    [PM2] Process /usr/src/freepbx/zulu/node/index.js restored
    [PM2] Process /usr/src/freepbx/ucpnode/node/index.js restored
    [PM2] Process /usr/src/freepbx/vqplus/queue-callback.php restored
    >>>>>>>>>> PM2 updated
    ┌───────────┬────┬──────┬──────┬────────┬─────────┬────────┬──────┬───────────┬──────────┐
    │ App name  │ id │ mode │ pid  │ status │ restart │ uptime │ cpu  │ mem       │ watching │
    ├───────────┼────┼──────┼──────┼────────┼─────────┼────────┼──────┼───────────┼──────────┤
    │ qcallback │ 3  │ fork │ 9316 │ online │ 0       │ 0s     │ 46%  │ 18.5 MB   │ disabled │
    │ restapps  │ 0  │ fork │ 9289 │ online │ 0       │ 0s     │ 168% │ 33.4 MB   │ disabled │
    │ ucpnode   │ 2  │ fork │ 9305 │ online │ 0       │ 0s     │ 59%  │ 15.1 MB   │ disabled │
    │ zulu      │ 1  │ fork │ 9295 │ online │ 0       │ 0s     │ 71%  │ 17.8 MB   │ disabled │
    └───────────┴────┴──────┴──────┴────────┴─────────┴────────┴──────┴───────────┴──────────┘
     Use `pm2 show <id|name>` to get more details about an app
    Update PM2 Process
  • Reload Log file pointers (used during logrotates)

    Code Block
    [root@uc-85436011 ~]# fwconsole pm2 --reload-logs
    All logs reloaded

...

Used to alter Advanced Settings from the bash prompt:

Code Block
[root@346 ~]# fwconsole setting --help
______                   ______ ______ __   __
|  ___|                  | ___ \| ___ \\ \ / /
| |_    _ __   ___   ___ | |_/ /| |_/ / \ V /
|  _|  | '__| / _ \ / _ \|  __/ | ___ \ /   \
| |    | |   |  __/|  __/| |    | |_/ // /^\ \
\_|    |_|    \___| \___|\_|    \____/ \/   \/
 
Usage:
  setting [options] [--] [<args>]...
  set
 
Arguments:
  args
 
Options:
  -d, --dump            Dump Configs
  -r, --reset           Reset to defailt
  -i, --import=IMPORT   Import settings from file
  -e, --export=EXPORT   Export settings to file
  -h, --help            Display this help message
  -q, --quiet           Do not output any message
  -V, --version         Display this application version
      --ansi            Force ANSI output
      --no-ansi         Disable ANSI output
  -n, --no-interaction  Do not ask any interactive question
  -v|vv|vvv, --verbose  Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
 
Help:
  View and update settings
 
 
[root@346 ~]# fwconsole setting -d | grep EDGE
MODULEADMINEDGE=1
[root@346 ~]# fwconsole setting MODULEADMINEDGE 0
Changing "MODULEADMINEDGE" from [1] to [0]
[root@346 ~]# fwconsole setting -d | grep EDGE
MODULEADMINEDGE=0
[root@346 ~]# fwconsole setting MODULEADMINEDGE -r
Are you sure you want to set MODULEADMINEDGE to its default?y
Changing MODULEADMINEDGE to 0

Sound Languages

Code Block
[root@Andrew14 soundlang]# fwconsole sound --help
Usage:
  sounds [options]
 
Options:
      --list                 List Process
      --listglobal           Delete Process
      --install=INSTALL      Stop Process
      --uninstall=UNINSTALL  Restart Process
      --global=GLOBAL        Save processes, kill PM2 and restore processes
  -h, --help                 Display this help message
  -q, --quiet                Do not output any message
  -V, --version              Display this application version
      --ansi                 Force ANSI output
      --no-ansi              Disable ANSI output
  -n, --no-interaction       Do not ask any interactive question
  -v|vv|vvv, --verbose       Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
 
Help:
  Sound Language Prompts
  • List Available Packages

    Code Block
    [root@Andrew14 soundlang]# fwconsole sound --list
    +-------+----------------------------------+----------------------------+-----------+
    | ID    | Language                         | Author                     | Installed |
    +-------+----------------------------------+----------------------------+-----------+
    | cs    | Czech (cs)                       | Westany Ltd.               |           |
    | en    | English (en)                     | Allison Smith              | X         |
    | en_AU | English - Australia (en_AU)      | CAMSOWN                    |           |
    | en_GB | English - United Kingdom (en_GB) | Jay Benham                 |           |
    | en_NZ | English - New Zealand (en_NZ)    | Rover Voice Services       |           |
    | es    | Spanish (es)                     | Allison Smith              |           |
    | fa    | Persian (fa)                     | SENA                       |           |
    | fr    | French (fr)                      | June Wallack               |           |
    | he    | Hebrew (he)                      | Westany Ltd.               |           |
    | it    | Italian (it)                     | Carlo Flora                |           |
    | ja    | Japanese (ja)                    | Ryoko SONODA (QLOOG, Inc.) |           |
    | nl    | Dutch (nl)                       | Westany Ltd.               |           |
    | no    | Norwegian (no)                   | Westany Ltd.               |           |
    | pl    | Polish (pl)                      | Westany Ltd.               |           |
    | ru    | Russian (ru)                     | http://www.ivrvoice.ru/    |           |
    | sv    | Swedish (sv)                     | Tove Hjelm                 |           |
    | tr    | Turkish (tr)                     | Westany Ltd.               |           |
    +-------+----------------------------------+----------------------------+-----------+
  • Install

    Code Block
    [root@Andrew14 soundlang]# fwconsole sound --install cs
    <snip>
    Accept License Agreement? [y/n]y
    Installing cs...Done
  • Uninstall

    Code Block
    [root@Andrew14 soundlang]# fwconsole sound --uninstall cs
    Uninstalling cs...Done
  • List Global

    Code Block
    [root@Andrew14 soundlang]# fwconsole sound --listglobal
    +----+---------+---------+
    | ID | Name    | Default |
    +----+---------+---------+
    | en | English | X       |
    +----+---------+---------+
  • Set Global

    Code Block
    [root@Andrew14 soundlang]# fwconsole sound --global en
    Successfully set default language to en, you will need to reload

System Admin

Code Block
# fwconsole sysadmin --helpUsage: sysadmin [options] [--] [<args>]... sa Arguments: args Options: -s, --set=SET We are setting F flag -h, --help Display this help message -q, --quiet Do not output any message -V, --version Display this application version --ansi Force ANSI output --no-ansi Disable ANSI output -n, --no-interaction Do not ask any interactive question -v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug Help: Usage: fwconsole sysadmin action [arg arg...] info : Display Activation info activate : Activate system with provided Deployment ID deactivate : Deactivate system with provided Deployment ID update : Refresh Activation information updatecert : Make sure the Apache SSL Certificate is up to date ports : Display internal HTTP/HTTPS port mappings clearforce : Disabling HTTPS forced redirection for the administration interface, e.g: fwconsole sa cf. showSSLProtocol : Show SSL Protocol for Apache, e.g: fwconsole sa ssp writeSSLProtocol : Write SSL Protocol for Apache, e.g: fwconsole sa wsp --set='all -SSLv3 -TLSv1 -TLSv1.1' resetSSLProtocol : Reset to Default changes settings to (SSLProtocol all -SSLv3), e.g: fwconsole sa rsp installHttpsCert : Install Https Certificate for Apache, e.g: fwconsole sa ihc --set='your.base.name' or fwconsole sa ihc default
  • Get Activation Information

    Code Block
    [root@freepbxdev1 faxpro]# fwconsole sysadmin info
    Activation Status:
    Zend ID:    M:XXXXX-XXXXX-XXXXX-XXXXX
    Lic File:   Present
    Deployment: freepbxdev1
  • Update the license file on your installation

    Code Block
    [root@freepbxdev1 faxpro]# fwconsole sysadmin update
    Updating license for freepbxdev1
    Done!
    No changes from original Licence.
  • Activate system using your deploymentid

    Code Block
    [root@freepbxdev1 faxpro]# fwconsole sysadmin activate <deploymentid>
  • Clear https force - if an https force misconfiguration renders the Admin GUI inaccessible, you can clear it with

    Code Block
    # fwconsole sysadmin clearforce
    Disabling HTTPS forced redirection for the administration interface.
    Done.

Trunks

Interactive toggle

Code Block
[root@pbx ~]# fwconsole trunks
Choose an ID to enable/disable
+----+-------+---------------------+----------+
| ID | TECH  | Channel ID          | Disabled |
+----+-------+---------------------+----------+
| 1  | pjsip | flowroute           | off      |
| 2  | sip   | fpbx-1-QWm3eNC4UIDn | on       |
| 3  | sip   | fpbx-2-QWm3eNC4UIDn | off      |
| 4  | pjsip | Telnyx              | off      |
+----+-------+---------------------+----------+
  [1] 1
  [2] 2
  [3] 3
  [4] 4
 >

List Trunks

Code Block
[root@pbx ~]# fwconsole trunks --list
+----+-------+---------------------+----------+
| ID | TECH  | Channel ID          | Disabled |
+----+-------+---------------------+----------+
| 1  | pjsip | flowroute           | off      |
| 2  | sip   | fpbx-1-QWm3eNC4UIDn | on       |
| 3  | sip   | fpbx-2-QWm3eNC4UIDn | off      |
| 4  | pjsip | Telnyx              | off      |
+----+-------+---------------------+----------+

Specifying a trunk to enable or disable 

Code Block
[root@pbx ~]# fwconsole trunks --enable 2
Enabling Trunk 2
 
[root@pbx ~]# fwconsole trunks --disable 2
Disabling Trunk 2

"fwconsole" is the Linux command that controls FreePBX 13+ from the Linux command prompt.  

...

Note

All commands can be suffixed with --help to get more information

Command List

Command

Short

Description

bulkimport

bi

This command is used to import extensions and dids

certificates

Certificate Management

chown

Change ownership of files

context

cx

Shows the specified context from the dialplan

doctrine

Specific database documentation (for Development)

debug

dbug

Stream log files for debugging

epm

Endpoint Manager

externalip

extip

Get External IP

firewall

Firewall functions

help

Displays help for a command

list

Lists commands

mysql

m

Runs MySQL Client using freepbx credentials

moduleadmin

ma

Module Administration

notification

Manage notifications

reload

r

Reload Configs and Asterisk

restart

Start Asterisk and run other needed FreePBX commands

pagingpro

Paging Pro Interface

phoneapps

Debug Phone App Problems (For XML Style BLFs)

pm2

Process Management

setting

set

sysadmin

sa

System Admin Functions

trunks

Enable and disable trunks from the command line

unlock

un

Unlock Session

userman

User Manager

util

Common Utilities

vqplus

VQPlus functions

Stop/Start/Restart

...

This is how FreePBX starts asterisk and any other processes it need.  You should always start and restart asterisk with the amportal command not the service asterisk or /etc/init.d/asterisk commands

...

The XML should be used in the module.xml file

Code Block
[root@freepbxdev1 framework]# fwconsole doctrine meetme --format=xml
<database>
  <table name="meetme">
    <field name="exten" type="string" length="50"/>
    <field name="options" type="string" length="15" notnull="false"/>
    <field name="userpin" type="string" length="50" notnull="false"/>
    <field name="adminpin" type="string" length="50" notnull="false"/>
    <field name="description" type="string" length="50" notnull="false"/>
    <field name="joinmsg_id" type="integer" notnull="false"/>
    <field name="music" type="string" length="80" notnull="false"/>
    <field name="users" type="smallint" default="0" unsigned="true" notnull="false"/>
    <field name="language" type="string" length="10"/>
    <key name="PRIMARY" type="unique">
      <column name="exten"/>
    </key>
  </table>
</database>

The PHP code should be used inside install.php or the module's class.

Code Block
[root@freepbxdev1 framework]# fwconsole doctrine meetme --format=php
$table = FreePBX::Database()->migrate("meetme");
$cols = array (
  'exten' =>
  array (
    'type' => 'string',
    'length' => '50',
  ),
  'options' =>
  array (
    'type' => 'string',
    'length' => '15',
    'notnull' => false,
  ),
  'userpin' =>
  array (
    'type' => 'string',
    'length' => '50',
    'notnull' => false,
  ),
  'adminpin' =>
  array (
    'type' => 'string',
    'length' => '50',
    'notnull' => false,
  ),
  'description' =>
  array (
    'type' => 'string',
    'length' => '50',
    'notnull' => false,
  ),
  'joinmsg_id' =>
  array (
    'type' => 'integer',
    'notnull' => false,
  ),
  'music' =>
  array (
    'type' => 'string',
    'length' => '80',
    'notnull' => false,
  ),
  'users' =>
  array (
    'type' => 'smallint',
    'notnull' => false,
    'unsigned' => true,
    'default' => '0',
  ),
  'language' =>
  array (
    'type' => 'string',
    'length' => '10',
  ),
);
 
$indexes = array (
  'PRIMARY' =>
  array (
    'type' => 'unique',
    'cols' =>
    array (
      0 => 'exten',
    ),
  ),
);
$table->modify($cols);
unset($table);

Reload

...

fwconsole reload - This will perform a reload of all the dialplan in Asterisk and all the modules in asterisk.  This is the same as pressing the "Apply Changes" button in the GUI of FreePBX

...

fwconsole m This will connect you to the mysql database as the FreePBX user automatically based on the username and password for MySQL in /etc/freepbx.conf

Code Block
[root@freepbxdev1 faxpro]# fwconsole m
Connecting to the Database...Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 123880
Server version: 5.1.73-log Source distribution
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>

Module Administration

Command line utility for controlling FreePBX Module installation.

Code Block
[root@ldev2 ~]# fwconsole ma
Module Administration Help:
Usage: fwconsole moduleadmin [-f][-R reponame][-R reponame][action][arg1][arg2][arg...]
Flags:
-f - FORCE
-R - REPO, accepts reponame as a single argument
--edge - EDGE, forces download from the edge repository
--skipchown           Skip the chown operation
--nopromptdisabled    Don't ask to enable disabled modules
--format              Format can be: json, jsonpretty
--tag                 Download/Upgrade to a specific tag
Module Actions:
checkdepends : Checks dependencies for provided module[s], accepts argument module[s]
disable : Disables module[s] accepts argument module[s]
download : Download module[s], accepts argument module[s] or URLs
downloadinstall : Download and install module[s], accepts argument module[s] or URLs
delete : Deleted module[s], accepts argument module[s]
enable : Enable module[s], accepts argument module[s]
install : Installs module[s], accepts argument module[s]
installlocal : Install local module[s], accepts argument module[s]
uninstall : Uninstalls module[s], accepts argument module[s]
upgrade : Upgrade module[s], accepts argument module[s]
All inclusive Module Actions:
installall : Installs all modules, accepts no arguments
enableall : Trys to enable all modules, accepts no arguments
upgradeall : Upgrades all modules, accepts no arguments
Repository Actions:
disablerepo : Disables repo, accepts argument repo[s]
enablerepo : Enables repo, accepts argument repo[s]
list : List all local modules, accepts no arguments
listonline : List online modules, accepts no arguments
showupgrades : Shows a list of modules that may be updated, accepts no arguments
i18n : Shows translation information for supplied modules, accepts argument module[s]
refreshsignatures : ReDownloads all modules that have invalid signatures

Edge modules:

In Framework 13.0.69 we added the ability to install edge modules. To upgrade to a module in the edge track pass the --edge flag

Code Block
fwconsole ma --edge upgrade foomodule
  • Check Module Dependencies

    Code Block
    [root@xxxxxx ~]# fwconsole ma checkdepends core
    All dependencies met for module core
  • Disable a module

    Code Block
    [root@freepbxdev1 faxpro]# fwconsole ma disable asterisk-cli
    Module asterisk-cli successfully disabled
    Updating Hooks...Done
  • Download a Module

    Code Block
    [root@xxxxxx ~]# fwconsole ma download core
    No repos specified, using: [standard,commercial] from last GUI settings
    Starting core download..
    Processing core
    Downloading...
     3076094/3076094 [============================] 100%
    Finished downloading
    Extracting...Done
    Module core successfully downloaded
    Code Block
    [root@xxxxxx ~]# fwconsole ma download <url>
    No repos specified, using: [standard,commercial] from last GUI settings
    Starting core download..
    Processing core
    Downloading...
     3076094/3076094 [============================] 100%
    Finished downloading
    Extracting...Done
    Module core successfully downloaded
  • Download a specific module

    Code Block
    [root@xxxxxx ~]# fwconsole ma download core --tag 1.2.3
    No repos specified, using: [standard,commercial] from last GUI settings
    Starting core download..
    Processing core
    Downloading...
     3076094/3076094 [============================] 100%
    Finished downloading
    Extracting...Done
    Module core successfully downloaded
  • Download and install a Module

    Code Block
    [root@xxxxxx ~]# fwconsole ma downloadinstall core
    No repos specified, using: [standard,commercial] from last GUI settings
    Starting core download..
    Processing core
    Downloading...
     3076094/3076094 [============================] 100%
    Finished downloading
    Extracting...Done
    Module core successfully downloaded
    Checking if directdids need migrating..already done
    updating zap callgroup, pickupgroup..not needed
    checking for delay_answer field ..already exists
    checking for reversal field ..already exists
    checking for pricid field ..already exists
    Migrating pickup groups to named pickup groups
    Migrating call groups to named call groups
    Checking if trunk table migration required..not needed
    Checking if privacy manager options exists..already exists
    Checking for noanswer_cid field..already exists
    Checking for busy_cid field..already exists
    Checking for chanunavail_cid field..already exists
    Checking for noanswer_dest field..already exists
    Checking for busy_dest field..already exists
    Checking for chanunavail_dest field..already exists
    Unable to add index to extensions field in users
    Checking for General Setting migrations..not needed
    Deleting unused globals..done
    Converting IAX notransfer to transfer if needed..updated 0000 records
    deleting obsoleted record_in and record_out entries..ok
    checking for dest field in outbound_routes..already exists
    checking for continue field in trunks..already exists
    upgrading any zap trunks to dahdi if found..ok
    Checking for possibly invalid emergency caller id fields..none found
    Generating CSS...Done
    Module core successfully installed
    Updating Hooks...Done
    Code Block
    [root@xxxxxx ~]# fwconsole ma downloadinstall <url>
    No repos specified, using: [standard,commercial] from last GUI settings
    Starting core download..
    Processing core
    Downloading...
     3076094/3076094 [============================] 100%
    Finished downloading
    Extracting...Done
    Module core successfully downloaded
    Checking if directdids need migrating..already done
    updating zap callgroup, pickupgroup..not needed
    checking for delay_answer field ..already exists
    checking for reversal field ..already exists
    checking for pricid field ..already exists
    Migrating pickup groups to named pickup groups
    Migrating call groups to named call groups
    Checking if trunk table migration required..not needed
    Checking if privacy manager options exists..already exists
    Checking for noanswer_cid field..already exists
    Checking for busy_cid field..already exists
    Checking for chanunavail_cid field..already exists
    Checking for noanswer_dest field..already exists
    Checking for busy_dest field..already exists
    Checking for chanunavail_dest field..already exists
    Unable to add index to extensions field in users
    Checking for General Setting migrations..not needed
    Deleting unused globals..done
    Converting IAX notransfer to transfer if needed..updated 0000 records
    deleting obsoleted record_in and record_out entries..ok
    checking for dest field in outbound_routes..already exists
    checking for continue field in trunks..already exists
    upgrading any zap trunks to dahdi if found..ok
    Checking for possibly invalid emergency caller id fields..none found
    Generating CSS...Done
    Module core successfully installed
    Updating Hooks...Done

Bulk Import

Code Block
[root@freepbxdev1 faxpro]# fwconsole bulkimport --help
Options:
 --type (-t)           Type of file
Help:
 Import a file: fwconsole bulkimport --type=[extensions|dids|userman|contactmanager] filename.csv

If the Bulk Handler module is installed, you can use the command line to import a csv file as follows:

Code Block
fwconsole bulkimport -t|--type="..." filename

You must specify the import type and the file name to a valid csv file for import.

CLI Examples:

Code Block
# fwconsole bi --type='dids' dids.csv
Importing bulk dids
# fwconsole bi --type='extensions' extensions.csv
Importing bulk extensions

EPM

Code Block
Usage: fwconsole endpoint action [arg arg...]
addmapping : Add extension to extension mapping.
Options:
       --brand     = Brand for extension ie: sangoma
       --mac       = MAC Address for extension.
       --template  = Template for extension.
       --model     = Model for extension.
       --account   = Account for extension.
       --accessory = Accessory setting for extension.
       --vpn       = VPN ID for extension.
listextensions : List extension(s) by order. Argument 1: Extension or ALL, Argument 2: Column to order by. Option --detail = All mapping information.
listtemplates : List all templates.
reboot : Request phone to reboot.  SANGOMA PHONES ONLY
rebuild : Rebuild the config files for an extension/template/all
rebuildupdate : Rebuild the config files for an extension/template/all and tell phone(s) to check config.
remove : Remove an extension. Specify extension.
update : Send a notify to an extension/template/all to check its the config.  Will cause most phones to reboot.
  • Add Mapping to Extension Mapping

    Code Block
    # fwconsole epm addmapping 4101 --brand=sangoma --mac=005058500002 --template=sangomatest --model=S700 --account=account1
    Extension 4101 added successfully.
  • List Extensions

    Code Block
    # fwconsole epm listextensions ALL
    +-----------+-------------+--------------+------------------+----------+----------+-------------+---------+---------------------+
    | Extension | Brand       | MAC          | Template         | Model    | Account  | Expansion 1 | Rebuild | VPN                 |
    +-----------+-------------+--------------+------------------+----------+----------+-------------+---------+---------------------+
    | 1012      | Grandstream | 000B82800001 | grandstream-test | GXP-2170 | account1 |             | 1       |                     |
    | 4101      | sangoma     | 005058500003 | sangomatest      |          | account1 |             |         |                     |
    | 4102      | Yealink     | 001565211111 | yealink-base     | SIP-T26P | account1 | EXP38-1     | 1       |                     |
    | 4103      | Sangoma     | 005058500001 | sangomatest      | S500     | account1 | EXP100-1    | 1       | 4103 - 4103 (ID: 4) |
    | 4104      | Sangoma     | 005058500002 | sangomatest      | S700     | account1 |             | 1       |                     |
    +-----------+-------------+--------------+------------------+----------+----------+-------------+---------+---------------------+
      
    # fwconsole epm listextensions ALL --detail
    +-----------+-------------+--------------+------------------+----------+----------+-----------+-------------+-------------+-------------+-------------+-------------+-------------+------------------+-----------+---------+---------------------+------------+------------+------------+-----------+
    | Extension | Brand       | MAC          | Template         | Model    | Account  | Accessory | Expansion 1 | Expansion 2 | Expansion 3 | Expansion 4 | Expansion 5 | Expansion 6 | BLF Substitution | BLF Label | Rebuild | VPN                 | Repeater 1 | Repeater 2 | Repeater 3 | Multicell |
    +-----------+-------------+--------------+------------------+----------+----------+-----------+-------------+-------------+-------------+-------------+-------------+-------------+------------------+-----------+---------+---------------------+------------+------------+------------+-----------+
    | 1012      | Grandstream | 000B82800001 | grandstream-test | GXP-2170 | account1 |           |             |             |             |             |             |             |                  |           | 1       |                     |            |            |            |           |
    | 4101      | sangoma     | 005058500003 | sangomatest      |          | account1 |           |             |             |             |             |             |             |                  |           |         |                     |            |            |            |           |
    | 4102      | Yealink     | 001565211111 | yealink-base     | SIP-T26P | account1 |           | EXP38-1     |             |             |             |             |             | None             |           | 1       |                     |            |            |            |           |
    | 4103      | Sangoma     | 005058500001 | sangomatest      | S500     | account1 |           | EXP100-1    | EXP100-2    | EXP100-3    | EXP100-4    | EXP100-5    | EXP100-6    | None             |           | 1       | 4103 - 4103 (ID: 4) |            |            |            |           |
    | 4104      | Sangoma     | 005058500002 | sangomatest      | S700     | account1 |           |             |             |             |             |             |             |                  |           | 1       |                     |            |            |            |           |
    +-----------+-------------+--------------+------------------+----------+----------+-----------+-------------+-------------+-------------+-------------+-------------+-------------+------------------+-----------+---------+---------------------+------------+------------+------------+-----------+
  • List Templates

    Code Block
     # fwconsole epm listtemplates
    +-------------+----------------------+-------------+-----------+----------------+-------------------+--------------------+----------+------------------+------------------+
    | Brand       | Template Name        | Destination | Time Zone | Provision Type | Provision Address | Background         | Firmware | Internal Default | External Default |
    +-------------+----------------------+-------------+-----------+----------------+-------------------+--------------------+----------+------------------+------------------+
    | grandstream | grandstream-test     | 10.100.0.3  | -06:00    | TFTP           | 10.100.0.3        | digit-on-phone.png | 1.14     |                  |                  |
    | sangoma     | sangomatest          | 10.100.0.3  | -06:00    | HTTP           | 10.100.0.3        | digit-on-phone.png | 1.23     |                  |                  |
    | yealink     | yealink-base         | 10.100.0.3  | -06:00    | TFTP           | 10.100.0.3        | sangomapad.png     | 1.16     | Yes              | Yes              |
    +-------------+----------------------+-------------+-----------+----------------+-------------------+--------------------+----------+------------------+------------------+
  • Reboot Devices

    Code Block
    # fwconsole epm reboot 4103
    Only works for Sangoma phones
    Extension 4103 sent reboot command.
      
    # fwconsole epm reboot sangomatest
    Only works for Sangoma phones
    Extension 4103 sent reboot command
    Extension 4104 sent reboot command
    Extension 4101 sent reboot command
  • Rebuild Configuration Files

    Code Block
    # fwconsole epm rebuild 4103
    Extension 4103 rebuilt
      
      
    # fwconsole epm rebuild sangomatest
    Extension 4103 rebuilt
    Extension 4104 rebuilt
    Extension 4101 rebuilt
  • Rebuild and Update Devices

    Code Block
    # fwconsole epm rebuildupdate 4103
    Extension 4103 rebuilt
    Update command sent to 4103
      
      
    # fwconsole epm rebuildupdate sangomatest
    Extension 4103 rebuilt
    Extension 4104 rebuilt
    Extension 4101 rebuilt
    Update command sent to 4103
    Update command sent to 4104
    Update command sent to 4101
  • Remove Devices

    Code Block
    # fwconsole epm remove 4103
    4103 removed succesfully
  • Update Devices

    Code Block
    # fwconsole epm update 4103
    Update command sent to 4103
     
     
      
    # fwconsole epm update sangomatest
    Update command sent to 4103
    Update command sent to 4104
    Update command sent to 4101

Notification

Code Block
[root@freepbxdev1 faxpro]# fwconsole notification --help
Options:
 --list                list notifications
 --delete              Delete notification
 --help (-h)           Display this help message
 --json                format list as json
Help:
 Notifications Help:
 Usage: fwconsole notification [--list] [--delete module id]
  • List Notifications

    Code Block
    [root@freepbxdev1 faxpro]# fwconsole notification --list
    +---------------+-------------------------+----------------------------------------------------------+
    | Module        | ID                      | Text                                                     |
    +---------------+-------------------------+----------------------------------------------------------+
    | freepbx       | FW_UNSIGNED             | You have 95 unsigned modules                             |
    | freepbx       | NEWUPDATES              | There are 3 modules available for online upgrades        |
    | cron_manager  | EXECFAIL                | Cronmanager encountered 1 Errors                         |
    | dahdiconfig   | etcdahdimodules         | File /etc/dahdi/modules is not owned by asterisk         |
    | dahdiconfig   | etcdahdisystem.conf     | File /etc/dahdi/system.conf is not owned by asterisk     |
    | dahdiconfig   | etcmodprobe.ddahdi.conf | File /etc/modprobe.d/dahdi.conf is not owned by asterisk |
    | freepbx       | modules_disabled        | You have 10 disabled modules                             |
    | cidlookup     | noauth                  | OpenCNAM Requires Authentication                         |
    | fax           | invalid_email           | Invalid Email for Inbound Fax                            |
    | freepbx       | NEWMODS                 | 1 New modules are available                              |
    | retrieve_conf | SYMLINKNOTICE           | Symlink Conflict Resolved                                |
    | sipstationdid | ss7149223196            | SIPSTATION DID routed                                    |
    +---------------+-------------------------+----------------------------------------------------------+
    Code Block
    [root@freepbxdev1 faxpro]# fwconsole notification --list --json
    [["freepbx","FW_UNSIGNED","You have 95 unsigned modules"],["freepbx","NEWUPDATES","There are 3 modules available for online upgrades"],["cron_manager","EXECFAIL","Cronmanager encountered 1 Errors"],["dahdiconfig","etcdahdimodules","File \/etc\/dahdi\/modules is not owned by asterisk"],["dahdiconfig","etcdahdisystem.conf","File \/etc\/dahdi\/system.conf is not owned by asterisk"],["dahdiconfig","etcmodprobe.ddahdi.conf","File \/etc\/modprobe.d\/dahdi.conf is not owned by asterisk"],["freepbx","modules_disabled","You have 10 disabled modules"],["cidlookup","noauth","OpenCNAM Requires Authentication"],["fax","invalid_email","Invalid Email for Inbound Fax"],["freepbx","NEWMODS","1 New modules are available"],["retrieve_conf","SYMLINKNOTICE","Symlink Conflict Resolved"],["sipstationdid","ss7149223196","SIPSTATION DID routed"]]
  • Delete notification (by ID)

    Code Block
    [root@freepbxdev1 faxpro]# fwconsole notification --delete dahdiconfig etcdahdimodules
    Deleting notification
    Notification Deleted
    [root@freepbxdev1 faxpro]# fwconsole notification --list
    +---------------+-------------------------+----------------------------------------------------------+
    | Module        | ID                      | Text                                                     |
    +---------------+-------------------------+----------------------------------------------------------+
    | freepbx       | FW_UNSIGNED             | You have 95 unsigned modules                             |
    | freepbx       | NEWUPDATES              | There are 3 modules available for online upgrades        |
    | cron_manager  | EXECFAIL                | Cronmanager encountered 1 Errors                         |
    | dahdiconfig   | etcdahdisystem.conf     | File /etc/dahdi/system.conf is not owned by asterisk     |
    | dahdiconfig   | etcmodprobe.ddahdi.conf | File /etc/modprobe.d/dahdi.conf is not owned by asterisk |
    | freepbx       | modules_disabled        | You have 10 disabled modules                             |
    | cidlookup     | noauth                  | OpenCNAM Requires Authentication                         |
    | fax           | invalid_email           | Invalid Email for Inbound Fax                            |
    | freepbx       | NEWMODS                 | 1 New modules are available                              |
    | retrieve_conf | SYMLINKNOTICE           | Symlink Conflict Resolved                                |
    | sipstationdid | ss7149223196            | SIPSTATION DID routed                                    |
    +---------------+-------------------------+----------------------------------------------------------+

Paging Pro

Code Block
[root@freepbxdev1 restapps]# fwconsole pagingpro --help
Usage:
 pagingpro [-c|--clean] [-e|--execute="..."] [-l|--list[="..."]]
Options:
 --clean (-c)          Cleanup stale pages and add needed pages
 --execute (-e)        Execute a scheduled page now
 --list (-l)           List Scheduled Pages
 --help (-h)           Display this help message
 --quiet (-q)          Do not output any message
 --verbose (-v|vv|vvv) Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
  • Cleanup stale pages and add needed pages (This is also run as a cron in crontab every minute. There it's called: */1 * * * * /var/lib/asterisk/bin/pagepro-scheduler.php 2>&1 >/dev/null)
    Run command with --verbose to get detailed data

    Code Block
    [root@freepbxdev1 framework]# fwconsole pagingpro --clean --verbose
    Found scheduled page for ID 500 occuring at 1466527800
  • List active scheduled pages

    Code Block
    [root@freepbxdev1 framework]# fwconsole pagingpro --list
    +---------+------------+-------------+
    | Page ID | Time       | Cron Exists |
    +---------+------------+-------------+
    | 500     | 1466527800 | Yes         |
    +---------+------------+-------------+
  • List specific scheduled page by id

    Code Block
    [root@freepbxdev1 framework]# fwconsole pagingpro --list 500
    +---------+------------+-------------+
    | Page ID | Time       | Cron Exists |
    +---------+------------+-------------+
    | 500     | 1466527800 | Yes         |
    +---------+------------+-------------+
  • Execute a scheduled page immediately (for testing) using the paging pro page scheduler processes

    Code Block
    [root@freepbxdev1 framework]# fwconsole pagingpro --execute 500
    [root@freepbxdev1 framework]# <phones should be ringing>

Phone Apps

Code Block
[root@freepbxdev1 restapps]# fwconsole phoneapps --help
Arguments:
 blf                   Show BLF States: <ext> [<app>]
Options:
 --help (-h)           Display this help message
 --quiet (-q)          Do not output any message
 --verbose (-v|vv|vvv) Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
  • Get statuses of BLF lights for extension

    Code Block
    [root@freepbxdev1 restapps]# fwconsole phoneapps blf 12000
    +-----------------+------------+
    | ID              | BLF Status |
    +-----------------+------------+
    | Call Forward    | Inactive   |
    | Conference      | Inactive   |
    | DND             | Inactive   |
    | Follow Me       | Active     |
    | Parking         | Inactive   |
    | Queues          | Inactive   |
    | Queue Agent     | Active     |
    | Time Conditions | Inactive   |
    | Voicemail       | Active     |
    | Call Flow       | Inactive   |
    +-----------------+------------+
  • Get status of BLF lights for single Application

    Code Block
    [root@freepbxdev1 restapps]# fwconsole phoneapps blf 12000 "Parking"
    +---------+------------+
    | ID      | BLF Status |
    +---------+------------+
    | Parking | Inactive   |
    +---------+------------+
  • Get more information about said hint by adding "--verbose"

    Code Block
    [root@freepbxdev1 restapps]# fwconsole phoneapps blf 12000 "Call Flow" --verbose
    +-----------+------------+------------------+
    | ID        | BLF Status | Hint             |
    +-----------+------------+------------------+
    | Call Flow | Inactive   | Custom:DAYNIGHT0 |
    +-----------+------------+------------------+

...

Used to manage background/long running processes

Code Block
[root@freepbxdev1 ~]# fwconsole pm2 --help
 ______             _____  ______   __
|  ____|           |  __ \|  _ \ \ / /
| |__ _ __ ___  ___| |__) | |_) \ V /
|  __| '__/ _ \/ _ \  ___/|  _ < > <
| |  | | |  __/  __/ |    | |_) / . \
|_|  |_|  \___|\___|_|    |____/_/ \_\
Usage:
 pm2 [--list] [--stop="..."] [--restart="..."] [--delete="..."] [--update] [--reload-logs] [--log="..."] [--lines="..."]
Options:
 --list                List Process
 --stop                Stop Process
 --restart             Restart Process
 --delete              Delete Process
 --update              Save processes, kill PM2 and restore processes
 --reload-logs         Reload all log file pointers
 --log                 Stream Logs from Process
 --lines               How many lines to stream
 --help (-h)           Display this help message
 --quiet (-q)          Do not output any message
 --verbose (-v|vv|vvv) Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
 --version (-V)        Display this application version
 --ansi                Force ANSI output
 --no-ansi             Disable ANSI output
 --no-interaction (-n) Do not ask any interactive question
  • List Processes

    Code Block
    [root@freepbxdev1 ~]# fwconsole pm2 --list
    +--------------+-------+--------+----------+---------------------+-----+----------+
    | Process Name | PID   | Status | Restarts | Uptime              | CPU | Mem      |
    +--------------+-------+--------+----------+---------------------+-----+----------+
    | xmpp         | 8495  | online | 0        | 6 hours, 29 minutes | 0%  | 218.13MB |
    | restapps     | 8665  | online | 0        | 6 hours, 29 minutes | 0%  | 47.63MB  |
    | zulu         | 8825  | online | 0        | 6 hours, 29 minutes | 0%  | 94.29MB  |
    | ucpnode      | 10048 | online | 0        | 6 hours, 28 minutes | 0%  | 73.53MB  |
    | qcallback    | 16218 | online | 30       | 5 hours, 54 minutes | 0%  | 29.59MB  |
    +--------------+-------+--------+----------+---------------------+-----+----------+
  • Stop Process

    Code Block
    [root@freepbxdev1 ~]# fwconsole pm2 --stop xmpp
    Process Stopped
    [root@freepbxdev1 ~]# fwconsole pm2 --list
    +--------------+-------+---------+----------+---------------------+-----+---------+
    | Process Name | PID   | Status  | Restarts | Uptime              | CPU | Mem     |
    +--------------+-------+---------+----------+---------------------+-----+---------+
    | xmpp         | 0     | stopped | 0        | 0                   | 0%  | 0.00B   |
    | restapps     | 8665  | online  | 0        | 6 hours, 30 minutes | 0%  | 47.63MB |
    | zulu         | 8825  | online  | 0        | 6 hours, 30 minutes | 0%  | 94.29MB |
    | ucpnode      | 10048 | online  | 0        | 6 hours, 29 minutes | 0%  | 73.54MB |
    | qcallback    | 16218 | online  | 30       | 5 hours, 55 minutes | 0%  | 29.59MB |
    +--------------+-------+---------+----------+---------------------+-----+---------+
  • Restart Process

    Code Block
    [root@freepbxdev1 ~]# fwconsole pm2 --restart xmpp
    Process Restarted
    [root@freepbxdev1 ~]# fwconsole pm2 --list
    +--------------+-------+--------+----------+---------------------+------+----------+
    | Process Name | PID   | Status | Restarts | Uptime              | CPU  | Mem      |
    +--------------+-------+--------+----------+---------------------+------+----------+
    | xmpp         | 8299  | online | 0        | 4 seconds           | 102% | 117.13MB |
    | restapps     | 8665  | online | 0        | 6 hours, 30 minutes | 0%   | 47.63MB  |
    | zulu         | 8825  | online | 0        | 6 hours, 30 minutes | 0%   | 94.29MB  |
    | ucpnode      | 10048 | online | 0        | 6 hours, 29 minutes | 0%   | 73.54MB  |
    | qcallback    | 16218 | online | 30       | 5 hours, 56 minutes | 0%   | 29.59MB  |
    +--------------+-------+--------+----------+---------------------+------+----------+
  • Delete Process (Only removes and stops it from the Process Management Module, does not remove the module itself)

    Code Block
    [root@freepbxdev1 ~]# fwconsole pm2 --delete xmpp
    Process Stopped and Deleted
    [root@freepbxdev1 ~]# fwconsole pm2 --list
    +--------------+-------+--------+----------+---------------------+-----+---------+
    | Process Name | PID   | Status | Restarts | Uptime              | CPU | Mem     |
    +--------------+-------+--------+----------+---------------------+-----+---------+
    | restapps     | 8665  | online | 0        | 6 hours, 31 minutes | 0%  | 47.63MB |
    | zulu         | 8825  | online | 0        | 6 hours, 31 minutes | 0%  | 94.29MB |
    | ucpnode      | 10048 | online | 0        | 6 hours, 30 minutes | 0%  | 73.55MB |
    | qcallback    | 16218 | online | 30       | 5 hours, 56 minutes | 0%  | 29.59MB |
    +--------------+-------+--------+----------+---------------------+-----+---------+
  • Tail log (Used to tail logs for an application/process)

    Code Block
    [root@freepbxdev1 ~]# fwconsole pm2 --log restapps --lines 20
    OUT > ==> /var/log/asterisk/restapps_err.log <==
    ==> /var/log/asterisk/restapps_out.log <==
    2017-04-12 01:34 -04:00: [8665][1001-conferences] Setting button linekeys:8 to NOT_INUSE
    2017-04-12 01:34 -04:00: [8665][1001-callforward] Setting button linekeys:7 to NOT_INUSE
    2017-04-12 01:48 -04:00: [8665][1001-presencestate] Setting button linekeys:14 to IN_USE
    2017-04-12 01:48 -04:00: [8665][1001-parking] Setting button linekeys:13 to NOT_INUSE
    2017-04-12 01:48 -04:00: [8665][1001-findmefollow] Setting button linekeys:11 to NOT_INUSE
    2017-04-12 01:48 -04:00: [8665][1001-donotdisturb] Setting button linekeys:10 to NOT_INUSE
    2017-04-12 01:48 -04:00: [8665][1001-conferences] Setting button linekeys:8 to NOT_INUSE
    2017-04-12 01:48 -04:00: [8665][1001-callforward] Setting button linekeys:7 to NOT_INUSE
    2017-04-12 02:02 -04:00: [8665][1001-presencestate] Setting button linekeys:14 to IN_USE
    2017-04-12 02:02 -04:00: [8665][1001-parking] Setting button linekeys:13 to NOT_INUSE
    2017-04-12 02:02 -04:00: [8665][1001-findmefollow] Setting button linekeys:11 to NOT_INUSE
    2017-04-12 02:02 -04:00: [8665][1001-donotdisturb] Setting button linekeys:10 to NOT_INUSE
    2017-04-12 02:02 -04:00: [8665][1001-conferences] Setting button linekeys:8 to NOT_INUSE
    2017-04-12 02:02 -04:00: [8665][1001-callforward] Setting button linekeys:7 to NOT_INUSE
    2017-04-12 02:17 -04:00: [8665][1001-presencestate] Setting button linekeys:14 to IN_USE
    2017-04-12 02:17 -04:00: [8665][1001-parking] Setting button linekeys:13 to NOT_INUSE
    2017-04-12 02:17 -04:00: [8665][1001-findmefollow] Setting button linekeys:11 to NOT_INUSE
    2017-04-12 02:17 -04:00: [8665][1001-donotdisturb] Setting button linekeys:10 to NOT_INUSE
    2017-04-12 02:17 -04:00: [8665][1001-conferences] Setting button linekeys:8 to NOT_INUSE
    2017-04-12 02:17 -04:00: [8665][1001-callforward] Setting button linekeys:7 to NOT_INUSE
  • Update PM2 (Used to update the PM2 binary in memory, this will stop all applications to update the PM2 library!)

    Code Block
    [root@freepbxdev1 ~]# fwconsole pm2 --update
    Be sure to have the latest version by doing `npm install pm2@latest -g` before doing this procedure.
    [PM2] Saving current process list...
    [PM2] Stopping PM2...
    [PM2] Applying action deleteProcessId on app [all](ids: 1,2,3,4)
    [PM2] [ucpnode](3) ✓
    [PM2] [restapps](1) ✓
    [PM2] [qcallback](4) ✓
    [PM2] [zulu](2) ✓
    [PM2] All processes have been stopped and deleted
    [PM2] PM2 stopped
    [PM2] Spawning PM2 daemon with pm2_home=/home/asterisk/.pm2
    [PM2] Restoring processes located in /home/asterisk/.pm2/dump.pm2
    [PM2] Process /usr/src/freepbx/restapps/restapps.php restored
    [PM2] Process /usr/src/freepbx/zulu/node/index.js restored
    [PM2] Process /usr/src/freepbx/ucpnode/node/index.js restored
    [PM2] Process /usr/src/freepbx/vqplus/queue-callback.php restored
    >>>>>>>>>> PM2 updated
    ┌───────────┬────┬──────┬──────┬────────┬─────────┬────────┬──────┬───────────┬──────────┐
    │ App name  │ id │ mode │ pid  │ status │ restart │ uptime │ cpu  │ mem       │ watching │
    ├───────────┼────┼──────┼──────┼────────┼─────────┼────────┼──────┼───────────┼──────────┤
    │ qcallback │ 3  │ fork │ 9316 │ online │ 0       │ 0s     │ 46%  │ 18.5 MB   │ disabled │
    │ restapps  │ 0  │ fork │ 9289 │ online │ 0       │ 0s     │ 168% │ 33.4 MB   │ disabled │
    │ ucpnode   │ 2  │ fork │ 9305 │ online │ 0       │ 0s     │ 59%  │ 15.1 MB   │ disabled │
    │ zulu      │ 1  │ fork │ 9295 │ online │ 0       │ 0s     │ 71%  │ 17.8 MB   │ disabled │
    └───────────┴────┴──────┴──────┴────────┴─────────┴────────┴──────┴───────────┴──────────┘
     Use `pm2 show <id|name>` to get more details about an app
    Update PM2 Process
  • Reload Log file pointers (used during logrotates)

    Code Block
    [root@uc-85436011 ~]# fwconsole pm2 --reload-logs
    All logs reloaded

...

Used to alter Advanced Settings from the bash prompt:

Code Block
[root@lgaetzdev2 ~]# fwconsole set --help
 ______             _____  ______   __
|  ____|           |  __ \|  _ \ \ / /
| |__ _ __ ___  ___| |__) | |_) \ V /
|  __| '__/ _ \/ _ \  ___/|  _ < > <
| |  | | |  __/  __/ |    | |_) / . \
|_|  |_|  \___|\___|_|    |____/_/ \_\
Usage:
 setting [-d|--dump] [-r|--reset] [-i|--import="..."] [-e|--export="..."] [args1] ... [argsN]
Aliases: set
Arguments:
 args
Options:
 --dump (-d)           Dump Configs
 --reset (-r)          Reset to defailt
 --import (-i)         Import settings from file
 --export (-e)         Export settings to file
 --help (-h)           Display this help message
 --quiet (-q)          Do not output any message
 --verbose (-v|vv|vvv) Increase the verbosity of messages: 1 for normal output,2 for more verbose output and 3 for debug
 --version (-V)        Display this application version
 --ansi                Force ANSI output
 --no-ansi             Disable ANSI output
 --no-interaction (-n) Do not ask any interactive question

System Admin

Code Block
[root@freepbxdev1 faxpro]# fwconsole sysadmin --help
Help:
 Usage: fwconsole sysadmin action [arg arg...]
 info : Display Activation info
 activate : Activate system with provided Deployment ID
 update : Refresh Activation information
  • Get Activation Information

    Code Block
    [root@freepbxdev1 faxpro]# fwconsole sysadmin info
    Activation Status:
    Zend ID:    M:XXXXX-XXXXX-XXXXX-XXXXX
    Lic File:   Present
    Deployment: freepbxdev1
  • Update the license file on your installation

    Code Block
    [root@freepbxdev1 faxpro]# fwconsole sysadmin update
    Updating license for freepbxdev1
    Done!
    No changes from original Licence.
  • Activate system using your deploymentid

    Code Block
    [root@freepbxdev1 faxpro]# fwconsole sysadmin activate <deploymentid>

...

Note

Requests to weblate are limited to 100/day, without setting --authroization. See https://weblate.sangoma.com/accounts/profile/#api for more information. You will need to login to https://weblate.sangoma.com/accounts/profile/#api to get this token

Code Block
[root@freepbxdev1 faxpro]# fwconsole localization --help
Usage:
  localization [options]
 
Options:
      --authorization=AUTHORIZATION  Authorization Token. Requests are limited to 100/day, without setting this. See https://weblate.sangoma.com/accounts/profile/#api for more information
      --list                         List Modules with localizations
      --update                       Update localizations, optionally provide --module
      --module=MODULE                Module to work against, if not provided all modules are assumed
      --language=LANGUAGE            The language code to work against, if not provided all languages are assumed
      --ignorechange                 Ignore last change date, process regardless
  • List Local Localizations

    Code Block
    [root@Andrews15 voicemail]# fwconsole localization --list
    +---------------------------------------+----------------------+----------------------------------------------------------------------------------------------------------------+
    | Module                                | Rawname              | Languages                                                                                                      |
    +---------------------------------------+----------------------+----------------------------------------------------------------------------------------------------------------+
    | Framework                             | framework            | bg_BG,cs,de_DE,es_ES,fa_IR,fr_FR,he_IL,hu_HU,it_IT,ja_JP,nl_NL,pt_BR,pt_PT,ro_RO,ru_RU,sv_SE,uk_UA,vi,zh_CN    |
    | Preserve Accountcode                  | accountcodepreserve  |                                                                                                                |
    | Altaworx Skin                         | altaworxskin         | en_US                                                                                                          |
    | AMD                                   | amd                  | es_ES                                                                                                          |
    | Announcements                         | announcement         | bg_BG,cs,de_DE,es_ES,fa_IR,fr_FR,he_IL,hu_HU,it_IT,ja_JP,nb_NO,nl_NL,pl,pt_BR,pt_PT,ru_RU,sv_SE,uk_UA,vi,zh_CN |
    | PBX API                               | api                  | es_ES                                                                                                          |
    | Appointment Reminder                  | areminder            | de_DE,es_ES,fa_IR,ja_JP                                                                                        |
    | Asterisk REST Interface Users         | arimanager           | bg_BG,de_DE,es_ES,fa_IR,fr_FR,he_IL,pl,pt_BR,pt_PT,ru_RU,vi,zh_CN                                              |
  • Update All Localizations

    Code Block
    [root@freepbx ~]# fwconsole localization --update
    Processing framework
        framework[bg_BG] last change date unknown unable to determine last change. Skipping (Use --ignorechange to force)
        framework[zh_CN] is already up to date
        framework[cs] is already up to date
        framework[nl_NL] last change date unknown unable to determine last change. Skipping (Use --ignorechange to force)
        framework[fr_FR] will be updated (2017-03-13T18:33:00Z < 2018-05-07T18:33:00Z)
        framework[de_DE] will be updated (2018-10-22T20:01:00Z < 2018-10-24T20:01:00Z)
        framework[he_IL] last change date unknown unable to determine last change. Skipping (Use --ignorechange to force)
        framework[hu_HU] last change date unknown unable to determine last change. Skipping (Use --ignorechange to force)
        framework[it_IT] will be updated (2008-11-09T19:43:00Z < 2018-06-11T19:43:00Z)
        framework[ja_JP] last change date unknown unable to determine last change. Skipping (Use --ignorechange to force)
        framework[fa_IR] last change date unknown unable to determine last change. Skipping (Use --ignorechange to force)
        framework[pt_BR] last change date unknown unable to determine last change. Skipping (Use --ignorechange to force)
        framework[pt_PT] last change date unknown unable to determine last change. Skipping (Use --ignorechange to force)
        framework[ro_RO] last change date unknown unable to determine last change. Skipping (Use --ignorechange to force)
        framework[ru_RU] last change date unknown unable to determine last change. Skipping (Use --ignorechange to force)
        framework[es_ES] will be updated (2018-07-18T19:15:00Z < 2018-07-26T19:15:00Z)
        framework[sv_SE] last change date unknown unable to determine last change. Skipping (Use --ignorechange to force)
        framework[uk_UA] last change date unknown unable to determine last change. Skipping (Use --ignorechange to force)
        framework[vi] last change date unknown unable to determine last change. Skipping (Use --ignorechange to force)
    Finished Processing framework
  • Update Localizations by Module

    Code Block
    [root@freepbx ~]# fwconsole localization --update --module framework
    Processing framework
        framework[bg_BG] last change date unknown unable to determine last change. Skipping (Use --ignorechange to force)
        framework[zh_CN] is already up to date
        framework[cs] is already up to date
        framework[nl_NL] last change date unknown unable to determine last change. Skipping (Use --ignorechange to force)
        framework[fr_FR] will be updated (2017-03-13T18:33:00Z < 2018-05-07T18:33:00Z)
        framework[de_DE] is already up to date
        framework[he_IL] last change date unknown unable to determine last change. Skipping (Use --ignorechange to force)
        framework[hu_HU] last change date unknown unable to determine last change. Skipping (Use --ignorechange to force)
        framework[it_IT] will be updated (2008-11-09T19:43:00Z < 2018-06-11T19:43:00Z)
        framework[ja_JP] last change date unknown unable to determine last change. Skipping (Use --ignorechange to force)
        framework[fa_IR] last change date unknown unable to determine last change. Skipping (Use --ignorechange to force)
        framework[pt_BR] last change date unknown unable to determine last change. Skipping (Use --ignorechange to force)
        framework[pt_PT] last change date unknown unable to determine last change. Skipping (Use --ignorechange to force)
        framework[ro_RO] last change date unknown unable to determine last change. Skipping (Use --ignorechange to force)
        framework[ru_RU] last change date unknown unable to determine last change. Skipping (Use --ignorechange to force)
        framework[es_ES] will be updated (2018-07-18T19:15:00Z < 2018-07-26T19:15:00Z)
        framework[sv_SE] last change date unknown unable to determine last change. Skipping (Use --ignorechange to force)
        framework[uk_UA] last change date unknown unable to determine last change. Skipping (Use --ignorechange to force)
        framework[vi] last change date unknown unable to determine last change. Skipping (Use --ignorechange to force)
    Finished Processing framework
  • Update Localizations by Language

    Code Block
    [root@freepbx ~]# fwconsole localization --update --language it_IT
    Processing framework
        framework[it_IT] will be updated (2008-11-09T19:43:00Z < 2018-06-11T19:43:00Z)
    Finished Processing framework
  • Update Localizations by Module & Language

    Code Block
    [root@freepbx ~]# fwconsole localization --update --module framework --language it_IT
    Processing framework
        framework[it_IT] will be updated (2008-11-09T19:43:00Z < 2018-06-11T19:43:00Z)
    Finished Processing framework

...