На данном сайте выкладываю заметки того, с чем приходилось сталкиваться и что, по-моему мнению, заслуживает внимания.

    Например, если в диалплане есть что-то либо подобное:

same => n,System(echo "Voice message. текст из яндекс: ${TEXT1}" | mailx -a /record/${UNIQUEID}.wav -s "Voice message from (в скобках русские буквы)" $EMAIL)

 

      На почту приходит сообщение с Темой "Voice message from (?? ?????????????? ?????????????? ??????????)", а Тело сообщения как вложение с именем noname. Если пробовать запускать эту команду из консоли все работает, из скрипта тоже. Проблема возникает, если именно запускать из астериска.

В свое время (года 3-4 назад) появилась задача по переходу бездисковых рабочих станций freebsd (да, есть и такая экзотика) на ос дебиан (stable).

Что было в наличии: небольшие удаленные филиалы без админов, шлюз на freebsd в каждом филиале, рабочие станции с никсами.

Что хотим: удаленно засетапить нужную систему с минимальными усилиями.

Здесь бы хотел указать один из возможных вариантов удобного планирования диалплана в случае наличия филиалов с разной нумерацией.

Суть примерно следующая: каждый телефон в филиале размещается в своем контексте (например in_ekb, in_spb, in_msk и тп.). В каждом контексте указываются правила набора для исходящих звонков. Чтобы можно было совершать звонки между филиалами, каждый контекст содержит в себе один общий внутренний контекст, в котором указываем правила для внутренних звонков между филиалами. Примерная схема (внутренняя нумерация филиалов - например ekb 51XX, spb - 52XX):

 

Иногда приходится достать из вывода команды какую-либо подстроку, например uid:

VBoxManage list vms
"external" {ce0855a2-3d41-4526-a1f6-d6c63f6bface}
"web" {8326e080-d1df-4d6b-b074-010bb3bf553d}
"sip2" {696527a4-b87b-474c-a12b-83475d73d799}
"sip" {23bf91db-e871-42ae-876b-d68717b0fa6c}
"testVM" {69dcd4c7-3902-403a-af75-f9a8238dec6a}

 

Как известно, администраторы делятся на тех кто делает и не делает бекап. В свою очередь те кто делают, еще подразделяются на тех, кто их проверяет или нет. Сам факт наличия бекапов я делаю через простое отображение в Комплексном экране заббикса списка файлов в директории, т.е. просто

ls -oth /DATA/BACKUP/ldap/`date +%m.%Y`/ | grep -v ^total | head -n 6 | cut -d " " -f4-  

 

 

    Выпал на мою долю перевод компании на рельсы ip-телефонии  с собственной ip АТС. Вначале поставил сборку freepbx (на 6 центосе в сборке от хостера) "напосмотреть", основное все завелось, но когда немного начал вдаваться в детали, то он меня подразочаровал:

  1.  Например,  порт ssh я всегда меняю на нестандартный,  захотел заменить привязку порта у fail2ban для ssh с 22 на свой, в веб-интерфейсе этого нет, поэтому залез в консоль, поменял конфиг, но после этого при перезагрузке из веб-интерфейса fail2ban  успешно падал с ошибкой затирая мой конфиг. 
  2.  Также оказалось что из коробки fail2ban не блокирует перебор extensions и  паролей для asterisk, в логах ошибка вида "2015-01-05 20:37:07,270 fail2ban.filter : ERROR No 'host' found in '[] SECURITY[11464] res_security_log.c: SecurityEvent="InvalidPassword",EventTV="1420047663-535903",Severity="Error",Service="SIP",EventVersion="2",AccountID="8009.... REMOVED**/5060",Remote" . Лечится правкой регулярного выражения в /etc/fail2ban/filter.d/asterisk-security.conf.
  3.  Также не очень понятно как правильно интегрировать свои правила фаервола и fail2ban - при перезагрузке fail2ban из веб-интерфейса все правила затираются.
  4.  И особенно доставило падение астера при переводе звонка (для примера звоню с внутреннего 100 на внутренний 101, на 101  нажимаю 2 раза # потом городской номер, видно что идет процесс набора и после этого астер у меня всегда падал).

Статья не претендует на какую-то новизну, просто описывает мой личный опыт при разворачивании ip-телефонии, здесь не будет подробного howto, изложу лишь моменты на которые я обратил внимание.

Есть в communigate такая полезная штука - Helpers (Помощники) https://www.communigate.com/communigatepro/Helpers.html.  Данные приложения позволяют отправлять письмо, звонок и др. на обработку произвольной программы. Например, helpers активно используется в antispam plugin. У communigate все примеры на перле, я более знаком с питоном, поэтому хотелось попробовать его использовать. Появилась задача записывать все исходящие/входящие письма (Дата, от Кого, к Кому, Тема).

У communigate есть библиотека скриптов - http://www.communigate.com/ru/main/purchase/scriptrepository.html, где под наши цели подходит CGP-Helper-Plugin.pl - Пример-макет для написания своего Helper-а. Смотрим на него и переписываем под нас на питоне. Изначально задача состояла в состыковке  самописной crm и почты communigate - чтобы все исходящие/входящие письма фиксировались на сайте.

Когда пару лет назад переезжали с почты gmail на собственный почтовый сервер communigate, вылезла данная неприятная ошибка (после выхода сервера на рабочую нагрузку). Как решилось (в нашем случае 250 учетных записей):

 

Установка - Почта - smtp - Передача - Каналы - увеличили с 50 до 300

Установки-  Услуги - HTTPU - Каналы - увеличили до 300

 

 

 

Php-разработчики попросили  помочь с решением проблемы автозапуска nodejs приложения после загрузки ОС и его автоматического "поднятия" если оно упадет. С nodejs я на "вы", поэтому начал искать в интернете готовые решения.

Возможные частично удовлетворяющие решения: запуск в кроне после перезагрузки, написание init-скрипта, forever-service (вроде как может поднимать упавшие приложения nodejs,  но в свою очередь ему самому как-то надо стартовать). Правильным выглядит использование systemd (там и автозагрузка, и поднятие упавшего приложения), но на сервере стоит 7 wheezy. Можно, конечно, его поставить, но поломать рабочий сайт не совсем  хотелось.

Из простого и не затратного по времени показалась установка и  использование monit.

 

Please publish modules in offcanvas position.