Voipnotes
Услуги
  • 3CX Phone System
    • Купить IP АТС - 3CX Phone System
Ещё
    Задать вопрос
    +7 (499) 113-65-73
    Заказать звонок
    sale@voipnotes.ru
    г. Москва 2-й Михайловский проезд 9
    +7 (499) 113-65-73
    Заказать звонок
    Voipnotes
    Услуги
    • 3CX Phone System
      • Купить IP АТС - 3CX Phone System
      Voipnotes
      Услуги
      • 3CX Phone System
        • Купить IP АТС - 3CX Phone System
        Voipnotes
        Voipnotes
        • Услуги
          • Назад
          • Услуги
          • 3CX Phone System
            • Назад
            • 3CX Phone System
            • Купить IP АТС - 3CX Phone System
        • +7 (499) 113-65-73
        sale@voipnotes.ru
        г. Москва 2-й Михайловский проезд 9
        • Главная
        • Блог
        • WebRTC: Asterisk 13 + Sipml5

        WebRTC: Asterisk 13 + Sipml5

        5 Мая 2015

        WebRTC (Web Real Time Communication (веб-коммуникация в режиме реального времени)) — это открытый стандарт для внедрения возможностей передачи потоковых данных в реальном времени непосредственно в веб-браузере или через другие поддерживающие его приложения по технологии точка-точка. WebRTC поддерживается в Google Chrome, Mozilla Firefox и Opera.

        Для осуществления вызовов из браузера используется специальное приложение (SIP-клиент для браузера) - SIPML5. Приложение написано на Javascript и позволяет использовать браузер в качестве VoIP телефона.

        Мы будем использовать:

        • Centos 6.6
        • Asterisk 13
        • sipML5

        Первым делом обновим нашу систему:

        yum update

        Установим необходимые пакеты:

        yum install gcc-c++ make gnutls-devel kernel-devel libxml2-devel ncurses-devel subversion doxygen texinfo curl-devel net-snmp-devel neon-devel uuid-devel libuuid-devel sqlite-devel sqlite git speex-devel gsm-devel

        Если хотите быстро установить все зависимости для Asterisk, то можно перейти в /usr/src/asterisk-13.3.2/contrib/scripts/ и выполнить команды:

        ./install_prereq install
        ./install_prereq install-unpackaged
         

        Если хотите все сделать вручную, то переходим в папку /usr/src/ и скачиваем Asterisk, libsrtp,jansson, pjproject.

        wget http://srtp.sourceforge.net/srtp-1.4.2.tgz
        wget http://www.digip.org/jansson/releases/jansson-2.5.tar.gz
        wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13-current.tar.gz
        wget http://www.pjsip.org/release/2.2.1/pjproject-2.2.1.tar.bz2
        Устанавливаем libsrtp:

        tar zxvf srtp-1.4.2.tgz
        cd srtp
        autoconf
        ./configure
        make
        make install
        cp /usr/local/lib/libsrtp.a /libcd ..

        Устанавливаем библиотеку pjproject. Для х64 систем папка должна быть «–libdir=/usr/lib64», а для x32 «–libdir=/usr/lib».

        cd /usr/src
        tar -xjvf pjproject-2.2.1.tar.bz2
        cd pjproject-2.2.1
        CFLAGS='-DPJ_HAS_IPV6=1' ./configure --prefix=/usr --enable-shared --disable-sound\
        --disable-resample --disable-video --disable-opencore-amr --libdir=/usr/lib
        make dep
        make
        make install

        Устанавливаем Jansson. Для х64 систем папка должна быть «–libdir=/usr/lib64», а для x32 «–libdir=/usr/lib».

        tar zxvf jansson-2.5.tar.gz
        cd jansson-2.5
        ./configure --libdir=/usr/lib
        make
        make install
        cd ..

        Устанавливаем Asterisk. Для х64 систем папка должна быть «–libdir=/usr/lib64», а для x32 «–libdir=/usr/lib»

        tar –xzvf asterisk-13-current.tar.gz
        cd /usr/src/asterisk-13.1.0 && make clean
        ./configure --libdir=/usr/lib --with-crypto --with-ssl --with-srtp=/usr/lib
        contrib/scripts/get_mp3_source.sh
        make menuselect
        make
        make install
        make samples
        make config
        chkconfig asterisk on

        Теперь нам нужно сгенерировать сертификаты:

        mkdir /etc/asterisk/keys
        cd /usr/src/asterisk-13.1.0/contrib/scripts
        /ast_tls_cert -C voipnotes.ru -O "Voipnotes" -d /etc/asterisk/keys

        В процессе генерации скрипт попросит вас установить пароль на сертификат.

         

        Установка закончена, теперь нам нужно отредактировать конфигурационные (sip.conf, http.conf, rtp.conf, extensions.conf) файлы Asterisk.

        Первым делом переходим в /etc/asterisk/sip.conf, и в секции [general] расскоментируем и добавим следующие параметры:

        [general]
        udpbindaddr=0.0.0.0:5060
        realm= например voip.voipnotes.ru
        transport=udp,ws

        ; добавим пару номеров для Web-клиентов

        [800]
        host=dynamic
        secret=YouPassword
        context=from-internal
        type=friend
        encryption=yes
        avpf=yes
        icesupport=yes
        directmedia=no
        disallow=all
        allow=ulaw
        allow=alaw
        dtlsenable=yes
        dtlsverify=fingerprint
        dtlscertfile=/etc/asterisk/keys/asterisk.pem
        dtlscafile=/etc/asterisk/keys/ca.crt
        dtlssetup=actpass

        [801]
        host=dynamic
        secret=YouPassword
        context=from-internal
        type=friend
        encryption=yes
        avpf=yes
        icesupport=yes
        directmedia=no
        disallow=all
        allow=ulaw
        allow=alaw
        dtlsenable=yes
        dtlsverify=fingerprint
        dtlscertfile=/etc/asterisk/keys/asterisk.pem
        dtlscafile=/etc/asterisk/keys/ca.crt
        dtlssetup=actpass

        Переходим в /etc/asterisk/http.conf и в секции [general] расскоментируем и добавим следующие параметры:

        [general]
        enabled=yes
        bindaddr=0.0.0.0
        bindport=8088

        Переходим в /etc/asterisk/rtp.conf и в секции [general] расскоментируем и добавим следующие параметры:

        [general]
        rtpstart=10000
        rtpend=20000
        icesupport=yes
        stunaddr=stun.l.google.com:19302

        Переходим в /etc/asterisk/extensions.conf и настраиваем Dialplan:

        [from-internal]

        exten => 8XX,1,Answer()
        same => n,DIAL(SIP/${EXTEN})
        same => n,Hangup()

        Основную часть работы мы сделали, осталось только установить и настроить sipml5.

         

        Установим sipml5 к себе на сервер:

        cd /var/www/html/
        svn checkout http://sipml5.googlecode.com/svn/trunk/ sipml5
        chown -R asterisk:asterisk /var/www/html/sipml5

        Теперь sipml5 установлен на вашем сервере. В браузере переходим по ссылке http://IP-адрес вашего сервера/sipml5/call.htm (в нашем случае https://voip.voipnotes.ru/sipml5/call.htm)

         

        Настраиваем приложение:

        Display Name: Отображаемое имя

        Private Identity*: Внутренний номер

        Public Identity*: sip: внутренний номер @ ip-адрес или доменное имя сервера, где установлен Asterisk

        Password: Пароль

        Realm*: ip-адрес или доменное имя сервера, где установлен Asterisk

        webrtc-sipml.jpg

        Нажимаем Expert mode и выполняем следующие настройки:

        в Expert mode

        WebSocket Server URL[2]: ws://webrtc.pbxware.ru:8088/ws

        ICE Servers[4]: [{ url: 'stun:stun.l.google.com:19302'}]

        webrtc-sipml1.jpg

        Сохраняемся, логинимся, настраиваем второй номер, и теперь можем совершать вызовы между двумя web-клиентами.

         

        Если вы в статье нашли ошибки или несоответствия, мы будем благодарны, если вы напишите нам о них в комментариях.

        Нужна консультация?

        Наши специалисты ответят на любой интересующий вопрос

        Задать вопрос
        Поделиться
        Назад к списку
        © 2021 Все права защищены.
        +7 (499) 113-65-73
        Заказать звонок
        sale@voipnotes.ru
        г. Москва 2-й Михайловский проезд 9
        Политика конфиденциальности
        Версия для печати
        © 2021 Все права защищены.
        Заказать звонок
        Написать сообщение