Оглушить / включить использование в WebRTC

Я разрабатываю небольшое приложение webrtc в C. Я делаю вызов webrtc, используя sip-сигнализацию. У меня есть ниже вопросы относительно использования stun/turn/ice.

Когда я начинаю звонить, я отправляю сообщение INVITE с предложением (SDP). В СДП нам нужно поместить кандидатов в ICE.

У меня есть два возможных случая. Чтобы объяснить это, я возьму пример. Скажем, две конечные точки - А и В. У меня есть прокси-сервер SIP сказать P. Также у меня есть сервер поворота (поддерживает как оглушение, так и поворот), скажем, это T.

Случай 1
Все объекты A, B, P и T находятся в одной частной сети. Требуется ли разрешение STUN здесь? Если да, то с какими оглушающими запросами / ответами мне нужно иметь дело?

Дело 2
Здесь А находится в частной сети. Другие объекты B, P и T находятся в публичной сети. В этом случае я надеюсь, что нам нужно сделать STUN/TURN разрешение. Допустим, я начал с STUN и получил подходящих и рефлексивных кандидатов. Я вижу в некоторых примерах запросы Permission, Channel Bind также используются. Если я использую только STUN (без TURN), после того, как я получу кандидатов на ведущий и рефлексию, нужно ли мне что-то делать дополнительно?

Помимо этого, есть ли в C хороший клиент с открытым исходным кодом, который использует gnutls (без openssl)?

1 ответ

Решение

Случай 1 - Нет. Не требуется, как таковой. Просто нет простого способа определить, когда ПРИГЛАШЕНИЕ поступает из той же сети, в которой вы находитесь.

Случай 2 - Если вы просто используете STUN, хорошо подойдут локальный хост и рефлексивные кандидаты. TURN используется для сценариев, когда требуются реле (симметричные сценарии NAT).

Другие вопросы по тегам