Страница 1 из 1

pjsip websocket переподключение после обрыва связи

СообщениеДобавлено: 03 ноя 2019, 15:20
vladimiri
Привет!

У меня стоит задача - переподключиться к websocket-каналу после обрыва соединения, чтобы уже идущие звонки корректно обработались по этому каналу и в итоге завершились.
Сценарий - регистрируюсь через sip.js, инициирую звонок, звонок идёт в процессе.
Дальше я убиваю TCP соединение, клиент sip.js переподключается, заново регистрируется, создаётся новый канал и сообщения о завершении звонков (SIP BYE например) из предыдущего канала в новый канал не попадают.
Хотелось бы чтобы сообщения из старого канала всё таки попадали в новый канал или можно было бы подключиться напрямую к старому каналу.

Может быть кто-нибудь сталкивался или знает как решить эту задачу?
Спасибо

Re: pjsip websocket переподключение после обрыва связи

СообщениеДобавлено: 05 ноя 2019, 08:42
virus_net
Без своей прокладки между sip.js и asterisk тут не обойтись.

Re: pjsip websocket переподключение после обрыва связи

СообщениеДобавлено: 06 ноя 2019, 01:20
vladimiri
я уже реализовал сип (не полностью), мне теперь надо понять как подсоединить существующие каналы к новому контакту.
В принципе параллельно я могу дёрнуть ARI/AMI если есть такая возможность, но хотелось бы остаться в рамках SIP.

Re: pjsip websocket переподключение после обрыва связи

СообщениеДобавлено: 06 ноя 2019, 08:48
virus_net
Формируете уникальный ID при подключении
WS клиента. Затем или сообщаете его ему, чтобы он и при последующих коннектах сообщал его прокладке или надо подумать как составить id основываясь на клиентских данных, например юзер+пароль или иной инфе известной о клиенте на момент первого коннекта.

Всем сообщениям, которые приходят к юзеру от астера, внутри прокладки помечаете этим id.
Так же у прокладки должна быть очередь.

Если клиент отпал, то по его реконнекту прокладка вытаскивает сообщения, помеченные его id и передаёт клиенту.

Re: pjsip websocket переподключение после обрыва связи

СообщениеДобавлено: 06 ноя 2019, 10:05
vladimiri
В целом оно так и работает, но при обрыве связи у прокладки с астериском нет механизма восстановления существующих каналов. Собственно об этом и вопрос.

Re: pjsip websocket переподключение после обрыва связи

СообщениеДобавлено: 07 ноя 2019, 08:48
virus_net
Собственно так и надо было написать в первом посте.
Из первого поста следует вопрос о разрыве между сип.жс и астером, но никак не о астериск и прокладке.

Тогда ответом будет: Скорее всего никак.
Почему скорее всего? Потому, что без допила стороны астериска не обойтись. А тут вы должны хорошо знать си или искать программиста.