Познакомьте начальника с 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г.
Просмотров: 6143
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

02.12.2013г.
Просмотров: 2999
Комментарии: 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