1. Статьи
  2. обзор
Заметки пользователей
22.07.2004 02:00
60199
3
22.07.2004 02:00
PDF
60199
3

Построение сети VoIP (практическая часть)

И за борт ее бросает
В набежавшую волну...
(песня о классической телефонии).

Небольшое вступление.

Возвращение к предыдущим выпускам становится традицией. Не очень позитивной, но все же... К теме VoIP (поднята в выпуске #181) попался новый материал. А именно, оказалось что карту для обычного ПС с FXO портом AsteriskTM PBX можно купить и в России. Аж за целых $10.

Делается это следующим образом. Поисковиком ищется ближайший продавец Genica 56K V.92 Data/Fax Modem with Intel FA82537EP (это обычный Winmodem). Например, можно его найти тут.

Построение сети VoIP (практическая часть)

Главное, нужен "правильный" чип - "MD3200". По крайней мере так говорит Астерикс - Intel modem marked with chipset 537 or MD3200. This card installs and behaves exactly like a Digium Wildcard X101P (cache) card.

Что делать дальше - довольно очевидно. Вставить в ПС с Linux и установить драйвера от Астерикса. Сам не пробовал, но похоже особых сложностей не возникает - вот еще одна ссылочка по этой теме.

Так что поле для экспериментов получается более чем открытое...

Построение сети VoIP (практическая часть).

Напоминаю, что данным выпуском продолжена серия статей Эдуарда Афонцева, посвященная вопросам VoIP. Материал идет "параллельно" с остальными обзорами, поэтому стрелочка "назад" приведет на привычный выпуск от #186 от 18 июля.

 


Рассмотрим наиболее распространенные реализации компонентов H323 VoIP сетей, подходящие для экспериментов и практической реализации проектов IP телефонии.

Терминалы и шлюзы H323.

Microsoft netmeeting. http://www.microsoft.com

Корпорация microsoft включает практически во все версии windows свою программу для видео-конференц-связи netmeeting, обеспечивающую полноценную поддержку h323 и позволяющую подключаться к VoIP сетям.

OhPhone http://www.openh323.org

OhPhone – это программный H323 терминал, созданный в рамках проекта OpenH323 project. Практически это неграфическое приложение, выполняющееся в командной строке под управлением операционных систем windows и unix, обеспечивающее участие в VoIP соединениях как с участием gatekeeperа так и автономно.

Cisco ata 186 http://www.cisco.com

Построение сети VoIP (практическая часть)

Cisco systems как безусловный лидер в разработке и производстве сетевого оборудования уже давно и успешно представила Ata 186 – аппаратный адаптер, согласующий два телефонных аппарата с VoIP сетью (ethernet). С соответствующей прошивкой он обеспечивает полнофункциональный H323 шлюз. В настоящее время это одно из самых дешевых и проверенных решений для клиентов IP телефонии (как и более современная модель ata 188).

Небольшим минусом можно считать поддержку только одного одновременного вызова кодеком со сжатием. Несомненный плюс – возможность использования для авторизации CAT (cisco access token) , обеспечивающего шифрование передаваемых учетных данных.

D-link DG-102 (104) http://www.d-link.com

Построение сети VoIP (практическая часть)

Фирма D-link в последнее время усилила свою активность на рынке коммуникационного оборудования. Не стал исключением и сегмент VoIP: выпускаются довольно дешевые и многофункциональные устройства типа шлюзов DG-102, DVG-1104 поддерживающие H323 (и не только).

Cisco AS5300 http://www.cisco.com

Построение сети VoIP (практическая часть)

Модульный сервер доступа VoIP – узкоспециализированное модульное решение уровня провайдера IP телефонии. Подавляющие всех конкурентов характеристики и возможности сделали данную платформу лидером инсталляций в своем секторе рынка.

Cisco H323 gateway. http://www.cisco.com

Для того, чтобы превратить обычный маршрутизатор cisco (серий 2600 или 3600) в шлюз H323 необходим голосовой модуль VNM (voice network module), который комплектуется голосовыми картами VIC (voice interface card).

Построение сети VoIP (практическая часть)

Голосовые карты могут иметь на борту различные виды портов, например с телефонными разъемами RJ11: FXS и FXO.

Построение сети VoIP (практическая часть)

В свою очередь маршрутизатор можно подключить к АТС (примитивно через FXO или более правильно через PRI если позволяет оборудование) и получить VoIP в своей офисной телефонной сети.

Gatekeeperы H323.

Cisco H323 Gatekeeper. http://www.cisco.com

H323 Gatekeeperом может являться практически любой маршрутизатор фирмы cisco с соответствующим программным обеспечением (версией IOS). В сочетании с общеизвестной надежностью и многофункциональностью (это все-таки маршрутизатор) представляет собой непобедимое решение.

Gnu Gatekeeper http://www.gnugk.org

Одним из наиболее успешных open source проектов по созданию h323 gatekeeperов безусловно является open h323 gnu gatekeeper (не путайте его с http://www.openh323.org open gatekeeperом – проектом не менее замечательным, но по-моему застывшем в развитии). Gnu gatekeeper помимо стандартных функций может выполнять проксирование (может быть полезно на шлюзе между клиентской приватной сетью и интернет) и взаимодействовать с radius, mysql, ldap, что позволяет проектировать гибкие биллинг системы на его основе.

Aqua gatekeeper http://www.aqua.comptek.ru

Один из лучших gatekeeperов, в бесплатном варианте разрешающий 30 одновременных звонков. Приятный Си подобный синтаксис файла конфигурации, расширенные возможности (проксирование, radius и прочие), графическая утилита администрирования и стабильность в работе позволяют рекомендовать aqua gatekeeper для решения самых разнообразных задач VoIP (это не реклама, а результаты тестирований).

Mera VoIP transit softswitch http://www.mera-voip.com

Компания Mera выпускает платный продукт под названием mera transit softswitch – замечательное решение для провайдера IP телефонии. Это полнофункциональный контроллер VoIP c большим числом дополнительных возможностей. Единственный недостаток – он платный :).

Дизайн биллинг системы VoIP.

Для того, чтобы производить аутентификацию VoIP клиентов и вести учет их деятельности (звонков) необходимо развертывание биллинг системы. Простейшая схема учета и контроля может включать в себя некоторую совокупность VoIP клиентов, работающих через Gatekeeper, который имеет поддержку RADIUS протокола (ее имеют практически все gatekeeperы).

При подключении к Gatekeeperу (или во время начала звонка) клиент в каком-либо виде передает ему свои параметры (в том числе имя и пароль), а Gatekeeper проверяет их через Radius сервер. Так происходит аутентификация. Во время звонка клиента Gatekeeper может посылать Radius серверу так называемые Radius accounting пакеты, которые тот будет использовать для формирования журнала учета работы клиентов.

Кроме того, многие H323 шлюзы могут использовать RADIUS самостоятельно, что позволяет обрабатывать их статистику таким же образом. Для построения законченной биллинговой системы можно использовать Radius сервер, который поддерживает работу с SQL сервером (например FreeRADIUS).

В итоге можно получить распределенную схему, обеспечивающую необходимый функционал и гибкость: все учетные записи и статистика работы клиентов хранятся на SQL сервере, связь Gatekeepera с которым обеспечивает RADIUS.

Построение сети VoIP (практическая часть)

Приложение. Примеры настройки и конфигурации.

Cisco H323 gateway.

Конфигурирование голосового модуля.

FXS (Foreign Exchange Station) порт - предназначен для подключения телефонного аппарата и эмулирует для последнего PBX (АТС).

FXO – (Foreign Exchange Office) порт – в противоположность FXS подключается в телефонную линию.

Таким образом, простейший шлюз H323 может выглядеть как cisco маршрутизатор (2600 или 3600) с голосовым модулем и интерфейсной картой FXS в нем, к которой подключен обычный телефонный аппарат. Ну и конечно какой-нибудь интерфейс для связи с IP сетью, например Ethernet.

Построение сети VoIP (практическая часть)

После подключения голосового модуля необходимо проверить голосовые порты:

    #sh voice port summary
    1/0/0 -- fxo-ls up dorm idle on-hook y
    1/0/1 -- fxo-ls up dorm idle on-hook y
    1/1/0 -- fxs-ls up dorm on-hook idle y
    1/1/1 -- fxs-ls up dorm on-hook idle y

Как видим, у нас два порта FXO (1/0/0 и 1/0/1) и два порта FXS (1/1/0 и 1/1/1), где цифры расшифровываются как slot-number/sub unit-number/port .

Подключим телефонный аппарат к FXS порту и посмотрим состояние:

 

    # sh voice port summary
    ...
    1/1/1 -- fxs-ls up dorm on-hook idle y
    ...

А теперь при поднятой трубке телефона:

 

    # sh voice port summary
    ...
    1/1/1 -- fxs-ls up up off-hook idle y
    ...

Описание dial peer.

После того, как мы определились с голосовыми портами необходимо обозначить соответствие набираемого (принимаемого) телефонного (Е164) номера и пункта назначения (порт, ip адрес, gatekeeper) – описать так называемый dial peer. Согласно официальной документации dial peer служит для определения атрибутов, направления и участников звонка.

Если рассматривать dial peer как таблицу для ассоциации телефонного номера и пункта назначения звонка, то все dial peerы можно разделить на два вида: те, которые направляют звонок на соответствующий POTS интерфейс (например FXS) и те, которые предполагают приемной стороной определенное VOIP устройство (например VOIP шлюз).

В качестве иллюстрации соберем VOIP полигон с двумя шлюзами cisco.

Построение сети VoIP (практическая часть)

Конфигурация шлюза А (gate A):

 

    !
    dial-peer voice 1 voip
    destination-pattern 666
    session target ipv4:192.168.0.2
    codec g711alaw
    !
    dial-peer voice 2 pots
    destination-pattern 555
    port 1/1/1
    !

В конфигурации шлюзу сказано, что звонки на номер 666 отправлять на участника IP сети с адресом 192.168.0.2 (предположительно VOIP шлюз) причем для связи использовать определенный звуковой кодек (алгоритм кодирования). А для терминирования звонка по номеру 555 использовать собственный голосовой порт номер 1/1/1. Также следует обратить внимание на задаваемый кодек – он должен быть одинаковым у обоих участников VoIP соединения.

Аналогично выглядит конфигурация шлюза B (gate B):

 

    !
    dial-peer voice 1 voip
    destination-pattern 555
    session target ipv4:192.168.0.1
    codec g711alaw
    !
    dial-peer voice 2 pots
    destination-pattern 666
    port 1/1/1
    !

Только он терминирует звонки на номер 666 (на свой порт 1/1/1) и направляет звонки по номеру 555 на IP адрес 192.168.0.1 .

Можно посмотреть все dial peerы:

# sh dial-peer voice summary

В итоге, если поднять на телефонном аппарате А трубку и набрать номер 666, на шлюзе А сработает dial peer ( описанный как dial-peer voice 1 voip) и направит звонок по адресу 192.168.0.2, то есть на шлюз B. На шлюзе B данный звонок в соответствии со своим dial peer (описанным как dial-peer voice 2 pots) терминирует звонок на порт 1/1/1 – зазвонит телефон B. Для того, чтобы направлять звонки (например, начинающиеся на 7) не просто в IP сеть, а на GATEKEEPER (маршрутизирующий звонки) необходимо на интерфейсе, подключенном к IP сети описать h323-gateway (указать его адрес и порт):

 

    !
    interface FastEthernet0/0
    ip address 192.168.0.1 255.255.255.0
    speed 10
    full-duplex
    h323-gateway voip interface
    h323-gateway voip id GATEKEEPER ipaddr 192.168.0.100 1719
    h323-gateway voip h323-id cisco
    !

И в соответствующем dial peer вписать session target как ras:

 

    !
    dial-peer voice 5 voip
    destination-pattern 7T
    session target ras
    codec g711ulaw
    !

В данном случае cisco шлюз будет регистрироваться на gatekeepere и направлять звонки на номер, начинающиеся с цифры 7 на него.

Посмотреть работу шлюза H323 можно так:

# sh gateway

Cisco H323 Gatekeeper

Приведем для примера простейшую конфигурацию cisco h323 gatekeeper:

 

    !
    interface Ethernet1/0
    ip address 172.16.0.1 255.255.255.0
    description H.323 gatekeeper interface
    !
    !
    gatekeeper
    zone local gk-zone1.test.com test.com 172.16.0.1
    zone remote gk-zone2.test.com test.com 172.16.0.2 1719
    zone prefix gk-zone2.test.com 408.......
    gw–type–prefix 408#*
    no shutdown
    !
    !

Доступна любая диагностика, например можно посмотреть зарегистрированные шлюзы:

# show gatekeeper endpoints

Или активные сессии (звонки), проходящие через gatekeeper:

# show gatekeeper call

Gnu Gatekeeper

Простейшая топология VoIP сети с участием gnu gatekeeperа может выглядеть следующим образом:

Построение сети VoIP (практическая часть)

Конфигурация для простейшего случая (любой терминал или шлюз может зарегистрироваться):

 

    [Gatekeeper::Main]
    Fourtytwo=42
    [GkStatus::Auth]
    rule=allow

Запуск программы на unix системе (linux или freebsd) в режиме выдачи отладочных сообщений осуществляется так:

# gnugk –ttt

Существует возможность контроля и управления – это телнет на определенный порт (по умолчанию 7000). Если же необходимо проксировать сигнальный и голосовой трафик из определенной сети, то конфигурация несколько изменяется. Например, для следующей топологии, содержащей локальную подсеть с приватными адресами и внешний VoIP шлюз:

Построение сети VoIP (практическая часть)

Конфигурация будет выглядеть примерно так:

 

    [Gatekeeper::Main]
    Fourtytwo=42
    Name=GK
    Home=0.0.0.0
    [GkStatus::Auth]
    rule=allow
    [RoutedMode]
    GKRouted=1
    H245Routed=1
    CallSignalPort=1719
    CallSignalHandlerNumber=2
    AcceptNeighborsCalls=1
    AcceptUnregisteredCalls=1
    RemoveH245AddressOnTunneling=0
    DropCallsByReleaseComplete=1
    SupportNATedEndpoints=1
    [Proxy]
    Enable=1
    InternalNetwork=192.168.0.0/24
    #ProxyForNAT=0
    #ProxyForSameNAT=0
    [RasSrv::PermanentEndpoints]
    194.226.248.67=external-gate;8
    [RasSrv::Neighbors]
    194.226.248.67:1719
    [RasSrv::LRQFeatures]
    CiscoGKCompatible=1
    NeighborTimeout=2
    ForwardHopCount=2

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

Aqua gatekeeper

Для примера приведем вырезку из конфигурации обеспечивающую регистрацию терминала cisco ata186 (регистрирующегося с параметрами “ata186” и “555” и принимающего звонок на номер 555) и шлюза cisco (с адресом 192.168.0.10):

 

    system
    {
    identifier 'aqua';
    address 192.168.42.84 ;
    call signal port 1719;
    }

    zone TEST bandwidth 10M;
    user ata186
    {
    location TEST;
    login "ata186";
    login "555";
    alias "ata186";
    alias "555";
    }
    user cisco
    {
    location TEST;
    alias "cisco";
    alias "999";
    static 192.168.0.10;
    }

Если необходимо проксировать voip трафик от определенного клиента, то его нужно описать примерно так:

 

    user cisco
    {
    location TEST;
    alias "cisco";
    alias "999";
    static 192.168.0.10;
    proxy level full;
    }

Эдуард Афонцев, 2004 год.

Анонс

 

  • Правосвязие. Оператор и государство. Продолжение статьи из цикла "о легализации" домашних сетей Антона Богатова.

 

  • Сетевая эротика;
  • Рекламные плакаты сетей;
  • Как снимают телевизионный сигнал с П-296;
  • Зарисовки узлов разных провайдеров (в основном стойки). Много разных галлерей.
  • Переход через железную дорогу (несколько фотографий);
  • Ревизии D-Link 1008;
  • Традиционный пункт - ссылки на интересные места Сети. Присылайте письма - они очень нужны для обзоров. Обязательно сообщайте, нужна ли Ваша подпись, ссылка, или лучше обойтись без нее;
  • В "ужастиках" - узел оператора из Болгарии. ;-)
3 комментариев
Оставлять комментарии могут только авторизованные пользователи
Robot_NagNews
Robot_NagNews

Материал:

Возвращение к предыдущим выпускам становится традицией. Не очень позитивной, но все же... К теме VoIP (поднята в выпуске #181)попался новый материал. А именно, оказалось что карту для обычного ПС с FXO портом AsteriskTM PBX можно купить и в России. Аж за целых $10.

 

Полный текст

Syzygy
Syzygy

:)

Stimpy
Stimpy

Раскопали стюардессу?