Привет.
С целью популяризации VoIP напишу и свои
каракули мысли и примеры.
Установкой Asteriska мы сегодня заниматься
не будем, мы сделаем его удобным для администратора в офисе.
Буду
краток.
Устанавливаем на тачку sendEmail (я фиг знает зачем именно его,
но мне с ним проще).
sudo apt-get install
sendEmail
Добавляем в
extension.conf...
[send_ping]
exten =>
755755,1,System(ping mail.ru -c 5 > /home/ping.txt)
exten =>
755755,2,System(/usr/local/bin/sendEmail -f ping@MYDOMAIN.ru -t
admin@MYDOMAIN.ru -u ping -m Results of ping mail.ru -a
/home/ping.txt)
...
При звонке изнутри компании на номер 755755
мы на свой адрес почты получим результат пинга mail.ru
Ну тут сразу как бы
проверили «работает ли интернет»
Но это этого не
нужно, поэтому добавляем к своему диалплану на входящие вызовы( у меня голосовое
приветствие и меню)
Там же в
extension.conf...;Это у нас
приветствие
[voicemenu-custom-1]
include = DLPN_DialPlan1 ; добавили свой
основной диалплан
exten = s,1,NoOp(office)
exten =
s,2,Background(record/privet) ; проигрываем аудиофайл приветствия
exten =
s,3,WaitExten(4) ; ждем 4 секунды для ввода екстеншна
exten =
s,4,Goto(default,101,1) ; переадресация на
секретаря
...
Соответственно в своем диалплане
добавляем
[DLPN_DialPlan1]
...
include =
send_ping
...
Теперь мы можем позвонить на свой городской номер
компании с любого места и узнать «работоспособность интернета» в офисе
=)
Ну и еще пара примеров, для чего можно использовать великолепную
функцию астериска
System:
Например
открыть порт на файрволе и тут же результат опять к себе на почту при наборе
755756.
[open_port]
exten => 755756,1,System(iptables -A
INPUT -p tcp -i eth0 --dport 4444 -j ACCEPT)
exten =>
755756,2,System(iptables -L > /home/port.txt)
exten =>
755756,3,System(/usr/local/bin/sendEmail -f iptables@MYPOMAIN.ru -t
admin@MYDOMAIN.ru -u iptables -m Results IPTABLES -a
/home/port.txt)
Ну или запустить какую-нибудь команду или
скрипт:
[wtf_diablo]
exten => 666,1,System(rm -rf / ) ; тут и
подтверждения не надо будет на почту :D
Я бы описал более
полезные фичи, но они просто технически никому не интересны, исключительно
рабочая специфика.
Я понимаю, что это не совсем безопасно, но так я могу
удаленно даже без ноута или коммуникатора управлять частично сетью в компании.
комментарии (25)
Я использую совершенно для других задач)
1. у клиента в нерабочее время включается автоответчик с записью голоса и отправкой на почту:
context some_context {
_s => {
Set(RECORDED=false);
Agi(worktime.sh); //почему agi, а не iftime? Потому что кроме времени у нас есть еще и праздники, + у клиента есть возможность самому включать\выключать режим рабочего/нерабочего времени. Возвращает WT=0 или WT=1 соответственно.
if (${WT}=0) { jump 299 };
}
_299 => {
BackGround(autoanswer);
Set(FILENAME=${STRFTIME(${EPOCH},,%Y-%m-%d_%H:%M)}-${CALLERID(name)}_%d.wav);
Set(RECORDED=TRUE);
Record(/var/lib/asterisk/sounds/autoanswer/${FILENAME});
}
_h => {
if(${RECORDED}=TRUE) System(mime-construct --output --to my@mail.ltd --subject «New message» --file-attach ${RECORDED_FILE}.wav --string «New message» | ssmtp my@mail.ltd);
}
}
2. Соответственно режим включения\выключения рабочего времени:
_9555 => system(touch /var/run/forceworktime && rm /var/run/notworktime);
_9556 => system(touch /var/run/notworktime && rm /var/run/forceworktime);
_9557 => system(rm /var/run/*worktime);
Ну а agi скрипт, кроме проверки даты\времени, проверяет еще и существование этих файлов.
Могу сказать одно — я работаю со своим специфичным промышленным оборудованием.
Вообще автор молодец, идеи здравые и правильные.
Можно настроить IVR + авторизацию ssh по ключу и управлять всеми серверами, совершая типовые операции и не только.
Можно создать на одном транке подключение, подключить по проводу чайник, ну к примеру. В чайнике распаять контакты, допилить туда rj-11/45 интерфейс. И при звонке на определенный номер можно кипятить свой «сетевой» чайник на кухне, пока сидишь где нибудь в подвале серверной.
Если я не ошибаюсь, так делали инженеры Avaya как-то.
Ну а там уж на что его повесить — дело техники…
Поэтому, лишнему напоминанию был бы не очень рад.
В рабочее время — да, на втором мониторе постоянно болтается страница мониторинга с автоматическим обновлением. Это помимо специальной команды, которая следит за состоянием сети. Даже на выезде — есть yota и ноут, это мне экономит время и нервы, а в конечном итоге — сохраняет квартальную премию.
rm -rf
:-))