Курсы по использованию Asterisk

IP-телефония — технология будущего. Обучитесь работе с IP-АТС Asterisk для того чтобы внедрить и профессионально использовать при решении коммуникационных задач.

Работайте с Asterisk профессионально!

Многоуровневая защита IP-АТС Asterisk

Телефонные станции очень часто становятся объектами хакерских атак. Узнайте, каким образом необходимо строить многоуровневую защиту для Вашей IP-АТС.

Не оставьте хакерам шансов. Защитите свой Asterisk от атак.

Используйте Веб-Интерфейс для удобства настройки

Панель управление FreePBX позволяет легко и удобно управлять всей системой. Научитесь эффективно использовать FreePBX для решения своих задач.

Управление станцией и статистика в окне браузера.

Научитесь работать с Asterisk из консоли

Для понимания работы с Asterisk необходимо уметь настраивать его вручную с конфигурационными файлами и командной строкой CLI Asterisk.

Научитесь «тонкой» настройке Asterisk

Цель курсов - максимум практики.

Обучение нацелено на практическую работу с IP-оборудованием: платы потоков E1, VoIP-телефонные аппараты, голосовые шлюзы FXS и прочее.

Обучение на реальном оборудовании — залог успеха.

Dashboard AMIws звонков в режиме реального времени.

База знаний Linux

Зачастую требуется получение информации о поступающих звонках в режиме реального времени с отображением в WEB панели, в рамках данной статьи будет рассмотрена открытая разработка AMI прокси-сервера «AMIws».

AMIws - простой прокси-сервер AMI в WEB. Он может подключаться к одному или нескольким серверам IP АТС Asterisk через AMI (Asterisk Manager Interface), читать сообщения из потока AMI и отправлять actions/commands. Полученные сообщения анализируются и преобразуются в JSON. AMIws также предоставляет интерфейс HTTP / WebSocket и отправляет сообщения JSON всем подключенным пользователям через HTTP.

Возможности Amiws:


1. Использование протокола AMI для получения данных
2. Возможность подключение к AMI по обычному TCP подключению и защищенному SSL/TLS
3. Логирование syslog
4. HTTP и WebSocket сервер
5. Защищенное SSL/TLS подключение к HTTP и WebSocket
6. Аутентификация по логину и паролю при доступе к WEB интерфейсу
7. Конфигурирование с использование YAML

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

Инструкция:

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

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

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

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

2. Выполним установку необходимых зависимостей, введя в консоли команду вида:

# yum install libyaml libyaml-devel openssl openssl-devel

Установка зависимостей.
Информирование о успешном завершении установки зависимостей.

3. Приступим к сборке и установки AMIws, для этого в SSH консоли выполним ряд команд вида:

# cd /usr/src/
# wget https://github.com/staskobzar/amiws/archive/master.zip
# unzip master.zip


Переход в директорию и скачивание исходников AMIws.

# cd amiws-master/
# ./configure

Переход в директорию и конфигурирование перед сборкой.

# make && make install

Сборка AMIws
Установка AMIws.

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

# ./configure --with-ssl

4. Прежде чем приступать к конфигурированию AMIws, необходимо создать 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. Приступим к конфигурированию AMIws, предварительно скопируем образцы конфигурационных файлов и файл сервиса, для этого в консоли выполним ряд команд вида:

# cp -vr etc/amiws.sample.yaml /etc/amiws.yaml
# cp -vr etc/amiws.sysv.init /etc/init.d/amiws

Копирование конфигурационных файлов.

8. Выполним редактирование скопированного образца конфигурационного файла:

# nano /etc/amiws.yaml

И приведем данный файл к следующему виду:

log_facility  : 40
log_level     : 6
ws_port       : 8000
web_root      : /var/www/html/amiws/web_root
#auth_domain   : 192.168.170.163
#auth_file     : /var/www/amiws/.htaccess
#ssl_cert      : /tmp/server.pem
#ssl_key       : /tmp/server.key
# List of AMI servers
amihosts:
  - name: ast01.localhost
    port: 5038
    host: 127.0.0.1
    username: amiws
    secret: amiws
#  - name: ssl.ast01.example.com
#    port: 5039
#    host: 127.0.0.1
#    username: amiws
#    secret: amiws
#    ssl_cert: /etc/ssl/asterisk.pem
#    ssl_key: /etc/ssl/asterisk.key

где ключевыми парамметрами для изменения являются:

web_root — директория расположения WEB файлов AMIws
ws_port — порт по которому будет осуществляться обращение к WEB Amiws
auth_file — расположение файла .htaccess содержащего параметры для авторизации по логину/паролю
ssl_cert — расположение SSL сертификата для защищенного обращения по https к WEB AMIws
ssl_key — расположение приватного SSL ключа, который генерируется совместно с SSL сертификатом
name — имя сервера, которое будет отображаться в WEB AMIws и по которому можно будет отфильтровывать данные если будет просматриваться информация по поступающим звонкам от нескольких серверов
port — порт для обычного подключения по AMI(по умолчанию 5038, 5039 для защищенного SSL/TLS подключения)
host — адрес сервера телефонии Asterisk
username — имя AMI пользователя созданного в п.6 данной статьи
secret — пароль  AMI пользователя созданного в п.6 данной статьи

Редактирование конфигурационного файла amiws.yaml

9. Выполним редактирование сервисного файла, для возможности управления AMIws(запуск, остановка, перезапуск и отслеживания состояния процесса)

# nano /etc/init.d/amiws

И приведем данный файл к следующему виду:

#!/bin/sh
#
#       /etc/rc.d/init.d/amiws
#
#       amiws - Asterisk Manager Iterface (AMI) to web-socket proxy
#
# chkconfig:   345 56 50
# description: AMI to websock proxy amiws

### BEGIN INIT INFO
# Provides:       amiws
# Required-Start: $network $rsyslog
# Required-Stop:
# Should-Start:
# Should-Stop:
# Default-Start: 3 4 5
# Default-Stop:  0 1 2 6
# Short-Description: start and stop amiws
# Description: amiws - Asterisk Manager Iterface (AMI) to web-socket proxy
### END INIT INFO
# Source function library.
. /etc/rc.d/init.d/functions
prog="amiws"
app="/usr/local/bin/$prog"
lock_file="/var/lock/subsys/$prog"
conf_file="/etc/amiws.yaml"
proguser=root
WORKDIR="/var/run"
PIDFILE="$WORKDIR/$prog.pid"

[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog

start() {
    [ -x $exec ] || exit 5

    echo -n $"Starting $prog: "
    daemon --user $proguser $app --file $conf_file --pidfile $PIDFILE --wdir $WORKDIR --daemon
    RETVAL=$?
    [ $RETVAL -eq 0 ] && touch $lock_file
    echo
    return $RETVAL
}
stop() {
    echo -n $"Stopping $prog: "
    killproc $prog -INT
    RETVAL=$?
    echo
    [ $RETVAL -eq 0 ] && rm -f $lock_file
    return $RETVAL
}
restart() {
    stop
    start
}
reload() {
    echo -n $"Reloading $prog: "
    killproc $prog -HUP
    RETVAL=$?
echo
    return $RETVAL
}
force_reload() {
    restart
}
rh_status() {
    status $prog
}
rh_status_q() {
    rh_status >/dev/null 2>&1
}
case "$1" in
    start)
        rh_status_q && exit 0
        $1
        ;;
    stop)
        rh_status_q || exit 0
        $1
        ;;
    restart)
        $1
        ;;
    force-reload)
        force_reload
        ;;
    status)
        rh_status
        ;;
    condrestart|try-restart)
        rh_status_q || exit 0
        restart
        ;;
    *)
        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
        exit 2
esac
exit $?

Редактирование сервисного файла.
Редактирование сервисного файла.

10. Перенесем для удобства WEB файлы AMIws в директорию Apache, для этого выполним ряд команд вида:

# mkdir /var/www/html/amiws
# cp -vr /usr/src/amiws-master/web_root /var/www/html/amiws/

Копирование WEB директории.

11. Добавим AMIws в автозагрузку и запустим, для этого выполним ряд команд вида:

# chmod +x /etc/init.d/amiws
# chkconfig amiws on
# service amiws start

Добавление в автозагрузку и запуск AMIws.

12. Установка и конфигурирование AMIws на данном шаге завершены, теперь перейдя в интернет обозревателе(Opera, Firefox, Google Chrome, Yandex Browser….) по ссылке вида http://IP_адрес_сервера_Asterisk:8000/ В примере данной статьи ссылка имеет вид: http://192.168.170.163:8000/ . Мы попадём в Dashboard AMIws:

Dashboard AMIws.

13. Пример отображения поступающего звонка в режиме реального времени:

Отображение входящего звонка в Dashboard.

Dashboard AMIws так же имеет функционал отображения геолокации по странам.

14. Для ограничения доступа к Dashboard AMIws с использованием пары логин/пароль, необходимо выполнить следующие действия:

# cd /var/www/html/amiws/web_root/
# htdigest -c /var/www/html/amiws/web_root/.htaccess 192.168.170.163 admin

где  192.168.170.163 — IP адрес или доменное имя по которому будет осуществляться обращение к Dashboard AMIws
admin — логин учетной записи по которой разрешено пройти авторизацию

После ввода команды « htdigest…..» система попросит ввести пароль для создаваемой учетной записи. Внимание, во время ввода пароля, пароль не отображается в консоли.

Создание «.htaccess»

Далее необходимо раскомментировать и отредактировать строку с параметром «auth_file и auth_domain» в конфигурационном файле «/etc/amiws.yaml»

# nano /etc/amiws.yaml
и приведем строку к следующему виду:
auth_domain   : 192.168.170.163
auth_file     : /var/www/html/amiws/web_root/.htaccess

где  192.168.170.163 — IP адрес или доменное имя по которому будет осуществляться обращение к Dashboard AMIws
auth_file  - адрес расположения файла .htaccess

Редактирование конфигурационного файла  amiws.yaml.

После успешного внесения изменений в конфигурационные файлы, необходимо выполнить перезапуск AMIws

# service amiws restart

Перезапуск AMIws.

Последующие обращения через интернет обозреватель(Opera, Firefox, Google Chrome, Yandex Browser….) к Dashboard AMIws будут сопровождаться формой для прохождения авторизации:

 Форма авторизации  Dashboard AMIws.

 

 

 

asterisk, установка, настройка, инструкция, Подключение, FreePBX, centOS, GitHub, 1C