Asterisk CLI useful commands
Entering CLI
Before you can see any of the messages in Asterisk CLI, you need to ssh to the system by using ssh command (if using Linux on your computer) or using putty or similar software if on PC/MAC. After that you can enter the Asterisk CLI via following command:
[root@Motion-PBX ~]# asterisk -rvvvvv
where number of Vs define the verbosity level of the CLI.
Once inside you will see a lot of useful info print out for all actions on the system, Asterisk related though. You will see:
- Phone calls
- Peer registrations
- Subscribe notification
- Reload of system components (Extensions, Trunks, IVRs, etc.)
Asterisk 13.6.0, Copyright (C) 1999 - 2014, Digium, Inc. and others. Created by Mark Spencer <markster@digium.com> Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details. This is free software, with components licensed under the GNU General Public License version 2 and other licenses; you are welcome to redistribute it under certain conditions. Type 'core show license' for details. ========================================================================= Connected to Asterisk 13.6.0 currently running on Motion-PBX (pid = 2112) Motion-PBX*CLI>
Entering CLI with additional debugging
If for some reason you have some inexplicable issues, like Asterisk not being able to start, you can try to run the CLI with different set of switches which should give some application specific debug info which includes start up sequence, database connection, registration retries, etc.
[root@Motion-PBX ~]# asterisk -rddddd
where number of Ds define the verbosity of these debug messages.
Parsing /etc/asterisk/asterisk.conf Seeding global EID '00:50:56:8e:23:02' from 'eth0' using 'siocgifhwaddr' Asterisk 13.6.0, Copyright (C) 1999 - 2014, Digium, Inc. and others. Created by Mark Spencer <markster@digium.com> Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details. This is free software, with components licensed under the GNU General Public License version 2 and other licenses; you are welcome to redistribute it under certain conditions. Type 'core show license' for details. ========================================================================= Connected to Asterisk 13.6.0 currently running on Motion-PBX (pid = 2112) Core debug was OFF and is now 5.
Important
To turn off the debug messages run this command:
Motion-PBX*CLI> core set debug off Core debug was 5 and is now OFF.
Running commands outside of CLI
If you don't need to be inside CLI, or you need just to execute some command without concern of output from CLI, you can do so by running Asterisk command with following switches being used:
[root@Motion-PBX ~]# asterisk -rx "reload"
Above will reload Asterisk configuration without going into CLI.
SIP debugging
First important command(s) to know is the SIP debug set of commands which are useful when you need to see the SIP data stream going through Asterisk. Simple command is to enable SIP debugging for one phone with:
SIP SET DEBUG PEER PEERNAME
Motion-PBX*CLI> sip set debug peer giove1motion SIP Debugging Enabled for IP: 151.0.175.186
If for some reason thepeer is not registered and the IP of the peer is not known to the asterisk, above command will not work and CLI will not show any SIP messages.
In such case, if you know the IP from which traffic should come, it is better to turn on debugging for that specific IP like this:
SIP SET DEBUG IP PEER_IP
where PEER_IP is the IP address of the peer which should send traffic to said extension/trunk.
When you finish debugging the SIP stream, you need to turn off SIP debugging since leaving that running clutters the CLI output and you might miss other important information on the system.
Important
To turn off SIP debug run this command:
Motion-PBX*CLI> sip set debug off SIP Debugging Disabled
RTP Debugging
One of the primary techniques is to view what is actually getting sent and received by VOIP devices.
If you have issues with audio problems, enable the RTP debug
Motion-PBX*CLI> rtp set debug on RTP Debugging Enabled
Example of proper bidirectional RTP traffic
Got RTP packet from 151.0.175.186:55903 (type 00, seq 013414, ts 317314000, len 000160) Sent RTP packet to 82.215.163.137:10498 (type 00, seq 053165, ts 317314000, len 000160) Got RTP packet from 82.215.163.137:10498 (type 00, seq 008373, ts 1558588704, len 000160) Sent RTP packet to 151.0.175.186:55903 (type 00, seq 020095, ts 1558588704, len 000160) Got RTP packet from 151.0.175.186:55903 (type 00, seq 013415, ts 317314160, len 000160) Sent RTP packet to 82.215.163.137:10498 (type 00, seq 053166, ts 317314160, len 000160)
Important
To turn off RTP debug run this command:
Motion-PBX*CLI> rtp set debug off RTP Debugging Disabled
CODEC transcoding list
If for some reason you have issues with audio problems, some of the messages might indicate codec incompatibilities on the system. In such cases you can see the possible translation paths in Asterisk with following command:
Motion-PBX*CLI> core show translation
This command will show a table of possible codec transcoding/translation paths that can be followed on the system.
When you see a - sign, it means that transcoding between said codecs is not possible. In most cases, the reason for such issue is missing codec.
Motion-PBX*CLI> core show translation Translation times between formats (in microseconds) for one second of data Source Format (Rows) Destination Format (Columns) ulaw alaw gsm g726 g726aal2 adpcm slin slin slin slin slin slin slin slin slin lpc10 ilbc g722 testlaw ulaw - 9150 15000 15000 15000 15000 9000 17000 17000 17000 17000 17000 17000 17000 17000 15000 15000 17250 15000 alaw 9150 - 15000 15000 15000 15000 9000 17000 17000 17000 17000 17000 17000 17000 17000 15000 15000 17250 15000 gsm 15000 15000 - 15000 15000 15000 9000 17000 17000 17000 17000 17000 17000 17000 17000 15000 15000 17250 15000 g726 15000 15000 15000 - 15000 15000 9000 17000 17000 17000 17000 17000 17000 17000 17000 15000 15000 17250 15000 g726aal2 15000 15000 15000 15000 - 15000 9000 17000 17000 17000 17000 17000 17000 17000 17000 15000 15000 17250 15000 adpcm 15000 15000 15000 15000 15000 - 9000 17000 17000 17000 17000 17000 17000 17000 17000 15000 15000 17250 15000 slin 6000 6000 6000 6000 6000 6000 - 8000 8000 8000 8000 8000 8000 8000 8000 6000 6000 8250 6000 slin 14500 14500 14500 14500 14500 14500 8500 - 8000 8000 8000 8000 8000 8000 8000 14500 14500 14000 14500 slin 14500 14500 14500 14500 14500 14500 8500 8500 - 8000 8000 8000 8000 8000 8000 14500 14500 6000 14500 slin 14500 14500 14500 14500 14500 14500 8500 8500 8500 - 8000 8000 8000 8000 8000 14500 14500 14500 14500 slin 14500 14500 14500 14500 14500 14500 8500 8500 8500 8500 - 8000 8000 8000 8000 14500 14500 14500 14500 slin 14500 14500 14500 14500 14500 14500 8500 8500 8500 8500 8500 - 8000 8000 8000 14500 14500 14500 14500 slin 14500 14500 14500 14500 14500 14500 8500 8500 8500 8500 8500 8500 - 8000 8000 14500 14500 14500 14500 slin 14500 14500 14500 14500 14500 14500 8500 8500 8500 8500 8500 8500 8500 - 8000 14500 14500 14500 14500 slin 14500 14500 14500 14500 14500 14500 8500 8500 8500 8500 8500 8500 8500 8500 - 14500 14500 14500 14500 lpc10 15000 15000 15000 15000 15000 15000 9000 17000 17000 17000 17000 17000 17000 17000 17000 - 15000 17250 15000 ilbc 15000 15000 15000 15000 15000 15000 9000 17000 17000 17000 17000 17000 17000 17000 17000 15000 - 17250 15000 g722 15600 15600 15600 15600 15600 15600 9600 17500 9000 17000 17000 17000 17000 17000 17000 15600 15600 - 15600 testlaw 15000 15000 15000 15000 15000 15000 9000 17000 17000 17000 17000 17000 17000 17000 17000 15000 15000 17250 -
Reloading the complete Asterisk configuration
In cases, and not limited to, where you did manual modifications to Asterisk dialplan, you need to reload the complete configuration of the Asterisk subsystem which can be done by a simple command:
Motion-PBX*CLI> reload
Or, out of the Asterisk CLI
[root@Motion-PBX ~]# asterisk -rx "reload"
This will reload all the configuration related to Asterisk telephony engine.
Restarting the Asterisk
If reloading of Asterisk is not enough for the changes made, or there is other reason to do so, you can restart complete Asterisk with:
[root@Motion-PBX ~]# service asterisk restart
List peers
When checking the availability of phones/trunks, you can print out a list of the peers on the system:
Motion-PBX*CLI> sip show peers
The command will print out a list of SIP peers on the system with additional info like online status and IP address from which they connect.
Active calls
Watch the complete list of the active channels and active calls
Motion-PBX*CLI> core show channels
SIP channels list
Watch the complete list of the SIP channels
Motion-PBX*CLI> sip show channels
Registered trunks
Check the registration status of the SIP trunks
Motion-PBX*CLI> sip show registry Host dnsmgr Username Refresh State Reg.Time voip.eutelia.it:5060 N 0110703070 105 Registered Tue, 17 Jan 2017 14:39:52 82.215.163.137:5060 N xenia_bs2 105 Registered Tue, 17 Jan 2017 14:39:52 2 SIP registrations.
Note
The trunk registration string must be previously configured in the trunk section of the XCALLY Web GUI
Checking the ODBC connection pool
asterisk - r
odbc show asterisk
If you need more connections, please increase them inside this file:
/etc/asterisk/res_odbc.conf
Example of res_odbc.conf setup to support up to 50 connections that can be open at a given time:
[asterisk]
max_connections => 50
Don't forget to reload asterisk in case you change the max_connections:
asterisk -r
reload
By increasing the maximum number of connections the pool can maintain you should find Asterisk realtime to be both more stable and fast!