2017-01-15 2 views
-3

Привет Я использую AppRTCDemo и его работу на своем сервере. Как бы то ни было, текущий механизм обмена именами чатов и входа в одну комнату соединяет сверстников.Добавить механизм набора/приема сигналов для AppRTCDemo на стороне клиента

Но я хочу, чтобы набрать вызов с одного устройства для приема вызова от другого устройства, а затем сверстники должны войти в комнату для видео-сессии,

Я искал много, я придумал для этого я нужен сигнальный сервер, которого у меня нет, и не хочу на него нажимать,

Теперь в этой ситуации, как другое устройство может узнать, какое устройство набирается и использует определенное имя комнаты для принятия и ввода та же комната для видеозвонка на стороне клиента в Android.

https://github.com/njovy/AppRTCDemo

+0

Вы мне не очень понятны .. В основном видеозвонок осуществляется через Peer-Peer Connection. Поэтому, пожалуйста, уточните, что такое точная проблема. – Gattsu

+1

@ Maveň Я думаю, что заголовок вопроса должен быть ** Как поделиться «roomID» с другим пользователем, которому вы хотите получить доступ **. : D – Gattsu

ответ

0

Есть два Android APK для WebRTC, appRtcDemo и webRtcDemo. appRtcDemo apk может использоваться для подключения Android к подключению к браузеру. Вам необходимо предоставить идентификатор номера для подключения к одной комнате. Если вы являетесь инициатором комнаты, вам необходимо ввести -1. Если вы хотите подключить два устройства Android, вам необходимо скомпилировать и установить webRtcDemo apk. Этот интерфейс apk предоставляет место для ввода IP-адреса другого устройства, и наоборот, тогда оба устройства будут подключены.

Перейди через ->http://www.webrtc.org/reference/getting-started

Для получения более подробной информации. Оба apks я скомпилировал и установил и проверил, как это работает.

Я смог успешно сделать звонки между двумя устройствами Android, используя webrtcdemo. Но я тестировал WLAN в своей офисной сети. Я не использовал его дальше, потому что использовал apprtcdemo для ссылки на приложение. Мое предложение заключается в том, что вы вводите удаленный ip в webrtcdemo, просто проверьте, не отключена ли обратная связь. Я думаю, для вас включен loop-back, поэтому вы получаете свой собственный пакет видео, хотя вы ввели удаленный ip. Убедитесь, что при выполнении вызова отключена обратная связь.

0

Очень хорошее объяснение можно найти в этой книге http://chimera.labs.oreilly.com/books/1230000000545/ch03.html#STUN_TURN_ICE , которая содержит основы того, как WebRTC использует технологию ICE.

enter image description here

В частности, предполагая, что IP-адрес сервера STUN известно, применение WebRTC сначала отправляет запрос привязки к серверу STUN. Сервер STUN отвечает ответом, который содержит общедоступный IP-адрес и порт клиента, как видно из общедоступной сети.

Теперь приложение обнаруживает свой общедоступный IP-адрес и кортеж портов, который может отправлять другому партнеру через SDP. (обратите внимание, что SDP отправляется по внешнему сигнальному каналу, fi websocket, установленному через веб-службу)

С помощью этого механизма на месте, когда два одноранговых узла хотят разговаривать друг с другом через UDP, они могут затем использовать установленный общедоступный IP-адрес и кортежей портов для обмена данными.

К сожалению, в некоторых случаях UDP может быть заблокирован брандмауэром. Чтобы устранить эту проблему, всякий раз, когда STUN терпит неудачу, мы можем использовать протокол Traversal Using Relays вокруг протокола NAT (TURN) как резерв, который может работать через UDP и переключиться на TCP, если все остальное не работает.

WebRTC предоставляет приложение SDP клиенту JS-приложение для отправки (однако приложение JS) на другое устройство, которое использует это для генерации ответа SDP.

Фокус в том, что SDP включает кандидатов ICE (эффективно «попробуйте поговорить со мной по этому IP-адресу и этому порту»). ICE работает, чтобы открыть открытые порты в брандмауэрах; хотя, если обе стороны являются симметричными NAT, это будет невозможно вообще, и может быть использован альтернативный кандидат (на сервере TURN).

Как только они разговаривают напрямую (или через TURN, что фактически является зеркалом пакета), они могут открывать соединение DTLS и использовать его для подключения медиа-потоков SRTP-DTLS и для отправки DataChannels через DTLS.

Редактировать: Акроним здесь: http://blog.1click.io/10-jargons-abbreviations-for-webrtc-fans/ для отдыха, есть Google. Большинство из них определяются IETF (http://ietf.org/)

Edit 2: Firefox и Chrome (и спецификации) перешли к использованию «ручеек» для кандидатов ICE, поэтому кандидаты ICE, как правило, добавляют после того, как-лицо к PeerConnection и обмениваться независимо от первоначальной SDP (хотя вы можете подождать, пока первые кандидаты не будут готовы до отправки предложения, и свяжите их вместе). См. https://webrtcglossary.com/trickle-ice/ и https://datatracker.ietf.org/doc/draft-ietf-ice-trickle/

Смежные вопросы