
Javascript-плагин для библиотеки Oktell.js, реализующий SIP-софтфон в браузере на основе технологии WebRTC. Позволяет совершать вызовы прямо из браузера.
На данный момент поддерживаются браузеры Chrome и Chromium.
Oktell-voice.js основан на библиотеке JsSIP
Oktell-voice.js работает с библиотекой Oktell.js версии 1.5.3 и выше.
При использовании Oktell-voice.js в библиотека Oktell.js управляет веб-телефоном. Например, вызов метода oktell.call инициирует звонок из браузера. Также доступны дополнительные методы, например answer, dtmf.
Oktell-voice.js использует технологию WebRTC для передачи голоса. При запросе доступа к микрофону браузеры выводят дополнительную панель, на которой пользователь может разрешить или не разрешить веб-странице доступ к микрофону.
Если страница открыта по http, то браузер будет запрашивать доступ при каждой загрузке страницы. Если по https, то браузер выведет запрос только один раз и запомнит выбор для сайта.
Так как работа библиотеки возможна только если пользователь разрешит ей доступ к микрофону, рекомендуется перед соединением с сервером Oktell вывести запрос доступа с помощью метода oktellVoice.createUserMedia.
Oktell-voice вызывает события mediaPermissionsRequest, mediaPermissionsAccept, mediaPermissionsRefuse при показе панели запроса доступа, разрешении пользователем доступа к микрофону и отказе доступа соответственно. Подписавшись на них можно уведомлять пользователя о необходимости разрешения доступа. Пример:
<script type="text/javascript">
$(function(){
var connect = function() {
oktell.connect({
url: '192.168.0.1:81',
login: 'ivanov.a',
oktellVoice: true,
password: 'TYW$5hgHW$th',
callback: function(data) {
if ( data.result ) {
// успешное подключение
}
}
});
}
var onMediaRequestSuccess = function(){
connect();
}
var onMediaRequestError = function(){}
// запрос доступа к микрофону
oktellVoice.createUserMedia( onMediaRequestSuccess, onMediaRequestError );
oktellVoice.on('mediaPermissionsRequest', function(){
// показать попап для уведомления пользователя о необходимости разрешения доступа
});
oktellVoice.on('mediaPermissionsAccept', function(){
// скрыть попап
});
oktellVoice.on('mediaPermissionsRefuse', function(){
// показать попап о невозможности продолжения работы приложения
});
});
</script>