Я разрабатываю небольшое приложение webrtc на C. Я делаю вызов webrtc, используя sip-сигнализацию. У меня ниже запросов относительно использования оглушения/поворота/льда.Использование Stun/Turn в WebRTC
Когда я начинаю звонок, я посылаю INVITE с предложением (SDP). В SDP нам нужно поставить кандидатов ICE.
У меня есть два возможных случая. Чтобы объяснить это, я приведу пример. Скажем, две конечные точки: A и B. У меня есть прокси-сервер sip сказать P. Также у меня есть сервер очереди (поддерживает как оглушение, так и поворот), скажем, это T.
Case 1
Все объекты , B, P и T в той же частной сети. Требуется ли разрешение STUN? Если да, то каковы все оглушающие запросы/ответы, с которыми мне нужно иметь дело?
Случай 2
Здесь находится в частной сети. Прочие организации B, P и T находятся в общественной сети. В этом случае я надеюсь, что нам нужно сделать разрешение STUN/TURN. Допустим, я начал с STUN и получил приглашенных и рефлексивных кандидатов. В некоторых примерах я вижу, Права, Запросы канала связи. Если я использую только STUN (нет TURN), после того, как я получу хост и рефлексивные кандидаты, мне нужно сделать что-нибудь лишнее?
Кроме того, есть ли хороший открытый источник, доступный для клиента stun/turn в C, который использует gnutls (no openssl)?
Итак, в случае 2, изначально я отправлю запрос связывания STUN, из ответа я получу кандидаты на хост и рефлексивные кандидаты. Я продолжу использовать IP/порт, присутствующий в рефлексивном кандидате для создания SDP, и продолжите вызов. Теперь мне нужно отправить еще один запрос STUN во время жизни этого вызова. Просьба уточнить. – Kamal
Нет, нет. STUN используется только для сбора вашего рефлексивного кандидата на сервер. После этого вам это больше не нужно. – Tahlil
Чтобы проверить, я установил sipml5 (sip-webrtc client в javascript) на две машины в частной сети. Sip-сервер, который я использовал в общедоступной сети (sip2sip.info). Я позвонил между двумя конечными точками sipml5. Я заметил, что первоначально sipml5 отправляет запрос о оглушении на оглушающий сервер, после установления соединения я вижу, что пакеты stun bind обмениваются между двумя конечными точками sipml5. Почему это так, здесь обе конечные точки sipml5 находятся в моей сети, в идеале они не должны обмениваться запросами на привязку привязки. Это потому, что я использую публичный сервер оглушения и общедоступный сервер sip? – Kamal