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.