﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	resolution	keywords	cc
282	"Избавиться от передачи данных как ""хэш в хэше"""	alx	alx	"Сейчас некоторые конфигурационные данные передаются от SW-01 в VE-01 в форме ""хэш в хэше"" с двойным кодированием, то есть один хэш (JSON-объект) кодируется в строку и помещается в другой хэш как строка. В настоящее время так передаются список групп вызова и маршруты SIP.

Такое двойное кодирование плохо тем, что внутренний хэш содержит кавычки (""), которые дополняются обратным слэшем при кодировании внешнего хэша, что увеличивает размер строки и может привести к тому, что результат не поместится в пакет для передачи плате. В результате VE-01 не получит список групп вызова и/или маршрутов.

Предлагается изменить способ передачи плате VE-01 подобных списков: передавать список по элементам, предполагая, что один элемент (одна группа вызова и/или один маршрут) гарантированно поместятся в один пакет. Для определения начала и конца списка передаваемый хэш дополняется ключами ""start""  или ""end"" (подобно тому, как это делается при передаче списка пользователей).

Для обратной совместимости (старая прошивка SW-01 и новая прошивка VE-01) плата VE-01 должна проверять ключ ""data"", наличие которого будет говорить о том, что данные передаются старым способом.

Для прямой совместимости (старая прошивка VE-01 и новая прошивка SW-01) SW-01 должна проверять, поддерживает ли VE-01 новый метод передачи списков. Сделать это можно:
- проверкой флага FEATURES (но нужна гарантия, что эти флаги будут получены платой SW-01);
- проверкой наличия какой-то переменной в MIB платы VE-01 после его получения;
- чтением какой-то переменной (например ревизии прошивки);
- запросом ревизии прошивки сообщением типа 3 командой 1.

В качсетве workaround уменьшить максимальный размер передаваемого фрагмента данных с 900 до 450 байт - такой фрагмент должен поместиться в буфер пакета даже если он целиком состоит из кавычек, и поэтому перед каждым символом будет добавлен ""\""."	баг	new	средний	1 очередь	any			
