Linphone на новом SIP-стеке belle-sip

linphoneНа днях этот кросс-платформенный SIP-клиент перешёл на новый SIP-стек belle-sip разработки компании Belledonne Communications, а старый стек libeXosip ушёл в прошлое. Разработчики обещают новые фичи, но поддержку нескольких SRV-записей с приоритетизацией я так и не нашёл. Ниже инструкция, как собрать клиент с новой библиотекой:
Continue reading Linphone на новом SIP-стеке belle-sip

chan_dongle – приём SMS от буквенных отправителей

asterisk-chan-dongleНаписал небольшой патчик для chan_dongle, позволяющий декодировать буквенных отправителей в PDU SMS. Все желающие могут найти его здесь и накатить на последнюю версию из репозитория. В основную ветку его пока не запихнули.

TCP Ping – open source

PoptocatНекоторое время назад я искал программу для TCP-пинга, и даже кое-что нашёл. Однако это было не то, не хватало таймаутов, плохо работало с SSH и т.п. Поэтому я решил написать свою программу, попутно вспомнив программирование в среде Unix. Можно пинговать хосты по IP-адресу или имени, а также по произвольному порту. Программа измеряет время установления TCP-коннекта. С исходниками программы можно ознакомиться на GitHub. Пожалуй, это первый раз, когда я выкладываю свой хоть и небольшой, но код, на всеобщее обозрение. Пример выполнения программы:

$ tcpping oioki.ru
  OK   Connected to oioki.ru:22, seq=0, time=51.653 ms
  OK   Connected to oioki.ru:22, seq=1, time=50.844 ms
  OK   Connected to oioki.ru:22, seq=2, time=54.059 ms

P.S. Жду комментов и багрепортов 🙂

Репликация MySQL типа Master-Master

Дельфины MySQLПериодически возникает такая задача, и каждый раз приходится лазить в какие-то доки, что не очень удобно. Поэтому сформировал инструкцию, как настроить репликацию типа Master-Master в MySQL, прежде всего, для себя, ну и для тех, вдруг кто сюда попадёт случайно 🙂 Допустим, у нас был один сервер БД, и нужно подключить второй. Например, мы задумываем кластер из двух серверов, на каждом из которых будет происходить постоянная активность, либо второй вариант – новый сервер будет выполнять роль запасного standby-сервера, готового войти в работу вот прямо сейчас.
Continue reading Репликация MySQL типа Master-Master

Asterisk: забанить по номеру

Это бан-хаммерХочу рассказать о способе, который естественным образом вытекает из задачи забанить абонента по номеру. Оператор, принявший звонок, просто отправляет его на… специальный добавочный номер (к примеру «0»), на котором уже крутится логика бана этого номера. Для хранения номеров будем пользоваться внутренней базой данных Asterisk. Также хочу отметить, что для успешного функционирования данного способа у вас должен быть включён “слепой трансфер” в features.conf, по умолчанию это кнопка “#”. Самое приятное, что теперь операторы смогут банить неугодных без участия админа.
Continue reading Asterisk: забанить по номеру

Немного о подключении UPS по USB во FreeBSD

APC Smart-UPS 1500Много где используется источник бесперебойного питания APC Smart UPS 1500 (такой, как на картинке). У него есть два способа подключения информационного кабеля – по COM- и по USB-кабелю. Но т.к. COM-порт на серверах встречается всё реже, опишу тут краткую инструкцию, как работать с этой моделью по USB – получение статусных данных и как проводить процедуру калибровки батареи.
Стандартно собираем пакет sysutils/nut, как описано здесь
Continue reading Немного о подключении UPS по USB во FreeBSD

Собираем Jitsi в Gentoo

Jitsi кросс-платформенный SIP-клиентНедавно узнал о годном кросс-платформенном SIP-клиенте под названием Jitsi. Список его фич впечатляет – помимо всего прочего там есть групповые видеоконференции. Выглядит клиент довольно красиво, несмотря на то, что написан на Java. В этой статье мы будем устанавливать его в системе Gentoo.
Continue reading Собираем Jitsi в Gentoo

Обновление прошивки телефона Cisco SPA504G

Cisco SystemsСкачиваем соответствующую прошивку с сайта cisco.com. В настройках телефона выставляем:

Provisioning → Upgrade Enable = yes
Provisioning → Upgrade Rule = http://10.0.0.1/spa50x-30x-7-4-9c.bin

Здесь 10.0.0.1 – это какой-нибудь ваш веб-сервер. Нажимаем Submit, телефон перезагружается и сам обновляется. PROFIT!

Запускаем screen-сессию в единственном экземпляре

Иногда нужно запустить процесс в сессии screen, но при этом нужно, чтобы эта сессия была единственной. Тогда можно воспользоваться следующей конструкцией в crontab:

30	*	*	*	*	root	\
/usr/local/bin/screen -dmS SESSION_NAME /usr/bin/lockf -st0 /tmp/LOCK_NAME /PATH/TO/SCRIPT

Если таск зависнет, то можно будет посмотреть отчего, введя команду screen -r SESSION_NAME

Реализация QoS для IP-телефонии Asterisk на FreeBSD+pf

ЕнотикиДобрый день, коллеги!
На сей раз задача у меня – настроить приоритеты трафика таким образом, чтобы голосовые пакеты и SIP-сигнализация обрабатывались в первую очередь. Это бывает полезно, когда, например, функции АТС выполняет офисный файрволл. Заодно настроим еще и приоритеты для SSH.
Для начала, определим критерии, по которым будет классифицироваться трафик:
1. SSH – при забитости канала, самое главное – сохранить управление системой, чтобы, к примеру, суметь заблокировать вредителя;
2. SIP – небольшое количество сигнализационных SIP-пакетов для начала и завершения VoIP-сессии;
3. собственно голосовой RTP-трафик;
4. всё остальное.
Под катом процедура настройки.
Continue reading Реализация QoS для IP-телефонии Asterisk на FreeBSD+pf