Организация IP-телефонии при помощи комплекса UTM 5.0 , программных гейткиперов Mera MVTS и GnuGK, программного коммутатора AlterPSS, а так же аппаратного шлюза VoIP на базе Cisco 26xx, 36xx, 53xx.

Все права защищены (c) 2001-2011 NetUP (www.netup.ru)
Перепечатка материалов разрешается только с предварительного разрешения
компании NetUP (info@netup.ru)

Обращаем ваше внимание на то, что информация в данной статье может быть не актуальной.

В данной статье будут рассмотрены основные принципы построения сети для предоставления услуги IP-телефонии (технология VoIP – Voice over Internet Protocol), которая является одним из самых современных способов передачи голосовой информации.

Терминология

Настройка H.323 клиента на основе Cisco ATA 186

Использование UTM 5 в качестве системы управления доступом к телефонии и ее тарификации

Инструкции по развертыванию голосовых шлюзов:

Терминология

IP-телефония (IP telephony)

Общий термин, означающий передачу речи по сетям с использованием протокола IP. Так же для обозначения этой технологии используются термины: Voice over IP (VoIP), Internet Telephony.

Модуль IP-телефонии

Модуль IP-телефонии представляет собой сервер NetUP RADIUS и предназначен для обработки запросов на авторизацию и учёт потребленных услуг от голосовых шлюзов, гейткиперов (gatekeepers), голосовых прокси-серверов.

Сервер NetUP RADIUS – это приложение, которое в реальном времени обрабатывает поступающие к нему запросы по протоколу Remote Authentication Dial In User Service (RADIUS) – RFC 2138 и RFC 2139.

При обработке запросов сервер NetUP RADIUS обращается к ядру системы по протоколу URFA. Более подробное описание протокола RADIUS можно найти в разделе «Настройка NetUP Radius, NAS и клиентов для работы с VPN».

ТфОП (PSTN)

Сокращение от словосочетания «телефонная сеть общего пользования». В это понятие включены городские и национальные сети обычной телефонии. Также используется термин PSTN – сокращение от «Public Switched Telephony Network».

АОН (Caller ID)

Автоматический определитель номера вызывающего абонента. Также используется термин ANI – сокращение от «Automatic Number Identification». Часто услуга определения номера вызывающего абонента называется АОН.

Шлюз IP-телефонии (VoIP gateway)

Устройство, имеющее порт для подключения к сети на базе протокола IP, а также по необходимости порты для подключения к ТфОП. Обычно данное устройство служит для стыковки ТфОП и IP-сети.

Примером устройства данного типа может служить маршрутизатор Cisco 3620 с модулем NM-2V + VIC2FXO.


При таком подключении шлюз организует преобразование голосового трафика из сети на базе протокола IP в ТфОП. Таким образом, пользователь с IP-телефоном либо компьютером с установленным программным телефоном (Microsoft NetMeeting, OpenPhone и др.) может вызывать абонента городской телефонной сети (ТфОП).

Аналогично и в обратную сторону: абонент городской телефонной сети (ТфОП) может вызывать абонента в сети с протоколом IP. Для этого необходимо набрать номер шлюза в сети ТфОП (на схеме это 9391000) и затем после авторизации (если этот механизм включен на шлюзе) набрать внутренний номер абонента в сети с протоколом IP (на схеме это номера 100 и 200).

H.323

Стандарт, предложенный Международным союзом электросвязи (ITU-T), описывающий построение сетей IP-телефонии. Стандарт описывает протоколы, связанные с регистрацией оборудования IP-телефонии (RAS – Registration, Admission and Status), установления соединения (H.225.0, H.245), передачи речи, авторизации пользователей и др.

H.323 привратник (H.323 гейткипер, H.323 gatekeeper)

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


В такой схеме все устройства сети должны зарегистрироваться на привратнике. При этом авторизация может проводиться по протоколу RADIUS с использованием стандартной схемы Access-Request.

В итоге у привратника находится таблица IP-адресов и номеров всех устройств в сети. Соответственно, все вызовы начинаются с обращения к привратнику для преобразования набранного номера в IP-адрес. При этом привратник может запросить у сервера RADIUS авторизацию данного звонка и передать заполненные атрибуты Called-Station-Id (набранный номер) и Calling-Station-Id (номер вызывающего абонента). При этом сервер RADIUS проверяет баланс пользователя, тарифный план на вызываемое направление, и если все вычисления прошли успешно, то передает пакет Access-Accept, в котором может указать максимальное время соединения для данного пользователя по данному направлению. Обычно эта информацию указывается в атрибуте h323-credit-time, vendor 9 (Cisco).

В случае, если авторизация прошла успешно, после согласования всех параметров устанавливается соединение между вызываемым и вызывающим терминалами. При этом привратник передает на сервер RADIUS пакет о начале соединения (Accounting-Start), в котором указывает параметры установленного соединения.

В случае, если терминалы находятся в одной сети, то общение между ними производится напрямую. Если вызываемый терминал находится в другой сети, то общение между терминалами производится через один из шлюзов. Также возможен вариант, когда общение клиента производится только с привратником. В этом случае привратник выполняет функции прокси, и реальные IP-адреса терминалов скрываются. Такая схема работы применяется, если канал напрямую между терминалами по качеству хуже (например, большие потери IP-пакетов либо задержки) чем между привратником и каждым терминалом.

По окончании соединения привратник пересылает на сервер RADIUS пакет с информацией о завершившемся звонке. В пакете указываются время соединения, причина завершения соединения и другие параметры. По этим данным сервер RADIUS проводит тарификацию сессии, списание средств и запись в журнал событий.

Кодеки

Алгоритмы сжатия звука на передающей стороне и декодирования на принимающей стороне. В основном это используется для минимизации трафика, поэтому кодеки в основном характеризуются полосой пропускания необходимой для передачи речи с использованием этого кодека. При передаче голоса без сжатия потребуется полоса пропускания в 64 Кбит/сек.

Кодеки с высокой степенью сжатия требуют больших вычислительных ресурсов, поэтому для кодирования большого количества голосовых потоков используются специальные микросхемы, так называемые DSP-процессоры.

кодек G.711: поток 64кбит/сек, качество звука высокое;
кодек G.723.1: поток 5.3 - 6.4кбит/сек, качество звука среднее;
кодек G.729: поток 8кбит/сек, качество звука среднее.

IVR

Сокращение от «Interactive Voice Response». Представляет собой технологию голосовых меню и часто используется для авторизации пользователей ТфОП для звонков по IP-телефонии. При этом используется следующая последовательность шагов.

1. Абонент ТфОП набирает городской номер доступа оператора IP-телефонии. При этом трубку поднимает шлюз IP-телефонии (например, Cisco 3640 с платой E1), подключенный к этой линии.
2. Шлюз загружает звуковой файл (обычно расширение у файлов .au) с записанным приглашением и проигрывает его абоненту. При этом обычно предлагается ввести номер и пин-код предоплаченной телефонной карты.
3. После ввода определённого количества цифр производится авторизация с введенными данными на сервере RADIUS. При этом номер карты обычно записывается в атрибут 1 (User-Name), а пин-код – в атрибут 2 (Password).
4. В случае успешной авторизации сервер RADIUS присылает пакет Access-Accept, в котором указывает количество оставшихся средств на счету. Для этого используются атрибуты h323-credit-amount и h323-currency с vendor=9 (Cisco). Шлюз IP-телефонии загружает соответствующие голосовые файлы и проигрывает абоненту остаток средств на счету и предлагает ввести номер, по которому необходимо выполнить вызов. Следует заметить, что в основном IP-телефония выгодна для звонков на большие расстояния (междугородние и международные звонки).
5. После ввода номера производится повторная авторизация на сервере RADIUS, при этом дополнительно передается атрибут Called-Station-Id, в котором записывается набранный номер. В зависимости от остатка средств на счету и стоимости минуты соединения по этому направлению сервер RADIUS вычисляет максимальное время сессии и передает вычисленную цифру в пакете Access-Accept в атрибуте h323-credit-time.
6. После получения положительного ответа от сервера RADIUS шлюз IP-телефонии устанавливает соединение с вызываемым абонентом. Соединение будет разорвано, если длительность сессии составит количество секунд, вычисленное на предыдущем шаге.
7. При установлении соединения на сервер RADIUS отсылается пакет Accounting-Start, при разрыве – пакет Accounting-Stop.





Настройка Cisco ATA-186.

Для использования Cisco ATA-186 в качестве клиента, в настройках адаптера необходимо указать следующие параметры:

UID0: 100
Первый телефонный номер.
UID1: 200
Второй телефонный номер.
GkOrProxy: 10.1.2.105
Адрес гейткипера.
LoginID0: test1
Логин, который будет использоваться для авторизации звонков первого телефонного номера. При этом на гейткипер будет отсылаться пароль такой же, как логин.
LoginID1: test2
LBRCodec:3
RxCodec:3
TxCodec: 3
ConnectMode: 0x00060403
UseSIP: 0





Настройка комплекса NetUP UTM 5.0

Настройка сервера NetUP RADIUS

Необходимо запустить сервер NetUP RADIUS. Затем указать корректные параметры для сервера доступа (NAS), в качестве которого выступает гейткипер на localhost (если UTM и гейткипер находятся на одном сервере).

Пример

Идентификатор сервера доступа (NAS ID): localhost
Секретное слово для авторизации (Auth secret): secret
Секретное слово для учета (Acct secret): secret
В результате сервер RADIUS будет авторизовать пользователей при звонках в обе стороны.

Настройка сервера tftp

Загрузить сервер tftp можно по адресу ftp://ftp.kernel.org/pub/software/network/tftp/tftp-hpa-0.34.tar.bz2.
Далее необходимо его установить командами:

tar xvfj tftp-hpa-0.34.tar.bz2
cd tftp-hpa-0.34
./configure
gmake
gmake install

Создайте директорию, где будут находиться файлы, доступные по tftp.

mkdir /netup/tftp

Произведите запуск сервера tftp командой

/usr/sbin/in.tftpd -l -s /netup/tftp

Для автоматического запуска сервера tftp при загрузке операционной системы нужно добавить данную команду в файл /etc/rc.local.

Настройка шлюза VOIP при дебетной (карточной) системе оплаты

Необходимо указать расположение TCL–скрипта для обработки системы голосовых сообщений (IVR), расположение голосовых файлов и длину номера и пин-кода карты.

!
call application voice debit tftp://10.1.2.2/debitcard.1.1.3.tcl
call application voice debit uid-len 4
call application voice debit pin-len 6
call application voice debit language 1 en
call application voice debit set-location en 0 tftp://10.1.2.2/prompts/en/
!

Введённые пользователем при авторизации первые четыре цифры (uid-len) будут использоваться, как логин, а последующие шесть цифр (pin-len) – как пароль.
Если скрипт загрузился успешно, то по команде

sh call application voice debit

можно увидеть содержание файла скрипта.
В настройках dial-peer нужно указать использование этого скрипта:

!
dial-peer voice 2 voip
application debit
!

Необходимо задать параметры aaa:

!
aaa authentication login h323 group radius
aaa authorization exec h323 group radius
aaa accounting connection h323 start-stop group radius
!
!
gw-accounting aaa
!
radius-server vsa send accounting
radius-server vsa send authentication
!

В результате таких настроек шлюз VoIP будет запрашивать номер (номер и пин-код) карты, затем проводить авторизацию по протоколу RADIUS. При успешной авторизации сервер RADIUS в VSA-атрибутах (h323-credit-amount/h323-currency) отсылает текущий баланс пользователя и код валюты. Затем шлюз запрашивает направление звонка и после ввода заново проводит авторизацию через сервер RADIUS. При этом сервер отсылает количество секунд (атрибут h323-credit-time), доступных для разговора по данному направлению. Если всё прошло успешно, то производится попытка установить соединение согласно настройкам.
По окончании разговора шлюз отсылает серверу RADIUS пакет Accounting STOP с указанием времени разговора.

Создание направлений и зон

Для определения направления звонка используются регулярные выражения. Строка (префикс) задает шаблон, по которому определяется, в какой город либо страну производится вызов. Направления и префиксы можно задать в интерфейсе администратора в разделе (Тарификация | Телефонные направления).

 

Шаблоны строятся по следующим основным правилам:

^ – начало строки.
$ – конец строки.
[0-9] – цифры от 0 до 9.
{n} означает, что предыдущее объявление должно повторяться ровно n раз.
(x|y) означает, что в этом месте может находиться либо x, либо y.

Для примера разберем шаблон ^7095[0-9]{7}$, который определяет направление «Москва». Он означает, что телефонный номер должен начинаться с четырёх цифр 7095, за которыми следуют ровно семь любых цифр, после чего номер должен заканчиваться. Например, под этот шаблон попадают номера 70955409652 и 70959391000. Аналогично для шаблона ^7(901|903|905|916|917)[0-9]{7}$, который определяет направление «Россия (мобильные сети)». Он означает, что телефонный номер должен начинаться с цифры 7, затем следует одна из следующих комбинаций цифр: 901, 903, 905, 916, либо 917. Затем следуют ровно семь любых цифр, после чего номер должен заканчиваться. Например, под этот шаблон попадают номера 79167772233 и 79161112233.

Создание услуги IP-телефонии

Необходимо создать услугу с типом «Телефония» и указать дату начала предоставления услуги и дату окончания.

 

В разделе «Тарификация» можно указать следующие параметры:
Размер абонентской платы
Периодическая составляющая услуги. Указанная в этом поле сумма спишется с лицевого счета абонента за один расчетный период.
Параметры списания абонентской платы
Определяет характер списания периодической составляющей стоимости услуги. При плавном списании сумма спишется плавно в течение расчетного периода.
Бесплатное время
Не тарифицируемое время в начале каждого звонка. Размерность – секунды.
Длительность начального периода
Период в начале звонка, в течение которого действует округление до значения указанного в поле «Шаг начального периода». Размерность – секунды.
Шаг начального периода
Шаг округления в начальном периоде. Размерность – секунды.
Шаг последующего периода
Шаг округления, действующий после завершения начального периода. Размерность – секунды.
Размер единицы тарификации
Данное поле указывает количество секунд в единице тарификации. Стоимость в списке цен указывается для единицы тарификации. Обычно единицей тарификации служит минута и, следовательно, в данном поле необходимо указывать значение 60 секунд.

 

В разделе «Редактор цен» можно указать стоимость звонков с учётом времени суток и направления

 

После этого можно добавлять в систему пользователей и подключать им созданную услугу «Телефония». При подключении необходимо указать, какие телефонные номера будут использоваться данным пользователем, а также логин и пароль для авторизации на гейткипере.

 

Механизм тарификации

Последовательность шагов при проведении тарификации телефонного звонка:

1. Определение направления/зоны.
2. Определение временного диапазона и стоимости единицы тарификации (обычно это минута и она равна 60 секундам).
3. Отсечение бесплатного времени от звонка. Как правило, это 5 секунд в начале разговора. Затем определение шага округления. Стоимость будет вычисляться за вызов с учётом округления.
4. Определение стоимости звонка с учетом данных полученных на предыдущих шагах, а так же с учетом предоплаченных единиц.
5. Проведение списания с лицевого счета за звонок и запись в базу данных информации о звонке (длительность, стоимость, номера вызываемого и вызывающего абонента, идентификатор сессии и др.)

Пример 1

Длительность начального периода 60 секунд, шаг округления начального периода 5 секунд, шаг округления последующего периода 1 секунда. Бесплатное время 5 секунд. Размер единицы тарификации равен 60 секундам. Длительность звонка составляет 42 секунды при стоимости 0.1 условных единиц за единицу тарификации в данное время суток по данному направлению.
Стоимость звонка будет вычислена по следующему алгоритму

1. Вычитание бесплатного порога в 5 секунд. Для тарификации остается 42 -5 = 37 секунд.
2. Определение шага округления. В данном случае 37 секунд попадают в начальный шаг, поэтому округление ведется до полных 5 секунд. Следовательно, после округления стоимость будет вычисляться для 40 секунд.
3. Вычисление стоимости звонка по формуле 0.1 * 40/60 = 0,0667 условных единиц.

Пример 2

Длительность начального периода 60 секунд, шаг округления начального периода 60 секунд, шаг округления последующего периода 1 секунда. Бесплатное время 0 секунд. Размер единицы тарификации равен 60 секундам. Длительность звонка составляет 42 секунды при стоимости 0.1 условных единиц за единицу тарификации в данное время суток по данному направлению.
Стоимость звонка будет вычислена по следующему алгоритму

1. Вычитание бесплатного порога в 0 секунд. Для тарификации остается 42 -0 = 42 секунд.
2. Определение шага округления. В данном случае 42 секунд попадают в начальный шаг, поэтому округление ведется до полных 60 секунд. Следовательно, после округления стоимость будет вычисляться для 60 секунд.
3. Вычисление стоимости звонка по формуле 0.1 * 60/60 = 0,1 условных единиц.





Настройка шлюза VoIP на базе Cisco 26xx, 36xx, 53xx.

Пример приведен для Cisco 3640 IOS 12.2(11)T8 с контроллером E1.

aaa accounting connection h323 start-stop group radius
!
controller E1 1/0
pri-group timeslots 1-31
!
!
voice class codec 1
codec preference 1 g729r8
codec preference 2 g711ulaw
codec preference 3 g723r63
!
!
gw-accounting aaa
acct-template callhistory-detail
!
!
interface Ethernet0/1
ip address 21.1.1.1 255.255.255.252
no ip mroute-cache
full-duplex
no cdp enable
h323-gateway voip interface
h323-gateway voip id GK ipaddr 21.1.1.2 1718
h323-gateway voip h323-id cisco
!
!
interface Serial1/0:15
no ip address
no logging event link-status
isdn switch-type primary-net5
isdn protocol-emulate network
isdn incoming-voice voice
isdn map address .* plan isdn type subscriber
isdn calling-number xxxxxx
no isdn outgoing display-ie
no cdp enable
!
!
dial-peer voice 2 pots
destination-pattern T
direct-inward-dial
port 1/0:15
prefix 96
!
gateway
!
dial-peer voice 4 voip
destination-pattern 100
voice-class codec 1
session target ras
!

Для звонков через Microsoft NetMeeting также следует указать следующие команды:

!
voice service voip
h323
h245 tunnel disable
h245 caps mode restricted
!

В настройках аудио программы NetMeeting необходимо выбрать кодек CCITT u-Law, 8,000 KHz; 8Bit;Mono.





Установка и запуск программного H323 гейткипера на базе пакета GnuGK.

Установка H323 гейткипера

Для установки загрузите установочный пакет с http://www.gnugk.org/h323download.html для вашей операционной системы (доступны версии под FreeBSD, Linux, Windows, Solaris) и установите согласно инструкциям.

Гейткипер можно также установить из исходных кодов. Для этого необходимо загрузить библиотеку PWLib, доступную по адресу http://www.openh323.org/bin/pwlib_1.5.2.tar.gz и установить её командами:

tar xvfz pwlib_1_5_2.tgz
cd pwlib
./configure
gmake
gmake install

Загрузить пакет Openh323 можно по адресу http://www.openh323.org/bin/openh323_1.12.2.tar.gz.
Он устанавливается командами:

tar xvfz openh323_1_12_3.tgz
cd openh323
./configure
gmake
gmake install

Загрузить пакет openh323gk можно по адресу http://www.gnugk.org/download/gnugk-2.2beta2.tgz.
Он устанавливается командами:

tar xvfz gnugk-2.2beta2.tgz
cd openh323gk
export HAS_ACCT=1
./configure
gmake
gmake install

Конфигурационный файл /etc/opengk.ini

Подробное описание опций можно найти в документе http://www.gnugk.org/h323manual.html.
Ниже приведён пример конфигурационного файла /etc/opengk.ini с кратким описанием.

[Gatekeeper::Main]
Fourtytwo=42
TimeToLive=600
Name=localhost
[RoutedMode]
GKRouted=1
[RasSrv::GWPrefixes]
cisco=5,8,9

Префиксы телефонных номеров (E.164), которые будут перенаправляться на шлюз, зарегистрированный под именем cisco. В данном примере номера, начинающиеся на 5, 8 и 9 будут перенаправляться на шлюз. При этом шлюз должен сам зарегистрироваться на гейткипере.

[RasSrv::PermanentEndpoints]
212.1.1.1=voip;1,2,3

Префиксы телефонных номеров (E.164), которые будут перенаправляться на шлюз с адресом 212.1.1.1. В данном примере номера, начинающиеся на 1, 2 и 3 будут перенаправляться на этот шлюз. При этом шлюз не должен сам регистрироваться на гейткипере.

[GkStatus::Auth]
rule=allow
[Gatekeeper::Acct]
RadAcct=required;start,stop
default=allow
[RadAcct]
Servers=127.0.0.1:1813;

IP-адрес и порт, на котором принимает соединения сервер NetUP RADIUS.

LocalInterface=
RadiusPortRange=10000-11000
DefaultAcctPort=1813
SharedSecret=secret
RequestTimeout=3500
IdCacheTimeout=9000
SocketDeleteTimeout=60000
RequestRetransmissions=4
RoundRobinServers=1
AppendCiscoAttributes=1
IncludeEndpointIP=1
FixedUsername=
[Gatekeeper::Auth]
RadAliasAuth=required;RRQ,ARQ
default=allow
[RadAliasAuth]
Servers=127.0.0.1:1812;

IP-адрес и порт, на котором принимает соединения сервер NetUP RADIUS.

LocalInterface=
RadiusPortRange=10000-11000
DefaultAuthPort=1812
SharedSecret=secret
RequestTimeout=2000
IdCacheTimeout=9000
SocketDeleteTimeout=60000
RequestRetransmissions=2
RoundRobinServers=1
AppendCiscoAttributes=1
IncludeTerminalAliases=1
IncludeEndpointIP=1
FixedUsername=
FixedPassword=
[CallTable]
DefaultCallDurationLimit=3600

[Proxy]
Enable=1

Включить режим прокси. В этом режиме пакеты от ATA-186 идут только до и от гейткипера. Если не указывать эту опцию, то пакеты от ATA-186 будут направляться на шлюз, минуя гейткипер.
При таких настройках гейткипер будет проводить авторизацию при каждом звонке через сервер RADIUS (порт 1812). Статистика звонков будет передаваться на сервер RADIUS (порт 1813).

Запуск гейткипера

Запуск гейткипера осуществляется командой:

/usr/local/bin/gnugk -c /etc/opengk.ini -o /var/log/gnugk.log –ttttt &

Протоколирование работы гейткипера будет вестись в файл /var/log/gnugk.log. За работой гейткипера можно наблюдать, подключившись по протоколу telnet на порт состояния командой

telnet 127.0.0.1 7000





Настройка гейткипера на базе пакета Mera MVTS.

Конфигурирование пакета Mera MVTS (mvts-2.1.9-demo-Linux).

Конфигурационный файл …/mvts/cfg/dialpeer.cfg должен иметь следующий вид:

[2_U_ENDPOINTS]
dst_pattern=90[0-9]{1}
gateway=ENDPOINTS
hunt_mode=2

Основная конфигурационная информация хранится в …/mvts/cfg/meraproxy.cfg. Она имеет следующий формат:

[Administration]
gateway_cfg=gateway.cfg
dialpeer_cfg=dialpeer.cfg
user_cfg=user.cfg
mail_alert=qqq@mail.aaa.com
local_address=*
[Console]
console_port=1730
admin_gid=0
billing_gid=0
support_gid=0
[Gatekeeper]
gatekeeper_enable=1
gatekeeper_id=mera
endpoint_ttl=0:10
ras_port=1719
mult_port=1718
[H323]
port=1720
[Billing]
file=../billing/bill
period=60:00
level=3
[LAR]
validation_gap=1000
route_cause=0-127
[Debug]
trace_level=23
level=23
no_empty=1
period=1:00:00
file=../debug/logs/log
[Proxy]
force_proxy=0
internal_network_mask=255.255.255.0
local_address=*
[Radius]
local_address=*
auth_enable=1
acct_enable=1
acct_type=1
acct_leg_type=2
secret=secret
acct_address=127.0.0.1
acct_port=1813
auth_address=127.0.0.1
auth_port=1812
local_auth_port=11812
local_acct_port=11813
cat mvts/cfg/user.cfg
[default]
user=default

Запускаем Mera MVTS - /etc/init.d/mvts start.

Далее заводим в биллинге абонентов с услугой "Телефония":

 

После этого в openphone делаем настройки - указываем адрес гейткипера:

 

Так же необходимо указать логин и пароль в виде логин|пароль:

 

При успешной регистрации радиус-сервер выдает следующую информацию в лог-файл:

RPacket:
Code: 1; ID: 19
[5]
[16]
[4]
[4]
[4]
[22]
?Debug : Mar 29 11:36:44 RADIUS Auth: Packet from
?Debug : Mar 29 11:36:44 RADIUS Auth: User connecting
?Debug : Mar 29 11:36:44 RADIUS Auth: Session for found in cache
?Debug : Mar 29 11:36:44 RADIUS DBA: Password found for tel login:user2
?Debug : Mar 29 11:36:44 RADIUS Auth: Auth scheme: PAP
?Debug : Mar 29 11:36:44 RADIUS Auth: PAP: vs
?Debug : Mar 29 11:36:44 RADIUS Auth: PAP: Authorized user
?Debug : Mar 29 11:36:44 RADIUS Auth: Tel session limit:0 session count:0 for user:user2
?Debug : Mar 29 11:36:44 RADIUS Auth: No Called-Station-Id present in radius packet! Registration request ? Using login string and sending Accept!
?Debug : Mar 29 11:36:44 RADIUS Auth: Tel num:. Setting xpgk-ep-number ...
?Debug : Mar 29 11:36:44 RADIUS Auth: Sending timeout h323-credit-time=72000
?Debug : Mar 29 11:36:44 RADIUS Auth: Sending h323-credit-amount=3.99

при успешном звонке:

Acct: Packet from 127.0.0.1
?Debug : Mar 29 11:37:04 RADIUS Acct: Acct packet with session ID:5fe063c5-4-ffeb570eV1
?Debug : Mar 29 11:37:04 RADIUS Acct: Acct-Stop packet
?Debug : Mar 29 11:37:04 RADIUS Tarif: UT for telephony called.
tkey:1001000 start:1112081813 stop:1112081820
Info : Mar 29 11:37:04 UT: tel tarification for slink 10832, tr_id 1,
mult 0.010000, next 1112081820
Info : Mar 29 11:37:04 UT: cost info:
Info : Mar 29 11:37:04 UT: type 0 deny 0 base_cost 1.000000
size 7 tr_id 1 mult 0.010000 added 0 sum 0.000000
?Debug : Mar 29 11:37:04 RADIUS Tarif: UT cost_info sum:0.0012
?Debug : Mar 29 11:37:04 RADIUS DBA: VoIP Discount: TR ID 1001000: 0.001 for 7 sec
?Debug : Mar 29 11:37:04 RADIUS DBA: VoIP calculated cost: 0.001
Acct: Reply:

Теперь можно установить соединение.

 

По окончании разговора в отчете по телефонии появится одна строка со звонком.






Настройка Altertex ProxySoftSwitch

Altertex Proxy SoftSwitch (AlterPSS) - это программный переключатель (или коммутатор), позволяющий направлять сигналы и голосовой трафик с одного шлюза IP-телефонии на другой, или пропускать данные через себя (проксировать). При этом управляющие сигналы могут исправляться или полностью изменяться софт-свичом. Таким образом, появляется возможность установки соединения между оборудованием, использующим несовместимые протоколы.

Настройка ProxySoftSwitch

Предполагается компьютер с операционной системой Windows 2000 или Windows Server 2003 и установленный ProxySoftSwitch.

1. Скопируйте приведённый ниже конфигурационный файл monitor.ini в каталог PSS (обычно C:\Program Files\Altertex\Proxy Softswitch). Обратите внимание на переводы строк, строки с русскими комментариями должны начинаться с символа «;».

; Данный файл содержит дополнительные настройки,
; наличие этих настроек позволяет включать вспомогательные сервисы,
; а отсутствие этих настроек не приведет к потере работоспособности AlterPSS
[IVR]
; Префикс телефонных номеров для работы с интерактивным голосовым меню,
; может принимать значения: 'no', 'all' или строка цифр.
; PhoneNumber=no
PhoneNumber=000
[MONITOR]
; Через этот порт с помощью telnet можно просматривать H323 обмен между AlterPss и удаленным шлюзом
Port=5099
; Список AccessIPaddrN позволит ограничить доступ к этому сервису,
; при отсутствии хотя бы одной записи доступ неограничен
AccessIPaddr1=127.0.0.1
[WEB]
; Через этот порт доступна WEB-страница с информацией о текущих соединениях
Port=801
; Список AccessIPaddrN позволит ограничить доступ к этому сервису,
; при отсутствии хотя бы одной записи доступ неограничен
;AccessIPaddr1=127.0.0.1
; Доступ к WEB-странице ограничен по логину/паролю
Login=user
Password=123
; Время автоматической перезагрузки WEB-страницы,
; если на изображении WEB-страницы находится указатель "мышки", то перезагрузка блокируется.
ReloadTime=3000
[RADIUS]
; Настройки NAS для работы по RADIUS
Server=127.0.0.1
Secret=secret
AuthorizationPort=1812
AuthorizationNasPort=1812
AccountingPort=1813
AccountingNasPort=1813
SessionID=34
Setup=0
Access=0
Connect=1
Stop=1
; Получить таблицу маршрутизации от RADIUS сервера.
RouteMode=0
GatewayID=Pss
; при установке этого параметра в "1" при переходе на следующий марршрут
; будет отправлятся STOP пакет для оригинирующего соединения, а затем вновь посылатся ложный START.
ReAccountingReroute=0
; Настройки встроенного конференц сервера.
[CONFERENCE]
;Prefix=00
;Amount=2
;MaxChannels=4
;NewMemberWav=gong.wav
;WaitWav=wait.wav
[GATEWAY]
; Включение/выключение режима преобразования кодеков
CodecConversion=1
; В режиме транскодинга использовать для терминирующего шлюза информацию из таблицы шлюзов.
GetCodecFromTable=1
; Правила преобразования номера к формату E.164в режиме IVR.
;InternationalAccessCode=810
;AreaAccessCode=8
;CountryCode=7
;AreaCode=095
[DYNDNS]
; Время обновления ip-адресов шлюзов согласно их DNS (в милисекундах).
PollingTime=1000
[ROUTE]
; Список кодов завершения, по которым прекращается перебор маршрутов.
CauseStop1=17
[CAUSE]
; Подмена кодов завершения.
;3=17

Параметр Server определяет IP-адрес компьютера, на котором запущен сервер RADIUS utm5_radius. Через этот сервер будут проходить все запросы авторизации (authorization) и учёта (accounting) голосовых звонков. Соответственно, необходимо настроить параметры AuthorizationPort, AccountingPort.
Параметры Setup, Access, Connect и Stop определяют, когда необходимо посылать серверу RADIUS пакеты Accounting. Правильные значения для биллинговой системы UTM:

Setup=0
Access=0
Connect=1
Stop=1

Параметр RouteMode=0 выключает динамическую маршрутизацию и инструктирует ProxySoftSwitch использовать жёстко заданную таблицу маршрутизации (см. ниже).

2. Запустите конфигуратор PSS (Пуск | Программы | Altertex | Proxy Soft Switch | Конфигуратор PSS). Во вкладке «Параметры доступа к web-интерфейсу подсистемы маршрутизации» установите порт, логин и пароль для доступа. Убедитесь, что в правой части окна в списке IP-адресов есть ваш адрес.

 

3. Скачайте модуль авторизации RADIUS по адресу http://netup.ru/dkalinin/pss_utm5_dlls.zip. Необходимо скопировать файлы PssControl.dll и ivr.dll в каталог PSS (c:\program files\Altertex\ProxySoftSwitch).

4. Перезапустите службу ProxySoftSwitch. Убедитесь в успешном старте службы.

5. Зайдите в систему администрирования подсистемы маршрутизации по адресу http://localhost:5080, введите указанный выше пароль.

 

Настройте один или более шлюзов (gateways). Создайте таблицу маршрутизации (table of routing) с именем default, настройте правила трансляции при различных префиксах.
В примере указано, что все звонки с префиксом «7» (Россия) будут направляться на маршрутизатор с именем monster.
Более подробно процесс конфигурации маршрутизаторов и таблиц роутинга описан в документации по Altertex ProxySoftSwitch.

Настройка UTM

Необходима версия UTM 5 (любая поддерживаемая платформа), релиз не ранее 5.1.9-004.

1. Внесите изменения в конфигурационный файл radius5.cfg (/netup/utm5/radius5.cfg или c:\program files\netup\utm5\radius5.cfg). Добавьте следующие строки:

radius_auth_h323_remote_address=enable
radius_auth_null=enable
radius_acct_rewrite_login_originate=enable

Включенный параметр radius_auth_null дает возможность авторизоваться пользователям, имеющим пустой пароль (при этом не происходит авторизации по одной из схем PAP, CHAP, MSCHAP).
При включении параметра radius_auth_h323_remote_address utm5_radius ведёт себя следующим образом: при приёме от PSS auth-пакета с логином «ip_address» в качестве логина используется значение Cisco Vendor-Specific атрибута h323_remote_address. В итоге авторизация абонентов может производиться по IP-адресу.
При включении параметра radius_acct_rewrite_login_originate сервер RADIUS использует в качестве логина значение h323_remote_address в том случае, если в принятом пакете значение атрибута h323_call_origin равно «originate».

2. Настройте направления и зоны, подключите услугу IP-телефонии.

Настройка Cisco ATA-186

Зайдите браузером на web-интерфейс устройства и установите параметр GkOrProxy равным IP-адресу компьютера с PSS. Также укажите номер телефона, логин и пароль для каждого из голосовых портов. Перезагрузите устройство.

Тестовый звонок

Теперь можно пробовать звонить. Наберите номер, начиная с префикса 7 и заканчивая символом «решетка», например, 70955409652#. Контролируйте лог-файл сервера RADIUS и вывод в web-интерфейсе PSS (ссылка eventlog). После успешного звонка информация о нем появится в отчёте