zoukankan      html  css  js  c++  java
  • 基于freeswitch的webrtc与sip终端呼叫

    1、安装freeswitch

    https://freeswitch.org/confluence/display/FREESWITCH/CentOS+7

    dong@ubuntu:~/freeswitch$ vi freeswitch_v1.8_install_centos7.2.sh

    复制代码
    yum install -y http://files.freeswitch.org/freeswitch-release-1-6.noarch.rpm epel-release
     
    yum install -y git alsa-lib-devel autoconf automake bison broadvoice-devel bzip2 curl-devel libdb4-devel e2fsprogs-devel erlang flite-devel g722_1-devel gcc-c++ gdbm-devel gnutls-devel ilbc2-devel ldns-devel libcodec2-devel libcurl-devel libedit-devel libidn-devel libjpeg-devel libmemcached-devel libogg-devel libsilk-devel libsndfile-devel libtheora-devel libtiff-devel libtool libuuid-devel libvorbis-devel libxml2-devel lua-devel lzo-devel mongo-c-driver-devel ncurses-devel net-snmp-devel openssl-devel opus-devel pcre-devel perl perl-ExtUtils-Embed pkgconfig portaudio-devel postgresql-devel python-devel python-devel soundtouch-devel speex-devel sqlite-devel unbound-devel unixODBC-devel wget which yasm zlib-devel libshout-devel libmpg123-devel lame-devel
    
    yum remove cmake
    cd /usr/local/src
    wget https://cmake.org/files/v3.14/cmake-3.14.0.tar.gz
    tar vzxf cmake-3.14.0.tar.gz
    cd cmake-3.14.0
    ./configure
    make
    make install
    
    cd /usr/local/src
    yum install libatomic
    git clone https://github.com/signalwire/libks.git
    cd libks
    cmake .
    make
    make install
    
    cd /usr/local/src
    git clone https://github.com/signalwire/signalwire-c.git
    cd signalwire-c/
    cmake .
    make
    make install
     
    ln -sf /usr/local/lib64/pkgconfig/signalwire_client.pc /usr/lib64/pkgconfig/signalwire_client.pc
    
    
    cd /usr/local/src/
    if false;then
    git clone https://github.com/signalwire/freeswitch.git freeswitch
    cd freeswitch
    ./bootstrap.sh
    else
    wget http://files.freeswitch.org/releases/freeswitch/freeswitch-1.8.5.tar.gz
    tar vzxf freeswitch-1.8.5.tar.gz
    cd freeswitch-1.8.5
    fi
    ./configure 
    make
    make install
    复制代码

    dong@ubuntu:~/freeswitch$ ./freeswitch_v1.8_install_centos7.2.sh

    dong@ubuntu:~/freeswitch$ cd /usr/local/freeswitch/mod

    已经有了mod_av.la 和 mod_av.so库了。

    如果需要系统音频文件

    make cd-sounds-install

    make cd-moh-install

    2、配置freeswitch

    1) Change password
    cd /usr/local/freeswitch/conf
    vi vars.xml
        Change:  <X-PRE-PROCESS cmd="set" data="default_password=1"/> {!!set it to something different!!}
        Save and close (<Esc> :wq!)

    2) Delete IPv6
    cd /usr/local/freeswitch/conf/sip_profiles
    mv internal-ipv6.xml internal-ipv6.xml.removed   {disables ipv6 support}
    mv external-ipv6.xml external-ipv6.xml.removed  {disables ipv6 support}

    3) Configuring ext-rtp-ip
    cd /usr/local/freeswitch/conf/sip_profiles/
    vi internal.xml
        <param name="ext-rtp-ip" value="182.61.xx.25"/>
        <param name="ext-sip-ip" value="182.61.xx.25"/>

    vi external.xml
        <param name="ext-rtp-ip" value="182.61.xx.25"/>
        <param name="ext-sip-ip" value="182.61.xx.25"/>

    4)stun

      <X-PRE-PROCESS cmd="stun-set" data="external_rtp_ip=stun:182.61.xx.25:3478"/>
      <X-PRE-PROCESS cmd="stun-set" data="external_sip_ip=stun:182.61.xx.25:3478"/>

    3、下载webrtc客户端sipml5(sipjs/jssip也类似)

    https://github.com/DoubangoTelecom/sipml5

    4、在sipml5根目录启动一个http服务

    1)python -m SimpleHTTPServer 8000 &

    2)访问http://192.168.18.130:8000/

    3)进入Enjoy our live demo

    4)填写sip账号信息和ws接入信息

    5)拨号

    5、stun穿透

    sip终端拨不通webrtc或者webrtc拨sip终端很久才能拨通,一般是nat穿透问题,在webrtc端加个stun服务一般能解决

    免费的stun,我验证过的就这三个能用,最好还是自己搭一个stun/turn/ice服务

    [{url:'stun:stun.schlund.de'}]
    [{url:'stun:stun.voipbuster.com'}]
    [{url:'stun:stun.xten.com'}]

    coturn和Stuntman比较好用
    coturn
    https://github.com/coturn/coturn

    Stuntman
    http://www.stunprotocol.org/
    stuntman_centos7.2_install.sh

    yum install boost
    yum install boost-devel
    yum install boost-doc
    wget http://www.stunprotocol.org/stunserver-1.2.7.tgz
    tar -zxvf stunserver-1.2.7.tgz
    make
    ./stuntestcode
    ./stunserver
    #./stunclient 182.61.xx.25 3478

    除了在webrtc端添加stun服务来解决nat穿透问题,在freeswitch端配置应该也行,我还没验证。

    6、参考设计

    基于freeSWITCH的sip协议利用WebRTC 实现实时视频聊天

    https://blog.csdn.net/graceup/article/details/79485976

    end

    https://blog.csdn.net/PKU1254/article/details/102546899

    https://blog.csdn.net/qq_33959879/article/details/100132659

    https://blog.csdn.net/weixin_42151614/article/details/82592095

    https://www.jianshu.com/p/42aef8874ebe

    https://blog.csdn.net/qq_29719097/article/details/101523874

  • 相关阅读:
    CSS命名规范
    css的img移上去边框效果及CSS透明度
    css动画之波纹
    css翻页样式
    关于Chrome的开发15个小技巧
    css三角形
    css限制图片大小,避免页面撑爆
    网易2016研发project师笔试题
    遇到 Form 性能问题怎么办 performance issue
    一个美丽的java烟花程序
  • 原文地址:https://www.cnblogs.com/dong1/p/12148731.html
Copyright © 2011-2022 走看看