3. Использование EGTS_ECALL_SERVICE
3.1. В рамках сервиса EGTS_COMMAND_SERVICE используется подзапись EGTS_SR_COMMAND_DATA, описание которой представлено в Таблице N 9.
Таблица N 9. Список подзаписей сервиса EGTS_COMMAND_SERVICE
┌──────┬─────────────────────────┬────────────────────────────────────────┐
│ Код │ Наименование │ Описание │
├──────┼─────────────────────────┼────────────────────────────────────────┤
│ 0 │EGTS_SR_RECORD_RESPONSE │Применяется для подтверждения процесса│
│ │ │обработки записи протокола уровня│
│ │ │поддержки услуг. Данный тип подзаписи│
│ │ │поддерживается всеми сервисами. │
├──────┼─────────────────────────┼────────────────────────────────────────┤
│ 51 │EGTS_SR_COMMAND_DATA │Подзапись используется абонентским│
│ │ │терминалом и аппаратно-программным│
│ │ │комплексом для передачи команд,│
│ │ │информационных сообщений, подтверждений│
│ │ │доставки, подтверждений выполнения│
│ │ │команд, подтверждения прочтения│
│ │ │сообщений. │
└──────┴─────────────────────────┴────────────────────────────────────────┘
3.2. Подзапись EGTS_SR_COMMAND_DATA
Структура подзаписи представлена в Таблице N 10.
Таблица N 10. Формат подзаписи EGTS_SR_COMMAND_DATA
сервиса EGTS_COMMANDS_SERVICE
┌────┬────┬────┬─────┬─────┬──────┬──────┬──────┬───┬───────┬─────────────┐
│Бит │Бит │Бит │ Бит │Бит 3│Бит 2 │Бит 1 │Бит 0 │Тип│ Тип │Размер, байт │
│ 7 │ 6 │ 5 │ 4 │ │ │ │ │ │данных │ │
│ │ │ │ │ │ │ │ │ │ │ │
├────┴────┴────┴─────┼─────┴──────┴──────┴──────┼───┼───────┼─────────────┤
│ CT (Command Type) │CCT (Command Confirmation │ M │ BYTE │ 1 │
│ │ Type) │ │ │ │
├────────────────────┴──────────────────────────┼───┼───────┼─────────────┤
│ CID (Command Identifier) │ M │ UINT │ 4 │
├───────────────────────────────────────────────┼───┼───────┼─────────────┤
│ SID (Source Identifier) │ M │ UINT │ 4 │
├─────────────────────────────────┬──────┬──────┼───┼───────┼─────────────┤
│ - │ ACFE │CHSFE │ M │ BYTE │ 1 │
├─────────────────────────────────┴──────┴──────┼───┼───────┼─────────────┤
│ CHS (Charset) │ O │ BYTE │ 1 │
├───────────────────────────────────────────────┼───┼───────┼─────────────┤
│ ACL (Authorization Code Length) │ O │ BYTE │ 1 │
├───────────────────────────────────────────────┼───┼───────┼─────────────┤
│ AC (Authorization Code) │ O │BINARY │ 0 ... 255 │
├───────────────────────────────────────────────┼───┼───────┼─────────────┤
│ CD (Command Data) │ O │BINARY │ 0 ... 65205 │
└───────────────────────────────────────────────┴───┴───────┴─────────────┘
где:
CT - тип команды:
0001 - CT_COMCONF - подтверждение о приеме, обработке или результат выполнения команды;
0010 - CT_MSGCONF - подтверждение о приеме, отображении и/или обработке информационного сообщения;
0011 - CT_MSGFROM - информационное сообщение от абонентского терминала;
0100 - CT_MSGTO - информационное сообщение для вывода на устройство отображения;
0101 - CT_COM - команда для выполнения на абонентском терминале;
0110 - CT_DELCOM - удаление из очереди на выполнение переданной ранее команды;
0111 - CT_SUBREQ - дополнительный подзапрос для выполнения (к переданной ранее команде);
1000 - CT_DELIV - подтверждение о доставке команды или информационного сообщения;
CCT - тип подтверждения (имеет смысл для типов команд CT_COMCONF, CT_MSGCONF, CT_DELIV):
0000 - CC_OK - успешное выполнение, положительный ответ;
0001 - CC_ERROR - обработка завершилась ошибкой;
0010 - CC_ILL - команда не может быть выполнена по причине отсутствия в списке разрешенных (определенных протоколом) команд или отсутствия разрешения на выполнение данной команды;
0011 - CC_DEL - команда успешно удалена;
0100 - CC_NFOUND - команда для удаления не найдена;
0101 - CC_NCONF - успешное выполнение, отрицательный ответ;
0110 - CC_INPROG - команда передана на обработку, но для ее выполнения требуется длительное время (результат выполнения еще не известен);
CID - идентификатор команды, сообщения. Значение из данного поля используется стороной, обрабатывающей/выполняющей команду или сообщение, для создания подтверждения. Подтверждение содержит в поле CID то же значение, что содержалось в самой команде или сообщении при отправке;
SID - идентификатор отправителя (уровня прикладного ПО) данной команды или подтверждения;
ACFE - (Authorization Code Field Exists) битовый флаг, определяющий наличие полей ACL и AC в подзаписи:
1 - поля ACL и AC присутствуют в подзаписи;
0 - поля ACL и AC отсутствуют в подзаписи;
CHSFE - (Charset Field Exists) битовый флаг, определяющий наличие поля CHS в подзаписи:
1 - поле CHS присутствует в подзаписи;
0 - поле CHS отсутствует в подзаписи;
CHS - кодировка символов, используемая в поле CD, содержащем тело команды. При отсутствии данного поля по умолчанию используется кодировка CP-1251. Определены следующие значения поля CHS (десятичный вид):
0 - CP-1251;
1 - IA5;
2 - бинарные данные;
3 - Latin 1;
4 - бинарныеданные;
5 - JIS;
6 - Cyrillic;
7 - Latin/Hebrew;
8 - UCS2;
ACL - длина в байтах поля AC, содержащего код авторизации на стороне получателя;
AC - код авторизации, использующийся на принимающей стороне (абонентский терминал), который обеспечивает ограничение доступа на выполнение отдельных команд. Если указанный в данном поле код не совпадает с ожидаемым значением, то в ответ на такую команду или сообщение абонентский терминал отправляет подтверждение с типом CC_ILL;
CD - тело команды, параметры, данные возвращаемые на команду-запрос, использующие кодировку из поля CHS, или значение по умолчанию. Формат команды описан в Таблице N 11. Данное поле имеет нулевую длину (отсутствует) в тех случаях, когда в ответ на команду или сообщение для абонентского терминала не передаются никакие данные.
Таблица N 11. Формат команд терминала
┌─────┬─────┬────┬─────┬─────┬─────┬─────┬────┬───┬─────────┬─────────────┐
│ Бит │ Бит │Бит │ Бит │ Бит │ Бит │ Бит │Бит │Тип│ Тип │Размер, байт │
│ 7 │ 6 │ 5 │ 4 │ 3 │ 2 │ 1 │ 0 │ │ данных │ │
├─────┴─────┴────┴─────┴─────┴─────┴─────┴────┼───┼─────────┼─────────────┤
│ ADR (Address) │ M │ USHORT │ 2 │
├──────────────────────┬──────────────────────┼───┼─────────┼─────────────┤
│ SZ (Size) │ ACT (Action) │ M │ BYTE │ 1 │
├──────────────────────┴──────────────────────┼───┼─────────┼─────────────┤
│ CCD (Command Code) │ M │ USHORT │ 2 │
├─────────────────────────────────────────────┼───┼─────────┼─────────────┤
│ DT (Data) │ O │ BINARY │ 0 ... 65200 │
└─────────────────────────────────────────────┴───┴─────────┴─────────────┘
где:
ADR - адрес модуля, для которого данная команда предназначена;
SZ - объем памяти для параметра (используется совместно с действием ACT = 3. При добавлении нового параметра в абонентский терминал данное поле определяет, что для нового параметра требуется 2SZ байт памяти в абонентском терминале;
ACT - описание действия, используется в случае типа команды (поле CT = CT_COM подзаписи EGTS_SR_COMMAND_DATA). Поле принимает значение, выбранное из следующих вариантов:
0 - параметры команды. Используется для передачи параметров для команды, определяемой кодом из поля CCD;
1 - запрос значения. Используется для запроса информации, хранящейся в абонентском терминале. Запрашиваемый параметр определяется кодом из поля CCD;
2 - установка значения. Используется для установки нового значения определенному параметру в абонентском терминале. Устанавливаемый параметр определяется кодом из поля CCD, а его значение полем DT;
3 - добавление нового параметра в абонентский терминал. Код нового параметра указывается в поле CCD, его тип в поле SZ, а значение в поле DT;
4 - удаление имеющегося параметра из абонентского терминала. Код удаляемого параметра указывается в поле CCD;
CCD - код команды при ACT = 0 или параметра при ACT = 1 ... 4;
DT - запрашиваемые данные или параметры, необходимые для выполнения команды.
Подтверждение на ранее переданную команду при CT = CT_COMCONF, если с абонентского терминала передается сопутствующая информация, имеет формат, описанный в Таблице N 12. Описанная структура содержится в поле CD (Таблица N 10).
Таблица N 12. Формат подтверждения на команду
абонентского терминала
┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬───┬──────┬──────────────┐
│ Бит │ Бит │ Бит │ Бит │ Бит │ Бит │ Бит │ Бит │Тип│ Тип │ Размер, │
│ 7 │ 6 │ 5 │ 4 │ 3 │ 2 │ 1 │ 0 │ │данных│ байт │
├─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┼───┼──────┼──────────────┤
│ ADR (Address) │ M │USHORT│ 2 │
├───────────────────────────────────────────────┼───┼──────┼──────────────┤
│ CCD (Command Code) │ M │USHORT│ 2 │
├───────────────────────────────────────────────┼───┼──────┼──────────────┤
│ DT (Data) │ O │BINARY│ 0 ... 65200 │
└───────────────────────────────────────────────┴───┴──────┴──────────────┘
где:
ADR - адрес модуля, от которого передается подтверждение;
CCD - код команды или параметра, в соответствии с которым передается сопутствующая информация в поле DT;
DT - сопутствующие данные, тип и состав которых определяется значением поля CCD.
4. Использование EGTS_ECALL_SERVICE
4.1. Список и описание команд абонентского терминала и подтверждений, необходимых для реализации услуги экстренного реагирования при авариях, представлены в Таблице N 13.
Таблица N 13. Список команд для абонентского терминала
┌──────────────────┬──────┬────────────┬──────────────────────────────────┐
│ Название команды │ Код │ Тип, │ Описание │
│ │ │количество и│ │
│ │ │ предельные │ │
│ │ │ значения │ │
│ │ │ параметров │ │
├──────────────────┼──────┼────────────┼──────────────────────────────────┤
│EGTS_ECALL_REQ │0x0112│ BYTE/0,1 │Команда на осуществление│
│ │ │ │экстренного вызова с абонентского│
│ │ │ │терминала. │
│ │ │ │Используется только через SMS. │
│ │ │ │Команда содержит один параметр,│
│ │ │ │который определяет тип события: │
│ │ │ │0 - ручной вызов; │
│ │ │ │1 - автоматический вызов │
├──────────────────┼──────┼────────────┼──────────────────────────────────┤
│EGTS_ECALL_MSD_REQ│0x0113│BINARY │Команда на осуществление│
│ │ │(MID INT, │повторной передачи МНД.│
│ │ │TRANSPORT │Используется только через SMS. │
│ │ │BYTE) │Команда содержит два параметра: │
│ │ │ │MID - идентификатор сообщения│
│ │ │ │запрашиваемого МНД. Если параметр│
│ │ │ │MID = 0, то отправляется │
│ │ │ │новое сообщение; │
│ │ │ │TRANSPORT - тип используемого│
│ │ │ │абонентского терминала при│
│ │ │ │отправке МНД: │
│ │ │ │0 - любой, на усмотрение│
│ │ │ │абонентского терминала; │
│ │ │ │1 - через голосовой канал; │
│ │ │ │2 - через SMS; │
│ │ │ │3 - через сервис пакетной│
│ │ │ │передачи данных │
└──────────────────┴──────┴────────────┴──────────────────────────────────┘
Подтверждения на команды EGTS_ECALL_REQ и EGTS_ECALL_MSD_REQ, отправленные на абонентский терминал через SMS, не передаются. Признаком успешного прохождения команды до абонентского терминала является уведомление о доставке SMS. Признаком выполнения данных команд является повторный Экстренный вызов для EGTS_ECALL_REQ и повторная передача МНД для EGTS_ECALL_MSD_REQ.