artem
14.05.2018
574

Панель отправки факсимильных сообщений

Все описанные действия в статье необходимо выполнять от имени суперпользователя (root). Установка и настройка производилась на предустановленной системе CentOS 6.8 + Asterisk 11.23.1 + FreePBX 13.

Инструкция:

1. Выполним подключение по SSH к роутеру для выполнения дальнейшей настройки. В зависимости от используемой системы(Windows, Linux, MacOS), подключение по SSH можно выполнить с использованием различного дополнительного программного обеспечения(Putty), либо системного терминала.

Подключение по SSH через Putty
Авторизация на сервере.

Внимание, при авторизации на сервере, пароль в консоли не отображается.

SSH консоль подключения.

2. Проверим наличие и установленную версию Node JS:

#  node -v

Проверка версии Node JS.

Для корректной работы панели для отправки факсов требуется наличие установленной версии Node JS не ниже 8.0

3. После проверки наличия и установленной версии NodeJS, если версия ниже требуемой или NodeJS отсутствует, то переходим к следующему шагу установки, в случае наличия необходимой версии можено сразу перейти к пункту .

# yum groupinstall ‘Development Tools’
# wget -O install_nodejs.sh https://rpm.nodesource.com/setup_8.x
# chmod +x install_nodejs.sh
# ./install_nodejs.sh

Установка необходимых зависимостей.
Скачивание скрипта установки.

Выполнение установки репозиториев NodeJS

В случае установки NodeJS на FreePBX в скрипте install_nodejs.sh необходимо отредактировать 57 строку и привести её к следующему виду: DISTRO_PKG=»centos-release-6-8.el6.centos.12.3.x86_64″

 

# yum install nodejs

Установка NodeJS из подключенного репозитория.

Проверка установленной версии.

4. При наличии корректной версии NodeJS, приступим к установке панели для отправки факсимильных сообщений. Выполним ряд команд вида:

# cd /usr/src/
# git clone https://github.com/Infactum/faxserver.git
# cd faxserver/
# npm install
# bower instal –allow-root

Сборка панели отправки факсимильных сообщений

Установка пакетов через Bower

5. Прежде чем приступать к конфигурированию панели отправки факсимильных сообщений, необходимо создать AMI пользователя в Asterisk, для этого перейдём в WEB панель управления FreePBX через интернет обозреватель(Opera, Firefox, Google Chrome, Yandex Browser….) по ссылке вида: http://IP_адрес_сервера_Asterisk/ В примере ссылка имеет вид: http://192.168.170.163/

WEB панель FreePBX

5. Пройдём авторизацию во FreePBX, нажмём «FreePBX Administration», введем «username и password» и нажмём «Continue»

Авторизация во FreePBX.

6. Перейдём к созданию AMI пользователя. Для этого перейдём в меню «Settings»→»Asterisk Manager Users»→ «Add Manager»→ «Submit»→ «Apply Config», где основные поля для заполнения:

Manager name — имя AMI пользователя(логин)
Manager secret — пароль AMI пользователя
Deny — запрещённые подсети для обращения по AMI
Permit — разрешенные подсети для обращения по AMI

Переход в меню «Settings»→»Asterisk Manager Users»

Добавление менеджера

Заполнение основных параметров AMI пользователя

Применение внесенных изменений

Установка слабого пароля для AMI пользователя и установка 0.0.0.0/0 подсети в качестве разрешенной может привести к несанкционированному доступу к серверу телефонии.

 

7. Произведем настройку панели отправки факсимильных сообщений:

# cd /usr/src/faxserver
# nano config/config.json

Приведем конфигурационный файл к следующему виду:

{
    «logLevel»: «warn»,
    «port»: 8080,
    «language»: «ru»,
    «FAX»: {
        «uploadDir»: «/tmp/upload»,
        «storageDir»: «/tmp/faxout»,
        «gsCommand»: «gs»,
        «maxParallelism»: 3,
        «maxRetry»: 3,
        «retryInterval»: 300,
        «delayedProcessingInterval»: 5
    },
    «AMI»: {
        «host»: «127.0.0.1»,
        «port»: 5038,
        «username»: «fax»,
        «secret»: «password»
    }
}

где  port — порт доступа к web панели отправки факсимильных сообщений
 host — адрес сервера Asterisk
 username — имя AMI пользователя(логин)
 secret —  пароль AMI пользователя

Настройка панели отправки факсимильных сообщений

8. Для возможности автозапуска и управлением панелью отправки факсимильных сообщений сервером как службой, создадим сервис:

# npm install pm2 -g
# nano /etc/init.d/faxserver

Приведём данный файл к виду:

#!/bin/sh
### BEGIN INIT INFO
# Provides:          faxserver
# Required-Start:    $network $syslog $named
# Required-Stop:     $network $syslog $named
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start/stop faxserver
### END INIT INFO
set -e
if [ -z «$1» ] ; then
    echo «Usage: $0 [start|stop|restart]»
    exit 0
fi
if [ «$1» = «start» ] ; then
    pm2 start /usr/src/faxserver/app.js
elif [ «$1» = «stop» ] ; then
    pm2 stop app
elif [ «$1» = «restart» ] ; then
    $0 stop
    sleep 5
    $0 start
fi
# chmod 777 /etc/init.d/faxserver
# chkconfig faxserver on
# service faxserver start

Создание службы faxserver

Запуск службы faxserver

 

9. Для возможности отправки факсимильных сообщений в диалплан Asterisk необходимо внести коррективы:

# nano /etc/asterisk/extensions_custom.conf

Добавим следующие контексты:

[OutgoingFaxInit]
exten => _X.,1,NoOp()
 same => n,Set(GROUP()=faxout)
 same => n,Set(DB(fax_group_count/${UUID})=${GROUP_COUNT(faxout)})
 same => n,GotoIf($[${DB(fax_group_count/${UUID})}<=${MAX_PARALLELISM}]?call) same => n,UserEvent(Fax,uuid: ${UUID},Status: CALL SUSPENDED)
 same => n,HangUp()
 same => n(call),Dial(Local/${EXTEN}@OutgoingCalls)
 same => n,HangUp()
exten => router,1,NoOp()
 same => n,Set(__UUID=${UUID})
 same => n,Set(__DATA=${DATA})
 same => n,Dial(Local/fax@OutgoingFax)
 same => n,HangUp()
exten => failed,1,NoOp()
 same => n,GotoIf($[${DB_DELETE(fax_group_count/${UUID})}<=${MAX_PARALLELISM}]?:end)
 same => n,UserEvent(Fax,uuid: ${UUID},Status: CALL PICKUP FAILED)
 same => n(end),HangUp()

[OutgoingFax]
exten => fax,1,NoOp()
 same => n,UserEvent(Fax,uuid: ${UUID},Status: CALL PICKUP SUCCESS);
 same => n,Set(DB(fax_sendstatus/${UUID})=0)
 same => n,Playback(autofax)
 same => n,Set(FAXOPT(headerinfo)=Company)
 same => n,Set(FAXOPT(localstationid)=XXX-XX-XX)
 same => n,Set(DB(fax_sendstatus/${UUID})=1)
 same => n,SendFax(${DATA})
 same => n,HangUp()
exten => h,1,NoOp()
 same => n,GotoIf($[${DB_DELETE(fax_sendstatus/${UUID})}]?sendstatus)
 same => n,UserEvent(Fax,uuid: ${UUID},Status: FAX SEND FAILED)
 same => n,Goto(end)
 same => n(sendstatus),UserEvent(Fax,uuid: ${UUID},Status: FAX SEND ${FAXOPT(status)})
 same => n(end),NoOp()

Правка диалплана Asterisk

10. На данном шаге установка завершена и можно перейти в WEB панель для отправки факсимильных сообщений. Для этого в интернет обозревателе(Opera, Google Chrome, Firefox, Yandex Browser….) перейдём по адресу вида http://IP_сервера:9030 в нашем примере ссылка имеет вид http://192.168.170.182:8080. После перехода необходимо пройти авторизацию в соответствии с указанными данными в конфигурационном файле(п.7).

 

 
avatar
  Подписаться  
Уведомление о

Остались вопросы?

Я - Першин Артём, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.

VoIP оборудование

ближайшие курсы

ближайшие Вебинары

ONLINE

Why Choose HUGE?

Unlimited pre-designed elements

Each and every design element is designed for retina ready display on all kind of devices

User friendly interface and design

Each and every design element is designed for retina ready display on all kind of devices

100% editable layered PSD files

Each and every design element is designed for retina ready display on all kind of devices

Created using shape layers

Each and every design element is designed for retina ready display on all kind of devices