Asterisk keepalive script

From Kolmisoft Wiki
Revision as of 07:06, 9 December 2020 by Nerijuss (talk | contribs) (→‎Installation)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

Description

Keepalive script sends OPTIONS packets to Asterisk. If Asterisk does not respond to these packets, script consider that Asterisk is not functioning properly and acts according to configuration (possible actions are restart asterisk, send email, generate core dump).

Installation

rm -fr /usr/src/mor && svn co http://svn.kolmisoft.com/mor/install_script/trunk/ /usr/src/mor
/usr/src/mor/x16/helpers/asterisk_keep_alive/install.sh

After installation, keepalive script will be located here:

/usr/local/mor/asterisk_keep_alive.sh

New cron will be added, which will execute script every minute:

/etc/cron.d/asterisk_keep_alive

Configuration

Before configuring script actions, we recommend to check log file /var/log/mor/mor_asterisk_keep_alive.log

tail -f /var/log/mor/mor_asterisk_keep_alive.log

If file contains lines:

[root@localhost ~]# tail -f /var/log/mor/mor_asterisk_keep_alive.log
2020-02-06 14:31:02 [NOTICE] Asterisk responded to OPTION packets sent to 127.0.0.1
2020-02-06 14:32:01 [NOTICE] Asterisk responded to OPTION packets sent to 127.0.0.1
2020-02-06 14:33:02 [NOTICE] Asterisk responded to OPTION packets sent to 127.0.0.1

It means that current script configuration is correct and you can enable actions as described bellow.

If log show actions with WARNING, it means that Asterisk does not respond to OPTION packets

2020-02-06 14:23:18 [WARNING] Ping IP is 192.168.5.5
2020-02-06 14:23:18 [WARNING] Asterisk did not respond to OPTIONS packets. Trying one more time
2020-02-06 14:23:38 [WARNING] Asterisk did not respond to OPTIONS packets second time

It either means that Asterisk is down or configuration is incorrect. If Asterisk is running and you see such lines in log, do not set RESTART to 1, as in this case Asterisk will be restarted incorrectly.

You can change/enable actions in script itself. Open script /usr/local/mor/asterisk_keep_alive.sh and change options as documented in script. By default all actions are set to 0

# 1 - Restart Asterisk, 0 - do not restart Asterisk
RESTART=0

# 1 - Generate core dump, 0 - do not generate core dump
GENERATE_CORE_DUMP=0

# 1 - Send email notification, 0 - do not send email notification
# Email is sent using MOR SMPT server details from MOR GUI (if exist)
SEND_EMAIL=0

# Email address to send notification, taken into account only if SEND_EMAIL = 1
EMAIL_ADDRESS=""

# IP to send OPTION packets
# IF left empty (recommended), 127.0.0.1 will be used if binaddr 0.0.0.0, or bindarr otherwise
PING_IP=""

Text of notification email is within script file. You can alter if needed.

Log

Asterisk keepalive log is available here:

/var/log/mor/mor_asterisk_keep_alive.log

If Asterisk respond to OPTIONS packets, you will see entries with [NOTICE] like this.

2020-02-06 14:31:02 [NOTICE] Asterisk responded to OPTION packets sent to 127.0.0.1

If Asterisk does not respond to OPTIONS packets, you will see entries with [WARNING]

2020-02-06 14:23:18 [WARNING] Asterisk did not respond to OPTIONS packets. Trying one more time

How to disable

Remove cron:

rm -f /etc/cron.d/asterisk_keep_alive
service crond restart