Search
Write a publication
Pull to refresh
55
0
Andrey Sorokin @shadowalone

Пользователь

Send message

Диалплан на LUA для Asterisk

Reading time8 min
Views28K
Приветствую всех. Когда-то тема использования языка программирования lua при написании диалплана в Астериске для меня стояла довольно жёстко. Дело в том, что мне сильно не нравится работать с различными GUI (типа FreePBX) при настройке Астериска.

Когда я всё настраивал в первый раз, работал с обычным линейным extensions.conf. Время шло, потребности в функционале телефонии росли. Язык lua постепенно немного изучил. И вот пришёл я работать админом в одну крупную компанию в нашем городе (одно крупное агентство недвижимости) — около 45 филиалов на тот момент было, примерно 650 — 700 пользователей, включая межгород и т.д. Там уже стоял Asterisk, но всё настроено было с использованием FreePBX.

Почти сразу руководство начало меня заваливать различными вопросами по наворотам Астериска. Например, хотели, чтобы при входящем звонке в какой-то филиал, звонки внутри филиала были распределены случайным образом. Хотели иметь запись разговоров в mp3, хотели сделать общую группу, куда можно было бы включить вообще все филиалы и при наборе какого-то номера, чтобы случайно попасть на один из филиалов и т.д. Задачи вроде простые, однако сидеть решать даже такие вопросы средствами графического интерфейса лично мне было не очень интересно.
Читать дальше →

Asterisk+Lua+регулярное обновление DEF кодов

Reading time3 min
Views5.8K
Снова всех приветствую. После написания прошлой статьи про использование lua в астериске, пришла мысль про небольшое пояснение об использовании DEF-кодов совместно с lua. Ранее тут пролетала статья про генерацию кодов используя скрипт на php. Я этим скриптом успешно пользовался и пользуюсь, но с небольшими (совсем не большими) доработками.

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

Asterisk+Lua — IVR и некоторые другие моменты

Reading time3 min
Views11K
И снова здрасьте! IVR — сегодня это даже не фишка, а некий стандарт работы предприятия. В некоторых случаях многие, как клиенты, так и конкуренты считают, что если этого самого IVR нет, то «там» низкое качество предоставляемых услуг. Этой штукой нынче никого не удивишь. Однако, мы же говорим про реализацию IVR на языке lua под Астериском. И если вы переходите от обычного плана набора к Lua, то тут можно кое-что пояснить.

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

Puppet. Часть 1: введение в Hiera

Reading time11 min
Views47K

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

Вы наверняка знаете или представляете, что управление большой инфраструктурой с помощью Puppet — непростая задача. Если для десяти серверов Паппет не нужен, для пятидесяти в самый раз и код можно писать как угодно, то когда речь идет о 500+ серверов, то в этом случае приходится уже серьезно думать об оптимизации своих усилий. Плохо, что Паппет изначально, видимо, не задумывался, как решение для больших инфраструктур, по крайней мере иерархия в него изначально заложена из рук вон плохо. Стандартные node definitions совершенно неприменимы в больших компаниях. Node inheritance (также как и class inheritance) Puppetlabs не рекомендуют больше использовать вообще, вместо этого лучше загружать данные о иерархии из внешних источников, таких как Hiera и External Node Classifier (ENC).
Читать дальше →

Open vSwitch как ядро виртуальной сети

Reading time8 min
Views110K
В данной статье для виртуализации используется KVM/libvirt, но сразу отмечу, статья не столько о KVM, сколько именно об особенностях преимуществах использования Open vSwitch для объединения виртуальных и физических сетевых устройств посредством технологии VLAN (802.1q). В былинные времена для проброса тегированного трафика в гипервизор использовались всевозможные костыли и подпорки различной степени неожиданности (tuntap, brctl, vconfig, ebtables и прочее), что приводило к захламлению операционной системы, хостящей гипервизор, большим количеством ненужных виртуальных сетевых интерфейсов, мозолящих глаза в выводе ifconfig и вообще огорчало администраторов необходимостью строить стандартное сетевое устройство (коммутатор) из отдельных частей как какой-то велосипед. Помимо поддержки 802.1q от коммутатора на самом деле сегодня требуется еще много функций. Так необходимость в виртуальном устройстве максимально соответствующем по функционалу стандартному современному управляемому коммутатору привела к появлению проекта Open vSwitch (далее — OVS).

image
Рисунок 1: Проект песочницы
Подробности

Писать скрипты для Mikrotik RouterOS — это просто

Reading time6 min
Views231K
RouterOS — сетевая операционная система на базе Linux. Данная операционная система предназначена для установки на аппаратные маршрутизаторы Mikrotik RouterBoard. Также данная система может быть установлена на ПК (или виртуальную машину), превращая его в маршрутизатор. Изначально довольно богатая функционалом ОС нет нет да и удивит отсутствием какой-нибудь нужной фишки из коробки. К сожалению, доступ к Linux-окружению очень сильно ограничен, поэтому, «это есть под Linux» абсолютно не равнозначно «это есть в RouterOS». Но не надо отчаиваться! Эта система предоставляет несколько возможностей для расширения своего функционала. Первая — самая простая и нативная — это возможность писать скрипты на встроенном языке.
В данной статье, в качестве примера будет рассмотрен скрипт, преобразующий DNS-имена в списки IP-адресов (address lists).
Зачем он может быть нужен? Многие сайты используют Round Robin DNS для распределения нагрузки (а некоторые и не только для этого). Чтобы управлять доступом к такому сайту (создать правило маршрутизации или фаервола) нам потребуются все IP-адреса, соответствующие этому доменному имени. Более того список IP-адресов по истечении времени жизни данной DNS-записи (в данном случае речь идёт об A-записи) может быть выдан абсолютно новый, поэтому информацию придётся периодически обновлять. К сожалению в RouterOS нельзя создать правило
блокировать все TCP соединения на порт 80 по адресу example.com
на месте example.com должен быть IP-адрес, но как мы уже поняли, example.com соответствует не один, а несколько IP-адресов. Чтобы избавить нас от мучения создания и поддержки кучи однотипных правил, разработчики RouterOS дали возможность создавать правило так:
блокировать все TCP соединения на порт 80 по любому адресу из списка с именем DenyThis
Дело осталось за малым — автоматически формировать этот самый список. Кто ещё не утомился от моей писанины приглашаю под хабракат.
Читать дальше →

Восстановить Apple keyboard aluminium после попадания жидкости

Reading time4 min
Views122K


Все началось с того, что однажды мне залили красным вином проводную клавиатуру от Apple (MB110RS). Максимум, что было сделано до того, когда я об этом узнал, лишь удаление внешних следов попадания жидкости.

Надо отметить, что эта клавиатура не зря считается одной из самых удобных в своем роде в принципе: легкий тихий ход клавиш, полностью свободные и расслабленные руки при работе за ней, приятный дизайн.
Так вот именно своего главного достоинства — легкого хода клавиш — после того, как под них попало вино, клавиатура почти лишилась: стали залипать кнопки в особенности нижнего ряда — Shift, Ctrl, Alt, Cmd и в первую очередь Пробел. Оно и понятно — попавшая жидкость ввиду наклона клавиатуры устремилась в нижнюю ее часть, и вино, вода из которого успела испариться, оставило свой сухой остаток на контактных площадках, пружинящих резинках и под клавишами. Справедливости ради стоит сказать, что даже после этого клавиатура продолжала работать.
Читать дальше →

Монтируем диски NTFS для записи в MacOS X 10.9 Mavericks

Reading time2 min
Views34K
Понадобилось мне на днях сделать бэкап (около 75 гигабайт разных файлов) на внешний жесткий диск, да вот незадача — отформатирован он в файловую систему NTFS — вроде бы другие операционные системы давно пишут на нее без проблем, а в MacOS пришлось использовать «свое решение».

И так, изучив, то что мне предлагает google, выяснилось что надо купить либо Paragon NTFS, либо Tuxera NTFS, либо использовать бесплатное решение.

После ряда экспериментов, выяснилось, что наиболее простой способ — это поставить пакет ntfs-3g из MacPorts и подменить /sbin/mount_ntfs

Система портов MacPorts была у меня давно установлен (я ставил из него mc, wget и другие полезные утилиты, к которым привык в ОС Linux, такие как pwgen, например).

На чистой системе его нет — следовательно его необходимо установить согласно инструкциям на www.macports.org — скачать и запустить скрипт установки.

Далее, установим osxfuse и ntfs-3g

sudo port install osxfuse ntfs-3g

И чтобы была полная автоматизация, то есть автоматически монтировался носитель (а не вручную) подменяем mount_ntfs

sudo mv /sbin/mount_ntfs /sbin/mount_ntfs.orig
sudo vi /sbin/mount_ntfs
Читать дальше →

Автозапуск программ с подключением к сетевым дискам в требуемой последовательности

Reading time4 min
Views9.8K
Поскольку системник в себе несет всего 256 Гб под систему и софт, бОльшую часть рабочих файлов, библиотеки, архивы и т.п. храню на нЕком файл-сервере под управлением XP который по гигабитному Ethernet подключен к рабочему компу. СтоИт сей девайс в подвале, шумом не напрягает ))) А так-же по Wi-Fi расшарены папки с музыкой и кино с этой файло-свалки для нубуков, планшетов, смартфонов.

Задался вопросом как все эти сетевые диски автоматом монтировать в МАК-ОСь? Начитался интернетов и написал скриптик, оформив его в стандартную программу и заснув ее в автозагрузку.

image

Итак, что в нем используется:
Поскольку комп грузится на столько быстро, что DHCP роутера не успевает присвоить IP-адрес МАКу выдавая ошибку, что команде не удалось подключить внешний диск. Посему пришлось поставить десяти-секундную задержку перед выполнением команд монтирования сетевых дисков:

set pause to (10)
delay pause


Следующим этапом создаем тома в МАКе и монтируем сетвые диски.
Уточнение: МАК и файл-сервер висят в рабочей группе WORKGROUP, а сервер имеет сетевое имя serverX32 (хотя можно использовать и IP-адрес сервера):

do shell script ("mkdir /Volumes/My_DOCs") <!--  создание директории сетевого диска My_DOCs в МАКе -->
do shell script ("mount -t smbfs //login:password@serverx32/My_DOCs /Volumes/My_DOCs") <!-- Подключение по SMB-протоколу Виндового диска с именем My_DOCs с логином и паролем, для доступа на чтение/запись, если заход на данный диск происходит без логина/пароля диск имеет статус только чтение (для смартфонов и планшетов). -->
do shell script ("mkdir /Volumes/Video") <!-- создание директории второго сетевого диска в МАКе -->
do shell script ("mount -t smbfs //login:password@serverx32/Video /Volumes/Video")
и т.д. сколько нужно подключить дисков…


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

Свет и цвет: основы основ

Reading time10 min
Views407K
Piccy.info - Free Image Hosting
Мы часто говорим о таком понятии как свет, источниках освещения, цвете изображений и объектов, но не совсем хорошо себе представляем, что такое свет и что такое цвет. Пора разобраться с этими вопросами и перейти от представления к понимаю.
Читать дальше →

Строим OpenVPN мост под Mac OSX

Reading time6 min
Views53K
Однажды у меня появилась необходимость иметь доступ к локальной сети из удаленного места. Для выполнения данной задачи на iMac был поставлен OSX server в котором был настроен удаленный доступ VPN. Все работало вполне сносно кроме mDNS(Bonjour). Как оказалось данная реализация VPN не поддерживает мультикаст. А он был жизненно необходим из за наличия некоторых специальных приложений которые работают только в локальной сети.

После непродолжительного поиска нашлось несколько решений данной проблемы. Одно из них бесплатное предполагало установку программы «Network Beacon» и прописывания в ней руками путей к службам «Bonjour». Другое решение было платным и предполагало установку специального приложения «ShareTool» которое во первых может строить собственные SSH туннели и во вторых передавать по туннелю информацию о службах на стороне сервера.

Минусов у этого решения два. Первый это то что надо покупать лицензию на каждую машину. Ну и второй заключается в том что это решение все равно костыль. А мне хотелось все сделать как можно чище.

Решением оказалась постройка VPN моста на базе OpenVPN с виртуальным адаптером «tap».
Но как это сделать? В сети я нашел много разных инструкций по настройке подобной конфигурации но ни одного варианта постройки моста под OSX.

И тут я вспомнил как настраивал мост для расширения беспроводной сети и решил сделать все похожим образом.
Вся магия под катом

3G Модем и MikroTik

Reading time4 min
Views234K
Все началось с того, что дома пропал интернет. У меня подключены два проводных оператора и оба стали недоступны. Позже оказалось, что в соседнем доме выключили электричество. Поскучав час другой без интернета, я вспомнил о 3G модеме ZTE MF112. Подключил к компьютеру, но этого было мало, хотелось еще и рабочий Wi-Fi в квартире. По этой причине я его подключил к своему MikroTik RouterBoard 951g-2hnd. Вот об этом я и расскажу.
image
Читать дальше →

MPLS и VPLS на Mikrotik

Reading time9 min
Views139K
С одной стороны, желание несколько странное — организация «серьезного» MPLS/VPLS на дешевом железе типа Mikrotik. С другой стороны — за 70 баксов (1500-2000р) за младшую модель RB/750(GL) мы получаем PE/CE-устройство, умеющее (помимо прочего) L2VPN/L3VPN поверх MPLS-среды и способное прокачать через себя порядка 70 мегабит дуплекса (на больших пакетах).
Mikrotik RouterOS умеет как MPLS (L3VPN, Traffic Engeneering), так и L2VPN (l2circuit aka VPWS, VPLS), что покрывает практически все возможные задачи (учитывая производительность железа, разумеется).

Интересно? Прошу под кат!
Читать дальше →

Мгновенное умножение

Reading time2 min
Views38K
Некоторые приемы сокращенных вычислений знать очень полезно. Кроме того, эти приемы часто любопытны и сами по себе. Поэтому считаю не лишним познакомить с ними и читателей Хабра.

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

Автозапуск подключения PPPoE без входа в учётную запись

Reading time7 min
Views86K
Я хотел бы поведать об одном трюке, который можно провернуть при помощи планировщика заданий в Windows.
У меня установлена Windows 7, а также есть PPPoE-подключение от нашего городского кабельного провайдера.
Задача состоит в том, чтобы включать это подключение сразу же после того, как в винде поднимается подключение к локальной сети, и пользователь может быть ещё даже не вошёл в свою учётную запись.
В большинстве своём инструкции, которые можно найти в рунете, сводятся к вынесению ярлыка подключения в автозапуск. Здесь же иной случай. Необходимо, чтобы подключение производилось ещё до входа в учётную запись пользователя.
Забегая вперёд, скажу, что таким же образом можно сделать выполнение любой другой команды, причём не только при подключении к какой-либо проводной сети, но и к Wi-Fi.
Я привожу полное описание, с кучей скриншотов, как для новичков.
Читать дальше →

Активация многопользовательского режима на вашем смартфоне с Android 4

Reading time2 min
Views78K
В комментариях к этому топику про Android 4.3 я увидел интерес к многопользовательскому режиму на планшете под управлением Android 4 и сожаления по поводу отсутствия оного на смартфоне.
Мне хочется рассказать хабросообществу о том, как, путем нехитрых манипуляций, вы сможете включить многопользовательский режим на вашем смартфоне на примере моего Samsung Galaxy Nexus (I9250) с установленным на нем CyanogenMod 10.1.

Что же дает нам многопользовательский режим?
Читать дальше →

Что делать, если к вам попал Android со сломанным сенсорным дисплеем

Reading time4 min
Views292K
image

В один прекрасный день ко мне в руки попал Nexus 4. В наших краях это редкость, поэтому хотелось бы использовать его как основной телефон. К сожалению, тач у него разбит. Одна из болячек всех современных смартфонов. Ну, решено было восстанавливать. Купил тач на ebay. Теперь ждать слоупочту россии месяцок-другой. Захотелось узнать о девайсе побольше, поработать с ним, пока посылка едет. Заодно проверить, всё ли работает. А то, может, камера или динамики тоже покрошились. В данной статье рассмотрим захват управления девайсом, если сломан тач.
Читать дальше →

Как я искал свой телефон с помощью Android Device Manager

Reading time2 min
Views863K
В прошлую пятницу, по пути домой, я бездарно посеял свой телефон в автобусе. Осознание этого печального факта пришло позже, когда я уже выходил из метро. Новый Nexus 4 терять очень жалко. К счастью я знал о нескольких программах, которые могут отслеживать местоположение телефона.

Прийдя домой, я первым делом попробовал включить Prey, но потом я вспомнил, что после рутования телефона я забыл активировать свой аккаунт.
После этого я попытался поставить Plan B, но тут меня ждал облом. Plan B работает только на старых версиях ОС.

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

HotSpot в Mikrotik, или как заработать $: Часть 2

Reading time5 min
Views80K

Общие сведения



Это вторая часть статьи, иллюстрирующие возможности использования OS Mikrotik, в качестве HotSpot точки. В первой части я рассказывал как настроить HotSpot, а так же познакомил с возможностью выдачи и покупки карт доступа. Ознакомиться с первой частью вы можете здесь.

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

Information

Rating
Does not participate
Date of birth
Registered
Activity