SCOPTEL IP PBX Software - Troubleshooting¶
General Troubleshooting
Log files
SIP Response Codes 1XX - SIP Response Codes 2XX
SIP Response Codes 3XX - SIP Response Codes 400-416
SIP Response Codes 417-439 - SIP Response Codes 440-494
SIP Response Codes 5XX - SIP Response Codes 6XX
OS CLI Commands 1-3
OS CLI Commands 2-3
OS CLI Commands 3-3
Asterisk CLI Commands
OS CLI Commands 3-3
Asterisk CLI Commands
Database Repair Commands
MySQL Repair is Taking Too Long
SCOPTEL GUI is Slow
SCOPTEL GUI Will Not Restart
SCOPTEL GUI Fatal Error and Dead Call Processing
Debugging Authentification Failures 1-3
Debugging Authentification Failures 3-3
Debugging Call Failures with ‘database show’
Debugging Call Failures with SIP Cause Codes
SCOPSTATS System Monitoring Logs
General Troubleshooting¶
Most telephony errors are caused by one of the following causes:
Bad authentication credentials
DNS resolution
Class of Service misconfigurations
Firewall issues
Asterisk bugs
User error (DND, call forwarding etc.)
CLI tools are used to debug most of these issues
Log files¶
Server Logs: /var/log/messages
SMTP Logs: /var/log/maillog
Hardware Logs: dmesg
Asterisk Logs: /var/log/asterisk/messages
Asterisk Files: /etc/asterisk
SCOPSERV PHP logs: /tmp/php2.log
Asterisk Core Dumps (GDB files): dir /tmp/core*
SIP Response Codes 3XX¶
Redirection |
3xx |
|
---|---|---|
300 |
Multiple Choices |
|
301 |
Moved Permanently |
|
302 |
Moved Temporarily |
|
305 |
Use Proxy |
|
380 |
Alternative Service |
SIP Response Codes 4XX¶
Request Failure |
4xx |
|
---|---|---|
400 |
Bad Request |
|
401 |
Unauthorized |
|
402 |
Payment Required |
|
403 |
Forbidden |
|
404 |
Not Found |
|
405 |
Method Not Allowed |
|
406 |
Not Acceptable |
|
407 |
Proxy Authentication Required |
|
408 |
Request Timeout |
|
410 |
Gone |
|
412 |
Conditional Request Failed |
[RFC3903] |
413 |
Request Entity Too Large |
|
414 |
Request-URI Too Long |
|
415 |
Unsupported Media Type |
|
416 |
Unsupported URI Scheme |
|
417 |
Unknown Resource-Priority |
[RFC4412] |
420 |
Bad Extension |
|
421 |
Extension Required |
|
422 |
Session Interval Too Small |
[RFC4028] |
423 |
Interval Too Brief |
|
424 |
Bad Location Information |
[RFC6442] |
428 |
Use Identity Header |
[RFC4474] |
429 |
Provide Referrer Identity |
[RFC3892] |
430 |
Flow Failed |
[RFC5626] |
433 |
Anonymity Disallowed |
[RFC5079] |
436 |
Bad Identity-Info |
[RFC4474] |
437 |
Unsupported Certificate |
[RFC4474] |
438 |
Invalid Identity Header |
[RFC4474] |
439 |
First Hop Lacks Outbound Support |
[RFC5626] |
440 |
Max-Breadth Exceeded |
[RFC5393] |
469 |
Bad Info Package |
[RFC6086] |
470 |
Consent Needed |
[RFC5360] |
480 |
Temporarily Unavailable |
|
481 |
Call/Transaction Does Not Exist |
|
482 |
Loop Detected |
|
483 |
Too Many Hops |
|
484 |
Address Incomplete |
|
485 |
Ambiguous |
|
486 |
Busy Here |
|
487 |
Request Terminated |
|
488 |
Not Acceptable Here |
|
489 |
Bad Event |
[RFC6665] |
491 |
Request Pending |
|
493 |
Undecipherable |
|
494 |
Security Agreement Required |
[RFC3329] |
SIP Response Codes 5XX¶
Server Failure |
5xx |
|
---|---|---|
500 |
Server Internal Error |
|
501 |
Not Implemented |
|
502 |
Bad Gateway |
|
503 |
Service Unavailable |
|
504 |
Server Time-out |
|
505 |
Version Not Supported |
|
513 |
Message Too Large |
|
580 |
Precondition Failure |
[RFC3312] |
SIP Response Codes 6XX¶
Global Failure |
6xx |
|
---|---|---|
600 |
Busy Everywhere |
|
603 |
Decline |
|
604 |
Does Not Exist Anywhere |
|
606 |
Not Acceptable |
OS CLI Commands¶
|
executes a full software update |
|
installs a package from repositories |
|
displays license and admin password |
|
shows install status of dahdi wanpipe mISDN drivers |
|
opens Asterisk CLI for Asterisk command line debugging |
|
opens Asterisk CLI for Asterisk command line debugging with increased verbosity |
|
shows which service is using port 5555 |
|
shows package version |
|
removes package without uninstalling dependencies |
|
shows installed packages version |
|
changes ownership recursively on a path |
|
kills a process ID |
|
shows all processes and consumption |
|
shows all processes and consumption |
|
network trace on port 25 to debug SMTP issues |
|
Linux DNS lookup for MX record on specified domain |
|
rm -rf /root/.ssh/known_hosts |
|
CLI command to download a file from path |
|
network trace on port 69 to display TFTP traffic |
|
display contents of file to screen |
|
Linux text editor to edit path |
|
restart network without rebooting server |
|
stop service name without rebooting server |
|
display service name status |
|
reboot server |
|
shutdown server |
|
Linux command line web browser |
|
Ping an IP address |
|
trace an IP address through multiple hops |
|
saves a SIP pcap trace to /tmp using eth0 |
|
prints all crond PID’s |
|
removes the package name without dependencies |
|
removes a broken package forcibly |
|
prints the routing table |
|
The “ifconfig” command allows the operating system to setup network interfaces and allow the user to view information about the configured network interfaces. |
Asterisk CLI Commands¶
|
display active channels |
|
show all SIP peers status |
|
show details of SIP peer |
|
display astDB info (useful to see if a phone is in DND status |
|
displays all ACD queues info |
|
displays status of all PRI spans |
|
shows Q.931 and SABME messages |
|
stop intense PRI debugging on span number |
|
Request that a channel be hung up. The hangup takes effect the next time the driver reads or writes from the channel. If ‘all’ is specified instead of a channel name, all channels will see the hangup request. |
|
This command lists registered hints |
|
prints agi debug messages (always useful when creating a support ticket) |
|
prints SIP messages to the CLI |
Database Repair Commands¶
mysqlcheck -A -o -r |
Automatically optimizes and repairs mysql tables. If crashed on Slave (HA) then this need to be done on slave and not master |
If you have to rebuild queue_log db :
service SCOPSERV_queuelog stop
`` /var/www/SCOPSERV/telephony/scripts/queue2sql.pl –recover /var/log/asterisk/queue_log ``
service SCOPSERV_queuelog start
Update CDR database direction
myql SCOPSERV (enter) update cdr set calldir='unknown';
MySQL Repair is Taking Too Long¶
If the Server is not configured in High Availability Mode (standard installation):
mysql SCOPSERV truncate cel; truncate phones_history; truncate horde_histories;
If the Server is configured in High Availability Mode:
mysql SCOPSERV_repl truncate cel; truncate phones_history; truncate horde_histories;
SCOPTEL GUI is Slow¶
mysqlcheck -A -o -r
: Automatically optimizes and repairs mysql tables. If crashed on Slave (HA) then this need to be done on slave and not master
SCOPSERV_yum update
: Older packages, especially prior to SCOPSERV_realtime nodejs changes are not fully optimized
Telephony>Configuration>Reports (CDR/ACD)>Archiving>Enable Archiving :[x]
SCOPTEL GUI Will Not Restart¶
mysqlcheck -A -o -r |
Automatically optimizes and repairs mysql tables. If crashed on Slave (HA) then this need to be done on slave and not master |
service SCOPSERV stop |
Stops the GUI service and realtime |
lsof -i :5555 |
Displays the PID that is bound to the SCOPSERV service port |
kill -KILL <PID output of lsof -I 5555> |
Kills the PID bound to the SCOPSERV port |
service SCOPSERV start |
Starts the GUI once the binding port is freed |
SCOPTEL GUI Fatal Error and Dead Call Processing¶
Most often this is caused by a full hard drive
You must delete files on the hard drive to restore call processing
Usually this is caused by:
Too many local backups
Too many recording files in /var/spool/asterisk/monitor/
Too many files in /var/log/asterisk/
Too many files in /tmp/
To locate the largest folders do:
cd / |
Change to root directory |
du * -s |
Print Disk Usage Summary and locate the largest folder |
Use the ‘cd’ command to change into the largest directory
Use the Linux ‘rm’ command to remove files
Keep drilling down from / and use the ‘du * -s’ command to locate the largest folders and keep deleting files with the ‘rm’ command until you have freed enough space in the file system to restore normal service.
Debugging Authentications Failures¶
Here is a typical authentication failure in Asterisk. The reason for this failure is that peer 228 does not exist!
[root@demo ~]# asterisk -vr
¶
[Aug 1 14:41:46] Running as group 'SCOPSERV' [Aug 1 14:41:46] Connected to Asterisk 1.8.12.0 currently running on demo (pid = 6006) Verbosity is at least 3 Core debug is at least 3 [2012-08-01 14:50:06] NOTICE[6260]: chan_sip.c:24974 handle_request_register: Registration from '"228"<sip:228@SCOPSERV.local>' failed for '192.168.192.55:57744' - No matching peer found
Here is a typical authentication failure in Asterisk. The reason for this failure is that the password does not match!
[root@demo ~]# asterisk -vr
¶
[Aug 1 14:41:46] Running as group 'SCOPSERV' [Aug 1 14:41:46] Connected to Asterisk 1.8.12.0 currently running on demo (pid = 6006) Verbosity is at least 3 Core debug is at least 3 [2012-08-01 14:53:49] NOTICE[6260]: chan_sip.c:24974 handle_request_register: Registration from '"227"<sip:227@SCOPSERV.local>' failed for '192.168.192.55:63316' - Wrong password
Here is a typical authentication success in Asterisk
[root@demo ~]# asterisk -vr
¶
[Aug 1 14:41:46] Running as group 'SCOPSERV' [Aug 1 14:41:46] Connected to Asterisk 1.8.12.0 currently running on demo (pid = 6006) Verbosity is at least 3 Core debug is at least 3 [2012-08-01 14:56:00] NOTICE[6260]: chan_sip.c:20812 handle_response_peerpoke: Peer '227' is now Reachable. (7ms / 2000ms)
Debugging Call Failures With ‘database show’¶
In this first example a call from 227 to 221 fails to ring 221
[2012-08-01 15:02:05] == Extension Changed 227[default-local] new state InUse for Notify User 221 [2012-08-01 15:02:05] -- Executing [221@default-default:9] Macro("SIP/227-00000005", "default-dial,SIP/221,221,default,,en,u221@default,twWxXkKg,,default_default,,Local/0@default-local/n,vm") in new stack [2012-08-01 15:02:05] -- Executing [s@macro-default-dial:1] NoOp("SIP/227-00000005", ""CALL TO LOCAL EXTENSION FROM 227(227)"") in new stack [2012-08-01 15:02:05] -- <SIP/227-00000005>AGI Script agi://127.0.0.1:4573/dial completed, returning 0 [2012-08-01 15:02:05] -- Executing [s@macro-default-dial:4] ExecIf("SIP/227-00000005", "1?Macro(all-vm,default,b,221@default,Local/0@default-local/n,vm)") in new stack [2012-08-01 15:02:05] -- Executing [s@macro-all-vm:1] NoOp("SIP/227-00000005", "CALL TO VOICEMAIL") in new stack [2012-08-01 15:02:05] -- Executing [s@macro-all-vm:2] VoiceMail("SIP/227-00000005", "221@default,b") in new stack
database show the extension has enabled the DND feature code! demo*CLI> database show
/CustomDevstate/dnd-default-221 : BUSY /DND/Local/*78@default : On /DND/SIP/221 : On
Debugging Call Failures with SIP Cause Codes¶
In this second example a call from 227 to 221 fails to ring 221
[2012-08-01 15:24:27] -- Executing [221@default-default:1] Set("SIP/227-00000009", "CDR(tenant)=default") in new stack [2012-08-01 15:24:27] -- Executing [221@default-default:9] Macro("SIP/227-00000009", "default-dial,SIP/221,221,default,,en,u221@default,twWxXkKg,,default_default,,Local/0@default-local/n,vm") in new stack [2012-08-01 15:24:27] -- Executing [s@macro-default-dial:1] NoOp("SIP/227-00000009", ""CALL TO LOCAL EXTENSION FROM 227(227)"") in new stack [2012-08-01 15:24:27] -- Called SIP/221 [2012-08-01 15:24:27] -- Got SIP response 302 "Moved Temporarily" back from 192.168.100.100:5060 [2012-08-01 15:24:27] -- Now forwarding SIP/227-00000009 to 'Local/555@default-default' (thanks to SIP/221-0000000a) [2012-08-01 15:24:27] NOTICE[30807]: app_dial.c:892 do_forward: Not accepting call completion offers from call-forward recipient Local/555@default-default-59dd;1 [2012-08-01 15:24:27] NOTICE[30807]: chan_local.c:899 local_call: No such extension/context 555@default-default while calling Local channel [2012-08-01 15:24:27] NOTICE[30807]: app_dial.c:980 do_forward: Forwarding failed to dial 'Local/555@default-default' [2012-08-01 15:24:27] == Everyone is busy/congested at this time (1:0/0/1)
The SIP response code shows the extension has enabled a native SIP forward to 555 from the SIP phone! There is no 555 in the dial plan and the forward fails. The user must remove the bad forwarding attempt from their phone.
SCOPSTATS System Monitoring Logs¶
The SCOPSTATS reporting engine can also display System Logs instead of accessing the Linux file system