вторник, 7 мая 2013 г.

Логинация агентов коллцентра с телефона на Asterisk

У клиента возникло желание логинить коллбэк агентов колл-центра с телефона, дабы не запутывать народ с веб интерфейсом. Итак, приступим к выполнению поставленной задачи.
Откроем файл /etc/asterisk/extensions_custom.conf, добавим 2 строки в инклюд, закоментируем контекст [agentlogin] и ниже пропишем контекст агент-логин и агент-логоф. Выглядить это все должно вот так:


[from-internal-custom]
exten => 1234,1,Playback(demo-congrats)         ; extensions can dial 1234
exten => 1234,2,Hangup()
exten => h,1,Hangup()
include => custom-login
include => custom-logoff
include => conferences
include => calendar-event
include => weather-wakeup

пятница, 26 апреля 2013 г.

Бэкап конфигов роутеров и цисок средствами системы


Копирование конфига рутера или циски на внешний tftp сервер
то есть есть последовательность команд которые при выполнении bash отправляет телнету, например echo - команда баша,а open 172.25.26.40 - команда телнета, получается echo отправляет команды друг за другом телнет клиенту, который этими командами и лезет в роутер, причем после каждой отправленной команды средствами sleep bash'а мы некоторое время ожидаем для предотвращения таймаута ответа.

(
echo open 172.25.26.40
sleep 2
echo "sandi"
sleep 1
echo "copy startup-config tftp://172.25.26.38/conf"
sleep 5
echo "exit"
) | telnet

пятница, 22 марта 2013 г.

Перевели UTM5 с 32 битной системы на 64-битную и пиздец??


UTM5. URFAclient на PHP. Error calling function.



Для 64-х битных систем, если при вызове пользовательских функций возникает ошибка "Error calling function"
Всему виной php-функция unpack. Костыль нашел на форуме netup.ru.
Нужно поправить функцию AttrGetInt в файле URFAClient_Packet.php

  function AttrGetInt($code)
    {
                if (isset($this->attr[$code]['data'])) {
                    $x = unpack("N", $this->attr[$code]['data']);
                    if ($x[1]>2147483647) return $x[1]-4294967296;
                    return $x[1];
                } else {
                        return FALSE;
                }
    }

если же после переноса или установке присуствует ошибка
 Warning: Cannot modify header information - headers already sent by...  

 проверьте наличие директивы output_buffering в файле php.ini и включите ее (on поставьте или 4096) 

четверг, 21 марта 2013 г.

Цикл выполняет действие при определенном выражении в логе

Цикл while построчно проверяющий лог на наличие определенного выражения, как только выражение найдено, выполняется нужная команда

Также после выполнения команды скрипт посылает письмо на почтовый ящик


while [ 1=1 ]; do
tail -F  /var/log/httpd-error.log | grep -m 1 "exit signal Segmentation fault"
/usr/local/etc/rc.d/apache22 restart
sleep 5;
S=/tmp/apache_restart.succes
 echo "Apache has restarted succesfully!">$S
 echo "Hostname: $(hostname)">$S
 echo "Apache has restarted succesfully!">>$S
 mail -s "APACHE HAS RESTARTED!" "s@it-lab.md" <$S
 rm -f $S
done

среда, 20 марта 2013 г.

Скрипт массового пинга хостов

CMD Скрипты, которые проверяют ip адреса из текстового файла и на выходе выдают 2 списка, alive и dead.


check.cmd

@Echo off
for /F %%i in (c:\ip.txt) do call report.cmd %%i

report.cmd
@Echo off
ping -n 1 -w 1000 %1 >nul
if %errorlevel%==0 goto good
goto bad
:good
echo %1>>alive.txt
goto fin
:bad
echo %1>>dead.txt
:fin

P.S. пути подправить под себя.

Скрипт удаляет все сообщения из очереди Postfix

скрипт удаляет все сообщения почтового ящика из очереди, куда идет спам