Page tree
Skip to end of metadata
Go to start of metadata

Applies to VoipNow 3 and higher!

When dealing with call failure, you need to determine the VoipNow infrastructure layer where the call seems to fail: Kamailio or Asterisk (Dialplan or Asterisk Applications). This article helps you identify and fix the system component responsible for call failure. 

Troubleshooting Kamailio 

Make sure your SIP traffic reaches Asterisk. To do this, log in your VoipNow server as root using your favorite SSH console (e.g. Putty), set sip set debug on and make a call. If the SIP traffic reaches Asterisk, then the problem is not related to this layer.

If the SIP traffic does not reach Asterisk, it means that Kamailio has encountered a problem. To solve it, take the following steps:

STEP 1: Set the debug to a value higher than 1. For that you can use the following command:

kamctl fifo debug 3

STEP 3: Inspect the /var/log/kamailio/kamailio.log file and check for errors.

STEP 4: You may also need to inspect your SIP traffic using the following command:

tcpdump -nni any -s 0 udp -w file_name.pcap.

Troubleshooting Asterisk 

To troubleshoot Asterisk, take the following steps:

STEP 1: Set your logging level to /etc/asterisk/logger.conf and reload Asterisk logger module.

This allows an easier reading of the dialplan flow.

[logfiles]

console => notice,warning,error ; what to log on console
asterisk -rx 'logger reload'

STEP 2: Open your Asterisk console and run a test call.

asterisk -rcvvvvvvvvvvv


STEP 3:
Look through the console output and check whether your call ended in the dialplan logic or in some application logic.

In order to find this out, you need to identify the last application run in the console log before the hangup/crash and verify if any application errors or warnings occurred. If the last application exited smoothly or no application was run, this means the dialplan logic ended the call and the issue should be debugged at the dialplan level. 

STEP 4: If an application reported an error, then turn on debug mode in logger.conf and identify the last application that was run, along with the debug messages logged by this application.

#trackbackRdf ($trackbackUtils.getContentIdentifier($page) $page.title $trackbackUtils.getPingUrl($page))

Except where otherwise noted, content in this space is licensed under a Creative Commons Attribution 4.0 International.