03.27.10
Posted in mail at 2:56 pm by viliar
Иногда требуется что-то в почтовой системе отдебажить прямо на рабочем сервере. Логи у postfix при дебаге откровенно говоря адские по размеру. Если включить дебаг обычным способом (master.cf smtpd -v), то при выской нагрузке почтовый сервер либо сразу уйдет в торпор, либо система будет медленно задыхаться под тяжестью логов.
Кроме использования debug_peer_list (который включает дебаг только для smtpd) можно еще запустить отдельного демона smtpd на нестандартном порту или другом ip и только для него включить дебаг. Помимо клевого баннера для него можно использовать по-моему вобще всю отдельную цепочку сервисов через указание в опциях *_service_name. Я проверял только для cleanup.
/etc/postfix/master.cf:
0.0.0.0:2025 inet n - n - 10 smtpd -v
-o smtpd_banner=$debug_banner
-o cleanup_service_name=debug_cleanup
debug_cleanup unix n - n - 0 cleanup -v
/etc/postfix/main.cf:
debug_banner = $myhostname ESMTP ready. Welcome to Debug Hell.
Permalink
Comments off
03.19.10
Posted in pbx at 2:16 pm by viliar
Задача специфическая. У меня на работе при поступлении внешнего звонка нужно диффиренцировать, откуда он поступил и давать соответствующее сообщение тому, на кого попадает звонок. В этом приближении задача решается довольно просто, при помощи разных входящих контекстов или через анализ ${SIP_HEADER(Record-Route)}. Но вот понадобилось диффиренцировать те звонки, которые идут через трансфер, не важно, blind или attended. Если опустить все сложности с поиском, то мне как и в прошлый раз помогла переменная TRANSFER_CONTEXТ, при помощи которой, в частности, сотрудники с мобильных телефонов могут безопасно переводить звонки на тех, кто в офисе. Вместо использования общего контекста для привилегированных пользователей создается отдельный контекст именно для трансфера с catch-all экстеншеном и вуаля:
[authxfer]
; Special hook on transfer
; include => authusers
exten => _.,1,NoOp(transfer)
exten => _.,n,Set(WARN=”ON”)
exten => _.,n,Set(WARNMSG=”msg/msg_transfer”)
exten => _.,n,Goto(authusers,${EXTEN},1)
Дальше звонок перебрасывается по назначению. Так что для трансфера можно не только свое сообщение забить, но и при необходимости выполнить еще какие-то действия. Судя по всему решений > 1, но меня вполне устраивает это.
P.S. Ну и да, это болванка, неплохо бы фильтровать символы и все такое, согласно README-SERIOUSLY.bestpractices.txt
Permalink
03.18.10
Posted in linux at 12:51 pm by viliar
Иногда случается, что при попытке разблокировать экран процесс логина зависает. Можно, конечно, перезагрузиться, но бывает, что слишком много окон открыто и жалко терять сессию. Мне в этом случае помогала отправка сигнала SIGHUP gdm’у. А точнее kill -1 `pidof gdm-binary`после логина рутом на первой консоли (Ctrl-Alt-F1)
Permalink