Created
April 18, 2012 10:01
-
-
Save drax68/2412600 to your computer and use it in GitHub Desktop.
Zabbix phone notification
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Шаг №1 — Пререквизиты. Ставим festival и pjsip | |
sudo aptitude install festival | |
Загружаем и собираем pjsip: | |
wget http://www.pjsip.org/release/1.10/pjproject-1.10.tar.bz2 | |
tar xfv pjproject-1.10.tar.bz2 | |
cd pjproject-1.10 | |
./configure --disable-sound | |
make dep | |
make | |
Из всего что насобиралось понадобится только pjsua: | |
sudo cp pjsip-apps/bin/pjsua-x86_64-unknown-linux-gnu /usr/bin/pjsua | |
Создадим файл /etc/pjsuarc со следующим содержанием: | |
--duration=1 #если снимем трубку, то сервер тут же отключится | |
--null-audio #чтобы pjsua не ругалась на отсутствие звукового устройства | |
--id sip:SIPID@sipnet.ru #конфиг для sipnet.ru | |
--registrar sip:sipnet.ru | |
--realm etc.tario.ru | |
--username SIPID | |
--password PASSWORD | |
Теперь самое время проверить конфигурацию и сделать тестовый звонок: | |
pjsua --config-file=/etc/pjsuarc sip:+12345678901@sipnet.ru | |
В случае с sipnet, если не включена услуга «АОН» в разделе «Премиум услуги» (не знаю почему премиум, услуга бесплатная), или выбран тот же номер, на который совершается звонок, то определится номер +74993462198 (по крайней мере для России), это не позволяет идентифицировать, что звонит наш сервер. | |
Поэтому я поступил так: зарегистрировал в sipnet свой второй номер и указал его в качестве отображаемого номера. В телефоне сохранил его под именем Nagios и поставил ему приятную громкую мелодию. | |
Далее изменим права на /etc/pjsuarc, чтобы видеть пароль могли только root и nagios: | |
sudo chmod 640 /etc/pjsuarc | |
sudo chown root:nagios /etc/pjsuarc | |
Шаг №2 — Конфиг zabbix_server | |
zabbix@zabbix-new:~$ grep AlertScript /etc/zabbix/zabbix_server.conf | |
### Option: AlertScriptsPath | |
AlertScriptsPath=/home/zabbix/bin/ | |
Шаг №3 — скрипты заббикса | |
zabbix@zabbix-new:~$ cat /home/zabbix/bin/sipalarm | |
#!/bin/bash | |
HOME=/home/zabbix | |
SPOOL=$HOME/spool | |
STAMP=`date +%s` | |
add_to_spool () { | |
text2wave <(echo $2) > $SPOOL/$STAMP$1.wav | |
} | |
add_to_spool "$1" "$2" | |
$HOME/bin/sipnd & | |
zabbix@zabbix-new:~$ cat /home/zabbix/bin/sipnd | |
#!/bin/bash | |
HOME=/home/zabbix | |
SPOOL=$HOME/spool | |
die () { | |
echo "$1" | |
exit 0 | |
} | |
check_lock () { | |
test -e $HOME/sipnd.lock && die "already running" | |
} | |
get_lock () { | |
echo $$ > $HOME/sipnd.lock | |
} | |
drop_lock () { | |
rm $HOME/sipnd.lock | |
} | |
check_lock; get_lock | |
for i in $SPOOL/*.wav; do | |
TMP=${i##*+} | |
PHONE=+${TMP%%.wav} | |
echo "DEBUG: pjsua --config-file=/etc/pjsua.cfg --play-file=$i sip:$PHONE@sipnet.ru --auto-play" | |
( sleep 60 && echo q ) | pjsua --config-file=/etc/pjsua.cfg --play-file=$i sip:$PHONE@sipnet.ru --auto-play | |
wait | |
rm $i | |
done | |
drop_lock | |
Шаг №4 — Настройка оповещений |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment