Реализация STUN / TURN / ICE с сервером Ejabberd и клиентом XMPP iOS

Я использую ejabberd-16.04 на своем Mac и XMPPFramework от robbiehanson.

Он отлично работает в чате, без проблем.

Но теперь я хочу добавить в свое приложение голосовой вызов. Я использую Jingle Protocol для установления вызова, и он отлично работает для прямой связи (т.е. и вызывающий, и вызываемый абонент находятся в одной сети).

Проблема, с которой я столкнулся, связана с кросс-сетью, и я хочу реализовать для этого Jingle ICE клиентов с NAT.

1 Может ли кто-нибудь сказать мне, как я могу включить и использовать модуль STUN / TURN на ejabberd server и то же самое на стороне клиента.
1.1 Я также сталкиваюсь с проблемами с urn:xmpp:extdisco:2 для обнаружения внешних служб.

2 Есть ли библиотека для XMPP, реализующая Jingle-ICE для iOS?


person D4ttatraya    schedule 18.05.2016    source источник
comment
Что касается ejabberd, вы действительно можете включить STUN / TURN с сервера. Вам понадобится конкретная библиотека и код на клиенте. Я не думаю, что XMPPFramework поддерживает это из коробки.   -  person Mickaël Rémond    schedule 23.05.2016
comment
Да, я узнал, что добавление ejabberd сообществом не обеспечивает STUN / TURN. Так есть ли другой сервер TURN с открытым исходным кодом, который может работать с jabbed? Кодирование на стороне клиента, я думаю, не доставит больше проблем.   -  person D4ttatraya    schedule 24.05.2016


Ответы (1)


Версия ejabberd для сообщества включает STUN и TURN. https://docs.ejabberd.im/admin/guide/configuration/#stun-and-turn Вам необходимо настроить записи SRV для STUN и TURN, чтобы клиентское обнаружение STUN / TURN работало правильно. http://wiki.xmpp.org/web/SRV_Records#STUN_SRV_records

Единственное существенное ограничение - проверка подлинности TURN не работает с хранилищем паролей SCRAM.

person Asha'man    schedule 25.07.2016