SCROLL

Статьи в категории «Linux»

В FreePBX 14 Dashboard в Mail Queue висит ошибка:

Mail Queue: Unknown output from mailq: [[“exim: permission denied”], 1]

 

Данная ошибка означает что нет доступа списку очереди exim. Чтобы исправить эту ошибку в файле конфигурации (/etc/exim4/exim4.conf.template) в секцию MAIN CONFIGURATION SETTINGS добавим параметр:

queue_list_requires_admin = false

 

Обновим конфигурацию exim:

update-exim4.conf

 

Рассмотрим как установить FreePBX 14 в связке с Asterisk 16 на Debian 9 Stretch.

 

Подготовка системы

Перед началом установки обновляем систему до актуального состояния:

apt-get update && apt-get upgrade -y

Устанавливаем необходимые зависимости:

apt-get install build-essential linux-image-amd64 linux-headers-* apt-transport-https bison flex curl sox libncurses5-dev libssl-dev mpg123 libxml2-dev libnewt-dev sqlite3 libsqlite3-dev pkg-config automake libtool autoconf git unixodbc-dev uuid uuid-dev libasound2-dev libogg-dev libvorbis-dev libicu-dev libcurl4-openssl-dev libical-dev libneon27-dev libsrtp0-dev libspandsp-dev subversion libtool-bin python-dev unixodbc dirmngr sudo apache2 mariadb-server mariadb-client default-libmysqlclient-dev -y

[stextbox id=’alert’]ВНИМАНИЕ. Обязательно перезагружаем систему и после этого продолжаем установку.[/stextbox]

 

Устанавливаем PHP версии 5.6 (для корректной работы FreePBX fwconsole):

curl https://packages.sury.org/php/apt.gpg | apt-key add -
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/deb.sury.org.list
apt-get update && apt-get install php5.6 php5.6-curl php5.6-cli php5.6-mysql php5.6-mbstring php5.6-gd php5.6-xml php-pear -y

Устанавливаем NodeJS :

curl -sL https://deb.nodesource.com/setup_11.x | sudo -E bash -
apt-get install nodejs -y
pear install Console_Getopt

Устанавливаем поддержку MariaDB ODBC

wget https://downloads.mariadb.com/Connectors/odbc/connector-odbc-2.0.15/mariadb-connector-odbc-2.0.15-ga-debian-x86_64.tar.gz
tar -zxvf mariadb*
cp -v mariadb-connector-odbc-2.0.15-ga-debian-x86_64/lib/libmaodbc.so /usr/lib/x86_64-linux-gnu/odbc/

 

Столкнулся недавно с задачей по маршрутизации звонков между несколькими FreePBX соединенными SIP-транками. Необходимо вызов пришедший из одного SIP-транка на определенный номерной план передать в другой SIP-транк.

 

Имеется три АТС на базе FreePBX (13, 14) — FreePBX «A» (номерной план 1ХХ), FreePBX «B» (номерной план 2ХХ), FreePBX «C» (номерной план 3ХХ). Которые соединены между собой SIP-транками следующим образом:

FreePBX «A» <—-SIP TRUNK «A»—-> FreePBX «B» <—-SIP TRUNK «B»—-> FreePBX «C»

 

Для наглядности рассмотрим к примеру ситуацию когда необходимо дозваниваться с FreePBX «A» (1ХХ) до абонентов находящихся в FreePBX «С» (3ХХ) и в обратном направлении.

 

Можно конечно решить задачу соединив отдельным SIP-транком  FreePBX «A» и FreePBX «С», но рассмотрим другой вариант, когда к примеру нет возможности соединить их на прямую, тогда в этом случае посредником для звонков будет выступать FreePBX «B», т.к. он имеет связь по SIP-транку с FreePBX «С» и FreePBX «A».

Небольшая шпаргалка, на случай если нужно выполнить какие либо действия только с папка или только с файлами в каталоге и его подкаталогах.

В работе имеется связка Asterisk 16.3.0 + FreePBX 14.0.11 и два SIP-провайдера. Задался вопросом как модифицировать/изменить номер телефона (CallerID) при входящем звонке, устанавливая префикс 8 в любом случае. Мне нужно это для удобства обратного набора, на поступивший внешний звонок.

 

В моем случае один SIP-провайдер отдает номер телефона с префиксом 7, прим. 7800-800-80-80 (7XXXXXXXXXX), а другой вообще без префикса, прим. 800-800-80-80.

Чтобы исправить это, нам  необходимо немного модифицировать dialplan, внеся в файл конфигурации /etc/asterisk/extensions_custom.conf следующий код:

[from-pstn-custom]
exten => _X.,1,ExecIF($[${VALID_EXTEN(fix-cid,${CALLERID(num)})}]?Gosub(fix-cid,${CALLERID(num)},1))

[fix-cid]
; Входящий номер с кодом 7
exten => _7XXXXXXXXXX,1,Set(CALLERID(num)=8${CALLERID(num):1})
exten => _7XXXXXXXXXX,n,Return()

; Входящий номер без кода страны
exten => _XXXXXXXXXX,1,Set(CALLERID(num)=8${CALLERID(num)})
exten => _XXXXXXXXXX,n,Return()

SSH (Secure Shell) — это сетевой протокол для удалённого управления операционной системой с помощью командной строки и передачи данных в зашифрованном виде.

Частенько сталкиваюсь с необходимостью конвертирования сертификата .crt, .ca-bundle в формат PFX. И каждый раз пытаюсь вспомнить как это сделать в Linux посредством OPENSSL.

Используя утилиту SMSTOOLS3 (развернутую по этой статье) для отправки/приема SMS сообщений, я столкнулся со сложностью отправки SMS сообщений с разных подключенных GSM модемов.

Однажды при попытке посмотреть какие «Виртуальные хосты» сейчас активны на Веб-сервере apache, я получил следующие ошибки в выводе:

В очередной раз после миграции ВМ Debian Linux с одного хоста VMWare на другой, при загрузке системы наблюдал множественные ошибки:

blk_update_request: I/O error, dev fd0, sector 0
hv_vmbus: probe failed for device vmbus_10 (-19)

 

Ошибка связана с попытками подключить Floppy дисковод, который в ВМ отсутствует. Решается все довольно просто, путем отключения драйвера Floppy в системе.

 

Выполняем следующие команды в терминале:

echo "blacklist floppy" | sudo tee /etc/modprobe.d/blacklist-floppy.conf
sudo rmmod floppy
sudo update-initramfs -u

 

Для применения изменений перезагружаем систему.

Задался недавно вопросом, как можно из консоли Linux, подключится к удаленной машине с ОС Windows на борту и выполнить на ней какую либо команду (прим. «ipconfig») или запустить за ранее написанный скрипт (*.bat, *.ps1).

 

В ходе поиска решения данного вопроса, был найден инструмент Winexe, который по сути является аналогом psexec под Windows. Winexe работает в связке с Samba, поэтому последняя должна присутствовать в системе.

 

Из замеченных неудобств работы с Winexe, хочу отметить что для корректного отображения «кириллицы», необходимо конвертировать вывод в UTF-8 из cp866/cp1251. Так же в случае запуска на удаленной машине «cmd», «powershell» не работают клавиши курсора, «backspace» и возможен задвоенный ввод символов.

 

Установка будет производится на Debian 9 Stretch. В ходе установки будет использоваться Fork пакета Winexe 1.1 (https://sourceforge.net/u/mstowe/winexe/ci/v0.2/tree/), а так же версия Samba 4.5.16 из стандартные репозиториев Debian.

В поисках решения организации SMS шлюза, посредством GSM-модема (прим. Huawei E1550), наткнулся на пакет «smstools», который прекрасно справляется со своими обязанностями (отправка\получение SMS).

Появилась интересная задача, которая заключается в том что нужно подключить GSM-модем USB HUAWEI E1550 к Asterisk 13 работающий на Debian 8 Jessie. Настроить возможность принимать/отправлять SMS, принимать/звонить с номера находящегося в GSM-модеме.

Рассмотрим как выполнить установку из исходников Asterisk 16 на Debian 9 Stretch.

 

Подготовка системы

Перед началом установки обновляем систему до актуального состояния:

apt-get update && apt-get upgrade -y

 

Устанавливаем необходимые зависимости:

apt-get install linux-headers-amd64 gcc make autoconf libtool libical-dev pkg-config default-libmysqlclient-dev -y

 

Устанавливаем DAHDI, LibPRI, libSTRP

Скачиваем исходники (dahdi, libpri, libstrp, asterisk) и распаковываем их:

wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz
wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-current.tar.gz
wget https://github.com/cisco/libsrtp/archive/v2.2.0.tar.gz
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-16-current.tar.gz

tar -zxvf dahdi-linux-complete-current.tar.gz 
tar -zxvf libpri-current.tar.gz 
tar -zxvf v2.2.0.tar.gz 
tar -zxvf asterisk-16-current.tar.gz

Рассмотрим как установить систему видео наблюдения ZoneMinder 1.30.4 на Debian 9 Stretch.

 

Подготовка системы

Перед началом установки обновляем систему до актуального состояния:

apt-get update && sudo apt-get upgrade -y

 

Устанавливаем необходимые зависимости:

apt-get install apache2 apache2-utils php7.0 libapache2-mod-php7.0 php7.0-mysql php7.0-gd mariadb-server vlc-plugin-base deb-multimedia-keyring -y

 

После установки зависимостей, выполним настройку безопасности MySQL:

mysql_secure_installation

 

Установка ZoneMinder

Добавляем необходимый для установки Zoneminder репозиторий, обновляется данные и выполняем установку:

echo "deb http://www.deb-multimedia.org stretch main non-free" >> /etc/apt/sources.list
apt-get update

apt-get install zoneminder

Продолжаю свое знакомство с XMPP-сервером, на базе ejabberd и реализацию задачи по организации достойного корпоративного мессенджера.

Появилась потребность в корпоративном Jabber-сервере (XMPP). Для реализации задачи выбрал ejabberd, по заявлениям разработчика он легкий, быстрый и надежный как скала.

Понадобилось загрузится в безопасном режиме на Windows 10, но сделать это оказалось не тривиальной задачей. В Windows XP и Windows 7 можно было нажать клавишу F8 при запуске, чтобы получить доступ к опции загрузки в безопасном режиме. Но в Windows 10 не получится просто нажать F8, когда ваш компьютер загружается, чтобы увидеть расширенные параметры запуска, такие как безопасный режим и т.д.

 

Механика загрузки в безопасном режиме изменилась в Windows 10. Рассмотрим различные способы загрузки в безопасном режиме в Windows 10.

 

Использование утилиты настройки системы (msconfig)

Если Windows может запускаться в обычном режиме, то можно получить доступ к безопасному режиму загрузки из опций конфигурации системы. Запускаем утилиту конфигурации системы, нажав Win + R, при запуске введите msconfig и нажмите клавишу ввода.

 

В окне «Конфигурация системы», щелкните вкладку загрузки и выберите безопасную загрузку:

 

При написании скрипта на PHP, понадобилось использовать PDO подключение к MS SQL Server.

 

Решается все довольно просто, установкой драйвера PDO_DBLIB, который реализует доступ к базам данных Microsoft SQL Server с использованием библиотеки FreeTDS.

 

Все ниже действия производились на Debian 9 Stretch, с установленной версией PHP 7.2. Как установить PHP 7.2 на Debian 9 Stretch, можно посмотреть из этой статьи.

 

Устанавливаем необходимый модуль:

apt-get install php7.2-sybase

 

В установленных модулях PHP, установленный драйвер будет именоваться pdo_dblib. Для подключения к базе данных MSSQL, нужно использовать dblib, пример:

$dbh = new PDO ("dblib:host=sever;dbname=dbname","username","password");