Перенос телефонных линий между офисами на базе IP-АТС Asterisk и Linksys::Журнал СА 4.2010
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г.
Просмотров: 3401
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

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

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

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

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

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

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

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

Друзья сайта  

 Перенос телефонных линий между офисами на базе IP-АТС Asterisk и Linksys

Архив номеров / 2010 / Выпуск №4 (89) / Перенос телефонных линий между офисами на базе IP-АТС Asterisk и Linksys

Рубрика: IP-телефония

Дмитрий Нестеркин ДМИТРИЙ НЕСТЕРКИН, инженер, системный администратор ООО «Телисет-С», имеет сертификат Microsoft MCDST. Сфера интересов: сетевые технологии, программное обеспечение с открытым исходным кодом

Перенос телефонных линий
между офисами на базе IP-АТС Asterisk и Linksys

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

Так, например, перед нашей компанией встала задача сохранения телефонных номеров, арендованных для старого офиса, после переезда в новый. Задача осложнялась тем, что данные номера были именно арендованы, а не выкуплены в собственность. В результате с прежним арендодателем была достигнута договоренность о возможности размещения нашего оборудования на их площадке и перенаправлении наших трех телефонных линий с помощью технологии VoIP.

Для реализации идеи было выбрано оборудование:

  • Linksys SPA400 (голосовой шлюз с 4 FXO-портами);
  • Linksys SPA8000 (голосовой шлюз с 8 FXS-портами);
  • Сервер IP-телефонии на базе Asterisk (в качестве конкретной реализации был выбран Elastix 1.6-13).

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

Теперь рассмотрим топологию сети (см. рис. 1). В нашем примере будут использоваться две подсети, объединенные посредством VPN.

Рисунок 1. Схема организации IP-телефонии между офисами

Рисунок 1. Схема организации IP-телефонии между офисами

  • Подсеть 1 – 192.168.10.0/27 – это «новый» офис, где расположены сервер Asterisk и телефоны сотрудников. Сервер Asterisk имеет внутренний IP-адрес 192.168.10.5 и внешний IP-адрес, который будем условно обозначать, как 12.34.56.78. Голосовой шлюз Linksys SPA8000 имеет IP-адрес 192.168.10.8.
  • Подсеть 2 – 192.168.10.32/27 – это «старый» офис, где установлен голосовой шлюз Linksys SPA400 с IP-адресом 192.168.20.40 и маршрутизатор с внешним IP-адресом, также условно принимаемым, как 87.65.43.21 и внутренним IP-адресом 192.168.10.33.

Данные подсети отделены от «компьютерной» локальной сети офиса (192.168.1.0/24) с целью исключения возможного влияния передаваемых потоков данных на качество голосовой связи.

Голосовой шлюз Linksys SPA400 был помещен вместе с нашим маршрутизатором, создающим VPN-туннель в новый офис, на площадку прежнего арендодателя. VPN-туннель устанавливается на внешний IP-адрес сервера IP-телефонии. Для IP-телефонии была также проведена дополнительная выделенная линия доступа в Интернет (в качестве основного канала доступа в Интернет мы используем WiMax, а качество приема сигнала зачастую заметно падает, что может привести к неудовлетворительному качеству голосовой связи).

Компания Linksys заявляет, что шлюз SPA400 совместим только с их собственной IP-АТС SPA9000, однако в реальности это не совсем справедливо и позволило нам сэкономить на оборудовании, т.к. нам требовалось всего лишь 5 внутренних телефонных линий и уже имелись аналоговые телефонные аппараты.

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

IP-АТС Asterisk позволяет организовать практически любые сервисы, которые могут потребоваться сотрудникам компании: интерактивное голосовое меню, голосовая почта, переадресация и перехват вызовов, уведомления о звонках на электронную почту и т.д.

Устанавливаем на наш сервер (Intel® Pentium® 4 CPU 2.66 ГГц, 1 Гб RAM, 80 Гб HDD) Elastix. Установка практически полностью автоматизирована и даже в ручном режиме задает минимум вопросов. Дистрибутив основан на CentOS 5.3 и использует его репозитарии. Поэтому при необходимости можно легко установить любое необходимое ПО через менеджер пакетов YUM. После установки управлять сервером IP-телефонии можно будет через веб-интерфейс. По умолчанию учетные данные для входа в конфигурацию таковы: имя пользователя – admin, пароль – palosanto.

Настройка сервера IP-телефонии

Сначала прописываем настройки голосовых шлюзов на сервере IP-телефонии. Для этого изменяем конфигурационный файл extentions_custom.conf:

;Настройки SPA8000

;Этот контекст мы отвели для внутренних номеров, вписываемых вручную
[office]

;Стандартный контекст Elastix для добавочных номеров
include => from-internal-custom
exten => 8001,1,Dial(SIP/8001,,t)
exten => 8002,1,Dial(SIP/8002,,t)
exten => 8003,1,Dial(SIP/8003,,t)
exten => 8004,1,Dial(SIP/8004,,t)
exten => 8005,1,Dial(SIP/8005,,t)
exten => 8006,1,Dial(SIP/8006,,t)
exten => 8007,1,Dial(SIP/8007,,t)
exten => 8008,1,Dial(SIP/8008,,t)

;Этот контекст мы отвели под городские линии
[from-pstn]

;По умолчанию звонок приходит секретарю на номер 8001
exten=>spa400,n,Goto(office,8001,1)

Через веб-интерфейс Elastix добавляем добавочные номера в соответствии с настройками SPA8000 (PBX-PBX Configuration-Extensions) и транк для SPA400 (PBX-PBX Configuration-Trunks). Обязательно нужно указать параметры транка:

canreinvite=no
context=from-trunk
dtmfmode=rfc2833
host=192.168.10.40
incominglimit=4
nat=yes
port=5060
qualify=yes
type=friend
username=spa400

и строку регистрации:

register=spa400@192.168.10.40/spa400
[spa400]
type=friend
user=spa400
;IP-адрес SPA400
host=192.168.20.40
dtmfmode=rfc2833
canreinvite=no
context=from-trunk
insecure=very

В результате в файле sip_additional.conf должны появиться соответствующие записи:

;Имя транка для SPA400
[spa400]
disallow=all
;Мы используем кодек G.711U
allow=ulaw
canreinvite=no
context=from-trunk
dtmfmode=rfc2833
host=192.168.10.40
incominglimit=4
nat=yes
port=5060
qualify=yes
type=friend
;Совпадает с именем пользователя в настройках SPA400
username=spa400

;Один из добавочных номеров, добавленный через веб-интерфейс
[1001]
deny=0.0.0.0/0.0.0.0
type=friend
secret=P@ssw0rd
qualify=yes
port=5060
pickupgroup=
permit=0.0.0.0/0.0.0.0
nat=yes
mailbox=1001@device
host=dynamic
dtmfmode=rfc2833
dial=SIP/1001
;В нашем случае можно также указать контекст office
context=from-internal
canreinvite=no
callgroup=
callerid=device <1001>
accountcode=
call-limit=50

Также прописываем правила входящей (Inbound Routing) и исходящей маршрутизации(Outbound Routing) с указанием шаблонов номеров, например:

  • 9|8XXXXXXXXXX;
  • 9|ZXXXXXX.

Здесь символ «|» отделяет префикс, который не передается в телефонную линию; «X» – цифры от 0 до 9; «Z» – цифры от 1 до 9.

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

Через веб-интерфейс Elastix добавляем 4 входящих маршрута (Inbound routes) . Каждый маршрут соответствует порту на SPA400. В параметрах маршрута указываем значение DID равным идентификатору порта в конфигурации самого шлюза.

Для исходящей маршрутизации создаем 4 пользовательских (custom) транка, привязанных к «основному» транку SPA400. В параметрах каждого транка указываем число каналов (Maximum channels) равным 1 и указываем строку вызова (Custom dial string): Local/$OUTNUM$

@from-trunk-spa400-X

где X – номер порта.

В файле extensions_custom.conf вручную вписываем контексты для каждого порта:

;Контекст для порта №1
[from-trunk-spa400-1]
exten => _1.,1,Dial(SIP/spa400/L1${EXTEN})
exten => _1.,n,Congestion

Здесь spa400 – это имя «основного» транка SPA400, L1 – номер порта (1).

После внесения всех транков в конфигурацию в меню Исходящие маршруты (Outbound routes) выбираем порядок использования телефонных линий.

На этом настройка IP-АТС закончена.

Настройка голосовых шлюзов

Первым идет Linksys SPA8000 (настройки производились в режиме Admin login, advanced).

Во вкладке Router нас интересует подменю WAN Setup. Здесь мы настраиваем параметры локальной сети и шлюз в Интернет. В остальных подменю в большинстве случаев можно ничего не менять.

На вкладке Voice настраиваем непосредственно параметры телефонии. В подменю SIP можно при необходимости провести тонкую настройку SIP-протокола (используемые порты, предпочитаемые кодеки и т.д.).

В подменю Regional полезным может оказаться раздел Miscellaneous, в котором можно указать параметры ваших офисных телефонных линий, если они по каким-то причинам не совсем стандартные (например, низкое сопротивление).

Далее настраиваем телефонные порты (линии) L1-L8. Здесь стоит описать настройку поподробнее.

В разделе Proxy and Registration мы заполняем поле Proxy – вписываем сюда IP-адрес сервера IP-телефонии на базе Asterisk.

В разделе Subscriber Information заполняем поля:

  • Display Name – отображаемое имя абонента;
  • User ID – добавочный номер;
  • Password – пароль.

Для успешной регистрации User ID и пароль должны совпадать с добавочным номером и паролем в настройках Asterisk. В разделе Audio Configuration необходимо установить для параметра DTMF Tx Mode значение normal.

Рисунок 2. Основные параметры настройки добавочного номера

Рисунок 2. Основные параметры настройки добавочного номера

Если все прошло удачно, вы должны получить что-то вроде этого (см. рис. 3). У линии, статус которой отображен на рисунке, состояние Idle и тон в значении none, т.к. к ней не подключен телефонный аппарат.

Рисунок 3. Информация о состоянии шлюза Linksys SPA8000

Рисунок 3. Информация о состоянии шлюза Linksys SPA8000

Далее настраиваем Linksys SPA400. Настройки данного шлюза крайне скупы, так как его самостоятельное использование производителем не предполагается. В пределах же данной статьи нас интересует исключительно вкладка Setup.

В подменю Basic Setup прописываем сетевые настройки (см. рис. 4).

Рисунок 4. Настройка регистрации шлюза Linksys SPA400

Рисунок 4. Настройка регистрации шлюза Linksys SPA400

В подменю SPA9000 Interface заполняем поля:

  • User ID – spa400 (имя пользователя);
  • SPA9000 Address – оставляем в положении Discover automatically (это обязательно);
  • Port ID – для неподключенных портов надо прописать OFFX, где X – номер порта, для подключенных – идентификатор линии (любое значение на ваш выбор).

Организация VPN

Для организации VPN можно использовать IPSEC или PPTP (в случае дешевого роутера). Настройка клиентского устройства зависит от марки оборудования и его функциональности. Рассмотрим установку серверной части для обоих вариантов.

Используем IPSEC

Сначала удостоверимся, что в ядре включена маршрутизация IP: параметр net.ipv4.ip_forward в файле /etc/sysctl.conf должен быть равен 1.

DEVICE=ipsec0
TYPE=IPSEC
ONBOOT=yes
IKE_METHOD=PSK
SRCGW=192.168.10.5
DSTGW=192.168.10.33
SRCNET=192.168.10.0/27
DSTNET=192.168.10.32/27
DST=87.65.43.21

где X равен 0 для сети 192.168.10.0/27 и 1 – для сети 192.168.10.32/27):

IKE_PSK=ipT3l3phonY

Содержимое данного ключевого файла должно совпадать на сервере и клиенте, владельцем его должен быть root, а права доступа – 600.

Создаем файл 87.65.43.21.conf:

;
remote 87.65.43.21
{
    exchange_mode main, aggressive;
    my_identifier address;
    proposal {
    encryption_algorithm 3des;
    hash_algorithm sha1;
    authentication_method pre_shared_key;
    dh_group 2 ;
    }
}

На стороне клиента соединение имеет уникальное имя ipsec0, а файл соединения имеет имя 12.34.56.78.conf.

Редактируем файл /etc/raccoon.conf:

path include "/etc/racoon";
path pre_shared_key "/etc/racoon/psk.txt";
path certificate "/etc/racoon/certs"; 

#После тестирования значение следует заменить на notify
log debug;

padding
    {
    #Максимальная длина интервалов между пакетами
    maximum_length 20;
    #Разрешить/запретить случайную длину
    randomize off;
    #Разрешить/запретить жесткую проверку
    strict_check off;
    #Извлечь последний октет
    exclusive_tail off;
    }
    listen
    {
        isakmp 12.34.56.78 [500];
    }
    ## IKE, фаза 1
    remote 87.65.43.21
    {
        exchange_mode main,aggressive;
        my_identifier address 85.236.7.158;
        lifetime time 28800 seconds;
        #Возможны значения obey, strict, claim
        proposal_check obey;
        proposal {
           encryption_algorithm 3des;
           hash_algorithm sha1;
           authentication_method pre_shared_key ;
           dh_group 2 ;
        }
    }
    ## IKE, фаза 2
    sainfo address 192.168.10.5/27 any address 192.168.10.32/27 any
{
pfs_group 2;
    lifetime time 28800 seconds ;
    encryption_algorithm 3des, des ;
    authentication_algorithm hmac_sha1, hmac_md5 ;
    compression_algorithm deflate ;
}
    sainfo address 192.168.10.32/27 any address 192.168.10.5/27 any
{
    pfs_group 2;
    lifetime time 28800 seconds ;
    encryption_algorithm 3des, des ;
    authentication_algorithm hmac_sha1, hmac_md5 ;
    compression_algorithm deflate ;
}
#Данная строка добавляется автоматически при активации тоннеля, вписывать ее не нужно
include "/etc/racoon/193.233.70.167.conf";

Редактируем файл политик setkey.conf:

# !/sbin/setkey -f

flush;
spdflush;
#Исходящий трафик
spdadd 192.168.10.5/27 192.168.10.32/27 any -P out ipsec esp/tunnel/85.236.7.158-193.233.70.167/require;
#Входящий трафик
spdadd 192.168.10.32/27 192.168.10.5/27 any -P in ipsec esp/tunnel/193.233.70.167-85.236.7.158/require;

Владельцем данного файла должен быть root, а права доступа – 600.

Редактируем файл ключей psk.txt:

87.65.43.21      ipT3l3phonY

Используем PPTP

Для установки PPTPD в репозитарии необходимо добавить файл /etc/yum.repos.d/Doylenet.repo такого содержания:

[doylenet]
name=Doylenet custom repository for CentOS
baseurl=http://files.doylenet.net/linux/yum/centos/5/i386/doylenet/
gpgcheck=1
gpgkey=http://files.doylenet.net/linux/yum/centos/RPM-GPG-KEY-rdoyle
enabled=1

Редактируем файл /etc/ppp/options.pptpd:

#authorisation
Name pptpd

#encription
refuse-pap
refuse-chap
require-mschap-v2
require-mpppe-128

#misc
nodefaultroute
nobsdcomp
nodeflate

#plugins
auth
require-mppe

Редактируем файл /etc/ppp/chap-secrets:

client_name      pptpd  client_password     "*"

Редактируем файл /etc/pptpd.conf:

option /etc/ppp/options.pptpd
localip 12.34.56.78
remoteip 192.168.10.35

***

Итак, мы перенаправили телефонные линии из одного офиса в другой, и теперь клиенты могут звонить нам по старым телефонным номерам, независимо от того, где находится наш новый офис. Данное решение можно также использовать для создания единого номерного поля в разных офисах – достаточно завести в один офис многоканальные линии и перекоммутировать часть каналов на голосовой шлюз Linksys SPA400 (или другой аналогичный). Также благодаря гибкости Asterisk можно использовать IP-телефонные аппараты или программные IP-телефоны (их часто называют «софтофонами»), например, X-Lite, Ekiga и т.п. совместно с традиционными аналоговыми телефонными аппаратами.

Приложение

Конфигурация iptables

Утилита конфигурации iptables запускается командой system-config-securitylevel-tui.

Нам необходимо открыть следующие порты и протоколы:

  • Порты 5004-5082 UDP в цепочке INPUT для протокола SIP.
  • Порты 10000-20000 UDP в цепочке INPUT для протокола RTP.
  • Протокол 47 (GRE) в цепочках INPUT и OUTPUT в случае использования VPN-туннеля на базе PPTP.
  • Порт 1723 в цепочках INPUT и OUTPUT для PPTP-соединения.
  • Протокол 50 (esp) в цепочках INPUT и OUTPUT для адресов внешнего интерфейса и удаленного маршрутизатора IPSEC.
  • Порт 500 (ike) в цепочках INPUT и OUTPUT для адресов внешнего интерфейса и удаленного маршрутизатора IPSEC.

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

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

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

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

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