Перенос телефонных линий между офисами на базе IP-АТС Asterisk и Linksys::Приложение к журналу СА
www.samag.ru
     
Поиск  
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Сетевой агент
О журнале
Журнал «БИТ»
Информация для ВАК
Звезды «СА»
Подписка
Где купить
Авторам
Рекламодателям
Магазин
Архив номеров
Форум
Вакансии
Спроси юриста
Игры
Контакты
   
Слайд шоу  
Представляем работы Виктора Чумачева
Виктор Чумачев – известный московский художник, который сотрудничает с «Системным администратором» уже несколько лет. Именно его забавные и воздушные, как ИТ, иллюстрации украшают многие серьезные статьи в журнале. Работы Виктора Чумачева хорошо знакомы читателям в России («Комсомольская правда», «Известия», «Московские новости», Коммерсант и др.) и за рубежом (США, Германия). Каждый раз, получая новый рисунок Виктора, мы в редакции улыбаемся. А улыбка, как известно, смягчает душу. Поэтому смотрите на его рисунки – и пусть у вас будет хорошее настроение!
1001 и 1 книга  
22.11.2018г.
Просмотров: 177
Комментарии: 0
MySQL 8 для больших данных

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

22.11.2018г.
Просмотров: 119
Комментарии: 0
Осваиваем C++17 STL

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

22.11.2018г.
Просмотров: 155
Комментарии: 0
Решение задач на современном C++

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

22.11.2018г.
Просмотров: 117
Комментарии: 0
Программируй на Haskell

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

29.10.2018г.
Просмотров: 439
Комментарии: 0
Информатика. Учебник, 4-е издание, цветное, переработанное и дополненное

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

Дискуссии  
17.09.2014г.
Просмотров: 19938
Комментарии: 3
Красть или не красть? О пиратском ПО как о российском феномене

Тема контрафактного ПО и защиты авторских прав сегодня актуальна как никогда. Мы представляем ...

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

03.03.2014г.
Просмотров: 22092
Комментарии: 1
Жизнь под дамокловым мечом

Политические события как катализатор возникновения уязвимости Законодательная инициатива Государственной Думы и силовых структур, ...

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

23.01.2014г.
Просмотров: 30722
Комментарии: 3
ИТ-специалист будущего. Кто он?

Так уж устроен человек, что взгляд его обращен чаще всего в Будущее, ...

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


  Опросы

Друзья сайта  

Форум системных администраторов  

sysadmins.ru

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

Архив номеров / 2011 / Выпуск №4 (7) / Перенос телефонных линий между офисами на базе 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-41
Fax: (499) 277-12-45
E-mail: sa@samag.ru