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 на официальном сайте и загрузить с него следующие архивы:
- asterisk.
- asterisk-sounds.
- asterisk-addons.
- zaptel.
- 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. Перезагрузите систему, чтобы применить сделанные изменения: В данном разделе мы рассмотрим процедуру установки на другой популярной платформе - Debian. Хорошая новость для пользователей: она относительно проста, несмотря на то, что также включает в себя сборку из исходников. В качестве примера мы выполним установку Asterisk на Debian 8. Установка производится от имени суперпользователя (root). Откройте терминал, получите соответствующие права, после чего можно приступить к инсталляции. Сначала загрузите Asterisk 13 с официального сайт и распакуйте загруженный архив. Перейдите в папку с распакованными исходниками. Теперь установим необходимые зависимости. Самая важная - компилятор gcc - в Debian уже есть. Поэтому просто загрузим оставшиеся: После того, как все зависимости загружены и установлены, выполните в папке с распакованным архивом Asterisk следующую команду: Команда должна завершиться без ошибок. Если в результате возникнет сообщение об отсутствии некоторых зависимостей, установите их. Перед компиляцией Asterisk есть возможность включить или отключить отдельные модули: Будет открыто консольное приложение со списком модулей. Перемещаясь клавишами вниз и вверх по списку, вы можете включать и отключать их. Некоторые дополнительные модули требуют установки зависимостей. Это можно сделать при помощи apt-get.
Теперь приступим к компиляции Asterisk. Введите в консоли уже знакомые команды: 1. Сборка исходников: 2. Установка в системные каталоги: Когда выполнение компиляции завершится без ошибок, нужно запустить команду: На этом завершается установка. Asterisk успешно проинсталлирован на ваше сервер. Следующая команда вызовет консоль управления Asterisk: asterisk -vvvvvvgc Теперь рассмотрим базовые процедуры настройки сервера телефонии 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-телефонии. Не так уж и много навыков требуется, чтобы поднять офисную АТС. Asterisk может выполнять исходящие и входящие вызовы. Для исходящих вызовов нам требуется провайдер, который будет перенаправлять вызовы в нашу систему, а также публичный IP-адрес. Для этого нужно настроить SIP-транк - канал виртуальной связи между клиентским оборудованием и телефонным оператором. Если в роли оборудования клиента будет выступать наш сервер с Asterisk, настройка транка позволит подключить к нему любое количество городских телефонных номеров по протоколу SIP Для создания транка добавьте следующий код в файл sip.conf:
После этого нужно будет внести в extension.conf
еще одну строку: exten => _XXXXXXX.,1,Dial(SIP/trunk1/${EXTEN}) Это позволит установить связь с провайдером для осуществления исходящих вызовов. Настройка полноценной офисной АТС на базе Asterisk, установка которого была рассмотрена в данной статье, включает в себя гораздо больше процедур, чем описано выше. Подробная информация о сервере телефонии и его возможности представлена к официальной документации по Asterisk. Сегодня мы начинаем серию статей об Asterisk
. И в первую очередь имеет смысл разобраться, что же такое Asterisk и для чего он нужен.
Asterisk – это кроссплатформенное решение для компьютерной телефонии. По сути, это программная АТС. В комплексе с определенным оборудованием он способен обеспечить все возможности классической офисной АТС.
Немного об истории Asterisk
Asterisk появился благодаря Марку Спенсеру в 2004 году. Его компания не могла позволить себе систему колл-центров, поэтому Марк Спенсер начал думать о создании программной АТС. Причем, любопытной особенностью программы стало то, что она была выпущена с открытым кодом. Соответственно, Asterisk продолжает развиваться благодаря людям по всему миру.
Asterisk распространяется бесплатно, что только добавляет ему популярности.
На данный момент Asterisk – это наиболее распространенная программная АТС в мире. Многие компании предпочитают работать именно с Asterisk благодаря гибкости и эффективности получаемой связи.
Что может Asterisk
Поскольку Asterisk – это АТС, то и обеспечивает он стандартные функции АТС:
1. Исходящая и входящая связь;
Помимо всего прочего, Asterisk предоставляет возможность самостоятельно или с помощью специалиста настроить ряд дополнительных функций
:
1. Неограниченное количество абонентов. Вы можете подключить то число сотрудников, которое необходимо.
2. Сохранение номера при переезде. Asterisk позволяет сохранить номер телефона, по которому Вас узнает большинство клиентов, даже в случае переезда.
3. Запись телефонных разговоров. Вы сможете настроить запись разговоров имен так, как Вам это необходимо. Запись разговоров позволит не только отслеживать эффективность работы сотрудников, но и объективно разрешать конфликтные ситуации.
5. Интеграция с CRM станет важным инструментом в работе с клиентами, поскольку Ваши сотрудники смогут получать любые данные о позвонившем клиенте и мгновенно сориентироваться в том, как вести разговор с клиентом.
6. 8-800 и обратный звонок помогут подчеркнуть клиентоориентированность компании. Безусловно, Ваши клиенты оценят Ваше желание взять все расходы на связь на себя. Благодаря этим функциям Ваши клиенты станут обращаться в Вашу компанию с большим энтузиазмом.
7. Звонок с сайта. Если Вы решите настроить данную функцию, то сразу ощутите все удобство звонка с сайта. Ведь теперь любой клиент, если под рукой у него не оказалось телефона под рукой, все равно сможет связаться с Вашей компанией и получить консультацию специалистов.
8. Очередь звонков позволит расставить приоритеты в срочности того или иного звонка, ведь благодаря этой функции Вы сможете оставить звонок на линии, а клиент в это время будет получать интересную информацию или наслаждаться музыкой.
9. Статистика. Данная функция будет особенно полезна для получения статистических данных о времени звонков, их количестве, наибольшей активности клиентов. Благодаря автоматически собираемой статистике Вы сможете оценить, когда клиенты максимально активны, и оптимизировать работу менеджеров.
10. Факс на почту. Если Вы заинтересованы в том, чтобы максимально быстро обрабатывать информацию, поступающую по факсу, то функция перенаправления факса на электронную почту будет просто незаменима.
11. Видеоконференции и конференц-связь станут важными инструментами ведения бизнеса, особенно если Ваша компания представлена сетью филиалов или имеет партнеров по всей стране и за рубежом. Все переговоры станут гораздо удобнее, а совещания соберутся оперативнее.
Преимущества Asterisk
1. Экономия. Пожалуй, это основное преимущество. Покупка реальной АТС обойдется как минимум в 5 раз дороже, чем работа с Asterisk. К тому же Вам не придется тратить средства для того, чтобы очередная функция Вашей АТС начала работать и приносить пользу компании.
2. Соединение удаленных офисов. Устанавливать связь между офисами или филиалами компании становится гораздо проще и выгоднее.
3. Подключение к любому оператору телефонии, как IP, так и аналоговой. Вы можете выбирать именно ту телефонию, которая отвечает всем Вашим требованиям. Asterisk подойдет для любого телекоммуникационного решения.
4. Нет необходимости в большом количестве оборудования и проводов. Чтобы Asterisk заработал, не придется тянуть бесконечные провода, поскольку данному ПО нужен только тот провод, который у Вас уже есть – интернет.
5. Гибкость и масштабируемость. Это очень серьезный плюс Asterisk. Ведь если Вы хотите расширить количество абонентов или внести какие-то коррективы в функционал обычной АТС, Вам придется докупать оборудование и долго заниматься весьма сложной настройкой, которая наверняка потребует вызова специалиста. С Asterisk такой проблемы нет, Вы можете легко менять функционал и количество абонентов, благодаря гибкости платформы и масштабируемости Asterisk.
Как итог, мы можем сказать, что использование Asterisk для решения телекоммуникационных задач – это удачный выбор для успешной компании. А в дуэте с IP-телефонией Asterisk позволит Вам быстро, эффективно и выгодно организовать связь в Вашей компании, независимо от её масштабов и задач. Для работы сервера Asterisk не требуется дорогого или специализированного оборудования: для офисных систем мы, как правило, используем серверы начального уровня. Что не менее важно, подключение телефонов к серверу Asterisk осуществляется по локальной сети, что избавляет от необходимости в отдельной кабельной сети для телефонии. Помимо этого, благодаря маршрутизации вызовов по различным каналам, IP-АТС Asterisk позволяет наиболее эффективно использовать преимущества каждого из них, тем самым снижая расходы на услуги связи. Все это, наряду с открытой лицензией, делает стоимость внедрения и обслуживания Asterisk значительно ниже аналогичных коммерческих продуктов. Количество абонентов системы зависит только от производительности сервера Asterisk. Вы можете подключать новые телефоны до тех пор, пока справляется ваш сервер. Что очень важно, IP-АТС Asterisk выпускается под свободой лицензией и не ограничивает количество абонентов и одновременных вызовов, поэтому вам не придется ничего доплачивать. В случае необходимости подключения новых филиалов, телефонная система может быть легко расширена путем добавления нового сервера Asterisk. Интеграция IP-АТС Asterisk с различными системами автоматизации деятельности предприятия, такими как интернет-магазины, CRM или ServiceDesk, позволяет значительно повысить эффективность труда. При поступлении звонка, сервер Asterisk по номеру определит клиента, найдет его в базе данных, сделает в карточке соответствующую запись или создаст новую заявку в ServiceDesk, а по окончанию звонка добавит к заявке запись телефонного разговора. Интеграция телефонной и информационной систем помогает автоматизировать работу, что в свою очередь позволяет более эффективно решать бизнес-задачи. IP-АТС Asterisk распространяется по лицензии GPL, поэтому для внедрения телефонной системы не требуется покупка дорогостоящих лицензий на программное обеспечение. Помимо этого, IP-АТС Asterisk не имеет никаких лицензионных ограничений ни на количество абонентов, ни на количество одновременных вызовов. По сути, стоимость внедрения сервера Asterisk включает в себя только покупку оборудования и оплату работ по настройке Asterisk, поэтому внедрение системы обойдется значительно дешевле аналогичных коммерческих продуктов. На сегодняшний день IP-АТС Asterisk является одним из наиболее распространенных решений в области IP-телефонии. Система занимает одно из лидирующих мест среди VoIP-систем, и успешно применяется как в крупных call-центрах, так и для построения офисных телефонных систем. Множество компаний и специалистов предоставляют свои услуги по поддержке и интеграции, поэтому делая выбор в пользу IP-АТС Asterisk, вы можете быть уверены в том, что не останетесь с неизвестной системой один на один. В свою очередь, наша компания предоставляет месяц бесплатной технической поддержки для всех клиентов, заказавших внедрение системы Asterisk. Asterisk обладает всеми возможностями
классической АТС, поддерживает
множество VoIP протоколов и предоставляет функции голосовой почты,
конференций, интерактивного голосового меню (IVR), центра обработки
вызовов (постановка звонков в очередь и распределение их по агентам
используя различные алгоритмы), запись CDR и прочие функции. Для
создания собственной функциональности можно воспользоваться собственным
языком Asterisk для написания диалплана, написав модуль на языке C,
либо воспользовавшись AGI, который является гибким и универсальным
интерфейсом для интеграции с внешними системами обработки данных. Выполняемое через AGI может быть написано на любом языке
программирования. Asterisk распространяется по условиям двойной лицензии, благодаря
которой одновременно с основным кодом, распространяемым по открытой
лицензии GNU General Public License , возможно создание закрытых модулей, содержащих лицензируемый код. Например модуль для поддержки кодека G.729 . Операционные системы
Протоколы
Разработан также специальный Inter-Asterisk eXchange (IAX) VoIP
протокол для связи между серверами
Asterisk, который обеспечивает передачу голоса и данных прозрачно
через различные гетерогенные сети. Использование ИП-протокола позволяет
Asterisk посылать различные данные, такие как URL или картинки и фото
в процессе разговора, интегрируя различные виды информации. Структура Asterisk полностью модулярна, интерфейс командной строки
позволяет перегружать отдельные модули и их конфигурации не нарушая
работы в целом и не разрывая установленные соединения, а также
выгружать и загружать интерфейсы, файлы и кодеки. Делает прозрачным
соединение между всеми поддерживаемыми интерфейсами, объединяя
различные телефонные системы в единую сетевую среду.
Благодаря открытой лицензии, Asterisk активно развивается и
поддерживается тысячами людей со всей планеты. В течение последних двух
лет Asterisk приложения активно развиваются в Соединенных Штатах и
Европе. В том или ином виде Астериск занял прочное место на рынке
IT-технологий (более 1000 компаний, центры поддержки,
online-консультации). Многие компании применяют Asterisk в своих
серийных VoIP устройствах, например компанииУстановка Asterisk 13 на Debian
Настройка Asterisk
Создание первого номерного плана
Создание первого транка SIP
Заключение
2. Внутренняя связь (добавочные номера для сотрудников).
Масштабируемость
Возможность интеграции
Свободная лицензия
Техническая поддержка
Приложение работает на операционных системах GNU/Linux, FreeBSD и
Solaris и предназначено для создания решений компьютерной телефонии.
Имя проекта произошло от названия символа *, который в Unix и DOS
операционных системах обозначает совпадение любой последовательности
символов в именах файлов.
Asterisk обеспечивает достаточное количество протоколов для
поддержки соединений между традиционными системами телефонии и ИП
сетями включая
H.323, Session Initiation Protocol (SIP), Media Gateway Control
Protocol (MGCP), and Skinny Client Control Protocol (SCCP).
Asterisk не требует никакого специального оборудования для Voice
over IP. Почти все устройства различных производителей VoIP
оборудования можно подключить без особых проблем. Для использования
цифрового и аналогового телефонного оборудования Asterisk
поддерживает широкий спектр оборудования , в котором особое место занимают PCI платы Digium , содателя Asterisk.