Приложение для видеочата WebRTC Android, не может заставить одно устройство звонить другому - PullRequest
0 голосов
/ 10 июня 2018

Это может звучать глупо, но я очень долго искал, как это сделать, и все, что я получаю, только запутывается: / Я сделал приложение для видеочата webRTC, и оно работает просто отличносейчас мне нужно, как позвонить одному андроид-устройству с другого, когда тот хочет позвонить первым, я имею в виду, что до сих пор я должен вводить одно и то же имя комнаты на обоих устройствах, чтобы иметь возможность совершать видеозвонок, а это не практичноПотому что в реальной жизни как другой партнер или пользователь устройства узнает, что кто-то хочет ему позвонить, я читал о SIP, но, похоже, это не то, что я ищу, пожалуйста, помогите.

1 Ответ

0 голосов
/ 10 июня 2018

WebRTC несет ответственность за PeerConnection Не звонить на устройство и обращаться с пользователями.Это ваши собственные данные, которые вам нужно обрабатывать самостоятельно.

Вот где SignalingServer Приходит на вечеринку.Как только вы createOffer() из userId(lets say id is 2) и отправите его на ваш Singnalling сервер с целевым идентификатором userSocketId (здесь я отображаю userId в SocketId, вы также можете отобразить некоторые другие поля).

Если Socket-получатель зарегистрировался, он сразу же получит запрос на входящий вызов с информацией о вызывающем абоненте, которую вы указали в packet.Затем вы можете позвонить на устройство.
Видите, я не могу объяснить все функции здесь, но вы должны понять одну вещь. Вам придется использовать Signalling server для обмена текстовыми данными между двумя устройствами.

В основном вам нужно иметь ID, на который вы хотите позвонить, тогда только сигнальный сервер будет передавать Особые данные на стороне получателя.Таким образом, вам нужна облачная база данных, в которой сохраняется вся информация о пользователе.

Вы можете следовать Образец, упомянутый здесь .signalling server в этом примере использует NODE.JS, который легко понять и изменить, если вы знакомы с Java.

Редактировать: - Если вы ищете точку, с которой вы должны начать RING.Что ж, он должен звонить всякий раз, когда вы получаете Offer, и вы открываете свой вызывающий пользовательский интерфейс (активность).

Держите одну вещь в уме ICECandiates не должно быть потеряно, так что используйте правильное рукопожатие между обеими сторонами доотправка ICECandiates списков, потому что это основа для настройки PeerConnection.

 public void startCallNotification() {
    Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE);
    ringtone  = RingtoneManager.getRingtone(this, notification);
    ringtone.play();
    vibrator = (Vibrator)getSystemService(Context.VIBRATOR_SERVICE);
    long[] vibrationCycle = {0, 1000, 1000};
    if (vibrator.hasVibrator()) {
        vibrator.vibrate(vibrationCycle, 1);
    }
}

Просто вызывайте метод выше, когда вы получаете предложение.Очевидно, что вам нужно разобраться с некоторыми другими случаями, такими как потеря интернета на стороне вызывающего абонента и сброс соединения, ожидание ICECandidates.

Все пойдет не так, если вы сначала поймете архитектуру WebRTC.Так что я скромно рекомендую сначала прочитать структуру.Вы можете начать с Это и Это или аналогичные блоги на WEBRTC.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...