Библиотека JsSIP - Нет запроса или ответа для метода вызова
Я использую библиотеку JsSIP для подключения к своему SIP-серверу freeswitch и звоню по нему. Вот мой код, который является примером кода на странице Gsub JsSIP:
jssip_1.debug.enable('JsSIP:*');
var socket = new jssip_1.WebSocketInterface('wss://85.85.8.5:7443');
var configuration = {
sockets: [socket],
uri: 'sip:282132646427442@abc.xyz',
password: '123456',
register_expires: 1800,
};
var ua = new jssip_1.UA(configuration);
ua.start();
// Register callbacks to desired call events
var eventHandlers = {
'progress': function (e) {
console.log('call is in progress');
},
'failed': function (e) {
console.log('call failed with cause: ' + e.data.cause);
},
'ended': function (e) {
console.log('call ended with cause: ' + e.data.cause);
},
'confirmed': function (e) {
console.log('call confirmed');
}
};
var options = {
'eventHandlers': eventHandlers,
'mediaConstraints': { 'audio': true, 'video': true },
'extraHeaders': [
'X-rol: caller',
'X-rid: 01',
'X-src-app: 12345' ,
'X-srv: a2a',
'X-ver: 1'
],
};
setTimeout(function () {
var session = ua.call('sip:25896456525@abc.xyz', options);
}, 3000);
С этим кодом я отправляю запрос на регистрацию, и соединение успешно установлено. Я положил некоторые журналы связи здесь:
JsSIP: Транспортное отправляющее сообщение:
Зарегистрироваться sip:@abc.xyz SIP/2.0
Через: SIP/2.0/WSS hdnbf6qreal4.invalid; ответвление =z9hG4bK8363908
Макс-Форвардс: 69
To: sip: 282132646427442@abc.xyz>
От: sip: 282132646427442@abc.xyz>; tag = gkej80tf03
Call-ID: fnblcnmvcbr9p61nl9slv0
CSeq: 2 РЕГИСТРАЦИЯ
Авторизация: алгоритм дайджеста = MD5, username = "282132646427442", realm = "abc.xyz", nonce = "16352d5c-d761-43f0-af0b-7eb4bfd607c0",
uri = "sip: abc.xyz", response = "f8c20be99ca1b84b5a6bf805c84662dd",
qop = auth, cnonce = "75c61daautv7", nc = 00000001
Контакт: +sip.ice; р-ID = 1 +sip.instance=""; истекает = 1800
Истекает: 1800
Разрешить: ПРИГЛАСИТЬ, ПОДТВЕРЖДИТЬ, ОТМЕНИТЬ, БАЙ, ОБНОВЛЕНИЕ, СООБЩЕНИЕ, ОПЦИИ, ССЫЛКА, ИНФОРМАЦИЯ
Поддерживается: путь, груу, исходящий
Пользователь-агент: JsSIP 3.2.15
Длина контента: 0
JsSIP: Транспорт получил текстовое сообщение:
SIP / 2.0 200 OK
Через: SIP/2.0/WSS hdnbf6qreal4.invalid; ответвление =z9hG4bK8363908; получено =192.168.104.182;rport=57890
От:; tag = gkej80tf03
To:; tag = r672gj5BUmH1m
Call-ID: fnblcnmvcbr9p61nl9slv0
CSeq: 2 РЕГИСТРАЦИЯ
Контакт:; истекает =497
Контакт: истекает = 1800
Дата: вс, 04 ноября 2018 12:56:14 GMT
Пользователь-агент: FreeSWITCH-mod_sofia/1.6.13+git~20161214T213702Z~d422498d0f~64bit
Разрешить: ПРИГЛАСИТЬ, ACK, BYE, ОТМЕНА, ОПЦИИ, СООБЩЕНИЕ, ИНФОРМАЦИЯ, ОБНОВЛЕНИЕ, РЕГИСТРАЦИЯ, ССЫЛКА, УВЕДОМЛЕНИЕ
Поддерживается: таймер, путь, заменяет
После этого я ожидал, что отправлю и получу сообщение типа INVITE, чтобы начать вызов, но в консоли браузера ничего не печаталось:
JsSIP: вызов UA () +3s browser.js:183 JsSIP:RTCSession новый +22м
browser.js: 183 JsSIP: RTCSession connect () + 1ms
browser.js: 183 JsSIP: RTCSession отправляет "peerconnection" + 4ms
browser.js: 183 JsSIP: RTCSession newRTCSession () + 1 мс
browser.js: 183 JsSIP: сбой сеанса RTCSession +81 мс
browser.js: 183 JsSIP: RTCSession close () + 1ms
browser.js: 183 JsSIP: RTCSession сгенерировал "сбой" +2ms
Есть ли проблема в моем коде или на моем сервере? Я проверил логи сервера, но после регистрации нет ни одного запроса на звонок.