Чат  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

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

Раздел для разработчиков для обсуждения программных и аппаратных продуктов и их реализации.

Модератор: april22

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

Сообщение vladimiri » 03 ноя 2019, 15:20

Привет!

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

Может быть кто-нибудь сталкивался или знает как решить эту задачу?
Спасибо
vladimiri
 
Сообщений: 3
Зарегистрирован: 03 ноя 2019, 15:10

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

Сообщение virus_net » 05 ноя 2019, 08:42

Без своей прокладки между sip.js и asterisk тут не обойтись.
мой SIP URI sip:virus_net@asterisk.ru
bitname.ru - Домены .bit (namecoin) .emc .coin .lib .bazar (emercoin)

ENUMER - звони бесплатно и напрямую.
virus_net
 
Сообщений: 2298
Зарегистрирован: 05 июн 2013, 08:12
Откуда: Москва

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

Сообщение vladimiri » 06 ноя 2019, 01:20

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

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

Сообщение virus_net » 06 ноя 2019, 08:48

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

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

Если клиент отпал, то по его реконнекту прокладка вытаскивает сообщения, помеченные его id и передаёт клиенту.
мой SIP URI sip:virus_net@asterisk.ru
bitname.ru - Домены .bit (namecoin) .emc .coin .lib .bazar (emercoin)

ENUMER - звони бесплатно и напрямую.
virus_net
 
Сообщений: 2298
Зарегистрирован: 05 июн 2013, 08:12
Откуда: Москва

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

Сообщение vladimiri » 06 ноя 2019, 10:05

В целом оно так и работает, но при обрыве связи у прокладки с астериском нет механизма восстановления существующих каналов. Собственно об этом и вопрос.
vladimiri
 
Сообщений: 3
Зарегистрирован: 03 ноя 2019, 15:10

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

Сообщение virus_net » 07 ноя 2019, 08:48

Собственно так и надо было написать в первом посте.
Из первого поста следует вопрос о разрыве между сип.жс и астером, но никак не о астериск и прокладке.

Тогда ответом будет: Скорее всего никак.
Почему скорее всего? Потому, что без допила стороны астериска не обойтись. А тут вы должны хорошо знать си или искать программиста.
мой SIP URI sip:virus_net@asterisk.ru
bitname.ru - Домены .bit (namecoin) .emc .coin .lib .bazar (emercoin)

ENUMER - звони бесплатно и напрямую.
virus_net
 
Сообщений: 2298
Зарегистрирован: 05 июн 2013, 08:12
Откуда: Москва


Вернуться в Разработка

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

© 2008 — 2019 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH