如何使用OWTServer

  1. 架构图
    如何使用OWTServer_第1张图片

  2. 编译及安装

  • 下载源码
git clone https://github.com/open-webrtc-toolkit/owt-server.git
  • 安装依赖
 cd owt-server && ./script/installDepsUnattended.sh
  • 编译native模块
./script/pack.js –t mcu –check

注意:GitHub上-t的参数是all,但如果服务器不支持硬件加速,会出错,所以在此我们使用mcu参数

  • 下载及编译app
git cline https://github.com/open-webrtc-toolkit/owt-client-javascript.git
mpm install –g grunt-cli  
cd owt-client-javascript/scripts && npm install && grunt

如果想要生成debug的demo,则把grunt换成grunt debug,此时在dist目录下会生成sdk-debug目的。

  • 打包
./scripts/pack.js -t all -f -a -s ~/owt-client-javascript-4.2/dist/samples/conference/

为什么要加入owt-client-javascript?因为之后运行的时候也需要运行这个demo啊,要不然怎么测试?

  • 运行
cd owt-server/dist/ && ./bin/init-all.sh
#注意,此时会生成superName及superKey,后面登录console的时候需要使用到,并询问你是否初始化rabbitMQ及mongoDB,输入NO即可。千万别手戝点YES,否则在后面启动模块的时候会报错(如果真点击了YES,也别担心,删除当前dist目录,再执行一次打包的步骤)。
#启动所有模块服务:
./bin/start-all.sh
  1. 验证服务
  • 验证console页面
    console可以用来创建service及创建房间,后面的sip与webrtc互通就需要通过console配置来实现。
    输入http://localhost:3300/console,使用superName及superKey登录,如图:
    如何使用OWTServer_第2张图片
  • 验证app
    app及上面提到的javascript-client模块,它是web端开发的api,app只是一个基本的api调用。
    在浏览器中输入https://localhost/:3004,它订阅到的房间中的流是经过服务器MCU后的画面,如图:

    如果在web浏览器中输入https://localhost:3004/?forward=true,则订阅到的媒体流则是经过服务器SFU分发过来的,如图:
  • 验证sip Gateway
    验证sip Gateway需要console的配合。同时还需要安装SIP Server及SIP Client。
    SIP服务器:kamailio,开源在GitHub上。
    SIP Client:jitsi,开源在GitHub上。
    在此就不详细说明如何编译及安装SIP Server及SIP Client了。
    安装好它们之后,可以先验证两者是否可以正常使用。OK,正式进入OWT Server中的SIP Gateway的验证了。
  1. 登录console创建并配置房间,并记住房间ID,后续加入指定房间的时候要使用到。
  2. 配置房间(绑定SIP server及client)
    进入房间配置页面,如图:
    如何使用OWTServer_第3张图片
    找到sip配置相关行,输入sip server的ip及port,kamailio使用的默认端口是5060。再输入sip client端的name及passwd,之后点击apply使修改生效
    修改App
  3. 修改app中icsREST.API.init中的key及id,用super id及super key来代替。并重启app。
    以上创建的房间使用的是super id及super key,而默认的App Demo中使用的是exampleRoom中的id及key来验证身份,如果不修改app,则无法加入刚创建好的会议室房间。
  4. 启动jitsi
  5. 启动App
    打开web并输入https://localhost:3004/?room=${room_id},进入刚创建好的房间,不出意外,此时webrtc与sip已经互通了,如图

你可能感兴趣的:(C++,node,webrtc)