Оглушить / включить использование в 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).