У FreePBX есть Web Sip клиент. Мне было интересно как он работает. Начав изучать технологию WebRTC я наткнулся на 3 библиотеки — это JsSIP, его fork SIP.js, а также sipml5.
JsSIP и SIP.js не удалось запустить с первого раза, не хватало опыта. А вот sipml5 оказался самым простым в применении. Скачав его тестовую версию, получилось совершить первый звонок.
Все 3 библиотеки работоспособны. У каждой есть свои сильные и слабые стороны. Протестировав все 3 библиотеки, остановил выбор на JsSIP.
Здесь будет краткое руководство как пользоваться их API. В свое время нужно было привязать отправку и получение смс к своему программному обеспечению. Каждый раз лазить в вебморду смс сервера от GoIP и проверять вх./исх. сообщения было неудобно.
В Интернете довольно много примеров настройки. Но ни один из них у меня не заработал как надо. Одной из проблем с которой я столкнулся было неправильное определение линии при входящем звонке. В свое время нигде не нашел мануал для решения этой проблемы. Поэтому решил выложить свою версию инструкции здесь. Заодно и шпаргалка для себя на будущее.
Настройка GoIP
«Configurations» — «Preferences»
GSM шлюз находится в локальной сети без доступа в Интернет. Настроим NTP сервер в локальной сети для раздачи времени. При перезагрузке GSM шлюз синхронизируется и правильно показывает текущее время. Можете пропустить этот шаг, тогда придется вручную выставлять время на шлюзе. Если есть выход в Интернет, то укажите один из публичных NTP серверов.
В Time Server пропишем IP адрес NTP сервера.
Укажем часовой пояс, у меня Time Zone: GMT+6.
Отключим Auto Reboot. С последней версией прошивки проблемы с зависанием GSM шлюза не наблюдаются.