Opened 6 years ago
Closed 6 years ago
#341 closed улучшение (готово)
Реализовать registrar-сервер для плат VE-01
Reported by: | alx | Owned by: | alx |
---|---|---|---|
Priority: | средний | Milestone: | 2 очередь |
Component: | sw | Keywords: | |
Cc: |
Description
В настоящее время платы VE-01 теряют данные регистрации SIP-пользователей при рестарте (например при обновлении прошивки или в результате бага). Это нехорошо, так как обновление регистрации пользователями может происходить довольно редко (типовой период регистрации - раз в час), и если перезагрузка произошла сразу после релистрации, то целый час до следующей регистрации абоненту не будут поступать входящие вызовы.
В repro есть функция, позволяющая работать двум прокси-серверам в паре, синхронизируя данные регистрации пользователей. Предлагается задействовать эту функцию в плате VE-01, но вместо второго repro использовать плату SW-01, для чего добавить в нее сервер с поддержкой соответствующего протокола. При наличии этой функции сразу после старта плата VE-01 будет обращаться к серверу платы SW-01 и получать оттуда актуальные данные регистрации, тем самым минимизируя перерыв входящей связи.
Change History (4)
comment:2 by , 6 years ago
Альтернативный вариант - передавать эти данные между SW-01 и VE-01 не по TCP/IP, а через внутреннюю шину SPI блока. Но мне интуитивно этот вариант не очень нравится...
comment:3 by , 6 years ago
Как показало дальнейшее исследование вопроса, данные регистрации передаются только от сервера к клиенту. Это значит, что для получения обновлений регистрации в реальном времени клиент платы SW-01 должен подключаться к серверу платы VE-01, а не наоборот. Направление передачи в диаграмме выше исправлено.
Учитывая открывшееся обстоятельство, вариант передачи данных по шине SPI мне нравится больше, чем реализация в плате SW-01 TCP клиента, постоянно держащего соединения с платами VE-01. Тем более что механизм передачи данных регистрации через SPI уже есть, его надо только расширить.
В проекте sip_ua создан соответствующий тикет.
Протокол обмена данными регистрации выглядит следующим образом: