Использование WEBRTC в собственных разработках

Материал из wiki.sipnet.ru
Перейти к: навигация, поиск

Весь движок WEBRTC находится в одном файле https://www.sipnet.ru/ximsswrapper.js
Все проекты сипнет (кроме интеграции с AmoCRM) используют этот скрипт.
Код проекта открыт и не сложен для восприятия. Документации пока нет.

Основа это ximsswrapper.js - в этом файле вся мощь и сила РМО и мониторинг РМА.

  1. Подключаем <script type="text/javascript" src="./ximsswrapper.js"></script>;
  2. Делаем логин:
    ximssSession.doLogin(login,password,domain, false)
    
  3. Ловим статус логина в функции:
    ximssSession.onXimssSuccessLogin=function(){ ... }
    
  4. В функции логин вызываем ximssSession.ximssSignalBind(); - она сделает регистрацию для приема входящих вызовов;
  5. Делаем звонок
    ximssSession.doStartCall(peer,line, audioInputSelect.value,true)
    
    .

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

ximssSession.onXimssCallConnected=function(line, withVideo){ ... } 
ximssSession.onXimssCallIncoming=function(peer, peerName, isVideo, cid){ ... } 
ximssSession.onXimssCallDisconnected=function(errorText,line){ ... }

Кроме ximsswrapper.js необходимо подключить еще две обязательные библиотеки ximssclient.js и adapter.js.

Обратите внимание, что библиотека https://www.sipnet.ru/webrtc/detector.js должна находится именно на этом сервере, ее нельзя просто скопировать на свой сервер. Эта библиотека нужна только в особых случаях. Например когда Ваш код должен по разному себя вести, если браузер клиента не поддерживает технологию webrtc.

Для тех, кто заинтересовался, есть тестовый стенд собранный на ximsswrapper.js.
Вы можете посмотреть в качестве примера на https://webrtc.sipnet.ru/webrtc-sipnet/