springboot+kurento+coturn+contos的視訊通訊服務搭建

王居三木發表於2021-06-28

springboot+kurento+coturn+contos的視訊通訊服務搭建


  • 伺服器CentOS Linux release 7.9.2009 (Core)

  • 本案例成功於20210628

  • image-20210628111715857

    1.預設伺服器已經有Docker,安裝kurento

    ##下載kurento映象
    [root@wjsmc wjsmc]# docker pull kurento/kurento-media-server:latest
    ##將埠暴露在公網3000埠
    [root@wjsmc wjsmc]# docker run -itd --name ksm -p 3000:8888 kurento/kurento-media-server /bin/bash
    ##測試
    [root@wjsmc wjsmc]# curl \
    >     --include \
    >     --header "Connection: Upgrade" \
    >     --header "Upgrade: websocket" \
    >     --header "Host: 127.0.0.1:3000" \
    >     --header "Origin: 127.0.0.1" \
    >        http://127.0.0.1:3000/kurento
    ##成功則出現以下欄位
    HTTP/1.1 500 Internal Server Error
    Server: WebSocket++/0.7.0
    
    

    2.安裝coturn

    [root@wjsmc wjsmc]# yum install coturn
    [root@wjsmc etc]# yum -y install openssl-devel libevent-devel libevent
    [root@wjsmc etc]# openssl req -x509 -newkey rsa:2048 -keyout /etc/turn_server_pkey.pem -out /etc/turn_server_cert.pem -days 99999 -nodes
    ##資訊隨便寫
    [root@wjsmc coturn]# vim /etc/coturn/turnserver.conf 
    listening-port=3478
    listening-ip=私網ip
    external-ip=公網ip
    realm=公網地址
    user=使用者名稱:密碼
    [root@wjsmc coturn]# turnserver -r 公網地址:3478 -a -o -c turnserver.conf
    [root@wjsmc coturn]# ps -ef|grep turnserver
    [root@wjsmc coturn]# kill -9 xxxx
    

    3.驗證turn

    驗證地址STUN or TURN URI,TURN username,TURN password分別填寫

    turn:你的公網地址:3478

    turnserver.conf 設定的使用者名稱

    turnserver.conf 設定的密碼

    image-20210628104319091

    出現relay說明成功

    4.設定kurento的coturn地址

    [root@wjsmc coturn]# docker exec -it ksm bash
    root@539bb198252c:/# apt-get update
    root@539bb198252c:/# apt-get install vim
    root@539bb198252c:/# vim /etc/kurento/modules/kurento/WebRtcEndpoint.conf.ini 
    turnURL=使用者名稱:密碼@ip:3478?transport=udp
    root@539bb198252c:/# exit
    [root@wjsmc coturn]# docker restart ksm 
    

    3.下載官方例項,這裡需要maven,未安裝的需要的移步安裝後回來繼續。

    [root@wjsmc coturn]# yum install git
    [root@wjsmc kurento]# git clone https://github.com.cnpmjs.org/Kurento/kurento-tutorial-java.git
    [root@wjsmc kurento]# cd kurento-tutorial-java/kurento-one2one-call
    [root@wjsmc kurento-one2one-call]# vim ./src/main/resources/static/js/index.js 
    ##將以下內容新增,修改進incomingCall(message),call(),兩函式中
    var iceservers = {
    	"iceServers": [
    		{
    			urls: ["turn:公網ip:3478"],
    			username: "xxxxx",
    			credential: "xxxx"
    		}
    	]
    };
    var options = {
        localVideo : videoInput,
        remoteVideo : videoOutput,
        onicecandidate : onIceCandidate,
        onerror : onError,
        configuration: iceservers
    }
    ##執行專案
    [root@wjsmc kurento-one2one-call]# mvn -U clean spring-boot:run     -Dspring-boot.run.jvmArguments="-Dkms.url=ws://公網ip:3000/kurento"
    

    成功!!

    踩了不少坑,連續研究了一晚上,第二天一早爬起來,終於完成。

image-20210628111715857

相關文章