RADIUS в формате MVTS¶
- Table of contents
- 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