Познакомьте начальника с Asterisk. Возможности IP-телефонии для мобильных пользователей::Журнал СА 11.2012
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Подписка
Архив номеров
Где купить
Наука и технологии
Авторам
Рекламодателям
Контакты
   

  Опросы
  Статьи

Дата-центры  

Дата-центры: есть ли опасность утечки данных?

Российские компании уже несколько лет испытывают дефицит вычислительных мощностей. Рост числа проектов,

 Читать далее...

Событие  

В банке рассола ждет сисадмина с полей фрактал-кукумбер

Читайте впечатления о слете ДСА 2024, рассказанные волонтером и участником слета

 Читать далее...

Организация бесперебойной работы  

Бесперебойная работа ИТ-инфраструктуры в режиме 24/7 Как обеспечить ее в нынешних условиях?

Год назад ИТ-компания «Крок» провела исследование «Ключевые тренды сервисного рынка 2023». Результаты

 Читать далее...

Книжная полка  

Читайте и познавайте мир технологий!

Издательство «БХВ» продолжает радовать выпуском интересных и полезных, к тому же прекрасно

 Читать далее...

СУБД PostgreSQL  

СУБД Postgres Pro

Сертификация по новым требованиям ФСТЭК и роль администратора без доступа к данным

 Читать далее...

Критическая инфраструктура  

КИИ для оператора связи. Готовы ли компании к повышению уровня кибербезопасности?

Похоже, что провайдеры и операторы связи начали забывать о требованиях законодательства

 Читать далее...

Архитектура ПО  

Архитектурные метрики. Качество архитектуры и способность системы к эволюционированию

Обычно соответствие программного продукта требованиям мы проверяем через скоуп вполне себе понятных

 Читать далее...

Как хорошо вы это знаете  

Что вам известно о разработках компании ARinteg?

Компания ARinteg (ООО «АРинтег») – системный интегратор на российском рынке ИБ –

 Читать далее...

Графические редакторы  

Рисование абстрактных гор в стиле Paper Cut

Векторный графический редактор Inkscape – яркий представитель той прослойки open source, с

 Читать далее...

День сисадмина  

Учите матчасть! Или как стать системным администратором

Лето – время не только отпусков, но и хорошая возможность определиться с профессией

 Читать далее...

День сисадмина  

Живой айтишник – это всегда движение. Остановка смерти подобна

Наши авторы рассказывают о своем опыте и дают советы начинающим системным администраторам.

 Читать далее...

Виртуализация  

Рынок решений для виртуализации

По данным «Обзора российского рынка инфраструктурного ПО и перспектив его развития», сделанного

 Читать далее...

Книжная полка  

Как стать креативным и востребованным

Издательский дом «Питер» предлагает новинки компьютерной литературы, а также книги по бизнесу

 Читать далее...

Книжная полка  

От создания сайтов до разработки и реализации API

В издательстве «БХВ» недавно вышли книги, которые будут интересны системным администраторам, создателям

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 6227
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 6933
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

12.03.2018г.
Просмотров: 4218
Комментарии: 0
Глубокое обучение с точки зрения практика

 Читать далее...

12.03.2018г.
Просмотров: 3009
Комментарии: 0
Изучаем pandas

 Читать далее...

12.03.2018г.
Просмотров: 3807
Комментарии: 0
Программирование на языке Rust (Цветное издание)

 Читать далее...

19.12.2017г.
Просмотров: 3825
Комментарии: 0
Глубокое обучение

 Читать далее...

19.12.2017г.
Просмотров: 6318
Комментарии: 0
Анализ социальных медиа на Python

 Читать далее...

19.12.2017г.
Просмотров: 3172
Комментарии: 0
Основы блокчейна

 Читать далее...

19.12.2017г.
Просмотров: 3462
Комментарии: 0
Java 9. Полный обзор нововведений

 Читать далее...

16.02.2017г.
Просмотров: 7279
Комментарии: 0
Опоздавших не бывает, или книга о стеке

 Читать далее...

17.05.2016г.
Просмотров: 10647
Комментарии: 0
Теория вычислений для программистов

 Читать далее...

30.03.2015г.
Просмотров: 12367
Комментарии: 0
От математики к обобщенному программированию

 Читать далее...

18.02.2014г.
Просмотров: 14000
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

 Читать далее...

13.02.2014г.
Просмотров: 9126
Комментарии: 0
Читайте, размышляйте, действуйте

 Читать далее...

12.02.2014г.
Просмотров: 7079
Комментарии: 0
Рисуем наши мысли

 Читать далее...

10.02.2014г.
Просмотров: 5389
Комментарии: 3
Страна в цифрах

 Читать далее...

18.12.2013г.
Просмотров: 4617
Комментарии: 0
Большие данные меняют нашу жизнь

 Читать далее...

18.12.2013г.
Просмотров: 3428
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

 Читать далее...

04.12.2013г.
Просмотров: 3156
Комментарии: 0
Паутина в облаках

 Читать далее...

03.12.2013г.
Просмотров: 3402
Комментарии: 0
Рецензия на книгу «MongoDB в действии»

 Читать далее...

02.12.2013г.
Просмотров: 3027
Комментарии: 0
Не думай о минутах свысока

 Читать далее...

Друзья сайта  

 Познакомьте начальника с Asterisk. Возможности IP-телефонии для мобильных пользователей

Архив номеров / 2012 / Выпуск №11 (120) / Познакомьте начальника с Asterisk. Возможности IP-телефонии для мобильных пользователей

Рубрика: IP-телефония /  Мобильные решения

Вячеслав Лохтуров ВЯЧЕСЛАВ ЛОХТУРОВ, ведущий преподаватель Центра компьютерного обучения «Специалист», главный системный администратор МГТУ им. Н. Э. Баумана

Познакомьте начальника с Asterisk
Возможности IP-телефонии для мобильных пользователей

Поговорим о том, что нам, профессионалам, периодически приходится делать – как показать возможности новой технологии руководителю и сделать это максимально зрелищно с минимальными затратами, а, добившись одобрения, уже внедрять технологию в масштабе предприятия

Постановка задачи

Представим офис, подключенный к городской телефонной сети через традиционную ATC (PBX). У каждого сотрудника телефон с внутренним номером 101, 102 и т.д. Чтобы понять, что нас в этом не устраивает, представим, что клиент звонит сотруднику, которого нет на месте, и ответим на вопросы:

  • Можно ли перенаправить этот звонок сотруднику на мобильный телефон?
  • Можно ли оставить сообщение для сотрудника?

Если ответы отрицательные, знакомим руководство с IP-телефонией!

Шаг 1. Знакомство с Asterisk

Как вы догадались, статья посвящена системе IP PBX Asterisk. Многие проекты предлагают готовые решения Asterisk, включающие графический интерфейс для настройки и управления (http://www.freepbx.org, http://www.elastix.org). Однако для лучшего понимания и обучения рекомендую начать знакомство с Asterisk непосредственно из командной строки и файлов конфигурации.

Для развертывания Asterisk нам понадобится *NIX-сервер. Для первых опытов сгодится виртуальная система, работающая под управлением, например, VirtualBox (https://www.virtualbox.org). Учтите, что в этом случае при создании системы в настройках сети надо указать тип подключения «Сетевой мост». В этой статье будет использоваться система Linux Ubuntu 12.04 LTS (http://help.ubuntu.ru/wiki/руководство_по_ubuntu_server/установка). Представим, что у вас эта система установлена и имеет следующие параметры:

  • Имя системы: asterisk.
  • IP-адрес системы (статический): 192.168.1.10.
  • Учетная запись администратора системы: admin.

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

$ sudo apt-get install asterisk

В ходе установки будет предложено указать параметр конфигурации ITU-T telephone code. Для наших задач этот параметр не имеет значения, и его можно не менять. Согласно парадигме управления ПО в Debian (а Ubuntu – родственник этого дистрибутива) только что установленный Asterisk уже имеет конфигурацию «по умолчанию» и даже запущен.

Для первых экспериментов с IP-АТС используем программные телефоны. В IP-телефонии есть несколько протоколов подключения (правильно сказать сигнализации), наиболее популярным из них является SIP (http://ru.wikipedia.org/wiki/SIP). Для подключения телефонов к Asterisk по протоколу SIP настроим каналы подключения. Выглядит это так:

$ sudo echo > /etc/asterisk/sip.conf
$ sudo nano /etc/asterisk/sip.conf

[general]
transport=udp
disallow=all
allow=alaw

[101]
type=friend
secret=tpassword1
host=dynamic

[102]
type=friend
secret=tpassword2
host=dynamic

В общей (general) секции конфигурации мы видим директивы, определяющие транспортный протокол и разрешенный кодек для SIP-клиентов. Далее идет описание двух каналов с именами 101 и 102. Подключаться к ним можно, зная пароль (secret), с любого IP-адреса. Тип канала (type) определяет направление звонков в отношении подключенного к нему устройства. Поскольку к этим каналам будут подключаться телефоны, которые могут и принимать, и совершать звонки, указываем тип канала friend.

Имена каналов напоминают номера телефонов, но ими НЕ ЯВЛЯЮТСЯ. Чтобы подключенный SIP-телефон мог куда-то позвонить, настроим план звонков (dialplan).

$ sudo echo > /etc/asterisk/extensions.conf
$ nano /etc/asterisk/extensions.conf

[default]
exten => 199,1,Answer()
same => n,Playback(hello-world)
same => n,Hangup()
exten => _1XX,1,Dial(SIP/${EXTEN},10)

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

Первый элемент номерного плана позволяет набрать номер 199 и услышать приветствие. Answer, Playback и Hangup – приложения, заставляющие Asterisk снять трубку, воспроизвести звуковой файл и повесить трубку.

Шаблон описания следующего номера определяет, что  если пользователь наберет номер, начинающийся (символ «_») с цифры 1 и заканчивающийся двумя любыми цифрами от 0 до 9 (символы «X»), то будет произведен вызов (приложение Dial) другого SIP-телефона, подключенного к каналу ${EXTEN}. Те, кто имел дело с программированием на bash, догадаются, что EXTEN – это имя переменной, а попадает в нее значение, набранное на клавиатуре. Теперь понятно, почему удобно, когда имена каналов совпадают с номерами их вызова. Значение «10» среди параметров приложения Dial определяет время ожидания снятия трубки на телефоне, подключенном к вызываемому каналу, иначе приложение заканчивает работу. Для вступления изменения конфигурации в силу перезагрузим соответствующие подсистемы:

$ sudo asterisk -x 'sip reload'
$ sudo asterisk -x 'dialplan reload'

Установим на свободную рабочую станцию программный телефон, например, ZoIPer (http://www.zoiper.com), и настроим на подключение к SIP-каналу 101 Asterisk (см. рис. 1 и 2). Наберите номер 199. Если вы услышите приветствие – вы на верном пути! Аналогично настройте на другой рабочей станции программный телефон на подключение к SIP-каналу 102 и позвоните с телефона на телефон.

Рисунок 1. Установка и настройка программного телефона. Шаг 1

Рисунок 1. Установка и настройка программного телефона. Шаг 1

Рисунок 2. Установка и настройка программного телефона. Шаг 2

Рисунок 2. Установка и настройка программного телефона. Шаг 2

Шаг 2. Звонки во внешний мир

Настроить звонки во внешний мир проще через VoIP-провайдера. Выбор VoIP-провайдера – большая тема, однако с точки зрения настроек все будет аналогично, и мы остановимся на SipNet (http://www.sipnet.ru). После регистрации на сайте вам будут присвоены SIP ID и пароль. Проверить возможность использования VoIP-провайдера из вашей локальной сети можно с помощью того же ZoIPer, указав в поле Domain значение spinet.ru, в поле Username – присвоенный вам SIP ID и пароль – в поле Password. После подключения ZoIPer к SipNet позвоните себе на мобильный или городской телефон, указав 8 перед кодом города. Проверьте качество прохождения голоса. Для подключения Asterisk к SipNet добавим описание канала в конец файла sip.conf:

$ sudo nano /etc/asterisk/sip.conf

;...

[sipnet]
type=peer
host=sipnet.ru
defaultuser=0012345678
fromuser=0012345678
fromdomain=sipnet.ru
secret=sipnetpassword
canreinvite=no

Поскольку этот канал будет использоваться для передачи вызовов на любые городские и мобильные номера, можно дать ему любое имя, например, sipnet. В классической телефонии такие каналы называются trunk. Параметр type, установленный в значение peer, позволяет использовать канал только для исходящих звонков.

Для входящих звонков потребуется арендовать у VoIP-провайдера прямой телефонный номер. Можно принимать входящие звонки от провайдера без аренды номера, но это требует донабора номера SID ID после дозвона в spinet, что не понравится вашим клиентам.

Поля defaultuser, fromuser, fromdomain и secret используются для авторизации звонков через spinet. Параметр canreinvite запрещает SIP-клиентам установить соединение между собой напрямую, голосовой трафик будет идти через Asterisk. Это повышает нагрузку на сервер, но упрощает настройку сервисов NAT и FIREWALL на интернет-шлюзе.

Чтобы пользователи Asterisk смогли звонить на внешние номера через канал VoIP-провайдера, добавим соответствующий вызов в конец файла, описывающего номерной план:

$ nano /etc/asterisk/extensions.conf

;...

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

Здесь мы опять видим шаблон, совпадающий с любым номером, начинающимся на 8 и содержащим еще 10 любых цифр. Набор такого номера приведет к вызову приложения Dial, которое направит вызов в канал VoIP-провайдера и передаст в этот канал набранный пользователем номер.

Для вступления изменения конфигурации в силу необходимо дать команду перезагрузить конфигурацию Asterisk:

$ sudo asterisk -x 'reload'

Подключите программный телефон к Asterisk и позвоните на номер 199 и на номер своего мобильного телефона. Если все работает, можно приступать к следующему шагу.

Шаг 3. Перенаправление звонков

По нашему плану трехзначных номеров вызываемый абонент должен снять трубку в течение 10 секунд. Настроим перенаправление звонка на другой телефон не ответившего пользователя. Реализуем это с использованием приложения FollowMe. В файле конфигурации приложения для каждого пользователя определим список его телефонов.

$ sudo echo > /etc/asterisk/followme.conf
$ sudo nano /etc/asterisk/followme.conf

[101]
number=>89161234567,30
number=>891687654321,30
context=>default

[102]
number=>89162323232,30
number=>89163434345,30
context=>default

В квадратных скобках – имя пользователя, совпадающее с номером телефона. Это упрощает описание плана звонков. Далее – номера телефонов, на которые будут перенаправлены вызовы, и время ожидания ответа (секунды).

Параметр context определяет секцию в файле плана звонков, обрабатывающую вызов указанного номера. Добавим вызов приложения FollowMe в конец обработки вызова трехзначных номеров в файле, описывающем план звонков:

$ nano /etc/asterisk/extensions.conf

;...

exten => _1XX,1,Dial(SIP/${EXTEN},10)
same => n,FollowMe(${EXTEN})

;...

Приложению FollowMe в качестве аргумента передается имя пользователя, описанного в файле followme.conf, в нашем случае имя совпадает с номером, набранным вызывающим абонентом.Для вступления изменения конфигурации в силу дадим команду перезагрузить конфигурацию Asterisk:

$ sudo asterisk -x 'reload'

Позвоните с одного из программных телефонов на трехзначный номер соседнего телефона. Если тот в течение 10 секунд не снимет рубку, вызов уйдет через VoIP-провайдера на внешний номер. Вам будет сообщено о перенаправлении вызова. Как только пользователь внешнего номера снимет трубку, ему будет сообщено о поступлении перенаправленного звонка и предложено с помощью тонального набора принять его (нажав «1») или отклонить («2»). Эти сообщения Asterisk «произносит» на английском.

Шаг 4. Русификация Asterisk

«Речь» Asterisk, записана в звуковых файлах в каталоге /usr/share/asterisk/sounds/. Для каждого языка создается подкаталог с соответствующим именем en, fr, ru. Каталог ru и его файлы загрузим с сайта разработчиков Asterisk. Какой каталог использовать, определяет директива language в описании канала или в общей (general) секции конфигурации (например, language=ru). Кроме имени каталога, директива language заставляет Asterisk учитывать грамматические категории языка (например, один номер – одно сообщение). Почему-то в штатных архивах русских сообщений нет нескольких файлов, необходимых для воспроизведения грамматических вариаций произношения. Выход – «обман» Asterisk. Он будет «думать», что говорит на английском, а файлы будут содержать русские фразы. Для русификации Asterisk выполняем:

$ cd /usr/share/asterisk/sounds/en
$ wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-core-sounds-ru-alaw-current.tar.gz
$ tar -xvf asterisk-core-sounds-ru-alaw-current.tar.gz

Позвоните с одного из программных телефонов на номер 199. Если приветствие на русском, все в порядке.

***

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

Узнать их вы сможете на курсах в Центре компьютерного обучения «Специалист» при МГТУ им. Н.Э. Баумана!


Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-45
E-mail: sa@samag.ru