Если хотите попробовать Snikket Hosting — напишите в саппорт с двумя вопросами:
1) есть ли TURN на 443/TLS для вашего инстанса;
2) где физически стоят их TURN-узлы (страна/ДЦ).
У нас некоторые мобильные операторы режут кучу зарубежных ДЦ — это тоже важно. Если у них есть узлы, например, в РФ или Сербии и ещё и 443/TLS, то всё будет ок.
Ну или просто попробуйте: у них 14-дневный trial — сразу станет понятно, работает ли из ваших сетей. Если будете тестировать — отпишитесь, очень интересно.
Если звонок Android 2 Android проходит — значит встроенный STUN/TURN у Snikket жив, а проблема, скорее всего, в клиенте под Windows/эмуляторе.
Варианты на Windows:
1) Android Emulator (официальный): включите ADB-логи (ICE/WebRTC), выдайте все разрешения. В «двойном NAT» p2p не сойдётся — нужен рабочий TURNS:443.
2) Dino под WSLg (Win 11/10 19044+): ставим WSLg, в дистре — dino + GStreamer-плагины. WSLg даёт нормальный доступ к микрофону через PulseAudio, по стабильности это лучше любого эмулятора.
3) Gajim: для голоса пока не рассчитывайте; движение есть, но в проде рано.
Короче, если Android↔Android звонится, серверную часть (встроенный TURN Snikket) считаем исправной; доводим TURNS:443 и идём либо через WSLg+Dino, либо через официальный Android Emulator.
Jitsi Desktop — старый, но рабочий, вроде умеет звонки (проект заморожен).
AstraChat — коммерческий, но простой, у меня есть ребята которые с него звонят
Movim — веб-клиент в браузере, поддерживает WebRTC-звонки.
Dino — современный, с e2e-звонками, но официально только Linux (под Win можно собрать, если заморочится).
Мне просто пока без надобности на десктопе голосовые звонки. Поэтому не разбирался глубоко. Так что если у вас получится, то пожалуйста, напишите. Это интересно.
Простите, я сначала подумал, что Snikket для прикола назвал служебный домен tamtam.chat. Но потом копнул глубже — в коде на GitHub ни строки про это не нашёл. Поставил плагин для просмотра кук — там тоже только сессия от моего домена.
В публичном коде Snikket tamtam.chat нигде не используется. Скорее всего, у вас в браузере осталась старая кука от реального мессенджера TamTam.
Да, tamtam.chat — это служебный локальный домен, который Snikket использует для авторизации. Наружу он не уходит, всё остаётся внутри контейнера. Название, конечно, забавное ))
У меня Gajim на Win11 работает без бубнов, Python отдельно ставить не нужно — он идёт уже в составе сборки. Скорее всего, это баг именно конкретной установки . Попробуйте взять «portable»-сборку с сайта Gajim.
И да, в Gajim надо вручную включить OMEMO (замочек внизу), иначе переписка идёт в открытом виде. Ну и имейте в виду — звонков в нём пока нет, только чаты.
Попробуйте поднять сервер в России, а не на зарубежном хостинге — похоже, некоторые операторы режут доступ на уровне сетей. TURN помогает только в случае, когда соединение устанавливается, но нет звука. Если страница вообще не открывается — дело в блокировках или ещё не разошедшейся DNS-записи.
nginx действительно нужен отдельно — можно поставить на хост (apt/yum install nginx), можно завернуть в отдельный контейнер. Разницы особой нет: он просто слушает 443 и по SNI решает, куда слать трафик — в Snikket или в TURN.
Ещё проверьте порты: 5222 (клиенты), 5269 (s2s), 3478/3479 (STUN), 5349/5350 (TURN), 443 (TURN/TLS) и медиадиапазон 49152–65535/UDP. Если что-то закрыто — звонки не взлетят.
Чтобы отображался статус «онлайн», нужно, чтобы контакт подтвердил подписку на presence и находился с вами в одном Круге (Circle) — это стандартные roster-группы XMPP, просто Snikket называет их по-своему. На Android ещё важно выдать приложению работу в фоне и отключить энергосбережение, на iOS — включить push-уведомления.
По звонкам: если не коннектится вовсе, чаще всего виноват блок на уровне провайдера (STUN/UDP). Решение — свой TURN на 443/TLS: трафик выглядит как HTTPS, и звонки начинают работать.
Да, сервер можно поставить и на домашний компьютер (или, например, на Raspberry Pi). Главное — пробросить порты на роутере и привязать домен. В этом случае тоже будет работать
Если хотите попробовать Snikket Hosting — напишите в саппорт с двумя вопросами:
1) есть ли TURN на 443/TLS для вашего инстанса;
2) где физически стоят их TURN-узлы (страна/ДЦ).
У нас некоторые мобильные операторы режут кучу зарубежных ДЦ — это тоже важно. Если у них есть узлы, например, в РФ или Сербии и ещё и 443/TLS, то всё будет ок.
Ну или просто попробуйте: у них 14-дневный trial — сразу станет понятно, работает ли из ваших сетей.
Если будете тестировать — отпишитесь, очень интересно.
Рад, что все ок. И спасибо за добрый отзыв.
Мне уже было самому любопытно. Сделал прямо на винде11 в wsl
запустил
dino-im
Проверил звонок и видео. Все ок. Но через turn почему-то все шло. Дальше уже не стал разбираться.
Если звонок Android 2 Android проходит — значит встроенный STUN/TURN у Snikket жив, а проблема, скорее всего, в клиенте под Windows/эмуляторе.
Варианты на Windows:
1) Android Emulator (официальный): включите ADB-логи (ICE/WebRTC), выдайте все разрешения. В «двойном NAT» p2p не сойдётся — нужен рабочий TURNS:443.
2) Dino под WSLg (Win 11/10 19044+): ставим WSLg, в дистре — dino + GStreamer-плагины. WSLg даёт нормальный доступ к микрофону через PulseAudio, по стабильности это лучше любого эмулятора.
3) Gajim: для голоса пока не рассчитывайте; движение есть, но в проде рано.
Короче, если Android↔Android звонится, серверную часть (встроенный TURN Snikket) считаем исправной; доводим TURNS:443 и идём либо через WSLg+Dino, либо через официальный Android Emulator.
Это, конечно, интересный эксперимент.
А вы пробовали в BlueStacks запускать Snikket? И дать доступ к микрофону. Если принципиально запустить на винде и еще и со звонками.
И еще Dino (Linux) и Beagle IM (macOS) - для десктоп звонков.
Я вот еще не пробовал в https://www.bluestacks.com/ru/index.html snikket засунуть. Эмулятор андроида. Может и Макс туда же за одно.
Под Windows XMPP-клиенты со звонками (Jingle):
Jitsi Desktop — старый, но рабочий, вроде умеет звонки (проект заморожен).
AstraChat — коммерческий, но простой, у меня есть ребята которые с него звонят
Movim — веб-клиент в браузере, поддерживает WebRTC-звонки.
Dino — современный, с e2e-звонками, но официально только Linux (под Win можно собрать, если заморочится).
Мне просто пока без надобности на десктопе голосовые звонки. Поэтому не разбирался глубоко. Так что если у вас получится, то пожалуйста, напишите. Это интересно.
Простите, я сначала подумал, что Snikket для прикола назвал служебный домен tamtam.chat. Но потом копнул глубже — в коде на GitHub ни строки про это не нашёл. Поставил плагин для просмотра кук — там тоже только сессия от моего домена.
В публичном коде Snikket tamtam.chat нигде не используется. Скорее всего, у вас в браузере осталась старая кука от реального мессенджера TamTam.
Я тут как раз новость видел:
«Блокировка звонков в Telegram и WhatsApp привела к тому, что Минцифры в августе зафиксировало рост голосового трафика в сетях на 20–30%.»
Большая тройка теперь озолотится.
Да, tamtam.chat — это служебный локальный домен, который Snikket использует для авторизации. Наружу он не уходит, всё остаётся внутри контейнера. Название, конечно, забавное ))
Snikket задуман как «коробка под отдельный сервер».. Всё это можно разрулить простым способом — добавить к VPS ещё один IP
У меня Gajim на Win11 работает без бубнов, Python отдельно ставить не нужно — он идёт уже в составе сборки. Скорее всего, это баг именно конкретной установки . Попробуйте взять «portable»-сборку с сайта Gajim.
И да, в Gajim надо вручную включить OMEMO (замочек внизу), иначе переписка идёт в открытом виде. Ну и имейте в виду — звонков в нём пока нет, только чаты.
Попробуйте поднять сервер в России, а не на зарубежном хостинге — похоже, некоторые операторы режут доступ на уровне сетей. TURN помогает только в случае, когда соединение устанавливается, но нет звука. Если страница вообще не открывается — дело в блокировках или ещё не разошедшейся DNS-записи.
nginx действительно нужен отдельно — можно поставить на хост (apt/yum install nginx), можно завернуть в отдельный контейнер. Разницы особой нет: он просто слушает 443 и по SNI решает, куда слать трафик — в Snikket или в TURN.
Вам спасибо, что сказали. И рад, что получилось установить.
Спасибо за внимательность. В контейнерной установке путь другой: /opt/turnserver/turnserver.conf, а не /etc/coturn (это внутри докера). Поправил.
Ещё проверьте порты: 5222 (клиенты), 5269 (s2s), 3478/3479 (STUN), 5349/5350 (TURN), 443 (TURN/TLS) и медиадиапазон 49152–65535/UDP. Если что-то закрыто — звонки не взлетят.
Чтобы отображался статус «онлайн», нужно, чтобы контакт подтвердил подписку на presence и находился с вами в одном Круге (Circle) — это стандартные roster-группы XMPP, просто Snikket называет их по-своему. На Android ещё важно выдать приложению работу в фоне и отключить энергосбережение, на iOS — включить push-уведомления.
По звонкам: если не коннектится вовсе, чаще всего виноват блок на уровне провайдера (STUN/UDP). Решение — свой TURN на 443/TLS: трафик выглядит как HTTPS, и звонки начинают работать.
Ну да, если исходить из принципа «семь бед — один ответ MAX», то конечно ))
Да, сервер можно поставить и на домашний компьютер (или, например, на Raspberry Pi). Главное — пробросить порты на роутере и привязать домен. В этом случае тоже будет работать