Opened 6 years ago

Closed 5 years ago

#277 closed улучшение (готово)

Синхронизация регистраций SIP пользователей

Reported by: alx Owned by: alx
Priority: средний Milestone: 2 очередь
Component: any Keywords: RegSync
Cc:

Description

Сейчас плата VE-01 хранит регистрации пользователей в ОЗУ. Это приводит к тому, что они пропадают при любой перезагрузке платы - при обновлении прошивки, по watchdog'у, в результате получения ALERT из MSP и т.п. Как результат - после перезагрузки платы и до следующей регистрации пользователь не получает входящие вызовы.

В прокси-сервере repro есть функция синхронизации регистраций между двумя repro. При старте repro подключается к другому серверу и запрашивает у него все регистрации. В дальнейшем при обновлении регистрации пользователем один сервер передает обновление другому.

Предлагается использовать этот механизм для минимизации потери данных регистрации даже в случае отсутствия второго сервера. Для этого:

  • В ПО платы VE-01 создается агент. Этот агент содержит клиент, который подключается к repro, запрашивает все данные и затем получает обновления. Все полученные данные сохраняются в оперативной памяти.
  • Агент содержит сервер. repro при старте подключается к агенту и запрашивает данные регистрации (которые были сохранены и восстановлены тем или иным способом - см. ниже).
  • При возникновении событий, говорящих о вероятности перезагрузки платы (получение ALERT от MSP, отсутствие hearbeat, получение команды перезагрузки от SW-01 и т.п.) данные сохраняются в файл в ПЗУ. При последующем старте сохраненные данные восстанавливаются.
  • При каждом обновлении регистрации информация отправляется в плату SW-01 через управляющую шину SPI (Это уже сделано в целях отображения состояния регистрации в веб-интерфейсе, можно доработать существующий механизм). При старте агент может запросить у SW-01 список регистраций - этот механизм поможет даже в случае, когда сохранение в ПЗУ VE-01 невозможно (например VE-01 выдернули из кассеты или просто заменили на другую).

В проекте SW-01 уже создан соответствующий тикет, там можно посмотреть диаграммы с протоколом.

Change History (1)

comment:1 by alx, 5 years ago

Resolution: готово
Status: newclosed

Сделано в r1463.

Note: See TracTickets for help on using tickets.