RADIUS в формате MVTS

Стартовая запись (Accounting start record)

Посылается на RADIUS-сервер при получении звонка (входящий участок звонка) или при
отправке сообщения SETUP стороне, терминирующей вызов (исходящий участок звонка).
Тип запроса – AccountingRequest (Code 4)

Таблица 1. Структура стартовой записи (Accounting Start), отправляемой на RADIUS сервер:

В поле AcctSessionId данные представлены в формате:

<prefix>-<call number>-<hash><leg type><route number>,  
где  
<prefix> - случайно выбранное шестнадцатиричное число, состоящее из восьми символов 
<call number> - порядковый номер вызова с момента последнего запуска MVTS  
<hash> - хэш-строка, состоящая из восьми шестнадцатеричных чисел 
<leg type> - тип лега (Т для входящего лега и V для исходящего лега при значениях 
параметра acct_leg_type= от 1 до 3 и AV для входящего лега и  4 или 5 и OV для 
исходящего лега) 
<route number> - номер попытки завершения текущего вызова.  

Ожидаемый ответ – AccountingResponse.

Пример:

Fri Dec 09 13:03:48 2011, (377+88-5000) ,Sent 98.124.143.51:1813        Radius
AccountingRequest {
                 session id = 147
                 AcctStatusType - Start
                 UserName: 178.63.116.212
                 NasIpAddress: 98.124.143.54
                 NasPortType: 0
                 ServiceType: 1
                 AcctDelayTime: 0
                 CalledStationId: 35522588774444111
                 CallingStationId: 78435338078
                 AcctSessionId: 515f3c97-2e0b8-96a7cc15V2
                 Cisco VSA( 26): h323-call-origin=originate
                 Cisco VSA( 27): h323-call-type=VoIP
                 Cisco VSA( 25): h323-setup-time=13:03:48.000 EST Fri Dec 09 2011
                 Cisco VSA( 33): h323-gw-id=178.63.116.212
                 Cisco VSA(  1): h323-gw-address=178.63.116.212
                 Cisco VSA( 24): h323-conf-id=80A4FA65 21C611E1 80EA9281 7E419725
                 Cisco VSA( 23): h323-remote-address=193.238.226.156
                 Cisco VSA(  1): h323-remote-id=193.238.226.156
                 Cisco VSA(  1): xpgk-src-number-in=78435338078
                 Cisco VSA(  1): xpgk-src-number-out=78435338078
                 Cisco VSA(  1): xpgk-dst-number-in=2008#35522588774444111
                 Cisco VSA(  1): xpgk-dst-number-out=35522588774444111
                 Cisco VSA(  1): xpgk-record-id=1320559294-188600
                 Cisco VSA(  1): h323-call-id=3BBDB3AE 229011E1 8D2E0024 81A9B94E
                 Cisco VSA(  1): h323-incoming-conf-id=80A4FA65 21C611E1 80EA9281 7E419725
                 Cisco VSA(  1): h323-incoming-call-id=3BBDB3AE 229011E1 8D2E0024 81A9B94E
                 Cisco VSA(  1): xpgk-route-retries=2
  }
Fri Dec 09 13:03:48 2011, (377+88-5000) ,Recv 98.124.143.51:1813        Radius
AccountingResponse {
                 session id = 147
  }

Стоп запись (Accounting stop record)

Отправляется RADIUS-серверу при завершении звонка.
Тип запроса – AccountingRequest (Code 4)
Примечание: стоп запись (пакет Accountin Stop), посылаемая MVTS на RADIUS-сервер
может иногда значительно превышать максимально возможный размер UDP-пакета,
заданный в операционной системе – 1500 байт. Поскольку не все сетевые маршрутизаторы
способны восстанавливать передаваемые пакеты, разбитые на фрагменты, RADIUS-
сервер, при отсутствии пакета Accounting Stop, продолжает начисление оплаты по звонку
даже после того, как данный звонок был завершен.
Для решения данной проблемы используйте параметр stop_acct_level= в секции
[Radius], позволяющий уменьшить размер пакетов Accounting Stop за счет вырезания из
них некоторых VSA-полей.

Таблица 2. Структура стоп записи (Accounting Stop), отправляемой на RADIUS сервер



В поле AcctSessionId данные  представлены в формате: 
<prefix>-<call number>-<hash><leg type><route number>,  
где  
<prefix> - случайно выбранное шестнадцатеричное число, состоящее из восьми символов 
<call number> - порядковый номер вызова с момента последнего запуска MVTS  
<hash> - хэш-строка, состоящая из восьми шестнадцатеричных чисел 
<leg type> - тип лега (Т для входящего лега и V для исходящего лега при значениях 
параметра acct_leg_type= от 1 до 3 и AV для входящего лега и  4 или 5 и OV для 
исходящего лега) 
<route number> - номер попытки завершения текущего вызова. Ожидаемый ответ – 
AccountingResponse. 

Пример:
Fri Dec 09 13:03:48 2011, (377+88-5000) ,Sent 98.124.143.51:1813        Radius
AccountingRequest {
                 session id = 147
                 AcctStatusType - Stop
                 UserName: 178.63.116.212
                 NasIpAddress: 98.124.143.54
                 NasPortType: 0
                 ServiceType: 1
                 AcctInputPackets: 547
                 AcctOutputPackets: 0
                 AcctInputOctets: 45
                 AcctOutputOctets: 270
                 CalledStationId: 35522588774444111
                 CallingStationId: 78435338078
                 AcctDelayTime: 0
                 AcctSessionTime: 0
                 AcctSessionId: 515f3c97-2e0b8-96a7cc15V2
                 Cisco VSA( 26): h323-call-origin=originate
                 Cisco VSA( 27): h323-call-type=VoIP
                 Cisco VSA( 25): h323-setup-time=13:03:48.000 EST Fri Dec 09 2011
                 Cisco VSA( 33): h323-gw-id=178.63.116.212
                 Cisco VSA(  1): h323-gw-address=178.63.116.212
                 Cisco VSA( 24): h323-conf-id=80A4FA65 21C611E1 80EA9281 7E419725
                 Cisco VSA( 23): h323-remote-address=193.238.226.156
                 Cisco VSA(  1): h323-remote-id=193.238.226.156
                 Cisco VSA(  1): xpgk-src-number-in=78435338078
                 Cisco VSA(  1): xpgk-src-number-out=78435338078
                 Cisco VSA(  1): xpgk-dst-number-in=2008#35522588774444111
                 Cisco VSA(  1): xpgk-dst-number-out=35522588774444111
                 Cisco VSA(  1): xpgk-record-id=1320559294-188600
                 Cisco VSA(  1): h323-call-id=3BBDB3AE 229011E1 8D2E0024 81A9B94E
                 Cisco VSA(  1): h323-incoming-conf-id=80A4FA65 21C611E1 80EA9281 7E419725
                 Cisco VSA(  1): h323-incoming-call-id=3BBDB3AE 229011E1 8D2E0024 81A9B94E
                 Cisco VSA(  1): xpgk-route-retries=2
                 Cisco VSA( 28): h323-connect-time=13:03:48.000 EST Fri Dec 09 2011
                 Cisco VSA( 29): h323-disconnect-time=13:03:48.000 EST Fri Dec 09 2011
                 Cisco VSA( 30): h323-disconnect-cause=1
                 Cisco VSA(  1): xpgk-local-disconnect-cause=2
                 Cisco VSA( 31): h323-voice-quality=0
                 Cisco VSA(  1): xpgk-src-codec=g729
                 Cisco VSA(  1): xpgk-initial-incoming-local-address=98.124.143.54
                 Cisco VSA(  1): xpgk-selected-incoming-local-address=98.124.143.54
                 Cisco VSA(  1): xpgk-outgoing-local-address=98.124.143.54
                 Cisco VSA(  1): xpgk-source-rtp-address=178.63.116.212:24108
                 Cisco VSA(  1): xpgk-scd-time=0
                 Cisco VSA(  1): xpgk-source-faststart=1
                 Cisco VSA(  1): xpgk-source-tunneling=1
                 Cisco VSA(  1): xpgk-info-number=2008#35522588774444111
                 Cisco VSA(  1): xpgk-pdd-time=0
                 Cisco VSA(  1): xpgk-pdd-reason=N/A
  }
Fri Dec 09 13:03:49 2011, (377+88-5000) ,Recv 98.124.143.51:1813        Radius
AccountingResponse {
                 session id = 147
  }

Внешняя маршрутизация с помощью RADIUS

В случае, когда запись об объекте набора a файле dialpeer.cfg содержит настройку
gateway=EXTERNAL, авторизации пользователя будет предшествовать запрос к
RADIUS-серверу на маршрутизацию, содержащий в поле AV-PAIR значение "xpgk-
routing-request=1".
RADUIS-сервер может выдавать один из трех следующих ответов:

 Reject – при принятии данного ответа произойдет завершение вызова 
Accept without routing information – начнется поиск новых возможных маршрутов 
Accept with routing data – в данном пакете будут содержаться следующие ID: 
−   CISCO VSA ID=251 в записи  new_username/new_password (это 
поле не обязательно для заполнения, оно выполняет ту же функцию, что и 
параметр override_user в файле dialpeer.cfg). Например, если 
значение поля - user01/qwerty, тогда имя пользователя и пароль в 
настоящем  вызове будут заменены соответственно на user01 и 
qwerty. 
−   CISCO VSA ID=252, представляет собой запись из пяти, шести  или семи 
полей: gateway/proxy_mode/source/dest/src_bill/dst_bill/ip-
address[:port] , где 
gateway - название секции gateway в файле gateway.cfg 
proxy_mode – тип проксирования: 
0 – функция проксирования выключена 
1 – функция проксирования включена 
2 – использовать тип проксирования оригинирующего шлюза 
3 – использовать тип проксирования терминирующего шлюза 
source - номер вызывающего абонента (src_number) 
dest - номер вызываемого абонента, который будет передан терминирующему шлюзу 
(dst_number) 
src_bill - номер вызывающего абонента в биллинговой системе 
dst_bill - номе вызываемого абонента в биллинговой системе 
ip- address[:port] – IP адрес для начала звонка. Значение параметра port не 
обязательно для заполнения, в случае незаполнения значение по умолчанию – 1720. 
Поле, содержащее ID=251, должно быть единственным. Полей с ID=252 может быть 
несколько, и указанные маршруты будут обрабатываться последовательно. 

Запрос AccessRequest при внешней маршрутизации

MVTS выполняет данный запрос, если в поле gateway= в описании объекта набора
(dial peer) находится ключевое слово EXTERNAL.

Цель данного запроса – получить маршруты для терминации звонка в конечном пункте.
При этом существует возможность менять имя пользователя и пароль для данного звонка.
Возможна обработка нескольких маршрутов, выполняемая последовательным
переходом к следующему машруту в случае невозможности терминации вызова по
текущему пути.
Тип запроса – AccessRequest (Code 1)

Таблица 3. Структура запроса к RADIUS серверу на маршрутизацию


Ожидаемый ответ: AccessAccept 

Пример:
Fri Dec 09 13:03:48 2011, (377+88-5000) ,Sent 98.124.143.59:1825        Radius
AccessRequest {
                 session id = 147
                 UserName: 178.63.116.212
                 UserPassword: d19135b9aef70fb6db53cca0437740ff
                 NasIpAddress: 98.124.143.54
                 NasPortType: 0
                 ServiceType: 1
                 CalledStationId: 200835522588774444111
                 CallingStationId: 78435338078
                 Cisco VSA(  1): xpgk-request-type=route
                 AcctSessionId: 515f3c97-2e0b8-96a7cc15
                 Cisco VSA(  1): xpgk-routing-request=1
                 Cisco VSA( 24): h323-conf-id=80A4FA65 21C611E1 80EA9281 7E419725
                 Cisco VSA(  1): h323-call-id=3BBDB3AE 229011E1 8D2E0024 81A9B94E
                 Cisco VSA( 33): h323-gw-id=178.63.116.212
                 Cisco VSA(  1): h323-gw-address=178.63.116.212
                 Cisco VSA(  1): h323-incoming-local-address=98.124.143.54
                 Cisco VSA(  1): xpgk-src-number-in=78435338078
                 Cisco VSA(  1): xpgk-src-number-out=78435338078
                 Cisco VSA(  1): xpgk-dst-number-in=2008#35522588774444111
                 Cisco VSA(  1): xpgk-dst-number-out=200835522588774444111
                 Cisco VSA( 25): h323-setup-time=13:03:48.000 EST Fri Dec 09 2011
                 Cisco VSA(  1): xpgk-route-retries=1
  }

Таблица 4 Структура ответа AccessAccept RADIUS сервера на запрос о
маршрутизации

Пример:
Fri Dec 09 13:03:48 2011, (377+88-5000) ,Recv 98.124.143.59:1825        Radius
AccessAccept {
                 session id = 147
                 Cisco VSA(251): 178.63.116.212/xpgk
                 Cisco VSA(252): SKY_GW_91/1/78435338078/35522588774444111/78435338078/35522588774444111
                 Cisco VSA(252): BTS_GW_59/1/78435338078/35522588774444111/78435338078/35522588774444111
                 Cisco VSA(252): Nobel_GW_36/1/78435338078/805335522588774444111/78435338078/35522588774444111
                 Cisco VSA(252): Ukrtelecom_GW_1/1/78435338078/35522588774444111/78435338078/35522588774444111
                 Cisco VSA(252): Ukrtelecom_GW_36/1/78435338078/35522588774444111/78435338078/35522588774444111
                 Cisco VSA(252): Carrier_Domain_GW_1/1/78435338078/35522588774444111/78435338078/35522588774444111
                 Cisco VSA(252): VoIP_Telephonic_WS_GW_6/1/78435338078/011#35522588774444111/78435338078/35522588774444111
                 Cisco VSA(252): Quickcom_GW_1/1/78435338078/35522588774444111/78435338078/35522588774444111
                 Cisco VSA(252): PROTEL_GW_6/1/78435338078/35522588774444111/78435338078/35522588774444111
  }

Формат поля XPGK_XROUTING_ROUTING:

gateway/proxy_mode/source/dest/src_bill/dst_bill/ip-address[:port]/converter,  
где: 
gateway - имя шлюза (секции) из файла gateway.cfg; 
proxy_mode - режим проксирования: 
0 - нет проксирования медиа трафика 
1 - есть проксирование медиа трафика; 
2 - использовать режим проксирования оригинирующего шлюза; 
3 - использовать режим проксирования терминирующего шлюза; 
source - номер вызывающего абонента (src_number) 
dest - номер  вызываемого  абонента,  который будет  отправлен на  терминирующий шлюз 
(dst_number) 
src_bill - номер вызывающего абонента для системы биллинга; 
dst_bill - номер вызываемого абонента для системы биллинга; 
ip-address[:port] - ip-адрес,  с  которым  следует  устанавливать  соединение,  с 
необязательным параметром номер порта,  если номер порта не указан,  то  считается  что 
это порт 1720 
converter –  имя  описания  конвертера,  через  который  будет  выполняться  терминация 
звонка 
AccessReject –  маршрутизация  считается  неуспешной  и  данный  звонок  завершается  с 
соовтетствующим локальным кодом 

Запрос о завершении звонка, поступающий от RADIUS-сервера

MVTS способен обрабатывать запрос от RADIUS-сервера на завершение звонка
DisconnectRequest (type 40).
В этом пакете должно присутствовать поле VSA h323-conf-id или VSA
h323_incoming-conf-id в формате 4 шестнадцатеричных октета, разделенных пробелом
(аналогично тому, как MVTS отправляет ConfId на RADIUS-сервер). Этот ConfId
используется для поиска активного звонка. Звонок завершается с локальным кодом 100
(ForceTerminateCall).
Если завершение звонка прошло успешно, то MVTS отвечает пакетом
DisconnectAck(type41). Если неуспешно, например, такой звонок не найден, или
отсутствует поле с ConfId, то MVTS отвечает DisconnectNack(type 42).

Пример 1 звонка. После получения звонка SS (SoftSwitch) должен слать на Radius запрос маршрутизации:
Fri Dec 09 13:03:48 2011, (377+88-5000) ,Sent 98.124.143.59:1825        Radius
AccessRequest {
                 session id = 147
                 UserName: 178.63.116.212
                 UserPassword: d19135b9aef70fb6db53cca0437740ff
                 NasIpAddress: 98.124.143.54
                 NasPortType: 0
                 ServiceType: 1
                 CalledStationId: 200835522588774444111
                 CallingStationId: 78435338078
                 Cisco VSA(  1): xpgk-request-type=route
                 AcctSessionId: 515f3c97-2e0b8-96a7cc15
                 Cisco VSA(  1): xpgk-routing-request=1
                 Cisco VSA( 24): h323-conf-id=80A4FA65 21C611E1 80EA9281 7E419725
                 Cisco VSA(  1): h323-call-id=3BBDB3AE 229011E1 8D2E0024 81A9B94E
                 Cisco VSA( 33): h323-gw-id=178.63.116.212
                 Cisco VSA(  1): h323-gw-address=178.63.116.212
                 Cisco VSA(  1): h323-incoming-local-address=98.124.143.54
                 Cisco VSA(  1): xpgk-src-number-in=78435338078
                 Cisco VSA(  1): xpgk-src-number-out=78435338078
                 Cisco VSA(  1): xpgk-dst-number-in=2008#35522588774444111
                 Cisco VSA(  1): xpgk-dst-number-out=200835522588774444111
                 Cisco VSA( 25): h323-setup-time=13:03:48.000 EST Fri Dec 09 2011
                 Cisco VSA(  1): xpgk-route-retries=1
  }

если сервер не ответил в течении 2х секунд, SS должен послать такой же запрос на backup Radius сервер. Сервера Radius маршрутизации и аккаунтинга имеют разные IP.

если маршрут позволен и найден Radius отвечает

Fri Dec 09 13:03:48 2011, (377+88-5000) ,Recv 98.124.143.59:1825        Radius
AccessAccept {
                 session id = 147
                 Cisco VSA(251): 178.63.116.212/xpgk
                 Cisco VSA(252): SKY_GW_91/1/78435338078/35522588774444111/78435338078/35522588774444111
                 Cisco VSA(252): BTS_GW_59/1/78435338078/35522588774444111/78435338078/35522588774444111
                 Cisco VSA(252): Nobel_GW_36/1/78435338078/805335522588774444111/78435338078/35522588774444111
                 Cisco VSA(252): Ukrtelecom_GW_1/1/78435338078/35522588774444111/78435338078/35522588774444111
                 Cisco VSA(252): Ukrtelecom_GW_36/1/78435338078/35522588774444111/78435338078/35522588774444111
                 Cisco VSA(252): Carrier_Domain_GW_1/1/78435338078/35522588774444111/78435338078/35522588774444111
                 Cisco VSA(252): VoIP_Telephonic_WS_GW_6/1/78435338078/011#35522588774444111/78435338078/35522588774444111
                 Cisco VSA(252): Quickcom_GW_1/1/78435338078/35522588774444111/78435338078/35522588774444111
                 Cisco VSA(252): PROTEL_GW_6/1/78435338078/35522588774444111/78435338078/35522588774444111
  }

во всех примерах вывода верхняя строка является логовой строкой, просто указывающей время, и направление движения запросов. Параметр "session id" является идентификатором звонка.

Далее SS по одному перебирает выданные ему маршруты. Первй параметр в маршруте - имя gateway (уникальное) берется из автоматически подгружаемого файла gateway.cfg. Вырезка из него представлена ниже:

[1750_GW_2]
address=75.99.46.227
gateway_mode=3
gateway_type=0
proxy_type=1
ip_precedence=3
capacity=256
src_translate=.*/17183333337
in_dst_translate=[0-9]*|#|[0-9]*/\1\3
port=1720
nat_rtp=0
max_callrate=2
in_src_translate=.*/17183333337

[1750_GW_5]
address=75.99.46.226
gateway_mode=3
gateway_type=0
proxy_type=1
ip_precedence=3
capacity=10
in_dst_translate=[0-9]*|#|[0-9]*/\1\3
port=1720
nat_rtp=1
max_callrate=2

на примере 1го gateway:

1750_GW_2 - уникальный ИД
address - IP адресс партнера
gateway_mode - (0 - nothing, 1 - originate, 2 - terminate, 3 - both)
proxy_type - если 1 - проксировать медиа, 0 - нет
capacity - максимальное количество одновременных линий
port - порт сервера партнера
nat_rtp - применяется для устройств за nat, у нас для конечных пользователей для осуществления тестов.
max_callrate - максимальная скорость нарастания вызовов (вызовов в секунду)

путь к каталогу в подкаталоге cfg которого находится gateway.cfg задается произвольный (по умолчанию он равен /mvts, но можно указать вместо - любой другой,
т.е. gateway.cfg находится по умолчанию в /mvts/cfg/gateway.cfg)

После идет запрос на accounting Radius:

Fri Dec 09 13:03:48 2011, (377+88-5000) ,Sent 98.124.143.51:1813        Radius
AccountingRequest {
                 session id = 147
                 AcctStatusType - Start
                 UserName: 178.63.116.212
                 NasIpAddress: 98.124.143.54
                 NasPortType: 0
                 ServiceType: 1
                 AcctDelayTime: 0
                 CalledStationId: 35522588774444111
                 CallingStationId: 78435338078
                 AcctSessionId: 515f3c97-2e0b8-96a7cc15V2
                 Cisco VSA( 26): h323-call-origin=originate
                 Cisco VSA( 27): h323-call-type=VoIP
                 Cisco VSA( 25): h323-setup-time=13:03:48.000 EST Fri Dec 09 2011
                 Cisco VSA( 33): h323-gw-id=178.63.116.212
                 Cisco VSA(  1): h323-gw-address=178.63.116.212
                 Cisco VSA( 24): h323-conf-id=80A4FA65 21C611E1 80EA9281 7E419725
                 Cisco VSA( 23): h323-remote-address=193.238.226.156
                 Cisco VSA(  1): h323-remote-id=193.238.226.156
                 Cisco VSA(  1): xpgk-src-number-in=78435338078
                 Cisco VSA(  1): xpgk-src-number-out=78435338078
                 Cisco VSA(  1): xpgk-dst-number-in=2008#35522588774444111
                 Cisco VSA(  1): xpgk-dst-number-out=35522588774444111
                 Cisco VSA(  1): xpgk-record-id=1320559294-188600
                 Cisco VSA(  1): h323-call-id=3BBDB3AE 229011E1 8D2E0024 81A9B94E
                 Cisco VSA(  1): h323-incoming-conf-id=80A4FA65 21C611E1 80EA9281 7E419725
                 Cisco VSA(  1): h323-incoming-call-id=3BBDB3AE 229011E1 8D2E0024 81A9B94E
                 Cisco VSA(  1): xpgk-route-retries=2
  }

на что получает ответ

Fri Dec 09 13:03:48 2011, (377+88-5000) ,Recv 98.124.143.51:1813        Radius
AccountingResponse {
                 session id = 147
  }

по завершении попытки звонка на 1й маршрут шлет запрос

Fri Dec 09 13:03:48 2011, (377+88-5000) ,Sent 98.124.143.51:1813        Radius
AccountingRequest {
                 session id = 147
                 AcctStatusType - Stop
                 UserName: 178.63.116.212
                 NasIpAddress: 98.124.143.54
                 NasPortType: 0
                 ServiceType: 1
                 AcctInputPackets: 547
                 AcctOutputPackets: 0
                 AcctInputOctets: 45
                 AcctOutputOctets: 270
                 CalledStationId: 35522588774444111
                 CallingStationId: 78435338078
                 AcctDelayTime: 0
                 AcctSessionTime: 0
                 AcctSessionId: 515f3c97-2e0b8-96a7cc15V2
                 Cisco VSA( 26): h323-call-origin=originate
                 Cisco VSA( 27): h323-call-type=VoIP
                 Cisco VSA( 25): h323-setup-time=13:03:48.000 EST Fri Dec 09 2011
                 Cisco VSA( 33): h323-gw-id=178.63.116.212
                 Cisco VSA(  1): h323-gw-address=178.63.116.212
                 Cisco VSA( 24): h323-conf-id=80A4FA65 21C611E1 80EA9281 7E419725
                 Cisco VSA( 23): h323-remote-address=193.238.226.156
                 Cisco VSA(  1): h323-remote-id=193.238.226.156
                 Cisco VSA(  1): xpgk-src-number-in=78435338078
                 Cisco VSA(  1): xpgk-src-number-out=78435338078
                 Cisco VSA(  1): xpgk-dst-number-in=2008#35522588774444111
                 Cisco VSA(  1): xpgk-dst-number-out=35522588774444111
                 Cisco VSA(  1): xpgk-record-id=1320559294-188600
                 Cisco VSA(  1): h323-call-id=3BBDB3AE 229011E1 8D2E0024 81A9B94E
                 Cisco VSA(  1): h323-incoming-conf-id=80A4FA65 21C611E1 80EA9281 7E419725
                 Cisco VSA(  1): h323-incoming-call-id=3BBDB3AE 229011E1 8D2E0024 81A9B94E
                 Cisco VSA(  1): xpgk-route-retries=2
                 Cisco VSA( 28): h323-connect-time=13:03:48.000 EST Fri Dec 09 2011
                 Cisco VSA( 29): h323-disconnect-time=13:03:48.000 EST Fri Dec 09 2011
                 Cisco VSA( 30): h323-disconnect-cause=1
                 Cisco VSA(  1): xpgk-local-disconnect-cause=2
                 Cisco VSA( 31): h323-voice-quality=0
                 Cisco VSA(  1): xpgk-src-codec=g729
                 Cisco VSA(  1): xpgk-initial-incoming-local-address=98.124.143.54
                 Cisco VSA(  1): xpgk-selected-incoming-local-address=98.124.143.54
                 Cisco VSA(  1): xpgk-outgoing-local-address=98.124.143.54
                 Cisco VSA(  1): xpgk-source-rtp-address=178.63.116.212:24108
                 Cisco VSA(  1): xpgk-scd-time=0
                 Cisco VSA(  1): xpgk-source-faststart=1
                 Cisco VSA(  1): xpgk-source-tunneling=1
                 Cisco VSA(  1): xpgk-info-number=2008#35522588774444111
                 Cisco VSA(  1): xpgk-pdd-time=0
                 Cisco VSA(  1): xpgk-pdd-reason=N/A
  }

на что получает ответ

Fri Dec 09 13:03:49 2011, (377+88-5000) ,Recv 98.124.143.51:1813        Radius
AccountingResponse {
                 session id = 147
  }

если 1й поставщик отбил кодом по которому звонок должен перейти дальше - идет на следуйщий маршрут:

Fri Dec 09 13:03:49 2011, (377+88-5000) ,Sent 98.124.143.51:1813        Radius
AccountingRequest {
                 session id = 147
                 AcctStatusType - Start
                 UserName: 178.63.116.212
                 NasIpAddress: 98.124.143.54
                 NasPortType: 0
                 ServiceType: 1
                 AcctDelayTime: 0
                 CalledStationId: 35522588774444111
                 CallingStationId: 78435338078
                 AcctSessionId: 515f3c97-2e0b8-96a7cc15V3
                 Cisco VSA( 26): h323-call-origin=originate
                 Cisco VSA( 27): h323-call-type=VoIP
                 Cisco VSA( 25): h323-setup-time=13:03:48.000 EST Fri Dec 09 2011
                 Cisco VSA( 33): h323-gw-id=178.63.116.212
                 Cisco VSA(  1): h323-gw-address=178.63.116.212
                 Cisco VSA( 24): h323-conf-id=80A4FA65 21C611E1 80EA9281 7E419725
                 Cisco VSA( 23): h323-remote-address=79.170.68.161
                 Cisco VSA(  1): h323-remote-id=79.170.68.161
                 Cisco VSA(  1): xpgk-src-number-in=78435338078
                 Cisco VSA(  1): xpgk-src-number-out=78435338078
                 Cisco VSA(  1): xpgk-dst-number-in=2008#35522588774444111
                 Cisco VSA(  1): xpgk-dst-number-out=35522588774444111
                 Cisco VSA(  1): xpgk-record-id=1320559294-188600
                 Cisco VSA(  1): h323-call-id=3BBDB3AE 229011E1 8D2E0024 81A9B94E
                 Cisco VSA(  1): h323-incoming-conf-id=80A4FA65 21C611E1 80EA9281 7E419725
                 Cisco VSA(  1): h323-incoming-call-id=3BBDB3AE 229011E1 8D2E0024 81A9B94E
                 Cisco VSA(  1): xpgk-route-retries=3
  }
Fri Dec 09 13:03:49 2011, (377+88-5000) ,Recv 98.124.143.51:1813        Radius
AccountingResponse {
                 session id = 147
  }

и т.д.

Все CDR ложаться в файлы по часам (в одном файле CDR за 1 час). Путь к каталогу с CDR задается произвольный (на текущий момент /mvts/billing/),
название файла должно состоять из произвольного префикса (в настоящие время используем bill) и даты/времени в формате ГГГГммдд_ччммсс, где ммсс всегда 0000, например

bill20110608_060000 - CDR файл за 2011.06.08 за 6й час (с 06:00:00 до 06:59:59)

стандартная запись CDR

 
Fri Dec 09 15:00:07 2011, HOST=98.124.143.54, SRC-NUMBER-IN=74952800435, DST-NUMBER-IN=2008#9944001800, SRC-NUMBER-OUT=74952800435, DST-NUMBER-OUT=9944001800, SRC-NUMBER-BILL=74952800435, DST-NUMBER-BILL=9944001800,
SRC-IP=178.63.116.212:42816, DST-IP=94.249.146.211:1720, SRC-RTP-IP=178.63.116.212:23898, DST-RTP-IP=217.69.174.28:17236, CONVERTER-IP=98.124.143.54:1748, SRC-USER=178.63.116.212, SRC-NAME=Fastlink_GW_64, DST-NAME=VA
ZQ_GW_1, DIALPEER-NAME=RADIUS_PEER, INITIAL-INCOMING-LOCAL-ADDRESS=98.124.143.54, SELECTED-INCOMING-LOCAL-ADDRESS=98.124.143.54, OUTGOING-LOCAL-ADDRESS=98.124.143.54, RECORD-ID=1320559294-188924, ELAPSED-TIME=0, SETU
P-TIME=14:59:07.000 -0500 Fri Dec 09 2011, CONNECT-TIME=15:00:07.000 -0500 Fri Dec 09 2011, DISCONNECT-TIME=15:00:07.000 -0500 Fri Dec 09 2011, DISCONNECT-CODE-LOCAL=103, DISCONNECT-CODE-Q931=34, SRC-BYTES-IN=1736, D
ST-BYTES-IN=73, SRC-BYTES-OUT=861, DST-BYTES-OUT=542, QOS=0, SRC-CODEC=g729 , DST-CODEC=g729 , CALLID=57e6c93e22a011e18801002481a9b94e, CONFID=0c32fb7b21d711e19c7a9ff00d54469a, PROXY-MODE=1, ROUTE-RETRIES=7, SCD-TIME
=60, SOURCE-FASTSTART=1, SOURCE-TUNNELLING=1, PDD-TIME=0, PDD-REASON=N/A

Ниже разложено по строкам:

Fri Dec 09 15:00:07 2011, 
HOST=98.124.143.54, 
SRC-NUMBER-IN=74952800435, 
DST-NUMBER-IN=2008#9944001800, 
SRC-NUMBER-OUT=74952800435, 
DST-NUMBER-OUT=9944001800, 
SRC-NUMBER-BILL=74952800435, 
DST-NUMBER-BILL=9944001800,
SRC-IP=178.63.116.212:42816, 
DST-IP=94.249.146.211:1720, 
SRC-RTP-IP=178.63.116.212:23898, 
DST-RTP-IP=217.69.174.28:17236, 
CONVERTER-IP=98.124.143.54:1748, 
SRC-USER=178.63.116.212, 
SRC-NAME=Fastlink_GW_64, 
DST-NAME=VAZQ_GW_1, 
DIALPEER-NAME=RADIUS_PEER, 
INITIAL-INCOMING-LOCAL-ADDRESS=98.124.143.54, 
SELECTED-INCOMING-LOCAL-ADDRESS=98.124.143.54, 
OUTGOING-LOCAL-ADDRESS=98.124.143.54, 
RECORD-ID=1320559294-188924, 
ELAPSED-TIME=0, 
SETUP-TIME=14:59:07.000 -0500 Fri Dec 09 2011, 
CONNECT-TIME=15:00:07.000 -0500 Fri Dec 09 2011, 
DISCONNECT-TIME=15:00:07.000 -0500 Fri Dec 09 2011, 
DISCONNECT-CODE-LOCAL=103, DISCONNECT-CODE-Q931=34, 
SRC-BYTES-IN=1736, 
DST-BYTES-IN=73, 
SRC-BYTES-OUT=861, 
DST-BYTES-OUT=542, 
QOS=0, 
SRC-CODEC=g729 , 
DST-CODEC=g729 , 
CALLID=57e6c93e22a011e18801002481a9b94e, 
CONFID=0c32fb7b21d711e19c7a9ff00d54469a, 
PROXY-MODE=1, 
ROUTE-RETRIES=7, 
SCD-TIME=60, 
SOURCE-FASTSTART=1, 
SOURCE-TUNNELLING=1, 
PDD-TIME=0, 
PDD-REASON=N/A