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

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

Интеграция Open Source-решений  

Open Source в облачной среде

Облачные решения становятся всё более популярными в мире. Компании стремятся использовать их для

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

Автоматизация  

Нейросеть вам в руки! Как использовать ИИ для автоматизации задач

Использование ИИ для автоматизации задач помогает компании получить конкурентное преимущество, поскольку объединение

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

Рынок труда  

Специалист по этическому ИИ, инженер по квантовым вычислениям или аналитик по метавселенной?

Новые тенденции в развитии ИТ могут привести к возникновению новых специальностей в

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

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

Учитесь убеждать и побеждать

Издательство «БХВ», как всегда, порадовало своих читателей хорошими книжными новинками. Кроме популярных

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

Сетевая инфраструктура  

Как удаленная работа меняет подход к сетевой инфраструктуре?

С увеличением числа сотрудников, работающих из дома, организации сталкиваются с необходимостью создания

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

Мониторинг  

Какой мониторинг нужен сегодня?

По мнению экспертов ГК InfoWatch, действия сотрудников – самая распространенная причина инцидентов

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

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

Руководство для тех, кто увлечен ИИ, программированием. И дизайном

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

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

Мобильные приложения  

Искусственный интеллект в мобильных приложениях: возможности и перспективы

Обзор современных применений ИИ в мобильных приложениях, анализ перспектив развития этой технологии,

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

ИТ-образование  

Как сделать ИТ-образование эффективным?

Эксперты ИТ-отрасли отвечают на вопросы «СА». Обсуждаем ключевые аспекты для улучшения образовательных

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

Work-life balance  

Как айтишнику найти баланс между работой и личной жизнью?

Обсуждаем инструменты для эффективного управления временем, снижения уровня стресса и достижения гармонии. На

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

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

Всё самое нужное – под одной обложкой

Отличительная черта книжных новинок, выпущенных недавно издательством «БХВ» – это их универсальность. Не просто

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

ИТ-инфраструктура  

Системы мониторинга ИТ-инфраструктуры-2025

Без мониторинга ИТ-инфраструктуры не обходится ни одна компания, хотя бы потому, что

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

Открытое ПО  

Безопасность Open Source: рискуем или контролируем?

Компания «Кросс технолоджис» изучила, как используется ПО с открытым кодом в компаниях

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

Работа с нейросетью  

Скажи, есть ли у тебя AI, и я скажу, кто ты

Недавно сервис по поиску работы SuperJob выяснил, что каждый второй россиянин уже

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Друзья сайта  

 Познакомьте начальника с 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