Поиск по моему блогу

Как мониторить доступность сайта круглосуточно?

uptime, web, блог, доступность, интернет, мониторинг, сайт, computers 072aСегодня столкнулся с интересной ситуацией - на мыло пришло сообщение о новом комментарии к моему посту, но перейдя по ссылке, я обнаружил что мой блог "в дауне", выражаясь обычным языком - недоступен. Вот минуту назад человек оставил комментарий, а уже сейчас блог недоступен. Последний месяц для постоянного наблюдения доступности блога я использовал панель от Пингдом на бесплатном аккаунте. SMS-уведомления у меня отключены (я вообще не читаю SMS - ибо кроме рекламы, любимый LIFE:) мне ничего не присылает), но почему же не пришли уведомления на мыло?
Оказывается я исчерпал количество checks (проверок) на бесплатном аккаунте. Это меня конечно же не устроило и я начал искать другие ресурсы, которые меня будут радовать. Я перепробовал несколько разных и остановился на 2-х. Какой из них будет постоянно мониторить мои сайты в будущем, еще не знаю, т.к. нравятся оба, но предлагаемые услуги сильно отличаются.
1) host-tracker.com
Возможности - 111 точек проверки по всему миру, мониторинг до 2 сайтов, русский интерфейс, подробная статистика, сообщения на "мыло" в случае проблем с доступом к сайту. В пробном периоде - первый месяц мониторинг может производится с интервалом вплоть до 1 минуты. Как только он закончится - необходимо выбрать тарифный план. И вот тут небольшая неприятность - на пакете "free" интервал проверки - 30 минут. Это цена бесплатности:
uptime, web, блог, доступность, интернет, мониторинг, сайт
В общем, сайт мне понравился, статистика выглядит таким образом:
uptime, web, блог, доступность, интернет, мониторинг, сайт
С настройками проблемы не возникнет. Самый главный минус - 30 минутный интервал.
2) uptimerobot.com
С этим сайтом все еще проще. Правда, подробной статистики сайт не дает. Зато предлагает другие возможности - проверка доступности ваших сайтов каждые 5 минут, бесплатный мониторинг до 50 сайтов, уведомления на "мыло", в твиттер и SMS-ками. Интерфейс - английский, но настраивать ничего не нужно - просто добавьте URL своих сайтов и все:
uptime, web, блог, доступность, интернет, мониторинг, сайт
В случае неполадок на хостинге и первый и второй сервис присылают сообщения на e-mail (как минимум). Вчера вечером проверил это на своих сайтах.
Enhanced by Zemanta

В данной статье пойдет речь не об установке какого-то либо дистрибутива линукс, а об общих мерах, которые нужно предпринять для стабильной и безопасной работы asterisk на linux.

Asterisk (PBX)Image via Wikipedia
Оригинал: http://www.asterisk-support.ru/documentation/bulk/LinuxAsteriskSetup


   В данной статье пойдет речь не об установке какого-то либо
   дистрибутива линукс, а об общих мерах, которые нужно предпринять для
   стабильной и безопасной работы asterisk на linux. Итак,


Установка
   Абсолютно не важно, какой дистрибутив линукса вы собираетесь
   использовать. При установке выбирайте минимальную конфигурацию.
   Asterisk не нуждается офисных пакетах, играх и графических оболочках.
   Чем меньше всякого хлама установите, тем лучше.

   Пакеты, которые нужны, это:

     * glibc-devel - заголовочные файлы стандартных библиотек. Без этого
       пакета ничего не откомпилируется.
     * kernel-devel и kernel-header - исходные тексты ядра Linux. нужны
       для сборки zaptel. Даже если у вас и не планируется использовать
       железо от Digium, для нормальной работы MusicOnHold? и
       конференций понадобится собрать модуль ztdummy, который обеспечит
       тактирование от USB подсисемы.
     * db-devel - астериск использует встроенную базу данных.
     * gcc,cpp,binutils,bison,expat-devel и ncurses - компиляторы,
       препроцессоры и другие утилиты. curses нужен для сбоки консльного
       менеджера astman.
     * openssl, openssl-devel - библиотеки
   Если каких-то пакетов не хватает, установите их после установки
   системы. В linux при помощи комманды rpm -i package-1.1.rpm , в
   slackware при помощи installpgk package.tgz


Зачистка системы
   Еще не встречал такого дистрибутива, после установки которого не
   приходилось бы брать напильник (а это нормально - все предусмотреть
   нельзя). Итак, что надо сделать сразу после установки.

     * Проверка сетевых служб. netstat -atnup выведет список всех сокетов
       TCP/UDP, которые открыты на данный момент. Так как у нас только
       asterisk сервер, то работать только служба SSH (для удаленного
       администрирования) и астериск. Кстати, чем меньше портов вы
       обнаружите открыми, тем более "правильно (минимально)" вы
       устновили линукс. Комманда netstat выведет номер процесса, и его
       pid узнайте название. Далее при помощи ntsysv или chkconfig
       откючите ненужную службу.

Настройка Winprint HylaFAX

Winprint HylaFAX

SourceForge.net Logo

Installation Instructions

Winprint HylaFAX is a Windows print monitor designed to send its output directly to a HylaFAX Server. Once installed, you can print to a HylaFAX Server from any application, and it will pop up a simple dialog box, allowing you to enter the destination FAX number. It's not intended to be fancy or all encompassing, just a quick and easy way to send FAXes from any Windows application
It can be downloaded here. To go to the sourceforge pages for this software to comment, report bugs, or get source code, click here.
It is packaged in the form of a Windows Installer, which installs the required sets of .DLL files and registers the monitor with the system. This adds support for a new type of port to your system, called a "WinPrint HylaFAX Port." Once you've successfully installed the files, setup is straightforward, but it has a number of steps. First, you'll want to create an appropriate PostScript printer using the "Add Printer" button. You want to select a "Local printer," but since it's not a physical printer, uncheck the "Automatically detect and install my Plug and Play printer" box.
Next, you'll be asked what port to use. Select the radio button "create a new port type." If the installation went well, you should see "Winprint Hylafax" as one of the options. The drop list might scroll, so it may not be obvious that it's at the bottom of the list. (If it doesn't appear on the list at all, something went wrong with your installation.)

Asterisk Голосова пошта

Asterisk (PBX)Image via Wikipedia
Щоб правильно використовувати голосової пошти Asterisk, Ви повинні виконати ряд кроків налаштування. Додержуйтеся інструкцій у цій статті, і Ви можете насолоджуватися поштою.

Основна конфігурація для Asterisk і голосова пошта

Використання інтерфейсу FreePBX і натисніть на компонент "Загальні налаштування".
У розділі "Параметри набору", змінити таким:
Опції Commandes де numérotation : TRW
Замовлення Параметри вихідної : TW
T: Дозволяє апелянти перевести дзвінок, натиснувши #
г: Генерує сигнал для заявника
в: Дозволяє апелянти, щоб почати запис, натиснувши * 1
У "Голосова пошта", змінити таким:
Час за замовчуванням рінгтон: 20
20 це кількість секунд телефон задзвонить до відправки виклику на голосову пошту. Це дасть вам більше часу для відповіді на дзвінок.
Повідомлення тип доступу до голосової пошти: Недоступний
Це дозволить уникнути проблем при використанні функції "Йди за мною", перешкоджатиме система грає повідомлення за замовчуванням і дозволяє грає персональної повідомлення.
У розділі "Бізнес-довідник", змінити таким:
Пошук користувачів в каталозі компанії з: ім'я
Це дозволить абонентам шукати вашу систему на більш підходящі житлові. Я користуюся, як моя гіпотеза, що всі ті ж прізвища.
У полі "Факс", змінити таким:
Розширення для отримання факсів: Система
Вибір системи для системи отримувати факси та відправляє їх по електронній пошті. Якщо у вас є факс підключений до аналогової лінії, з продовженням на цьому шляху, як значення параметра. Якщо ця опція вимкнена, він буде відповідати на дзвінки швидше, але ви не будете мати можливість факс.
Email Факс: VOTRE_ADRESSE@gmail.com
Адреса електронної пошти буде використовуватися, якщо система варіант був вибраний для факсу розширення визначено вище. Це дозволить вам отримувати факси прямо у вашу поштову скриньку.
Email викидів факс: VOTRE_ADRESSE@gmail.com
Адреса електронної пошти, факсу, буде відображатися, якщо система була обрана для факсу розширення визначено вище.
У полі "Мережеве оновлення", змінити таким:
Перевірка оновлень: та
Адреса електронної пошти оновлення: VOTRE_ADRESSE@gmail.com

Повідомлення про голосових повідомлень по-французьки

Якщо ви хочете думку голос повідомлень, переданих по електронній пошті дані по-французьки, виконати наведені нижче інструкції:
Для редагування конфігураційних файлів, Ви можете використовувати редактор "VI", або "Джо" на засіданні "Shell". Ви також можете робити редагування з FreePBX за допомогою компонента "Змінити конфігурацію", перебуває в "Інструменти", і виберіть потрібний файл.
Freepbx_Edittion
Відредагуйте файл / ETC / зірочка / vm_email.inc
Змініть рядок :
;emailbody = $ () VM_NAME,\ П \ nМожливо новий голосової пошти в поштовій скриньці $ () VM_MAILBOX:\ N \ п \ tFrom:\ Т $ (VM_CALLERID) \ п \ tLength:\ T $ () VM_DUR секунд \ п \ TDate:\ Т $ (VM_DATE) \ п \ nDial * 98 для доступу до голосової пошти по телефону. \ NVisit HTTP:/ / AMPWEBADDRESS / запису / index.php для перевірки голосової пошти з веб-браузером. \ П
Для цього :

Программа для конвертирования и работы со звуками в Asterisk

 AudioCommander v3.4
picГод выпуска: 2006
Версия: v 3.4
Разработчик: Mystik media
Платформа: windows 95 / 98 / ME / 2000 / XP / 2003
Совместимость с Vista: неизвестно
Системные требования: min
Язык интерфейса: только английский
Таблэтка: Присутствует
Описание:
Программа является скоростным и высоко профессиональным кодировщиком для работы со многими аудио форматами. Читает CD, WAV, MP3, WMA, OGG, AAC, AC3, AMR, 3GP, AIFF, AU, VOX, RAW, GSM, ADPCM, A-LAW, u-LAW, g726, g721, g723, MPC, MP+, MOV, QT, AVI audio и др., переводит в MP3, WMA, WAV, OGG, AAC, AC3, AMR, AIFF, ADPCM, A-LAW, u-LAW, DSP, GSM, или VOX и ему подобные. Меняя при этом частоту и Bitrat`у и комбинируя их между собой. При рипаньи диска способен отыскать информацию о нем с FreeDB. Работая с МР3, сжимает с 320 kbps до 128 kbps. Работа с программой не вызывает затруднений даже для начинающих, все установки осуществляются в пару приемов и всегда можно видеть, что будет на выходе, до того как будет дан пуск на обработку.
Английское описание

Asterisk. Запись телефонных разговоров.

Modern musical symbolsImage via WikipediaЗапись разговоров – довольно удобная вещь. Можно всегда прослушать кто, что кому говорил. Настройка не сложная, достаточно включить в dialplan на обработку этого направления функции Monitor или MixMonitor. Отличие этих функций заключается в том, что Monitor пишет раздельно голос звонившего и голос звонящего, в разные файлы. А MixMonitor создает один файл, который содержит оба направления разговора.
В диалплане это выглядит для Monitor так:
[dial]
exten => _8.,1,Set(fname=${STRFTIME(${EPOCH},,%Y%m%d%H%M)}-${CALLERID(number)}-${EXTEN})
exten => _8.,2,Monitor(wav,/home/share/monitor/${fname},mb)
exten => _8.,3,Dial(SIP/prov1)

В этом примере первой строчкой, Set(fname и т.д. мы описываем имя файла в котором будет хранится запись разговора. В нашем случае имя файла будет состоять из даты и времени когда происходил звонок, номера звонящего абонента и куда он звонил. Запись как я уже писал будет состоять из двух файлов в конце будут соответственно добавлены цифры 1 и 2 соответственно номерам каналов.
И второй пример – использование MixMonitor, тут все так же просто:
exten => _8.,1,Set(fname=${STRFTIME(${EPOCH},,%Y%m%d%H%M)}-${CALLERID(number)}-${EXTEN})
exten => _8.,2,MixMonitor(/home/share/monitor/${fname}.wav)
exten => _8.,3,Dial(SIP/prov1)
Тут все то же самое, только меньше флагов в команде MixMonitor, тут вписывается только имя файла с расширением.
Enhanced by Zemanta

Asterisk. Интерфейс AGI. Функция GotoIf.

Asterisk (PBX)Image via WikipediaAsterisk Gateway Interface или сокращенно AGI – интерфейс взаимодействия с внешними скриптами. С помощью AGI можно получить информацию, которая не доступна напрямую из астериска. Вообще скрипты из Asterisk можно выполнять из функций System и через AGI. System выполняет скрипты без обратной связи, через AGI можно устанавливать переменные используемые далее в extensions.conf.
К примеру можно воспользоватся вызовом скрипта для определения типа дня недели. Подобная информация может понадлбится если вам нужно проигрывать один вид меню, а в выходные дни другой.

Для определения дня недели воспользуемся таким скриптом:

#!/usr/bin/perl -w
use Date::Calc qw(Day_of_Week Now Today);
 
($year,$month,$day) = Today();
$dow = Day_of_Week($year,$month,$day);
 
if($dow eq 6 or $dow eq 7)
{
  print "SET VARIABLE DOW WEEKEND\n";
}
else
{
  print "SET VARIABLE DOW WORKDAY\n";
}
 
Для работы скрипта понадобится Date::Calc – модуль перла для работы с датой и временем.

Установить его можно из портов:
cd /usr/ports/devel/p5-Date-Calc
make install clean

Теперь можно доработать меню, так что бы в будний день проигрывалась начитка welcome.wav, а в субботу и воскресенье была начитка weekend.wav.

Диалплан теперь будет выглядеть так:
[sip-dialout]
exten => 444,1,Goto(menu,s,1)
 
[menu]
exten => s,1,Set(home="/home/menu")
exten => s,2,AGI(${home}/bin/date.pl)
exten => s,3,NoOp(" day ${DOW} ")
exten => s,4,GotoIf( $["${DOW}" = "WEEKEND"]?8)
exten => s,5,Playback(${home}/welcome)
exten => s,6,NoOp(WEEKEND)
exten => s,7,Goto(s,10)
exten => s,8,Playback(${home}/weekend)
exten => s,9,NoOp( WEEKEND )
exten => s,10,WaitExten()
 
exten => 1,1,Playback(${home}/tariff)
exten => 1,2,Goto(s,1)
 
exten => 2,1,Dial(SIP/operator)
 
exten => t,1,Playback(make_choice)
exten => t,2,Goto(s,1)
 
exten => i,1,Playback(wrong_choice)
exten => i,2,Goto(s,1)
 
В нашем примере появилась новая функция GotoIf, функция условного перехода. Мы проверяем какой тип дня недели и в случае выходного дня, осуществляется переход на соответсвующую метку меню. Таким образом в случае выходного дня, мы переходим на начитку weekend.wav и пропускаем welcome.wav.
Функцию GotoIf можно применять не только с AGI, но и для переходов по проверке любых переменных установленных в extensions.
Enhanced by Zemanta

Asterisk. Автоматические исходящие звонки.

Asterisk (PBX)Image via WikipediaМногие сталкивались со звонками от крупных компаний, когда происходит звонок и зачитывается автоматическое сообщение, рекламное или уведомление о просроченой оплате. Такую систему можно сделать на астериске с помощью внешнего скрипта.
Исходящий звонок Asterisk может выполнять при размещении специального файла в директории /var/spool/asterisk/outgoing.

Файл должен выглядеть так:
Channel: SIP/prov1/8067xxxxxxx
MaxRetries: 2
RetryTime: 60
WaitTime: 30
Context: auto-dialout
Extension: 800 
Priority: 1

В этом файле. первая строка – канал через который будет осуществляться звонок и номер телефона на который будет исходить звонок. MaxRetries – здесь описывается число повторных звонков, пока система не дозвонится абоненту. RetryTime – время через которое осуществится повторный звонок. WaitTime – время ожидания ответа вызываемого абонента, то есть попросту через сколько секунд система положит трубку не дождавшись того, что вызываемая сторона снимет трубку. Context – контекст в котором определена последовательность действий при дозвоне. Extension – в указанном контексте, определен в extensions.conf. И Priority – строка обработки описанного экстеншена в указанном контексте.

Контекст должен быть определен так(в примере мы просто проиграем файл tariff.wav):
[auto-dialout]
exten => 800,1,Playback(/home/menu/tariff)
 
Для автоматических исходящих звонков голосовое меню можно создавать точно такое же как и для обычного IVR, отличий нет. Единственное – не абонент звонит нам, а мы звоним абоненту и предлагаем ему вступить в диалог с нашей системой.
Enhanced by Zemanta

Asterisk. Queue. Очередь звонков в Asterisk.

Asterisk Flash Operator PanelImage via WikipediaПри телефонизации офисов, вопрос с созданием очереди звонков возникает достаточно часто. Например при наличии более 1 менеджера по продажам, руководство хочет, что бы им на отдел поступали звонки и звонки равномерно распределялись по менеджерам, да в прочем, даже если они хотят, что бы все звонки поступали ко всем сразу все это реализуемо и работает. Работает с помощью Queue.

А настраивается это так. В первую очередь опишем в sip.conf наших менеджеров:
[manager1]
type=friend
secret=manager1
host=dynamic
username=manager1
context=sip-users
callerid=101
call-limit=1
 
[manager2]
type=friend
secret=manager2
host=dynamic
username=manager2
context=sip-users
callerid=102
call-limit=1
 
Да и обязательно в секции [default] sip.conf, если у вас Asterisk 1.4.29 или старше, должно быть:
limitonpeers = yes
иначе очередь работать не будет.

И сделаем:
asterisk -r
sip reload

Теперь организуем саму очередь. Описывается она в queues.conf. Добавим в конце описание нашей очереди:
[managers]
strategy = rrmemory
member => SIP/manager1
member => SIP/manager2
 
Здесь описаны состав очереди,manager1 и manager2 и тип распределения звонков strategy = rrmemory. Это роунд-робин – то есть менеджеры по очереди будут получать звонки. До недавнего времени он так и назывался, кстати, roundrobin, а потом, по непонятной причине был переименован в rrmemory.
Еще доступные варианты strategy = ringall – телефон звонит у всех. Вариант, поступления звонка к оператору, который дольше всех не отвечал на звонки: startegy = leastrecent. random – случайный выбор оператора и fewestcalls – звонок будет поступать оператору с наименьшей длительностью разговоров.

Теперь в консоли астериска(asterisk -r) делаем:
reload app_queue.ko

А теперь осталось направить входящие звонки на Queue. Для этого в extensions.conf, в том контексте в котором должны поступать звонки на очередь, прописываем:
exten => 1000,1,Answer
exten => 1000,2,Wait(1)
exten => 1000,3,Queue(managers|t||)
exten => 1000,4,Hangup
 
Тут соответсвенно 1000 – номер на который будут поступать звонки.
Перегружаем диалплан:
extensions reload
и в общем то все. Настройка простейшей очереди закончена.
Enhanced by Zemanta

Asterisk. Перехват (PickUP) звонка.

Asterisk (PBX)Image via WikipediaЕще одна из востребованных функций – это перехват звонка. То есть, если ваш сосед вышел, а у него звонит телефон, нужно перехватить звонок. Очень полезная функция. Она по умолчанию включена в Asterisk. По умолчанию за перехват звонка отвечает комбинация клавиш *8. Проверить что у вас учтановлено можно с помощью консоли Asterisk(asterisk -r):
show features

и должны увидеть строку:
Pickup                    *8      *8
Изменить эту комбинацию можно в файле features.conf.
pickupexten = *8
Теперь остается определить кто чьи звонки может перехватывать.
Делается это с помощью опций pickupgroup и callgroup. Устанавливаются они на соответствующих абонентов.

Например для sip абонентов это будет выглядеть так:
[manager1]
type=friend
secret=manager1
pickupgroup=1
callgroup=1
host=dynamic
username=manager1
context=sip-users
callerid=101
call-limit=2
 
[manager2]
type=friend
secret=manager2
pickupgroup=1
callgroup=1
host=dynamic
username=manager2
context=sip-users
callerid=102
call-limit=2
 
И еще. Звонок можно перехватить даже еслт он шел в Queue и любой может быть членом нескольких pickup и call групп.
Enhanced by Zemanta

Установка голосовых файлов в Asterisk

Asterisk (PBX)Image via WikipediaТак уж случилось, что в поставку Asterisk не входит ни русского языка, ни украинского. Но тщательно погуглив, можно найти готовые голосовые файлы приемлемого качества. Правда только русскоязычные, но этого в принципе достаточно.
Астериск держит звуковые файлы в директории /usr/local/share/asterisk/sounds/. Это под FreeBSD, под Linuxами в /usr/share/asterisk/sounds/.
То что непосредственно находится в директории sounds – это англоязычные файлы. Английский язык – он по умолчанию. Внутри этой директории находятся файлы, которые отвечают за базовый функционал.

То есть к примеру в базовый функционал Asterisk входит модуль голосовой почты и к примеру файлы vm-* – они относятся к этой голосовой почте. Файлы conf-* к модулю конференций. И так далее. Название каждого файла жестко определено. Кроме того, в этой директории можно видеть поддиректории es и fr. Это директории содержат локализированные начитки. То есть, по простому – файлы испанского и французского языков.
И нам, что бы сделать русскую локализацию, нужно создать директорию ru и положить в нее необходимые начитки. Начитки могут быть как в формате gsm, так и wav. Главное что бы само имя файла совпадало.
А для того, что бы астериск знал, что нужно использовать начитки русского языка, нужно указывать в начале диалплана такую стоку:
exten => 5740000,1,Set(CHANNEL(language)=ru)
Естественно, устанавливать эту переменную нужн для каждого экстеншена персонально.
Enhanced by Zemanta

Asterisk. Делаем простейшее голосовое меню (IVR).

Asterisk (PBX)Image via WikipediaОдним из основных достоинств Астериск является легкость, с которой с помощью него создаются IVR.
Для того что бы создать IVR нужно в первую очередь представить себе его структуру, то есть что за чем и как будет делаться, и составить тексты.
Сейчас мы опишем создание простейшего голосового меню, состоящего из приветствия и после приветствия, переключение на оператора. Файл в котором хранится фраза «Здравствуйте, вы позвонили в нашу компанию» называется welcome.wav и находится в директории /home/menu.
Номер, который принимает звонки 444. А выглядеть меню будет так:

[sip-in]
exten => 444,1,Set(home="/home/menu")
exten => 444,2,Wait(1)
exten => 444,3,Playback(${home}/welcome)
exten => 444,4,Dial(SIP/operator)
 
У нас появилась новая функция Playback, она предназначена для проигрывания звуковых файлов, файлы должны быть подготовленны заранее, так как мы описывали в статье ffmpeg, подготавливаем звуковые файлы для Asterisk. Есть еще сходная функция Background, она отлдичается от Playback тем, что не блокирует нажатия на кнопки, то есть в момент проигрывания голосовых меню, позволяет реагировать на передаваемые звонившим DTMF.
Это простейший IVR и в нем отсутствует основная особенность IVR, нет никакого выбора. Поэтому приведем пример с диалогом. Тут будет присутствовать вторая начитка: «Для связи того что бы прослушать тарифы нажмите 1, для связи с оператором нажмите 2″. Файл содержащий эту начитку будет называться menu.wav и файл с тарифами соответсвенно tariff.wav. После прочтения инструкции должен осуществляться переход в главное меню.
Выглядит это так:
[sip-in]
exten => 444,1,Goto(menu,s,1)
 
[menu]
exten => s,1,Set(home="/home/menu")
exten => s,2,Wait(1)
exten => s,3,Playback(${home}/welcome)
exten => s,4,Playback(${home}/menu)
exten => s,5,WaitExten()
 
exten => 1,1,Playback(${home}/tariff)
exten => 1,2,Goto(s,1)
 
exten => 2,1,Dial(SIP/operator)
 
exten => t,1,Playback(make_choice)
exten => t,2,Goto(s,1)
 
exten => i,1,Playback(wrong_choice)
exten => i,2,Goto(s,1)
 
Тут у нас появилось много нового. Во первых Goto – функция безусловного перехода. Если в качестве параметров ей передается 3 аргумента, это контекст, екстеншен и метка на которую нужно перейти. Если всего 2 аргумента, то подразумевается, что контекст текущий.
Так же появились екстеншены i – это реакция на неправильно нажатую кнопку, Invalid input и t – реакция на истекшее время ожидания выбора. Если их не описать то при истечении таймаута или при неправильно нажатой кнопке произойдет обрыв соединения.
Enhanced by Zemanta

Реклама от BigBN