Здравствуйте! Может у кого будет еще проблема с которой я боролся три дня! В инете собирал по крупицам! В общем проблема такая, настраивали 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
|