Программирование > Perl
Бинарник
vladsu:
--- Цитировать ---DartSidius:
я просто пытаюсь декодировать бинарник от цифровой АТС SI2000 . . . файлы AMA
--- Конец цитаты ---
Я почему-то так и подумал с самого начала.
Честно говоря даже и не знаю чем Вам помочь, если у Вас есть дока с описанием формата ленты, то вообще не вижу никаких проблем, если же доки нет, то будет очень трудно, если не сказать не возможно. Приходилось декодить EWSD12 по доке EWSD7, потом 2 года баги чистили.
Вообще рекомендую книгу, лучшая из всех что я видел в направлении обработки данных в Перл.
DartSidius:
--- Цитировать ---vladsu:
Я почему-то так и подумал с самого начала.
Честно говоря даже и не знаю чем Вам помочь, если у Вас есть дока с описанием формата ленты, то вообще не вижу никаких проблем, если же доки нет, то будет очень трудно, если не сказать не возможно. Приходилось декодить EWSD12 по доке EWSD7, потом 2 года баги чистили.
Вообще рекомендую книгу, лучшая из всех что я видел в направлении обработки данных в Перл.
--- Конец цитаты ---
Описание ленты есть . . . просто я ничё понять не могу в этих 40 листах . . . вернее понимаю, но не пойму как привязаться к перлу это всё . . .
Книжку поищу, спасибо!
DartSidius:
Начал действовать вот так
open(FILE,"123.ama");
binmode FILE;
while() {
open(F,">>1.txt");
print F unpack("b*",$_) . "\\n";
close(F);
}
close(FILE);
в итоге получил файл с двоичным кодом . . . может можно теперь попробовать перегнать кода в нормальный вид?
DartSidius:
7.1. Записи о вызовах
Записи о вызовах состоят из фиксированной и переменной частей. Фиксированная часть записи
содержит информацию о типе записи (базовый вызов, FAIS, FAU,...) и ее назначении (тарификация,
PMOB, MOB, DEB,...), информацию о номере абонента, действия которого привели к созданию
записи. Переменная часть записи состоит из информационных элементов, которые выбираются в
зависимости от типа записи. Любая запись начинается с фиксированной части, за которой могут
следовать информационные элементы переменной части записи.
Положение
поля
Длина поля Часть записи
1 16+(от 2 до 19) Фиксированная часть для всех записей
17 m Переменная часть в зависимости от типа записи
Переменная часть может содержать следующие информационные элементы:
Информационный элемент Длина Тип записи
Вызов FAIS FAU
100 Вызываемый номер (Called number) от 4 до 22 X
101 Номер абонента, на которого передан вызов (Call
accepting party number)
от 5 до 23 X (a)
102 Дата и время начала вызова (Start date and time) 9 X X X
103 Дата и время завершения вызова (End date and time) 9 X X
104 Количество тарифных импульсов (Number of charging
units)
4 X X X
105 Базовая услуга (Basic service) 3 X X
106 Дополнительная услуга у инициатора вызова
(Supplementary service used by calling subscriber)
2 X (b) X
107 Дополнительная услуга у вызванного абонента
(Supplementary service used by called subscriber)
2 X (c)
108 Администрирование услуги абонентом (Subscriber’s
control input)
3 X
109 Последовательность введенных символов
(Dialed digits)
от 3 до 32 X
110 Исходящая категория (Origin category) 2 X X X
111 Тарифное направление (Tariff direction) 3 X X X
(*9*) 112 Причина безуспешного вызова (Failure cause) 2 X (d)
113 Идентификация входящей соединительной линии
(Incoming trunk data)
9 X (e)
114 Идентификация исходящей соединительной линии
(Outgoing trunk data)
9 X (e)
(*1*) 115 Длительность вызова или использования
дополнительной услуги (Call / service duration)
5 X X (f)
8 FUN559000-PCR-150
(*2*) 116 Контрольная сумма (Checksum) 4 X X X
(*3*) 117 Бизнес-группа и центрекс-группа (Business and
centrex group id)
6 X (g) X (g) X (g)
(*4*) 118 Код доступа сети (Carrier access code) от 3 до 7 X (h)
(*3*) 119 Оригинальный номер вызывающего абонента
(Original calling party number)
от 3 до 23 X (i)
(*5*) 120 Данные о пополнении предоплаченного счета
(Prepaid account recharge data)
15 X (j)
(*6*) 121 Причина разъединения вызова (Call release
cause)
5 X (k) X X
(*6*) 122 CBNO (Charge Band Number) 5 X (l)
(*7*) 123 Общий идентификатор вызова (Common Call Id) 6 X (m)
(*7*) 124 Время до ответа (Durations Before Answer) 10 X (n)
(*8a*) 125 VoIPинформация (VoIP Info) 5 X (o)
(*8a*) 126 Количество передаваемых данных Data
(Amount of transferred Data)
5 X (o)
(*8*) 127 IPадреса (IP Addresses) 4 + 4n X (o)
(*10*) 128 VoIPинформация (VoIP Info) 13 X (o)
(*10*) 129 Количество передаваемых данных Data
(Amount of transferred Data)
25 X (k,
o)
DartSidius:
8.2.1. Фиксированная часть записи
Поле Пози-
ция
Длина Наименование поля Формат
поля
1 1 1 Идентификатор типа записи (200) bin
2 2 2 Длина записи bin
3 4 4 Индекс записи bin
4 8 4 Идентификатор вызова bin
5 12 3 F8 F7 F6 F5 F4 F3 F2 F1 bin
F16 F15 F14 F13 F12 F11 F10 F9
Резерв F19 F18 F17
6 15 1 Последовательность Состояние учета
стоимости
bin
7 16 1 Длина кода зоны Длина списочного номера bin
8 17 n Код зоны и списочный номер абонента, действия
которого инициировали создание записи
BCD
Навигация
Перейти к полной версии