Некоторое сетевое оборудование (к примеру, Cisco 7940, о котором была предшествующая статья) требует наличия в локальной сети NTP-сервера для получения текущего времени из доверенного источника. Некоторые роутеры поддерживают работу в режиме NTP-сервера уже из коробки, а некоторые требуют установки специализированных прошивок типа OpenWRT или ddWRT. В моей же сети есть Asus RT-N12VP, который поддерживает только прошивку TomatoUSB by shibby (ну, еще определенными шаманскими методами можно ddWRT загрузить, но поднять WAN на ней мне пока так и не удалось), а она имеет лишь встроенный NTP-клиент.

Стоит отметить принцип работы прошивки на данном роутере: она загружена таким образом, что при перезагрузке роутера просто выгружается в /tmp в полноценном режиме чтения/записи, а затем монтируется уже в режиме чтения в более привычные /etc, /dev и пр. Но, так как выгрузка происходит во временную память, то и все изменения, внесенные в эти файлы, живы лишь до следующей перезагрузки роутера, после чего все снова становится девственно чистым, как будто прошивка только что была загружена.

Для решения этой проблемы существует правильный вариант (который я тоже обязательно когда-нибудь рассмотрю в деталях, но не сегодня, т.к. мне лень) — модификация самого файла прошивки перед ее загрузкой на роутер. Суть такой модификации в нашем случае заключается в том, чтобы распаковать прошивку, добавить в нее нужный нам исполняемый файл и его настройки, после чего запаковать обратно. Стоит отметить, что при работе данным методом следует очень внимательно следить за размером полученного в итоге файла, т.к. иногда лишние 10Кб размера могут привести к невозможности ее работы на роутере из-за недостатка памяти.

Сегодня же мы рассмотрим более простой и ленивый вариант, так сказать, workaround. Для него нам потребуется действующий http-сервер (где угодно, хоть в локальной сети, хоть за ее пределами), на который мы можем загрузить файлы и потом скачать их по прямой ссылке.

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


Вчера ко мне попал новый интересный телефон от Cisco — 7940. Новый он для меня, а не для Cisco — они эту модель сняли с производства уже достаточно давно, но несмотря на это она не теряет своей актуальности и по сей день, особенно учитывая то, что стоит в сравнении с модными моделями совсем недорого. Единственная проблема с ним заключается в том, что в базовой комплектации отсутствует блок питания, так как производителем предполагается, что питание будет осуществляться посредством PoE. У меня в сетях PoE нет и пока не ожидается, поэтому я потратил некоторое время на поиск блока питания. И нет, если в вашей сети нет PoE, то телефон не будет работать просто от локальной сети (может быть, звучит смешно, но мне почему-то казалось, что это возможно).

Итак, давайте рассмотрим, как устроен 7940. Во внутреннюю память каждого телефона установлен загрузчик приложений — это тот самый экран с логотипом Cisco и быстро крутящимся спиннером. Его функция заключается в том, чтобы загрузить нужную прошивку, настройки и поднять сетевое подключение. Я лично знаю две прошивки под этот телефон — SCCP и SIP. В данной инструкции речь пойдет о SIP и использовании телефона вместе с АТС Asterisk.

У телефона отсутствует возможность принудительной прошивки — загрузчик сам обратится к TFTP-серверу и скачает все, что ему нужно, вам же остается только указать версию прошивки в конфигурационном документе. TFTP-сервер может как постоянно размещаться в вашей сети, так и запускаться только для настройки телефона, однако стоит обратить внимание на то, что пользовательские рингтоны вы сможете загружать и использовать только в случае постоянного наличия подключения к TFTP-серверу, т.к. телефон не сохраняет выбранный рингтон, а скачивает его каждый раз, когда он потребуется. Таким образом, как только связь с сервером пропадает — возвращается рингтон по умолчанию. Обратите также внимание на то, что TFTP-серверу вовсе не обязательно находиться в локальной сети, но ему обязательно иметь публичный IPv4-адрес, так как обращение происходит именно по IP.

Временный TFTP-сервер
Потребуется в том случае, если на телефоне не установлена никакая прошивка и после подключения к сети он не загружается дальше логотипа Cisco с надписью «TFTP Timeout» (т.е. у вас нет доступа к настройкам в принципе).

1. Скачиваем tftpd для Windows (или tftp-hpa для Linux). Крайне рекомендую portable-версию, так как версия с установщиком работает на Windows 10 крайне странно: после настройки требует перезапуститься для сохранения настроек, после чего запускается с настройками по умолчанию).

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

Наконец-то настал момент, когда мы готовы рассказать о чем-то интересном, касательно новых продуктов и услуг. В этом месяце наша новинка — приложение для Интернет-магазинов на платформе InSales (также, виджет для amoCRM), позволяющее осуществить полноценную интеграцию Интернет-магазина в систему amoCRM.

Лично мне даже не верится, что это приложение уже опубликовано, так как начиналось его создание более года тому назад. Все это время мы занимались изучением рынка интеграций, потребностями бизнеса, использующего amoCRM для учета продаж, производимых посредством магазинов на платформе InSales. У человека, знакомого хотя бы с одной из сторон данной интеграции, сразу возникнет вопрос: так ведь системы появились не вчера, там масса приложений; что же отличает «amoCRM Учет» от них? Этот вопрос очень интересен, поэтому я предлагаю рассмотреть его детально. Даже детальнее, чем мы это сделали на профильном сайте и в инструкции к приложению.

• Работа с товарами
Согласитесь, сегодня, в 2018-ом году, достаточно трудно представить себе магазин, который не работает с товарами раздельно, обрабатывая их в виде списков. Существующие прежде варианты интеграции позволяли только лишь создать контакт в amoCRM, сделку и вбросить в нее список приобретенных покупателем товаров в виде примечания. А как же товароучет, ведь amoCRM предлагает столько различных методов его ведения? Вести бизнес только на основании текстовых данных, это, конечно, достаточно стабильно, но в конечном итоге это примерно то же самое, что приобрести iPhone X и использовать его только для звонков внутри сети.

В своем приложении мы мало того, что в полной мере реализовали систему карточек товаров, предоставляемую уже достаточно давно всем аккаунтам amoCRM, так еще и доработали ее таким образом, чтобы пользователи amoCRM могли видеть товары, а не только знать их названия. Между прочим, это функция продиктованная реальными потребностями бизнеса, которые мы изучали так долго. Давайте рассмотрим один пример того, почему SDK-карточки с иллюстрациями — это круто.

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

С тех пор, как в «Укртелекоме» сообщили, что восстановление кабельной сети ожидается не ранее первой половины 2020-ого года я окончательно понял, что ожидать нам уже нечего и в офисе скорее появится спутниковый телефон, чем проводной стационарный. Тем не менее, кабельная инфраструктура-то имеется, равно как и куча стационарных телефонных аппаратов, которые ныне продают по объявлениям едва ли не по десятке за штуку. На днях меня посетила очень интересная идея: а что, если использовать нашу IP-АТС еще и как коммутатор для стационарной связи? Для этого были закуплены адаптеры Cisco ATA 186 без блоков питания. Небольшой спойлер: как правило, там, где продают адаптеры, есть и блоки питания, но покупать вы их там будете втридорога. Лучше пойти на ближайший радиорынок и купить аналогичные БП в три (!) раза дешевле, как это сделал я.

Данная статья предполагает, что IP-АТС Asterisk у вас уже поднята и заострять на ней внимание я не буду, только укажу настройки, которые обеспечили оптимальное качество связи на канале ATA-Asterisk-ATA.

Итак, у нас на руках есть Cisco ATA 186. В отличие от роутеров и точек доступа, здесь не получится просто зайти на 192.168.0.1, ввести admin:admin и начать администрировать. Все намного интереснее — у адаптера есть голосовое меню настроек, но оно полностью на английском и версии на русском я никогда не встречал. Тем не менее, базовые настройки легко вводятся и без знания языка. Первое, что нам нужно сделать — это определить IP-адрес, к которому прибилась ATA в нашей локальной сети (и присвоен ли он вообще).

1. Настройки сети.
По умолчанию, ATA принимает настройки сетевого соединения по DHCP. Однако, если она прежде была в эксплуатации, то вполне вероятно, что IP-адрес установлен в такое значение, которое либо занято в вашей локальной сети, либо вообще находится вне адресного пространства.
Подключаем ATA к локальной сети, а в первый телефонный порт включаем любой стационарный телефон с тональным набором (хотя импульсные терминалы тоже с легкостью могут быть подключены к IP-АТС, но для этого между терминалом и ATA нужно установить конвертер импульсов в тональные сигналы, стоит копейки, т.к. практически неприменим в современном мире). Поднимаем трубку на телефоне и видим, что на верхней панели ATA загорелась красная кнопка. Жмем на нее и слышим в телефоне голосовое меню. Для того, чтобы узнать текущий IP-адрес адаптера, введите комбинацию 21#. Робот прочитает IP-адрес по цифрам с указанием точек. Если IP-адрес соответствует вашей локальной сети, то можно попробовать ввести его в веб-браузере и если откроется страница настройки, то от голосового меню можно отстать (одинаково при этом, нажмете вы на диез или же просто положите трубку).

Если названный роботом IP-адрес совершенно не соответствует вашему адресному пространству (например, у вас локальная сеть 192.168.0.0/16, а ATA присвоил себе адрес 10.0.1.250), то пришло время заняться настройкой сети более детально. Для начала, давайте определимся: в вашей сети адреса присваиваются по DHCP или вручную?

1.1. Присвоение адресов по DHCP.
Здесь все просто. Настройка DHCP имеет приоритет над статичным IP-адресом, поэтому достаточно только установить ее значение в единицу и перезапустить ATA. Входим в голосовое меню адаптера и вводим комбинацию 20#1#3. После перезагрузки еще раз проверяем назначенный IP-адрес командой 21# и если он изменился, то дело в шляпе.

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

Как вы знаете, на территории Украины в последнее время почта от Mail.Ru перестала открываться. С доступом к веб-версии все легко — там проблемы решаются в несколько кликов, а вот с IMAP-клиентом веселее. У меня в телефоне, например, работает штатная почтовая программа от Apple, но уже неделю я не могу получать почту в то время, когда я подключен к Интернету от сотовой сети. А я, надо сказать, мобильным Интернетом от «Vodafone» пользуюсь исключительно для получения почты на мобильный, в остальном он мне без надобности. Решил исправить проблему оригинально, но из этого так ничего и не вышло. Пишу здесь на случай, если кто-нибудь, кто лучше меня понимает исходный код nginx, придумает патч, который будет в силах ситуацию исправить.

Итак, в nginx, как вы, наверное, знаете, есть модуль из базовой комплектации, который позволяет использовать веб-сервер как прокси для почты по протоколам IMAP, POP3 и SMTP с местной авторизацией. В принципе, функционал весьма интересный, поэтому мне эта идея понравилась. Для начала, собираем nginx с указанием того, что мы желаем пользоваться электронной почтой:

./configure --with-mail --with-mail_ssl_module --with-openssl=/path/to/openssl
После сборки nginx, создаем конфигурационный документ примерно следующего вида:
mail { auth_http 127.0.0.1:9990/auth.php; proxy_pass_error_message on; server_name my.perfect.mail; xclient off; proxy on; smtp_auth "plain"; smtp_capabilities "8BITMIME" "SIZE 42991616" "ENHANCEDSTATUSCODES"; ssl on; ssl_certificate /some/ssl/cert.crt; ssl_certificate_key /some/ssl/cert.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!MD5; pop3_capabilities "TOP" "USER"; imap_capabilities "IMAP4rev1" "UIDPLUS" "ID" "XLIST" "UNSELECT" "MOVE" "LIST-STATUS"; server { listen 465; listen [::]:465; protocol smtp; smtp_auth login plain cram-md5; } server { listen 995; listen [::]:995; protocol pop3; pop3_auth plain apop cram-md5; } server { listen 993; listen [::]:993; protocol imap; } }
Размещается вся эта красота ниже секции http в файле /etc/nginx/nginx.conf. Немного поясню о том, что это все значит. Итак, в самой первой строке мы объявили, что обращаться за авторизацией перед соединением нужно по адресу 127.0.0.1:9990/auth.php (пока этого у нас нет, далее расскажу подробнее). В поле «server_name» указано доменное имя сервера, к которому мы будем обращаться с клиента. «ssl_certificate» и «ssl_certificate_key» — это сертификат и ключ, соответствующие тому домену, который указан в «server_name». Нужно для того, чтобы трафик между клиентом и прокси-сервером шифровался, а не передавался в открытом виде. В секциях «server» объявлено то, что сервер будет слушать порты IMAP, POP3 и SMTP как по IPv4, так и по IPv6 (если у вас, конечно, нет поддержки IPv6, то строки с двоеточиями в квадратных скобках можно смело ликвидировать).

Читать дальше »
1234 > »201 страница