25 заметок с тегом

сервер

/core.php, line 2
Error 2: Use of undefined constant k - assumed 'k' (this will throw an Error in a future version of PHP)

/core.php, line 2
Error 2: Use of undefined constant k - assumed 'k' (this will throw an Error in a future version of PHP)

/core.php, line 2
Error 2: Use of undefined constant k - assumed 'k' (this will throw an Error in a future version of PHP)

/core.php, line 2
Error 2: Use of undefined constant k - assumed 'k' (this will throw an Error in a future version of PHP)

/core.php, line 2
Error 2: Use of undefined constant k - assumed 'k' (this will throw an Error in a future version of PHP)

/core.php, line 2
Error 2: Use of undefined constant k - assumed 'k' (this will throw an Error in a future version of PHP)

/core.php, line 2
Error 2: Use of undefined constant k - assumed 'k' (this will throw an Error in a future version of PHP)

/core.php, line 2
Error 2: Use of undefined constant k - assumed 'k' (this will throw an Error in a future version of PHP)

/core.php, line 2
Error 2: Use of undefined constant k - assumed 'k' (this will throw an Error in a future version of PHP)

/core.php, line 2
Error 2: Use of undefined constant k - assumed 'k' (this will throw an Error in a future version of PHP)

Выполнение внешних скриптов в Sieve

Понадобилось недавно каким-то образом запускать внешний скрипт по приходу определенного письма. Начал поиски как это сделать. В Postfix это можно сделать, используя файл aliases, но мне этот способ не подходил, потому что он подразумевает приход письма на определенный почтовый адрес. С Dovecot сильно не разбирался, но вот информацию по Sieve нашел. Немного времени спустя у меня был наполовину рабочий вариант. Наполовину потому, что выполняемая во внешнем скрипте команда напрочь отказалась принимать отправляемые ей данные. Пришлось немного подправить скрипт в самом Sieve, чтобы получить желаемый результат.
Все оказалось очень просто. Для начала нужно включить доступ к плагину vnd.dovecot.execute. Для этого открываем файл с настройками Sieve /etc/dovecot/conf.d/90-sieve.conf и вносим следующие изменения:

plugin {
  sieve_extensions = +vnd.dovecot.execute
  sieve_plugins = sieve_extprograms
  sieve_execute_bin_dir = /etc/dovecot/sieve/execute
}

Все остальные параметры нам не нужны.
В первой строчке включаем доступ к плагину для пользователей. Можно использовать параметр sieve_global_extensions, в таком случае плагин будет работать глобально. Но глобальный скрипт работает ТОЛЬКО если у пользователя нет своего файла скрипта Sieve. Пользователей на моем сервере очень мало, поэтому такой вариант мне не подходит.
Во второй строке мы разрешаем использование плагинов как таковых.
И, наконец, в третьей строке указывает папку, в которой будут находиться эти самые внешние скрипты. Доступ к этой папке для Dovecot, конечно, нужно обеспечить. Подозреваю, что папку можно и не указывать, а в скрипте Sieve просто указать полный путь к запускаемой программе, но проверять лень.
Теперь остается только написать правило обработки входящих писем. Что-то вроде такого:

# rule:[Test rule]
if allof (header :contains "from" "test@example.com", header :contains "subject" "Prikaz 66")
{
        execute "test.sh";
	fileinto "Trash";
	stop;
}

Получив письмо от отправителя test@example.com с темой «Prikaz 66» Sieve запустит на выполнение скрипт /etc/dovecot/sieve/execute/test.sh, затем удалит письмо в корзину и завершит обработку писем.
Знаю, что информации по этой теме в интернете достаточно. Но большая часть из нее, как водится, на английском и содержит много воды. Хотелось сделать небольшую выдержку на более привычном русском языке.

5 июня   dovecot   sieve   внешний   запуск   почта   программа   сервер   скрипт

Wildcard сертификаты от Let’s Encrypt

За всеми событиями в жизни как-то пропустил момент, когда Let’s Encrypt стали выдавать бесплатные «wildcard» сертификаты. Иными словами, вы можете получить один сертификат на свой основной домен и все его субдомены разом. Больше не нужно беспокоиться о том, что каждый раз при создании субдомена придется создавать и новый сертификат. Нужно будет просто в конфигурационном файле указать текущий.
В отличие от «стандартного» для генерирования сертификата «wildcard» нужно вручную прописать сервер для запросов. Команда будет выглядеть примерно так:

# certbot certonly --server https://acme-v02.api.letsencrypt.org/directory -d kini24.ru -d *.kini24.ru --agree-tos -m admin@kini24.ru --manual --preferred-challenges dns --must-staple --hsts --uir --staple-ocsp

Пройдемся по параметрам, чтобы было понятней:
—server — указывает на сервер, который мы хотим использовать для создания сертификата;
-d — указываем для каких доменов мы будем создавать сертификат. Советую вам первым указывать основной домен, а не его субдомены. Сэкономите немного времени;
—agree-tos — принимаем условия лицензионного соглашения;
-m — указываем свой адрес электронной почты. Он будет использоваться как логин;
—manual — используем «ручной» режим работы. Думаю, что можно было и не указывать, но я хотел проконтролировать процесс;
—preferred-challenges — указываем предпочтительный способ проверки, что именно вы имеете доступ к администрированию домена (являетесь его владельцем);
Остальные параметры не обязательны, можно их не указывать.
После ввода команды вас спросят не хотите ли вы получать новости от Electronic Frontier Foundation (EFF), основателя сервиса Let’s Encrypt. Ради интереса согласился, отписаться можно в любой момент. Затем был вопрос о том хочу ли я использовать указанный email в качестве логина. Соглашаемся. А вот дальше был один нюанс, который я поначалу не понял, но, в итоге, разобрался. Следующим шагом вас просят внести TXT-запись в ресурсные записи домена. Вносим и ждем, процесс занимает некоторое время. Обычно хватает 15 минут. Нажимаем Enter, чтобы скрипт проверил наличие записи. И вот тут он выдает точно такой же запрос на внесение записи TXT, но с другим значением. Это значение нужно также внести в ресурсные записи. Если быть точней, то первую запись нужно заменить на вторую. Этакая двойная проверка. Снова минуты ожидания и жмем Enter. Если проверка прошла, то сертификат будет создан.
Так как у меня также используется технология HPKP, то нужно еще и генерировать новые ключи для сертификата:

# openssl rsa -in /etc/letsencrypt/live/kini24.ru/privkey.pem -outform der -pubout | openssl dgst -sha256 -binary | openssl enc -base64

Вносим изменения в конфигурационный файл веб-сервера и перезапускаем его:

# systemctl restart httpd2

Привет из прошлого

Работал я несколько лет назад в одной компании, которая занималась сборкой и продажей компьютеров и разной околокомпьютерной техникой. В одни прекрасный момент решили собрать сервер для 1С. Люди собрались знающие, скидали комп в один момент. Поставили все, что нужно, протестировали и запустили в работу. А какое первое правило хорошего системного администратора? Бэкап, бэкап и еще 100 раз бэкап. Вот и занялся я написанием скрипта, который все это проделывал.
Скрипт был простой, в формате bat-файла:

  1. Рассылал всем предупреждение, что базы 1С скоро будут недоступны и ждал две минуты, пока все не закроют подключение. Кто не успел, я не виноват.
  2. Отключал все сетевые карты, чтобы не было соблазна.
  3. Создавал архивы баз 1С.
  4. Заново включал сетевые подключения.
  5. Перезагружал компьютер.

На все-провсе уходило от 15 до 30 минут, точней было лень считать. Через некоторое время я получил более выгодное предложение о работе и ушел из фирмы.
Около недели назад я получил оттуда звонок с просьбой немного переделать скрипт так, чтобы он копировал все архивы на новенький NAS. Времени свободного почти не было, поэтому отложили на несколько дней. Во второй половине недели подключаюсь к серверу и смотрю что там и как.
Архивация перестала работать из-за того, что скрипт не видел исполняемого файла архиватора. Но резервная копия продолжала создаваться копированием папок с базами до последнего дня. Посмотрел на все это и порадовался — скрипт получился действительно хороший, отработал без сбоев много лет. А я тогда был все-таки догадливым мальчиком и все выполняемые команды очень хорошо прокомментировал.
Немного покопался в системе с командами — в разных версиях серверных систем от мелкомягких некоторые команды могут не выполняться. А потом мне стало лень все это тестировать и я установил xStarter. Программа достаточно известная, алгоритмы работы гибкие, позволяют выполнять множество нужных команд. Давно уже не обновляется, автор, видимо, забросил проект. Есть косяки с некоторыми операциями, но их знание, позволяет их обойти.
В общем, воспользовался этой программой, написал последовательность действий и оставил тестироваться. В первый день или два она по неизвестной причине не запустила создание резервной копии. Затем не смогла подключиться к NAS. Вчера, зайдя на сервер, я обнаружил, что задания нет как такового. Вот это уже удивило, ибо на нескольких других серверах никогда ничего такого не случалось. Написал все заново, установил пароль на редактирование и оставил на ночь.
Утром первым делом пошел смотреть на результат. Бэкап был создан и успешно перенесен на NAS. Добавил в программу отправку мне извещения на электронную почту и отправил номер своей карты для зачисления оплаты за работу.

8 апреля   bat-файл   xstarter   бэкап   замена   прошлое   сервер   скрипт

Отказ от Serviio

Что-то в последнее время стал больше вызывать негативных чувств, чем положительных. Больше всего негатива вызывает тот факт, что если наименование файлов серий в скачанном сериал не соответствует шаблону, то он воспримет все эти файлы как отдельные фильмы и поместит их в соответствующую категорию. То есть после скачивания торрента нужно еще привести имена файлов в соответствие шаблону. Я не пробовал, но у меня очень большое подозрение, что торрент будет закачан еще раз.
Теперь представьте себе, что вы скачали торрент с сериалом, где 10 сезонов и в каждом из них по 20 серий. Имена серий не подпадают под шаблон Serviio, поэтому он их все помещает в папку «Фильмы». Теперь чтобы найти нужный вам фильм, придется основательно поискать. Более того, «фишка» Serviio в том, что он ищет данные о файле в сети, опираясь на название. Если он некорректно определил, что это сериал, он отыщет соответствующие обложку и название для серий. И тот же «Доктор Хаус» будет отображаться как фильм-ужасы с названием «Дом».
Еще одной «фишкой» является возможность добавить онлайн-источники в список. Тут тоже не все хорошо. Без ручного обновления базы медиафайлов, новый источник в списке вы не увидите. Вроде бы не так уж и сложно это сделать, но мы помним, что каждое сканирование вызывает существенную нагрузку на процессор. И внесенные в базу онлайн-источники никоим образом не попадают в список trakt.tv. Иными словами, вы не сможете никак отследить на какой серии вы остановились.
Про проблемы с русской кодировкой я уже писал. Это можно было бы исправить, создав в планировщике задачу, которая будет сканировать, например, mp3-файлы, определять кодировку данных и, если она не совпадает с UTF-8, менять ее на нужную. Но вы себе представляете как это будет выглядеть?
В общем, сдается мне, что я все-таки откажусь от Serviio в пользу minidlna. У него, по крайней мере, я нашел пока что только один недостаток — слишком много папок. И тот частично можно исправить, указав в файле конфигурации нужные параметры.

2018   minidlna   serviio   недостатки   отказ   сервер

Установка Serviio

На домашнем сервере установлен Alt Linux, у которого свое видение в отношении сторонних программ. Того serviio в репозитории нет, а попытка установить его с сайта провалилась. Скорее всего, тут сыграло роль недостаточное знание мной линукса. Поэтому, в итоге, был выбран путь попроще, который я с начала не заметил. Речь идет об установке serviio в виде docker.
Для начала скачиваем образ на компьютер:

# docker pull lsiocommunity/serviio

Затем, в соответствии с документацией, запускаем, немного изменив параметры запуска под себя:

docker run -d --restart=always --name=serviio -v /mnt/sda/serviio/config:/config -v /mnt/sda/serviio/media:/media -v /mnt/sda/serviio/transcode:/transcode --net=host lsiocommunity/serviio

По пути /mnt/sda у меня находится второй жесткий диск, на котором располагается всякое «барахло».
Поначалу ни одно из устройств в сети не смогло увидеть serviio. Немного поэкспериментировав, понял, что все дело в том, не был открыт один из портов на сервере. В итоге, пришлось открыть порты 8895, 23423, 23424, 23523, 23524 и 1900. Serviio не видели именно из-за порта 8895.
Ну а дальше все было просто: заходим по адресу http://192.168.1.254:23423/console (где 192.168.1.254 — адрес моего сервера) и настраиваем сервер под свои нужды уже в графическом интерфейсе. Тестировал его работу на трех устройствах: ТВ Samsung UE43M5500AU, телефоне на базе Android и компьютере с установленными Alt Linux и VLC. Все три успешно подключились и смогли проиграть фильм с разрешением FullHD. Тормоза оказались только на телефоне, но с него, как говорится, «взятки гладки».

2018   dlna   docker   linux   serviio   настройка   сервер

Небольшой апгрейд

Очередная зарплата ведет к очередным обновлениям

На днях попробовал перенести Transmission и сервер DLNA с роутера на домашний сервер, чтобы немного разгрузить первый. Итогом неожиданно стала сильно возросшая нагрузка на сервер, причем в первых строчках «потребителей» стабильно висели motion и Transmission. Нагрузка была такой, что другие программы периодически не отвечали на запросы, что, в свою очередь, вызвало шквал предупреждений в мой почтовый ящик. Конечно, это меня не устроило, поэтому торрент-клиент был на время отключен. Вызвал небольшое недоумение тот момент, что на роутере Transmission работал, не вызывая такой большой нагрузки на и без того слабый процессор. Лучше был оптимизирован что ли под OpenWrt? Аналогично, судя по отзывам, motion при статичном кадре (то есть когда нет движения) «сжирает» 5-10% процессорного времени. У меня же он поглощал в среднем около 40% на сервере.
Тут должен сделать небольшое отступление. Парой месяцев ранее собирал компьютер для профилактория «Сибиряк», чтобы они могли просматривать камеры видеонаблюдения на ресепшене. Компьютер получился достаточно слабенький, но, если воткнуть в него видеокарту, вполне тянул 8 внутренних камер. Так как видеокарт на складе у меня тогда не было, пришлось воткнуть свою личную. Она у меня все равно просто так лежала. Поставил, настроил, все хорошо. Неделю назад попросили подключить второй монитор на этот компьютер и вывести на него камеры, снимающие вокруг здания. Не вопрос! Заказал второй монитор и видеокарту — свою же нужно «отбить» :-)
Возвращаемся на текущий день. После недолгих раздумий, был куплен новый процессор и кабель HDMI. Процессор был установлен в сервер, что дало достаточно большой прирост мощности, судя по выводу команды top. Также установил туда новую видеокарту, которую приобрел для «Сибиряка». Был вариант установить в профилакторий новую карту, а оттуда забрать свою, но, после сравнительных тестов, оказалось, что установленная мной ранее видюха немного мощней, чем та, которую я приобрел на днях. HDMI кабелем соединил видеорегистратор и телевизор. Были некоторые опасения, что телевизор не увидит картинку с таким нестандартным разрешением, но все обошлось — он просто изменил разрешение на что-то среднее по качеству. В итоге, я теперь могу просматривать камеры на телевизоре в хорошем качестве. Плюс несколько «разгрузил» сервер — теперь нагрузка на процессор стала менее 50%. Правда появился какой-то дребезг от вентилятора, но непонятно от какого — пока снимаешь боковую стенку, он прекращается.

2018   dlna   hdmi   motion   openwrt   transmission   апгрейд   нагрузка   перенос   сервер

DLNA в локальной сети

Меня не покидала мысль, что телевизор поддерживает DLNA, несмотря на то, что на официальном сайте это не указано. Зато было указано на нескольких других. Попытка не пытка...
Есть у меня переделанный роутер D-Link DIR-825 с установленной OpenWrt. Внутрь встроен жесткий диск, на котором располагается собственно система и множество других программ. В частности, клиент Transmission. Это очень удобно — с любого устройства можно поставить торрент на закачку. Плюс к этому он все равно работает круглые сутки, пусть скачивает :-)
Прочитав днем про настройку DLNA на OpenWrt, подключился к роутеру и  установил пакет luci-i18n-minidlna-en, который потянул за собой собственно сервер DLNA и другие необходимые пакеты. Настройка была минимальной: задал каталоги где искать видео- и аудиофайлы, куда писать логи и каталог с кэшем. Ну и, конечно, запустил его. Поначалу нагрузка на роутер сильно возросла: сервер «сожрал» почти 60% процессорного времени и почти половину оперативной памяти. Из всех других пакетов, которые я ставил, ни один столько не забирал себе. Понадеявшись на то, что это только на время поиска файлов, отключился, чтобы вечером заняться этим вопросом уже дома.
Мои надежды оправдались — после завершения поиска нагрузка стала почти нулевой. Но меня уже больше интересовало как телевизор отреагирует (и отреагирует ли вообще?) на наличие DLNA сервера в локальной сети. Но сомнения оказались напрасны — все оказалось намного проще. Телевизор не только обнаружил сервер в сети, но и сразу отобразил его в списках доступных источников. Немного напрягло только то, что приходится «продираться» через кучу каталогов, чтобы найти нужное видео, но тут уже ничего не поделаешь, видимо.
В конечном результате я достиг того, чего хотел — теперь нет необходимости копировать скачанный торрент на флэшку, подключать её к телевизору и только тогда начинать смотреть фильм. Сейчас можно просто открыть роутер на телевизоре, выбрать нужный фильм и начать просмотр. С учетом того, что я не поленился подключить ТВ кабелем к роутеру, «лагов» пока что не наблюдается, скорость приличная. Но тут еще буду экспериментировать.
Днем ранее, кстати, также удалось вывести содержимое экрана смартфона на телевизор, включив на первом режим беспроводного дисплея. Смартфон тут же просканировал и нашел телевизор. Оставалось только подтвердить сопряжение устройств на самом ТВ.

Эксперименты с охраной

Опишу предыдущее состояние системы.

  1. Есть не один десяток охранно-пожарных систем (ОПС) типа «Гранит», которые при открытии дверей на объекте шлют смс оператору на центральном пульте. Тот, в свою очередь, либо вызывает ГБР (группа быстрого реагирования), либо «пропускает» событие. В целях резервирования сообщения с «Гранитов» рассылаются не на один номер телефона, а на несколько: охрана и руководство. По моим прикидкам это, минимум, три номера. Скорее всего, их больше. По расходам это выходит более 8 тысяч в месяц. Сумма небольшая, но, если есть возможность, то почему бы ее не уменьшить? «Плюсом» будет то, что получатели смогут отключить оповещения, что в случае с смс почти невозможно. Из текущих «минусов» — постоянные глюки то с телефоном, то с программой синхронизации смс на компьютере. Раз в несколько дней приходится или перезапускать программу, или перезагружать телефон.
  2. Также существует сервер видеонаблюдения, который в постоянном режиме пишет порядка полусотни камер, расположенных на территории завода и не только. Старый сервер, несмотря на свою мощность, потихоньку выходит из строя. БОльшая часть дисков уже была заменена на более специализированные под данную функцию, но периодические выходы из строя начинают утомлять. Особенно это стало заметно, когда человек, занимающийся видеонаблюдением на заводе, уехал на несколько месяцев в отпуск — накопил за несколько лет работы. Он, конечно, оставил вместо себя человека, но он, во-первых, не всегда находится на территории, а во-вторых, делает всё «на отьебись». Что лично меня, например, не устраивает.

Пару месяцев назад был куплен новый сервер под видеонаблюдение. По тестам он несколько превосходит текущий, но последний построен на базе i7-3770, новый же — на базе Xeon (не помню сейчас какой именно). Новый установил параллельно существующему, был установлен Linux с графической оболочкой и тестовая версия сервера видеонаблюдения. Не обошлось, конечно, без бубна и небольших танцев, но, в итоге, все заработало как нужно. В таком состоянии он и был оставлен до конца недели на тестирование. Лично мне Linux больше импонирует, как более устойчивая и быстрая система, по сравнению с Windows. Конечно, у меня свои требования — по ним он полностью выигрывает.
Я не зря упомянул в начале «Граниты». Перед новым годом у меня, в порядке не совсем трезвых размышлений возникла мысль несколько сократить расходы на смс, путем установки какого-то компьютера, на который они и будут приходить. То есть, на данном шаге мы сокращаем количество сообщений, которые рассылают «Граниты» до одного за раз. Затем компьютер уже посредством интернета дублирует эти сообщения на другие телефоны в любой мессенджер: Telegram, Whatsapp и т. п. Благо, что практически каждый человек нынче пользуется хотя бы одним из них.
Но, увы, так как я был не совсем трезв, то поутру вся выстроенная мной схема «убежала» из головы, остался только принцип построения. Благо, что я в порыве воодушевления позвонил товарищу, который занимается установкой и обслуживанием этих «Гранитов» и примерно рассказал, что я хочу получить. Через день он мне напомнил об этом, заодно и прояснили некоторые моменты.
Суть заключается в том, что на какой-то компьютер устанавливается Asterisk, который и занимается приемом и пересылкой сообщений в мессенджеры. Тем более, что знакомый попросил меня разобраться с этой системой, чтобы в дальнейшем внедрить ее на своем предприятии.
Если сервер видеонаблюдения на Linux покажет свою «состоятельность», то почему бы на него не возложить и функции обработки сообщений от ОПС?
В то же время у себя дома вернулся к старой схеме, только немного ее изменив. Как писал ранее, перед новым годом был куплен регистратор, к которому была подключена камера более высокого качества. Регистратор может рассылать оповещения только на почту и, к тому же, только в текстовом виде, что меня не устраивало. Сообщений на одно событие могло быть несколько, по какой причине он разделял одно событие на несколько — неизвестно. Пришлось снова запустить motion, установленный на сервере, брать поток с регистратора и тогда я смог получить и картинку события и текст. Считаю огромным «плюсом» motion то, что он позволяет при возникновении какого-либо события (обнаружено движение, завершена запись видеофайла, завершено сохранение скриншота и т. п.) запустить на выполнение любой внешний скрипт, в котором уже можно делать все, что угодно. Как бонус, можно будет провести кабель от регистратора на телевизор и в прямом эфире просматривать что творится в коридоре.

Небольшой потоп в серверной

Так уж получилось, что шкаф с сервером стоит на лестничной площадке, которой никто не пользуется. Шкаф обычный, деревянный. Внутри всего две полки: на одной, нижней, стоит сам сервер, на второй, повыше, стоит ИБП.
Вчера немного задержался на работе — экспериментировал с астериском. Заходит женщина и сообщает, что с этой лестницы бежит вода. Почти бегом направляюсь туда, открываю дверь — бежит водичка. Потихоньку, но бежит. Поднимаюсь на площадку между пролетами, где собственно шкаф и стоит, и вижу, что выдавило трубу и оттуда неспешно вытекает вода. Площадку уже всю затопило, а потом все пошло вниз. Открыл шкаф, проверил, что там все нормально. Прикинул, что вода сюда не должна добраться, немного успокоился. Пока ждал хоть кого-то из техников, вставил трубу обратно, чтобы хотя бы поменьше бежало. Вода почти перестала бежать. Приехал техник, посмотрел, чуть приподнял трубу, оставил на завтра местным сантехникам. Сказал, что ребята починят утром.
Утром приходят «ребята», спрашивают ключ от лестничного пролета. Знают, что он только у меня есть. Сказал им, что там открыто и они могут работать. Только перед уходом пусть разблокируют автоматическую защелку.
Через час или два решают посмотреть как и что они там починили. Дверь закрыта, пришлось возвращаться за ключами. Открыл дверь, поднялся на площадку, осматриваюсь. Нихера они, короче, не сделали! Даже гребаный чопик между трубой и стеной не вставили, чтобы ее еще раз не выдавило. В общем, как обычно, хочешь сделать хорошо — сделай сам. Пока что подыскиваю какой-нибудь подходящий чопик и подумываю собрать туда какой-нибудь датчик: влажности, температуры, протечки воды. Чтобы в случае, если такое повторится, заранее знать об этом. Впереди все-таки достаточно длинные выходные.

Изучаем Asterisk

Товарищ попросил разобраться с Asterisk, чтобы в будущем использовать в своей сети. Ну а мне что, все равно скучно, а тут вроде есть чем заняться...
Поставил на свой сервер 11-ю версию и начал экспериментировать с параметрами. Многое было непонятно. Первое, с чего решил начать — позвонить на номер, услышать какой-то ответ и положить трубку. Так сказать, аналог «hello, world!» Но сходу разобраться не получалось — какие-то не совсем непонятные конструкции. Что, куда, зачем? Решил все-таки поискать хоть какую-то документацию. Нашел книжку от издательства, которое, на мой взгляд, всегда выпускало очень качественные пособия и начал читать. Нетерпение заставило пропустить первые несколько частей книги — все равно там были какие-то благодарности, объяснения зачем ставить Asterisk и для чего он нужен, выбор подходящего оборудования и прочее. При все этом утверждалось, что работать он может даже на «железе» роутера. В ссылках, кстати, попадалась инструкция как установить его на роутеры Keenetic.
Читаю дальше. Все очень хорошо разжевано, все становится понятно. Через несколько минут сделал свой первый «hello world», практически буквально: звоню, слышу ответ по русски «Привет, мир!» и в логах вижу, что звонок завершается. Но телефон, с которого я звонил, никаких сигналов завершения разговора не подает и трубку не ложит. Плюс сыпятся непонятные ошибки. Погуглив, понял, что такие ошибки относятся только к тем системам, которые находятся за NAT и источник ошибок надо искать в этом направлении. Перепроверил настройки своего роутера — все нужные порты проброшены, все должно работать. Ладно, отложил это пока в сторону.
Следующим шагом стала настройка разговора между двумя внутренними абонентами. Завел две учетных записи в системе с разными номерами, переделал диалплан, поставил программу на компьютер и настроил свой телефон на работу с SIP-звонками. Звонки проходят нормально, а вот разговор не завершается у вызывающего абонента. Пришлось все-таки разбираться, не нравится мне такой расклад. В общем и целом, пришлось указать Asterisk адреса внутренней и внешней сетей, а также сказать, что он работает за NAT, и все заработало. Звонки идут, разговор завершается нормально.
Сегодня продолжу чтение по мере возможности. Система оказалась достаточно легкой в освоении, чем-то похожей на Postfix по конфигурации.

2017   asterisk   linux   изучение   начало   сервер
Ранее Ctrl + ↓