Search
Write a publication
Pull to refresh
0
0
Огурчёнок Иван @MrNobody

Linux Administrator, DevOps Engineer

Send message

Текстовые сообщения SIP/SIMPLE в Asterisk

Reading time1 min
Views54K
Во время очередной телефонизации очередного офиса я обратил внимание на то, что в выбранном нами софтфоне MicroSIP имеется некий встроенный «чат», который однако же не работает «из коробки».

image

Для пересылки сообщений эта программа использует метод SIP MESSAGE (RFC 3428), известный также как протокол SIMPLE.

В Asterisk его поддержка появилась в версии 10, но документация тут, как это часто бывает, сильно отстала от прогресса. Пришлось сначала долго искать по форумам различные варианты конфигурации, а потом методом проб и ошибок их испытывать.

Читать дальше →

Установка и настройка Asterisk под iD Phone (iDPhone)

Reading time12 min
Views43K


Новое руководство на эту тему расположено здесь: habr.com/ru/post/350460

В данной инструкции описано как с нуля установить и произвести первоначальную настройку компьютерной телефонии на базе «Asterisk» с подключением к услуге «iD Phone» компании «Казахтелеком».

Некоторые идеи я почерпнул из этой статьи: «Пошаговое руководство по привязке SIP-номера к Elastix (FreePBX, Asterisk) на примере провайдера Megaline iDPhone» (большое спасибо asdForever за это), но:
  • во-первых, по указанной инструкции система у меня не заработала;
  • во-вторых, не со всеми решениями в ней я согласен;
  • в-третьих, мы будем настраивать не «Elastix», а «AsteriskNow»;
  • в-четвертых, я постарался написать инструкцию максимально подробной — для людей мало разбирающихся в Linux-системах и в «Asterisk» (каковым я и сам являюсь).

Дано:
  1. Операционная система будет установлена с нуля. Использован будет дистрибутив «AsteriskNOW» — это операционная система «CentOS» с предустановленным программным обеспечением «Asterisk» и веб-интерфейсом для его управления «FreePBX». Другими словами в данной инструкции отсутствует блок, в котором была бы описана установка «Asterisk» на уже развернутой Linux-системе.
  2. «Казахтелеком» предоставляет услугу «iD Phone» не через Интернет, а подключая абонентов к своей специальной SIP-сети. Физически, конечно, это чаще всего один канал (ADSL или оптика) вместе с Интернет и/или «iD TV». Роутер же отдает предоставляемые услуги на разные порты. Считаем, что у нас уже есть настроенный роутер, который с одного порта отдает Интернет, а с другого — «iD Phone».
  3. Компьютер имеет две сетевых карты: одна из них смотрит в Интернет, другая — в SIP-сеть «Казахтелекома».

Задача:
Получить работающую IP-АТС, имеющую доступ в Интернет.
Читать дальше →

Зачем и какая нужна лицензия?

Reading time6 min
Views25K


Я хочу рассказать о том, какие типы лицензий для своего софта предлагает Intel, какие сложности с ними возникают, и высказать своё личное мнение по этому поводу.
Читать дальше →

Хак сайта на WordPress, кому все это нужно и советы как этого избежать

Reading time11 min
Views43K

Привет хабраUser!


Эта история началась около 2-х месяцев назад, когда мой хороший друг Александр, оказывающий услуги хостинга, при очередной проверке всех виртуальных машин антивирусом обнаружил подозрительный .js файл в корневой директории моего сайта, в VDS которую обслуживаю я сам, тогда я не придал этому значение… Но думаю любой администратор хостинга сразу забеспокоился бы.
Закончилось все, спустя только 2 месяца, после блокировки моего сайта корпорацией добра:
image

По тексту, я хочу рассказать Вам:


1. С какими проблемами я сталкивался и как воспринимал их.
2. Как нужно было бы реагировать на самом деле.
3. Кто мне помог в решении проблем и в чем заключалась помощь.
4. Какие выводы я сделал для себя, оказавшись на грани срыва.
5. Кому все это нужно?
6. Практические советы.
7. Подарю новогоднее настроение если позволит НЛО.


Краткое содержание:


Взлом, дальше с VDS начали происходить интересные вещи: Спам рассылки по нескольким тысяч адресатов, установка подозрительных скриптов, появление странных файлов в корне основного сайта. Скажу честно — было страшно… Но похоже я победил тьму).
Узнать подробности

Как мы создавали сингл на Ubuntu Studio 13.10

Reading time7 min
Views51K

наш гитарист-звукарь постигает прелести работы с JACK

Авторы дистрибутива Ubuntu Studio создали его для творческих людей. Музыка, графика, видео. Всё необходимое ПО включено в дистрибутив и должно работать из коробки.
Концепция группы ограничивает нас в ПО. Только лицензия, в приоритете — свободное. Поэтому было решено использовать Ubuntu Studio.
Записывали и сводили дома. Для полного счастья выпустили результат под лицензией Creative Commons (BY-SA 4.0).
Узнать, как что использовалось и что из этого вышло

Вторая жизнь старых стрелочных индикаторов

Reading time2 min
Views197K
Как-то попались мне в руки старые стрелочные индикаторы уровня от старого магнитофона, и я решил вдохнуть в них новую жизнь, сделав из них «хардварные виджеты» для отображения загрузки процессора и оперативной памяти компьютера.

image
Читать дальше →

Создание собственных драйверов под Linux

Reading time24 min
Views210K


Многие мои друзья и знакомые крутят пальцем у виска или задаются вопросом: не жмёт ли мне череп, когда узнают, что я пишу драйвера под Linux. Слово “драйвер” окутано каким-то почти мистическим смыслом, и постичь Дао его написания способны лишь избранные гуру.
К счастью это не так. Не знаю, как обстоят дела с написанием драйверов под другие операционные системы, в т.ч. и наиболее популярные, но под linux, вне зависимости от аппаратной архитектуры драйвера пишутся очень просто. Для написания драйвера необходимы базовые знания языка си, представление о работе ОС линукс (базовые), понимание того, что мы хотим получить, желание чтения документации и исходных кодов, ну и усидчивость. Всё.
Вы хотите посмотреть как написать драйвер для своего устройства? Тогда ныряйте под кат!
Читать дальше →

Алгоритм Брезенхэма в приложениях реального времени

Reading time4 min
Views16K
Есть вот такие устройства — называются сканаторами или сканерами, обычно с прилагательным «лазерный»



используют их в различных технологиях лазерного сканирования.

С точки зрения программиста лазерный сканатор — это два поворотных зеркала, которые отклоняют лазерный луч в двух взаимно перпендикулярных плоскостях, углы задается с помощью пары ЦАПов (и стоящими после ЦАПов усилителями с обратной связью). Обычно ЦАПы могут быть 12-16 разрядными. Фактически задача рисования картинки или, говоря чуть более научным языком, вывода информации на таком устройстве ничуть не отличается от вывода информации на древних аналоговых графических дисплеях.

image

Управляются такие сканатары обычно с помощью отдельного (микро)контроллера, на который с компьютера подаются «высокоуровневые команды». Основная команда — это «нарисовать линию от сих до сих с такой-то скоростью». Раз «нарисовать линию» и микроконтроллер, то вспоминаем классический алгоритма Брезенхэма. Алгоритм Брезенхэма хорош тем, что он не использует никаких «медленных» операций с плавающей точкой, хотя для современных 32 разрядных микроконтроллеров это уже не так существенно, как для 8 или 16 разрядных.

Читать дальше →

Скрипт исправления даты установки пароля пользователя в AD

Reading time4 min
Views9.7K
Всем привет!
Иногда возникает ситуация, когда надо пользователю изменить дату установки пароля в Active Directory. Представляю скрипт. Наверняка многим пригодится.
set-ADUserPswDate.ps1
# Основной скрипт изменения даты установки пароля по файлу или по учетной записи пользователя.
# Автор Лужин Кирилл
# luzhin.kirill@yandex.ru

Add-PSSnapin Quest.ActiveRoles.ADManagement;

$gsFilename = "c:\scriptps\set-ADUserPswDate.txt";
$giRows = (Get-Content -LiteralPath $gsFilename).Count;
$giX = 0;
$giMinimumSleep = 218;
$giMaximumSleep = 884;
$gtBeginDay = "08:00:00";
$gtEndDay = "19:00:00";
$today_date = Get-date -Format "dd.MM.yyyy";

function set-password($lsAccount) {
	Set-QADUser $lsAccount -ObjectAttributes @{pwdLastSet=0} | Out-Null;
	Set-QADUser $lsAccount -ObjectAttributes @{pwdLastSet=-1} | Out-Null;
}

function get-password($lsAccount) {
	get-qaduser $lsAccount -IncludedProperties pwdLastSet | % {$lsPwdLastSet = $_.pwdLastSet;}
	$lsPwdLastSet = $lsPwdLastSet.AddHours(3);
	$lsPwdLastSetNorm = get-date -uformat '%d.%m.%Y %R' -Date $lsPwdLastSet;
	return $lsPwdLastSetNorm;
}

function send-eMail($to,$toCc,$text="",$subject="Изменение даты установки пароля",$toBcc="admin3@domain.com") {
	write-host "Кому: $to | тема: $subject | текст: $text";
	$Enc = [Text.Encoding]::UTF8;
	Send-MailMessage -to $to -from "admin1@domain.com" -Bcc $toBcc -Cc $toCc -subject $subject -smtpServer MAIL-SRV -BodyAsHtml $text -Encoding $Enc;
}

function get-sleepRandom($liMinimum, $liMaximum) {
	$giSleep = Get-Random -minimum $liMinimum -maximum $liMaximum
	# $giSleep = 30;
	$giSleepS = $giSleep % 60;
	$giSleepM = $giSleep - $giSleepS;
	$giSleepM = $giSleepM / 60;
	$gdFuture = (Get-Date).AddSeconds($giSleep);
	write-host "Ждем"$giSleepM" минут "$giSleepS" секунд (будет выполнен "$gdFuture")...";
	Start-Sleep -Seconds $giSleep
}

function isAtWork($ltBegin, $ltEnd) {
	$lbAtWork = $FALSE;
	
	$giDayOfWeek = (get-date).DayOfWeek.ToString('d');
		
	if (($giDayOfWeek -gt 0) -and ($giDayOfWeek -lt 6)) {
		$today_date_full = $today_date + " " + $ltBegin;
		$today_date_full2 = $today_date + " " + $ltEnd;
		write-host $today_date_full" - "$today_date_full2;
		$a=[datetime]::parse($today_date_full);
		$c=[datetime]::parse($today_date_full2);
		$b = get-date;
		
		if (($b -gt $a) -and ($b -lt $c)) {
			write-host $b". Время позже 8:00 и раньше 19:00, пользователь может поменять пароль!";
			$lbAtWork = $TRUE;
		} else {
			write-host "Время раньше 8:00 или позже 19:00, пользователь не может поменять пароль.";
		}
	} else {
		write-host "Сегодня выходной, пользователя нет на работе.";
	}
	
	return $lbAtWork;
}

function update-password_wReport($lsAccount) {
	write-host " ";
	write-host "*"$lsAccount;
	$gbAtWork = isAtWork $gtBeginDay $gtEndDay;
	if ($gbAtWork) {
		$gsPwdLastSet = get-password $lsAccount;
		$lsText = "<tr><td style='border:1px solid RGB(200,200,200);'><strong>" + $lsAccount + "</strong></td><td style='border:1px solid RGB(200,200,200);'>" + $gsPwdLastSet + "</td>";
		set-password $lsAccount;
		$gsPwdLastSet = get-password $lsAccount;
		$lsText = $lsText + "<td style='border:1px solid RGB(200,200,200);'>" + $gsPwdLastSet + "</td></tr>";
	} else {
		$lsText = "<tr><td style='border:1px solid RGB(200,200,200);'><strong>" + $lsAccount + "</strong></td><td style='border:1px solid RGB(200,200,200);'>Нет на работе</td><td style='border:1px solid RGB(200,200,200);'></td></tr>";
	}
	return $lsText;
}

$gsText = $gsText + "<table style='border-collapse:collapse; width:500px; font-family:Tahoma,Arial,Calibri;font-size:10pt;'>";
$gsText = $gsText + "<tr><td style='width:40%; border:1px solid RGB(200,200,200); text-align:center;'>Учетная запись</td>";
$gsText = $gsText + "<td style='width:130px; border:1px solid RGB(200,200,200); text-align:center;'>Было</td><td style='width:130px; border:1px solid RGB(200,200,200); text-align:center;'>Стало</td></tr>";

if ($ARGS[0] -ne $Null) {
	$gsText = $gsText + (update-password_wReport $ARGS[0]);
} else {
	Get-Content -LiteralPath $gsFilename | 
		% {
			$gsText = $gsText + (update-password_wReport $_);
			
			$giX = $giX + 1;
			if ($giX -lt $giRows) {
				get-sleepRandom $giMinimumSleep $giMaximumSleep;
			}
		}
}
$gsText = $gsText + "</table>";
if ($ARGS[1] -ne $Null) {
	send-eMail $ARGS[1] "admin1@domain.com" $gsText;
} else {
	send-eMail "admin1@domain.com" "admin2@domain.com" $gsText;
}


Под катом описание, использование и особенности.
Читать дальше →

Вышел — Nanocad 5.1 FREE

Reading time2 min
Views34K
Странно, что в блоге Нанософт еще нет новостей о данном событии.
Тем не менее у многих людей время от времени возникает необходимость
в простом и доступном и бесплатном инструменте для 2D черчения. Именно им может стать для вас Нанокад.

Почему я пишу этот пост? Потому что уже 2 года, черчу в Нанокаде, и с каждой новой версией этот процесс все меньше становится похожим на «поедание кактуса». В общем-то и предыдущая бесплатная версия (3.7) уже была пристойной, но обновления скажу честно — ждал.

Мы с коллегой DrZugrik опробовали новую версию 5.1

и вот что отметили для себя (под катом):

image
Читать дальше →

24 способа наконец-то найти хорошего специалиста

Reading time16 min
Views39K


Сегодня я хочу поговорить об одной из самых распространенных проблем в ИТ – нехватка квалифицированных специалистов. С ней сталкиваются абсолютно все, в этой сфере вакансий больше, чем специалистов на рынке, а темпы роста потребности в специалистах огромны.

Мы для решения этой проблемы в своих масштабах приложили массу усилий и попробовали довольно много интересных ходов. Выход из сложной ситуации есть, ведь рынок работает и растет каждый год. В этой статье я расскажу 24 метода, которые помогли нам решить эту важную проблему для себя.
Читать дальше →

Перевод AirBnB Style Guide

Reading time4 min
Views48K


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

— В кэмелкейсе пишем?
— Да, как обычно, в кэмелкейсе
… прошло две недели…
— Мы ж в кэмелкейсе договаривались!!!


В нашем случае не было разве, что последней фразы.
Уже давно хотелось как-то это систематизировать, но никак не доходили руки до выбора между стилями от jQuery, Google, ideomatic.js и Crockford.

Когда месяц с небольшим назад в trending гитхаба попало руководство от AirBnB, оно тут же попалось нам на глаза…
А неделю назад мы его перевели, в первую очередь для собственных нужд, но не поделиться с сообществом не могли.

Прочитать крайне советую как минимум всем начинающим js-разработчикам.

Читать дальше →

Отчёт о запуске программ на компьютерах пользователей

Reading time28 min
Views69K
Всем привет!
Отчёт о том, что запускает пользователь на своём компьютере, крайне важен. С многих точек зрения. Особенно с точки зрения информационной безопасности.
Информация о запуске программ на компьютерах пользователей храниться в журнале безопасности. Конечно, рассматривается среда Windows. В Инете готового решения не нашёл, поэтому сделал свою реализацию.
Скрипт запускается на сервере. На выходе имеем набор файлов с отчётами о запуске программ.
Картинка для привлечения внимания:

Реализация

Пишем красивый идиоматический Python

Reading time4 min
Views113K

Иногда сложно найти в Сети правильные, а главное актуальные «best practices» для языка. Документация, конечно же, содержит всю необходимую информацию, но отсеять нужную вещь в абзацах подробного (на то она и документация) описания довольно сложно. Но недавно мне улыбнулся поиск Google, и я наткнулся на очень полезные «паттерны» языка Python от одного из core разработчиков — Raymond Hettinger.

Примечание: Все рекомендации даны в нескольких вариантах: сначала идут самые «плохие» варианты, а дальше предлагается лучшая альтернатива. Актуально для версии языка 2.7, отличия для версии 3.3 читайте в примечаниях к конкретному «паттерну».
Читать дальше →

Wireshark — приручение акулы

Reading time10 min
Views1.1M


Wireshark — это достаточно известный инструмент для захвата и анализа сетевого трафика, фактически стандарт как для образования, так и для траблшутинга.
Wireshark работает с подавляющим большинством известных протоколов, имеет понятный и логичный графический интерфейс на основе GTK+ и мощнейшую систему фильтров.
Кроссплатформенный, работает в таких ОС как Linux, Solaris, FreeBSD, NetBSD, OpenBSD, Mac OS X, и, естественно, Windows. Распространяется под лицензией GNU GPL v2. Доступен бесплатно на сайте wireshark.org.
Установка в системе Windows тривиальна — next, next, next.
Самая свежая на момент написания статьи версия – 1.10.3, она и будет участвовать в обзоре.

Зачем вообще нужны анализаторы пакетов?
Для того чтобы проводить исследования сетевых приложений и протоколов, а также, чтобы находить проблемы в работе сети, и, что важно, выяснять причины этих проблем.
Вполне очевидно, что для того чтобы максимально эффективно использовать снифферы или анализаторы трафика, необходимы хотя бы общие знания и понимания работы сетей и сетевых протоколов.
Так же напомню, что во многих странах использование сниффера без явного на то разрешения приравнивается к преступлению.

Начинаем плаванье


Для начала захвата достаточно выбрать свой сетевой интерфейс и нажать Start.
Читать дальше →

Самые часто употребляемые слова на Хабре

Reading time3 min
Views38K
Всем привет, хабрачитатели!

Это статья про очередной хабрапарсер.
В конце сентября я читал какую то статью и там опять были слова «стартап», «инновации», «javascript», «фреймворк».
Казалось что в каждом посте они есть. И я решил это проверить. Подробности под катом.
Читать дальше →

Автоматизируем мониторинг: низкоуровневое обнаружение для SNMP

Reading time74 min
Views103K
Мы уже писали о том, какой замечательный инструмент как LLD есть в Zabbix.



Тогда же мы посетовали, что составные индексы в SNMP-таблицах в системе не поддерживаются, что несколько ограничивает возможности по применению. Например, если вам нужно сделать Discovery двух RAID-контроллеров на одном сервере и всех физических и логических дисков за ними, то, увы, мы этого сделать не могли без костылей. Работало только для первого RAID-контролера в списке. Но, как говорится, все течет, все меняется! И вот долгожданный релиз 2.2 убрал это связывающее нас по рукам ограничение.

Рассказать о нововведении я бы хотел на примере шаблона для HP серверов. Но сначала немножко вспомним про SNMP.

Читаем и учимся

Беспроводные коммуникации «умного дома». Часть вторая, практическая

Reading time13 min
Views138K
После написания пары больших постов про «радиофицированный» умный дом, было достаточно много желающих получить код, который помог бы разобраться с этой темой более детально.
Свой исходный вариант кода по некоторым причинам выкладывать не хотелось — подготовил «облегченный» вариант, который позволит объяснить мои основные задумки.

Для того, чтобы пост получился наиболее зрелищным и полезным, сегодня реализуем домашнюю мини-систему (часы, календарь, погода, контроль уровня заряда батареек в датчиках и т.п.), состоящую из одного «главного» модуля (с большой светодиодной матрицей в качестве индикатора), двух автономных датчиков (будут измерять температуру) и модуля синхронизации времени через NTP.
Хватит слов, поехали!

The Dude. Практический мониторинг (Часть 1)

Reading time18 min
Views354K
Для меня все началось с этого поста. Хабраюзер gsandul решил написать книгу-руководство по системе мониторинга The Dude, а я ему помог в меру своих возможностей. Если у вас появилось желание положительно оценить данный пост, то все бонусы автору книги — он это заслужил больше.
Все замечания, пожелания и т.п. пишите, пожалуйста, в комментариях — это позволит учесть ошибки и недочеты в следующих частях книги.
Под катом первая часть.
Итак, приступим.
Читать дальше →

Извлекаем золото из старой электроники

Reading time2 min
Views783K


У каждого из нас скопились десятки ненужных и сломанных гаджетов. Оказывается, все эти приборы способны принести немного пользы перед своим уничтожением.

Инженер и химик Джозеф Мурчинсон (Josehf Murchison) опубликовал на сайте Instructables пошаговую инструкцию, как выплавлять золото из старых электронных приборов, которые вы собирались выбросить на свалку: старые ноутбуки, телефоны, камеры, принтеры, сканеры и прочее ненужное барахло.
Читать дальше →

Information

Rating
Does not participate
Location
Владивосток, Приморский край, Россия
Date of birth
Registered
Activity