Asterix телефония. Asterisk – система компьютерной телефонии уровня предприятия. Установка и настройка Asterisk

Со времен университета зарекался никогда не влезать в ГИС и все, что с этим связано. И со времен все того же университета все эти ГИС преследуют меня постоянно:) На одном из предыдущих мест работы мне приходилось работать со связкой MapInfo + Oracle. Теперь же пришлось испытать опенсорсные проекты QuantumGIS + PostGIS.
Начнем с установки всего этого добра.

Итак по порядку.
QuantumGIS - по сути бесплатный аналог MapInfo или ArcGIS. Подробнее в википедии
PostGIS - расширение для PostgreSQL, позволяющее хранить и обрабатывать геопространственные данные. Это означает, что PostGIS сам по себе работать не будет. Ему нужна PostgreSQL. На сегодняшний день лучше ставить PostgreSQL 9.1 (посмотреть как установить и настроить можно в моей статье ).
Соответственно все остальные компоненты нужно ставить с учетом версии PostgreSQL
pgRouting - набор методов для поиска кратчайшего пути по таким алгоритмам как Дейкстры и . Более подробно с возможностями можно ознакомиться на сайте проекта

Установка PostGIS и QuantumGIS

Для тех, кто работает с ГИС в убунту существует хороший репозиторий UbuntuGIS . Добавить его несложно:

Sudo add-apt-repository ppa:ubuntugis/ubuntugis-unstable
sudo apt-get update

В этом репозитории нас интересуют PostGIS и QuantumGIS.

Sudo apt-get install postgresql-9.1-postgis
sudo apt-get install qgis

PostGIS устанавливается как расширение (extension) в PostgreSQL. Поэтому для того чтобы создать базу данных, предназначенную для хранения и обработки геопространственных данных необходимо в имеющуюся базу добавить расширение postgis. Делается это в pgAdmin. Найдите в дереве свою базу данных, а в ней узел Extensions и добавьте туда расширение postgis. Если такого расширения нет, то попробуйте обновить ветку с вашей базой данных, а если не поможет, то отсоединиться и присоединиться к серверу заново.

Установка pgRouting

pgRouting берем из репозитория команды Georepublic.

Sudo add-apt-repository ppa:georepublic/pgrouting
sudo apt-get update
sudo apt-get install postgresql-9.1-pgrouting

На сим установка pgRouting не закончилась. Необходимо в определенной последовательности выполнить специальные скрипты.
Все скрипты находятся по пути /usr/share/postlbs/
Последовательность следующая:

  1. routing_core.sql
  2. routing_core_wrappers.sql
  3. routing_topology.sql
  4. matching.sql

Можно их открыть в pgAdmin и выполнить там. Заодно можно ознакомиться с содержимым этих скриптов.
Тем, кто слишком крут для графических оболочек;) необходимо выполнить следующую последовательность команд:

Psql -U postgres -f /usr/share/postlbs/routing_core.sql
psql -U postgres -f /usr/share/postlbs/routing_core_wrappers.sql
psql -U postgres -f /usr/share/postlbs/routing_topology.sql
psql -U postgres -f /usr/share/postlbs/matching.sql

При выполнении этих команд можно отхватить ошибку

Psql: FATAL: Peer authentication failed for user "postgres"

Это означает что вы не можете выполнить эти команды на сервере, потому что у вас недостаточно прав. Тут может возникнуть некоторое замешательство: вроде SQL-команда запускается от имени администратора postgres, а в то же время не достаточно прав. Все дело в том, что сама команда psql запускается от имени вашего текущего пользователя, а он, в свою очередь, не может даже соединиться с PostgreSQL (куда уж там до выполнения каких-либо команд). Из подобной ситуации есть выход - запустить psql от имени пользователя postgres

Sudo -u postgres psql -U postgres -f /usr/share/postlbs/routing_core.sql

Остальные скрипты запускаются аналогично.
Ну вот и все. В будущем попробую написать пост про то, как все это дело использовать при поиске наикратчайшего пути (тем более, что русской документации по этому очень сложно найти)

  • Tutorial

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

Установка производилась в Ubuntu и Debian. Скажу сразу, что лучше конечно использовать последние версии программных продуктов, которых иногда нет в репозитариях. Их можно скачать, при желании, вручную с официальных сайтов.

Не считая необходимых зависимостей, в общем случае нам понадобятся

  • PostgreSQL >= 8.4
  • PostGIS >= 1.5 < 2
  • Python 2.x
  • Mapnik >= 2
  • Osm2pgsql
  • Некоторые знания по работе с bash, Python и PostgreSQL

Установка PostgreSQL

Сперва проверем какая версия PostgreSQL у нас в репозитариях:
$ apt-cache show postgresql
Если версия 8.4 и более, то устанавливаем пакет.
$ sudo apt-get install postgresql
В противном случае, скачиваем пакет с официального сайта www.postgresql.org/download/linux и устанавливаем его. Далее нам надо настроить нашу базу данных. По умолчанию её пользователь - это postgres и авторизоваться можно только от него средствами самой OC. Однако мы поступим несколько по-другому, сперва откроем файл pg_hba.conf. Узнать его расположение можно утилитой locate

$ sudo updatedb $ sudo locate pg_hba.conf
Если у вас эта утилита не установлена, то ставим
$ sudo apt-get install findutils locate
и повторяем команды выше. У меня например этот файл расположен по адресу /etc/postgresql/8.4/main/pg_hba.conf. Открываем его и редактируем.

$ sudo vi "/etc/postgresql/8.4/main/pg_hba.conf"
Заменяем:
$ locate all all ident # Авторизация средствами ОС
На
$ locate all all password # Авторизация по паролю
Сохраняем файл и перезапускаем PostgreSQL.
$ sudo "/etc/init.d/postgresql-8.4 restart"
Теперь мы можем создать любого пользователя базы и заходить от него под обычным паролем без всякого шифрования (нам не критична супер безопасность). А также нам потребуется новая база данных для наших OSM данных.
Заходим в консоль управления PostgreSQL.
$ su postgres $ psql postgres=# CREATE ROLE osm WITH SUPERUSER PASSWORD ‘my_password’ LOGIN; CREATE ROLE postgres=# CREATE DATABASE osm; CREATE DATABASE postgres=# \q
Пользователь и база данных созданы.
Проверить работоспособность нового пользователя можно командой
$ psql -U osm -d osm -W
Если после ввода пароля Вы попадете в консоль PostgreSQL, то все прошло успешно.

Установка PostGIS

Нам потребуется PostGIS. В моем репозитарии была версия 1.4. Так как, после её установки мне почему-то не удалось найти файл postgis.sql, я снес эту версию и скачал с официального сайта версию 1.5. Поэтому в статье, мы поступим также.
$ wget "http://postgis.refractions.net/download/postgis-1.5.4.tar.gz"
Распаковываем архив, собираем и устанавливаем.
$ tar xvfz "./postgis-1.5.4.tar.gz" $ cd "./postgis-1.5.4" $ sudo ./configure $ sudo make install
В случае отсутствия необходимых библиотек, устанавливаем их.
Далее устанавливаем специальный язык в базу osm.
$ createlang plpgsql osm -U osm -W
Теперь необходимо в базу osm выполнить два SQL скрипта: postgis.sql и 900913.sql.
При помощи утилиты locate находим их расположение и выполняем их.
$ psql -U osm -d osm -W -f "/usr/share/postgresql/8.4/contrib/postgis-1.5/postgis.sql" $ psql -U osm -d osm -W -f "/usr/share/osm2pgsql/900913.sql"
Обратите внимание, как показала практика данную команду необходимо выполнить именно от пользователя с привилегиями суперпользователя PostgreSQL. Если у вас возникли проблемы и ошибки плана ERROR: type «geometry» does not exist , то попробуйте перед выполнением sql файла выполнить:
$ sudo ldconfig
и повторите команду запуска sql файлов.
Все! С настройкой PostgreSQL мы закончили. Переходим к установке Mapnik.

Установка Mapnik

$ sudo add-apt-repository ppa:mapnik/nightly-trunk $ sudo apt-get update $ sudo apt-get install libmapnik mapnik-utils python-mapnik
Если система выдаст, что “add-apt-repository: command not found”, то
$ sudo apt-get install python-software-properties
И повторите три команды выше. Mapnik установлен. Я не стал писать о необходимости установки Python, так как в большинстве случаев он всегда уже стоит. Проверяем работу mapnik.
$ python >>> import mapnik
Если ошибок никаких не возникло, то все прошло успешно. Теперь перейдем к установке osm2pgsql

Установка Osm2pgsql

$ sudo apt-get install osm2pgsql
Остался один важный штрих. Дело в том, что файл default.style, поставляемый osm2pgsql для экспорта osm данных в базу данных, по какой-то причине не соответствует последнему формату OSM. (Может быть кто знает почему?). Скачиваем файл правильного формата.
$ wget "http://svn.openstreetmap.org/applications/utils/export/osm2pgsql/default.style"
Далее заменяем, тот что шел по умолчанию с osm2pgsql
$ sudo cp "./default.style" "/usr/share/osm2pgsql/default.style"

Установка скриптов от OpenStreetMap для генерации тайлов

Репозитарий OpenStreetMap содержит немало скриптов и утилит по картографической тематике. Нам понадобится одно из приложений, написанное на python, которое уже содержит все необходимые нам скрипты по работе с mapnik. Чтобы его скачать требуется установить Subversion.
$ sudo apt-get install subversion
Теперь смело можно загрузить OSM Application. Создайте папку для его расположения. например, у меня это /home/osm/mapnik и выполните checkout.
$ mkdir "/home/osm/mapnik" $ svn co "http://svn.openstreetmap.org/applications/rendering/mapnik" "/home/osm/mapnik"
Теперь запускаем скрипт находящийся в приложении.
$ bash /home/osm/mapnik/get-coastlines.sh
Он скачает нам необходимые файлы с шейпами мира.
Теперь необходимо создать XML файл стилей. Делается это следующей командой:
$ python /home/osm/mapnik/generate_xml.py osm.xml my_osm.xml --dbname osm --user osm --password my_password --accept-none
Будет создан файл my_osm.xml с данными для подключения к PostgreSQL.

Проба пера

Вот и настал момент, когда можно качать любой OSM файл и генерировать на его основе тайлы. Файлы OSM можно скачать с сайтов представленных на веб-странице wiki.openstreetmap.org/wiki/Planet.osm
Можно, конечно, скачать весь файл Planet.osm, но нужно ли оно вам? В распакованном виде он весит более 250 Гб.

Предположим мы хотим сгенерировать тайлы Москвы на 17 масштабе.
Качаем необходимый OSM файл.
$ wget "http://download.bbbike.org/osm/bbbike/Moscow/Moscow.osm.gz"
Теперь мы можем его экспортировать в базу данных.
$ sudo osm2pgsql -U osm -d osm Moscow.osm.gz
Все! Осталось лишь запустить скрипт по генерации тайлов. Но перед этим, нам нужно его слегка отредактировать, дабы указать нужный масштаб и координаты каких тайлов мы хотим получить. Открываем файл /home/osm/mapnik/generate_tiles.py. Устанавливаем переменную mapfile, чтобы она указывала на наш my_osm.xml.
mapfile = "/home/osm/mapnik/my_osm.xml"
Далее переопределите переменную, которая указывает куда Вы желаете складывать тайлы.
tile_dir = "/home/osm/mapnik/all_tiles"
Файл Moscow.osm который мы скачали имеет координаты векторных данных
xMin = 37.32000 yMin = 55.57000 xMax = 37.88000 yMax = 55.92000
Находим в скрипте такие строки
bbox = (-180.0,-90.0, 180.0,90.0) render_tiles(bbox, mapfile, tile_dir, 0, 5, "World")
И перед ними (дабы не затирать существующий код) пишем:
bbox = (37.32000, 55.57000, 37.88000, 55.92000) render_tiles(bbox, mapfile, tile_dir, 17, 17, "Moscow") exit()
Желательно написать exit(), дабы скрипт после генерации тайлов Москвы не преступил к генерации всего мира.
4 и 5 параметры функции render_tiles задают масштаб с какого по какой мы будем генерировать тайлы. В данном случае мы выбрали только 17 масштаб.

Сохраняем и запускаем.
$ python /home/osm/mapnik/generate_tiles.py
Пойдет процесс генерации тайлов.

Также можно найти прекрасный мануал здесь

– это ATC созданная хакерами (в первоначальном смысле этого слова), а точнее, это супер конвергентная платформа компьютерной телефонии, распространяемая по лицензии GNU GPL, изначально разрабатываемая Марком Спенсером (Mark Spenser), позже ставшим президентом и техническим директором компании Digium. Благодаря коммерческой поддержке Его компании и лицензии GNU GPL Asterisk активно развивается и поддерживается тысячами людей со всей планеты.

Asterisk поддерживает

Протоколы

Аудио кодеки

Название Скорость передачи, Кбит/с Необходимость лицензии
G.711 64 Не нужна
G.726 16, 24, 32 или 40 Не нужна
G.729A 8
GSM 13 Не нужна
iLBC 13,3 (кадры по 30 мс) или 15,2 (кадры по 20 мс) Не нужна
Speex Переменная между 2,15 и 22,4 Не нужна
G.723.1 6.4 Кбит/с (кадр имеет размер 189 битов, дополненных до 24 байтов) и 5,3 Кбит/с (кадр имеет размер 158 битов, дополненных до 20 байтов). Режим работы может меняться динамически от кадра к кадру Нужна (не нужна для транзита)
MP3

Важные моменты для выбора

Производительность Asterisk систем

Опытные данные производительности систем представлены на форуме и оригинальный текст . Asterisk – может работать практически на любой платформе Linux плюс некоторых других ОС, таких как Solaris, BSD, MacOS X и есть даже проект Asterisk for Win32 . По поводу выбора ОС для Asterisk развивать холивар не хочу и предлагаю выбрать Вам самим, при этом не мешает прочитать ветку форма посвященному этому вопросу. В заключении, скажу, что сам использую CentOS – популярный дистрибутив, используемый с Asterisk (собран из сырцов RedHat) версии 5.2.
Подробное руководство по установке CentOS 5.2 из блога Linuxoid .
Иксы рекомендую не ставить, так как с Asterisk они будут конкурировать за ресурсы.

Установка и настройка Asterisk

Asterisk в базовой комплектации включает три основных пакета доступных к загрузке на официальном сайте :
  • Сам Asterisk , доступна версия 1.6.0.6;
  • Драйверы телефонии DAHDI – акроним Digium Asterisk Hardware Device Interface, бывший zaptel + DAHDI Tools ;
  • PRI – библиотеки Libpri.
ссылки на 32-bit версии, но доступны и 64–bit
Если планируется использовать только VoIP, то достаточно пакета Asterisk, но рекомендуется установить все пакеты.

Дополнительно, можно установить

  • Modules and addons , содержит модули для работы с MySQL и проигрывания mp3 – файлов, ИМХО не вошло в официальный дистрибутив и не надо. К примеру, Asterisk установлен с поддержкой ODBC и при установке аддона для работы с MySQL система может не работать, поэтому одновременно рекомендуется использовать только один из драйверов и отключить другой. Проигрывание mp3 – файлов, в свою очередь, вызовет дополнительную нагрузку на систему т.к. проигрываемый файл необходимо будет разжать.

Необходимые пакеты Linux

  • GCC 3.x;
  • ncurses-devel;
  • libtermcap-devel;
  • Kernel Development Headers;
  • GCC C++ 3.x;
  • OpenSSL (опционально) ;
  • newt-devel (опционально) ;
  • zlib-devel (опционально) ;
  • unixODBC; unixODBC-devel (опционально) ;
  • libtool (рекомендуется) ;
  • GNU make (версия 3.80 и выше).
В моем случае все уже содержалось в системе, я лишь обновил ядро (пусть это никому не кажется страшным).

Особой популярностью и любовью пользуется дистрибутив Trixbox - это программный комплекс, основанный на CentOS и Asterisk, основной задачей которого является создание в кротчайшие сроки сервера IP телефонии.
На данный момент доступна . Этапы установки можно подсмотреть на сайте voiceip.com.ua .

Дистрибутив Elastix от PaloSanto Solutions по функциональности не намного обходит Trixbox Community Edition. Распространяется по лицензии GNU GPL. Основой Elastix послужил CentOS 5 с ядром 2.6.18. Основу системы VoIP составляет Asterisk 1.4.18, разработчики дополнили его утилитами собственной разработки и модулями сторонних производителей. В качестве системы биллинга использован переработанный A2Billing. В поставку входит и сервер Openfire 3.4.2 обеспечивающий обмен сообщениями по протоколу XMPP/Jabber. Также в комплекте дистрибутива поставляются две CRM (Customer relationship management) - SugarCRM и VTigerCRM
Обзор и установку можно подсмотреть в статье Linuxoid .

Продолжим

Загружать статью общими вопросами установки и настройки Asterisk не буду, тем более, что в сети есть замечательные статьи, подробно рассказывающие о каждом из этапов. Не смотря на то, что статьи написаны 3 – 4 года назад, поверьте, они не теряют своей актуальности, не спорю, версии сменились с 1.2 аж до 1.6, сменилось даже название телефонного драйвера и функционал существенно расширился, но Вас это не должно пугать. Статьи о Asterisk в журнале «Системный администратор»
Автор Михаил Платов :
  • Asterisk и Linux – миссия IP-телефония – рассматриваются основные возможности Asterisk, настройка и работа по протоколу SIP;
  • Asterisk и Linux: миссия IP-телефония. Действие 2 – рассматривается работа по протоколу H323 и обеспечение связи с ТфОП;
  • Asterisk и Linux: миссия IP-телефония. Действие 3 – заключительная из этого цикла статья, рассматривающая вопросы голосовой почты, конференций и web–интерфейсов, значительно облегчающих работу, как пользователей, так и администраторов Asterisk.

Примечание: в статьях используются утилиты zaptel, который сменил название на DAHDI
ztcfg -> dahdi_cfg
ztmonitor -> dahdi_monitor
ztscan -> dahdi_scan
ztspeed -> dahdi_speed
zttest -> dahdi_test
zttool -> dahdi_tool
zapconf -> dahdi_genconf ранее известная, как genzaptelconf)

И изменились пути:

  • Системный файл конфигурации был переименован из /etc/zaptel.conf в /etc/dahdi/system.conf
  • Утилита dahdi_cfg теперь может использоваться для выбора эхо-подавителя для каждого из канала или группы каналов на основании настроек из файла конфигурации: system.conf; Полный перечень изменений на svn-транке разработчиков или по-русски на сайте voip.rus.net .

Asterisk: организуем автоматическое распределение поступающих вызовов – рассматриваются вопросы организации очереди обработки вызовов, так необходимой в службах работающих с клиентами. Автор Сергей Яремчук

Хранение файлов CDR в Базе Данных

Call Detail Records (CDR) – файл записи параметров вызовов прошедших через систему. Asterisk позволяет хранить CDR файлы в:
  • Comma Separated Values (CSV) – файл;
Важная часть диалплана, обеспечивающая ему мощь и динамичность – это func_odbc , она позволяет создавать и применять в диалплане функции извлечения и использования информации из БД.

IVR

Interactive Voice Response (IVR) – это уже неотъемлемая часть любой платформы и бизнеса занимающимся обслуживанием клиентов. Стоимость коммерческих IVR систем (Avaya, Cisco, Genesys, Nortel или Dialogic) достаточна, высока, а Asterisk просто создан для этого.
К сожалению, русского женского голоса для Asterisk нет (бесплатного). После инсталляции Asterisk говорит с нами голосом Эллисон Смит (Allison Smith) - это порядка 300 промтов, плюс еще 600 в дополнении asterisk–sounds.

Доступен текстовый перевод голосовых промтов для Asterisk версий 1.4, 1.6А также мужской русский голос от romik_g для Asterisk 1.4.

На ресурсе ivrvoice.ru можно скачать и использовать в любых мирных целях, включая бизнес, русские промты для Asterisk.

Если Вы решитесь самостоятельно записать промты, то основное требование – это нормализация записей до -3дБ с паузами в начале и завершении записи. Для конвертации аудио файла используется утилита (Sound eXchange).

Однако, системы IVR – это “не только ценный мех” и DTMF , но и системы Automatic Speech Recognition(ASR – системы распознавания речи) и Text–to–speech(TTS) движки речевого воспроизведения. Правда, с русским тут пока туго.
Но знать должны:

  • Оpen source TTS – engine

Asterisk, установка которого будет рассмотрена в данном материале, представляет собой программное обеспечение для организации так называемой офисной телефонной станции или IP-АТС (англ. Private Branch eXchange, PBX). Оно объединяет все телефоны в офисе в одну информационную сеть, на базе которой работают разнообразные службы голосовой связи. Asterisk работает на Linux, BSD, OS X и на Windows с использованием эмулятора.

Asterisk может осуществлять передачу голоса по четырем различным протоколам VoIP и взаимодействовать практически со всеми стандартизованными телефонными аппаратами (включая мобильные) при помощи относительно недорогого оборудования. Asterisk реализует различные возможности голосовой почты (voicemail), включая телефонный справочник, конференц-связь, интерактивный голосовой ответ и очереди вызовов.

В данном материале мы рассмотрим процесс установки Asterisk на ОС Linux, в частности на популярных дистрибутивах CentOS и Debian, а также базовые процедуры настройки сервера голосовой почты.

Установка сервера Asterisk из исходников

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

Перед установкой сервера IP-телефонии в системе должен быть обеспечен ряд условий. Asterisk должен устанавливаться на систему, работающую на ядре версии не ниже 2.6, при этом в системе должны присутствовать файлы заголовков, чтобы программа успешно скомпилировалась. Asterisk написан на языке C, поэтому для сборки в системе должен быть установлен компилятор gcc с сопутствующими библиотеками, такими как termcap и openssl. Для сборки дополнений Asterisk также требуются предустановленные библиотеки и клиент mysql, а также соответствующие им файлы заголовков.

Когда система подготовлена для установки, вам будет необходимо перейти в раздел Download на официальном сайте и загрузить с него следующие архивы:

  1. asterisk.
  2. asterisk-sounds.
  3. asterisk-addons.
  4. zaptel.
  5. libpri.

Файлы необходимо скопировать на сервер, который будет осуществлять функции офисной АТС. Разместите их в папке /usr/src/.

После этого запустите на Перейдите в каталог с архивами и распакуйте каждый из них командой:

tar-xzf<имя_архива>tar.gz

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

cd<имя_папки>

И выполните в каждой папке нижеуказанные команды.

1. Подготовка к сборке:

2. Сборка:

3. Установка:

Если вышеприведенные команды завершатся с успешным результатом, вы соберете и установите Asterisk на своем сервере.

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

В связи с этим, рассмотрим процедуры инсталляции Asterisk на двух популярных платформах для создания офисных АТС: CentOS и Debian GNU/Linux.

Установка Asterisk на CentOS

В рамках данного примера мы будем устанавливать Asterisk 13. Мы выполним установку Asterisk на CentOS 7.

Предполагается, что инсталляция будет выполняться в текстовом консольном режиме от имени суперпользователя (root).

Для начала необходимо установить все необходимые пререквизиты. Убедитесь, что в системе присутствуют все пакеты, указанные ниже. Их достаточно много:

В результате в системе будут присутствовать все зависимости, требующиеся для успешной сборки сервера телефонии Asterisk.

Следующим шагом должно стать отключение SELinux. Система безопасности Security-Enhanced Linux в CentOS включена по умолчанию и очень часто препятствует нормальному функционированию Asterisk. Поэтому для успешной настройки и работы сервера ее необходимо отключить.

Проверим статус активности системы SELinux следующей командой:

Если система сообщает, что SELinux включен, выполним процедуру отключения. Для этого необходимо внести изменения в конфигурационный файл в папке /etc/selinux, установив соответствующий флаг.

sed -i "s/\(^SELINUX=\).*/\SELINUX=DISABLED/" config

timedatectl set-timezone <имя_зоны> (например, America/Los_Angeles)

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

​timedatectl status

После этого потребуется перезагрузить систему, чтобы активировать изменения. Для этого используйте команду reboot .

Теперь непосредственно перейдем к установке Asterisk.

Фактически, установка Asterisk на CentOS сводится к той же самой сборке из исходников, с которой мы познакомились в предыдущем разделе. Здесь же мы рассмотрим процесс сборки с учетом особенностей конкретного дистрибутива Linux, а именно CentOS 7.

Для начала загрузим и установим сам сервер IP-телефонии.

Скачаем из раздела Downloads на официальном сайте продукта архив с Asterisk 13 и сохраним его в папку /usr/src. Распакуем архив командой:

tar zxvf <имя_архива>

Перейдем в папку с распакованным архивом и выполним команды, приведенные ниже.

./configure --libdir=/usr/lib64 --with-pjproject-bundled

Данная последовательность команд позволит подготовить исходники к сборке.

make menuselect.makeopts

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

1. Создайте отдельную учетную запись пользователя для сервера IP-телефонии.

adduser asterisk -s /sbin/nologin -c "Asterisk User"

2. Соберите и установите сервер.

make && make install

3. Задайте права доступа к Asterisk для вновь созданного пользователя.

chown -R asterisk. /var/lib/asterisk

В результате базовый сервер Asterisk будет собран и установлен.

Помимо самого Asterisk, аналогичным способом на CentOS можно установить полезные дополнения к серверу. Об этом читайте ниже.

FreePBX

FreePBX - это полнофункциональный графический Web-интерфейс, предназначенный для настройки и управления офисной АТС. Установка Asterisk с FreePBX осуществляется в нижеприведенной последовательности.

Запустим базу данных:

systemctl start mariadb

Скачаем с сайта GitHub в папку /usr/src исходный код FreePBX:

git clone -b release/13.0 https://github.com/FreePBX/framework.git freepbx

./start_asterisk start

И ряд команд для настройки FreePBX:

DAHDI

DAHDI - это драйвер, обеспечивающий взаимодействие Asterisk с различным телефонным оборудованием. Он отвечает за работу плат интерфейсов телефонии, устанавливаемых непосредственно в сервер, на котором работает Asterisk. Процедура установки DAHDI описана ниже.

Скачайте в каталог /usr/src архив с драйвером, распакуйте его и перейдите в разархивированную папку. В ней выполните команды:

PJSIP

PJSIP - это библиотека, написанная на С, которая отвечает за поддержку различных протоколов IP-телефонии. С версии Asterisk 13.8 включительно библиотека PJSIP может устанавливаться отдельно. Впрочем, если Asterisk компилируется с флагом --with-pjproject-bundled (что мы и сделали в предыдущем разделе), библиотека PJSIP будет установлена непосредственно при компиляции сервера.

Для того, чтобы установить PJSIP отдельно, требуется произвести следующую процедуру.

Скачайте с сайта pjsip.org в каталог /usr/src архив с драйвером, распакуйте его и перейдите в разархивированную папку. В ней выполните команды:

Пост-инсталляционные процедуры

По завершению установки Asterisk необходимо выполнить ряд дополнительных действий. Данные процедуры являются обязательными.

1. Установить защиту для сервера базы данных:

mysql_secure_installation

Для выполнения процедуры просто ответьте Y на все вопросы.

2. Изменить настройки веб-сервера:

3. Открыть доступ к службам и портам, необходимым для работы Asterisk:

firewall-cmd --permanent --zone=public --add-service={http,https} --add-port=5060-5061/tcp --add-port=5060-5061/udp --add-port=10000-20000/udp

4. Настроить автозагрузку базы данных:

systemctl enable mariadb

5. Настроить загрузку веб-сервера при запуске системы:

systemctl enable httpd

6. Настроить автозапуск FreePBX при загрузке системы:

nano /etc/systemd/system/freepbx.service

systemctl enable freepbx

7. Настроить соединение с базой данных через ODBC. Если установлен устаревший модуль cdr_mysql.so, этот пункт опционален, но все же рекомендуется:

nano /etc/odbc.ini

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

isql -v asteriskcdrdb

8. Перезагрузите систему, чтобы применить сделанные изменения:

Установка Asterisk 13 на Debian

В данном разделе мы рассмотрим процедуру установки на другой популярной платформе - Debian. Хорошая новость для пользователей: она относительно проста, несмотря на то, что также включает в себя сборку из исходников. В качестве примера мы выполним установку Asterisk на Debian 8.

Установка производится от имени суперпользователя (root). Откройте терминал, получите соответствующие права, после чего можно приступить к инсталляции.

Сначала загрузите Asterisk 13 с официального сайт и распакуйте загруженный архив. Перейдите в папку с распакованными исходниками.

Теперь установим необходимые зависимости. Самая важная - компилятор gcc - в Debian уже есть. Поэтому просто загрузим оставшиеся:

После того, как все зависимости загружены и установлены, выполните в папке с распакованным архивом Asterisk следующую команду:

Команда должна завершиться без ошибок. Если в результате возникнет сообщение об отсутствии некоторых зависимостей, установите их.

Перед компиляцией Asterisk есть возможность включить или отключить отдельные модули:

Будет открыто консольное приложение со списком модулей. Перемещаясь клавишами вниз и вверх по списку, вы можете включать и отключать их. Некоторые дополнительные модули требуют установки зависимостей. Это можно сделать при помощи apt-get.

Теперь приступим к компиляции Asterisk. Введите в консоли уже знакомые команды:

1. Сборка исходников:

2. Установка в системные каталоги:

Когда выполнение компиляции завершится без ошибок, нужно запустить команду:

На этом завершается установка. Asterisk успешно проинсталлирован на ваше сервер. Следующая команда вызовет консоль управления Asterisk:

asterisk -vvvvvvgc

Настройка Asterisk

Теперь рассмотрим базовые процедуры настройки сервера телефонии Asterisk. Они принципиально одинаковы для всех дистрибутивов Linux.

Для начала нужно добавить следующий текст в файл sip.conf:

Тем самым мы создадим пять учетных записей, которые могут использоваться любым клиентом SIP (Cisco SIP Phone, xlite, ATA и тому подобные). Все пользователи будут зарегистрированы в Asterisk. Если данная конфигурация не работает, попробуйте отключить сетевой экран до завершения настройки программного обеспечения.

Создание первого номерного плана

Номерной план (диалплан) предоставляет собой формализованное описание процессов обработки телефонных звонков. Диалплан в деталях указывает системе, что нужно делать с исходящими и входящими звонками. Например, Asterisk может переадресовывать их, отвечать на них при помощи автоответчика и так далее.

Откройте файл extension.conf в папке /etc/asterisk и добавьте в него строку:

exten=> _XXXX,1,Dial(SIP/${EXTEN})

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

Создание первого транка SIP

Asterisk может выполнять исходящие и входящие вызовы. Для исходящих вызовов нам требуется провайдер, который будет перенаправлять вызовы в нашу систему, а также публичный IP-адрес.

Для этого нужно настроить SIP-транк - канал виртуальной связи между клиентским оборудованием и телефонным оператором. Если в роли оборудования клиента будет выступать наш сервер с Asterisk, настройка транка позволит подключить к нему любое количество городских телефонных номеров по протоколу SIP

Для создания транка добавьте следующий код в файл sip.conf:

После этого нужно будет внести в extension.conf еще одну строку:

exten => _XXXXXXX.,1,Dial(SIP/trunk1/${EXTEN})

Это позволит установить связь с провайдером для осуществления исходящих вызовов.

Заключение

Настройка полноценной офисной АТС на базе Asterisk, установка которого была рассмотрена в данной статье, включает в себя гораздо больше процедур, чем описано выше. Подробная информация о сервере телефонии и его возможности представлена к официальной документации по Asterisk.




Top