Форум программистов, компьютерный форум, киберфорум
brain-4-me
Войти
Регистрация
Восстановить пароль
Карта форума Блоги Сообщество Поиск Заказать работу  
Оценить эту запись

JsSip проблема с долгим подключением к sdp

Запись от brain-4-me размещена 17.03.2020 в 15:55

Здравствуйте! Может у кого будет еще проблема с которой я боролся три дня! В инете собирал по крупицам! В общем проблема такая, настраивали JsSip + WebRTC все работало нормально, но в один прекрасный момент дозвон стал доходить только через 40 секунд, проблем с сервером не было, STUN сервера перебрали все...
проблема заключалась (а может и не проблема) в самом JsSip (на данный момент версия 3.3.11)
есть так прекрасный Promis который заключается в отдаче sdp кандидатов браузеру для дальнейшего соединения, так вот она перебирала всех! кого только можно) итого задержка вызова +40с

а решается просто нужно заменить немного в функции
а именно (по моей версии строки 18575 - 18612)
все что там есть на
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
        return new Promise(function (resolve) {
          var listener;
          connection.addEventListener('icecandidate', listener = (event) =>
          {
            setTimeout(function()
            {
              if (connection.iceGatheringState === 'complete')
              {
                return;
              }
              debug('ICE Timeout reached!');
              connection.removeEventListener('icecandidate', listener);
              _this13._rtcReady = true;
 
              const e = { originator: 'local', type: type, sdp: connection.localDescription.sdp };
 
              debug('emit "sdp"');
 
              _this13.emit('sdp', e);
 
              resolve(e.sdp);
 
            }, 1000);
            const candidate = event.candidate;
            if (! candidate)
            {
              connection.removeEventListener('icecandidate', listener);
              _this13._rtcReady = true;
 
              const e = { originator: 'local', type: type, sdp: connection.localDescription.sdp };
 
              debug('emit "sdp"');
 
              _this13.emit('sdp', e);
              resolve(e.sdp);
            }
          });
        });
и все прекрасно соединяется за секунды!
может кому поможет) если будут вопросы спрашивайте) я на нем уже "собаку съел"

ошибка вида такого

JsSIP:RTCSession new +0ms
JsSIP:RTCSession connect() +1ms
JsSIP:RTCSession emit "peerconnection" +6ms
JsSIP:RTCSession newRTCSession() +0ms
JsSIP:RTCSession session connecting +42ms
JsSIP:RTCSession emit "connecting" +0ms
JsSIP:RTCSession createLocalDescription() +40s
Размещено в Без категории
Показов 3790 Комментарии 0
Всего комментариев 0
Комментарии
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru