Консоль биллинга и протокол EcoBRAS EcoNAT Documentation / Консоль биллинга и протокол EcoBRAS
Для взаимодействия с системой биллинга в EcoSGE используется специализированный проприетарный протокол EcoBRAS, который является простым текстовым протоколом.
Для его работы необходимо установить соединение с портом 2225 управляющего интерфейса EcoSGE, после чего происходит обмен строками запросов (к EcoSGE) и ответов EcoSGE.
В случае неверной строки запроса EcoSGE немедленно принудительно закрывает соединение, не высылая строку ответа.
Длина строки запроса не может превышать 64 килобайта. Строки запросов и ответов заканчиваются символом ASCII LF (код 0x0A).
Строка запроса может содержать в себе символы ASCII CR (код 0x0D), но они будут игнорироваться.
Протокол поддерживает следующие команды:
testRID
add
- ads
- remove
- killcontract
- statall
- clearall
Команда testRID
По запросу testRID выдаётся подряд список пар НОМЕРДОГОВОРА-НОМЕРТАРИФА. Система биллинга использует эту информацию для синхронизации списков, чтобы определить, какого номера договора нет в EcoSGE, а какой является лишним.
B: testRID
E: 1-40 18-8 19-8 24-8 26-21 27-16 31-41 35-21 37-28 40-21 41-8 55-28 82-34 135-21 143-40 146- 40 147-31 155-34 163-45 182-34 202-41 207-40 209-16 212-34 213-34 215-41 217-43 220-34 227-16 228-31 231-40 232-16 240-34 242-28 244-34
Если в EcoSGE отсутствуют номера договоров (например, если устройство только загрузилось), то ответом будет пустая строка.
B: testRID
E:
Сразу после загрузки подсистема BRAS работает в режиме пропускания всего трафика (для того чтобы абоненты обслуживались в то время, пока еще не загружена информация из системы биллинга). После поступления первого testRID включается таймер, который в течение 600 секунд держит режим пропускания всего трафика (в это время могут поступать новые testRID). По прошествии 10 минут действие таймера закончится, и при поступлении следующего testRID BRAS переключится в основной режим работы (когда запрещён трафик от тех абонентов, которые в системе биллинга не разрешены явно). Состояние таймера можно узнать с помощью команды time.
Команда add
B: add 24372 {oid} LIM10M/LIM10M 10.21.0.208, 10.210.0.207, // RULE43
E:
Команда add добавляет политику для абонента с указанным номером контракта.
В случае успеха BRAS возвращает пустую строку. В случае неуспеха закрывает соединение.
Если команда содержит IP-адреса ранее авторизованных абонентов, то к ним будут применены новые параметры, указанные в команде: номер контракта, номер тарифа, ограничения скорости.
Синтаксис команды add описан в таблице ниже.
№ | Поле | Содержание поля | Описание поля |
---|---|---|---|
1 | add | 3 символа | Команда – добавить контракт |
2 | TAB | Разделитель | |
3 | 24372 | Любая комбинация цифр и прописных и строчных латинских букв (не более 16 символов) | Идентификатор контракта |
4 | TAB | Разделитель | |
5 | {oid} | Строка 5 символов | Тип контракта (в нашем случае всегда фиксированная строка '{oid}') |
6 | SPACE | Разделитель | |
7 | LIM10M | Строка: LIM значение скорости K/M/G или UNLIM | Скорость upstream (в Интернет). K/M/G – означают кило/мега/гига бит. Например, LIM64K – 64 Кбит/с. UNLIM – без ограничения скорости |
8 | / | Символ '/' | Разделитель |
9 | LIM10M | строка | Скорость downstream (из Интернета) |
10 | SPACE | Разделитель пробел | |
11 | 10.21.0.208, | IP адрес, разделитель‘,’ | IP-адрес абонента (могут следовать несколько подряд, каждый из IP-адресов получает те скорости, которые заданы для этого контракта) |
12 | SPACE | Разделитель | |
13 | // | 2 символа | |
14 | SPACE | Разделитель | |
15 | RULE | 4 символа | |
16 | 43 | Число | Номер тарифа абонента (ID тарифа в биллинге) |
17 | LF | Конец строки запроса |
Команда ads
Команда ads добавляет абонентов в общий контракт.
B: ads 24372 {oid} LIM10M/LIM10M 10.21.0.208, 10.21.0.207, // RULE43
E:
Синтаксис команды ads описан в таблице ниже.
№ | Поле | Содержание поля | Описание поля |
---|---|---|---|
1 | ads | 3 символа | Команда – добавить общий контракт |
2 | TAB | Разделитель | |
3 | 24372 | Любая комбинация цифр и прописных и строчных латинских букв (не более 16 символов) | Идентификатор контракта |
4 | TAB | Разделитель | |
5 | {oid} | Строка 5 символов | Тип контракта (в нашем случае всегда фиксированная строка '{oid}') |
6 | SPACE | Разделитель | |
7 | LIM10M | Строка: LIM значение скорости K/M/G или UNLIM | Скорость downstream (из Интернета). K/M/G – означают кило/мега/гига бит. Например, LIM64K – 64 Кбит/с. UNLIM – без ограничений скорости |
8 | / | Символ '/' | Разделитель |
9 | LIM10M | строка | Скорость upstream (в Интернет) |
10 | SPACE | Разделитель пробел | |
11 | 10.21.0.208, | IP-адрес, разделитель ‘,’ | IP-адрес абонента (могут следовать несколько подряд, каждый из IP-адресов получает те скорости, которые заданы для этого контракта) |
12 | SPACE | Разделитель | |
13 | // | 2 символа | |
14 | SPACE | Разделитель | |
15 | RULE | 4 символа | |
16 | 43 | Число | Идентификатор конкретного правила в таблице EcoBRAS |
17 | LF | Конец строки запроса |
Команда remove
B: remove 24372 {oid} LIM10M/LIM10M 10.21.0.208, 10.210.0.207,
E:
Команда remove позволяет удалять IP-адреса абонентов из всех контрактов, в которых они указаны. Синтаксис команды описан в таблице ниже.
№ | Поле | Содержание поля | Описание поля |
---|---|---|---|
1 | remove | 6 символов | Команда удаления IP-адресов из контрактов |
2 | TAB | Разделитель | |
3 | 24372 | Любая комбинация цифр и прописных и строчных латинских букв (не более 16 символов) | Примечание. Данное поле в случае с командой remove требуется исключительно для её правильной интерпретации обработчиком команд. Можно указать любое значение. |
4 | TAB | Разделитель | |
5 | {oid} | Строка 5 символов | Тип контракта (в нашем случае всегда фиксированная строка '{oid}') |
6 | SPACE | Разделитель | |
7 | LIM10M | Строка: LIM значение скорости K/M/G (килобит/мегабит/гигабит) или UNLIM | Примечание. Данное поле в случае с командой remove требуется исключительно для её правильной интерпретации обработчиком команд. Можно указать любое значение. |
8 | / | Символ '/' | Разделитель |
9 | LIM10M | строка | Примечание. Данное поле в случае с командой remove требуется исключительно для её правильной интерпретации обработчиком команд. Можно указать любое значение. |
10 | SPACE | Разделитель пробел | |
11 | 10.21.0.208, | IP адрес, разделитель‘,’ | IP-адрес абонента. Можно указать несколько адресов через запятую. |
12 | LF | Конец строки запроса |
Команда killcontract
Команда killcontract позволяет деавторизовать всех абонентов, привязанных к определённому контракту.
B: killcontract 24372 {oid}
E:
Синтаксис команды описан в таблице ниже.
№ | Поле | Содержание поля | Описание поля |
---|---|---|---|
1 | killcontract | 12 символов | Команда деавторизации всех абонентов, привязанных к контракту |
2 | TAB | Разделитель | |
3 | 24372 | Любая комбинация цифр и прописных и строчных латинских букв (не более 16 символов) | Идентификатор контракта |
4 | TAB | Разделитель | |
5 | {oid} | Строка 5 символов | Тип контракта (в нашем случае всегда фиксированная строка '{oid}') |
Команда statall
На порту с номером 2225 также доступна сервисная команда statall, по вызову которой выводится информация о трафике всех абонентов.
$ telnet 2.2.2.2 2225
Trying 2.2.2.2...
Connected to 2.2.2.2.
Escape character is '^]'.
statall
10.210.0.81: rx_bytes=5630281 tx_bytes=1211117 rx_packets=6201 tx_packets=11017
10.210.0.82: rx_bytes=133560825 tx_bytes=7870065 rx_packets=109851 tx_packets=53843
10.210.0.83: rx_bytes=0 tx_bytes=0 rx_packets=0 tx_packets=0
Команда clearall
Данная команда используется для удаления всех политик, добавленных через консоль биллинга.