VOIP 语音视频通话
实现的功能分两个phase。
phase 1 要实现的功能:
–两个浏览器之间实现视频 语音 文本交流。
phase 2 要实现的功能:
–实现桌面 APP, 网页端, Android APP 端 视频 语音互通。
涉及到的工具(技术栈)
- Node.js
–> 用作 https web server,承载 网页 客户端的 内容。
–> 选择的理由是 Node.js 是基于 JavaScript的, 这样前后端学习一门语音就OK了,机智如我,O(∩_∩)O哈哈~ - freeswitch
–> 作为 VOIP 的 信令 server。
–> 本feature使用的通信信令是 SIP。 - webrtc
–> webrtc 为当前实现网页端实时视频通话必选,别无他选。 - jssip
–> 使用 JavaScript 实现的 SIP协议栈。
–> 信令使用到的是SIP,这个库可以使客户端直接发出 SIP信令。
工作流程: - 网页 client 1,2 分别从webserver 请求到网页。
- client 1 发送链接请求到 SIP server。SIP server 转发到 Client 2.
- 两个客户端通过信令交互得知彼此的 IP port 信息(这里比如牵扯到 NAT及防火墙穿透,以后分析)以及 双方支持的媒体属性。
- 基于step 3 中协商好的内容就可以进行实时视频语音通信。
phase 2的内容以后会逐渐补充。
接下来会一步一步实现 phase 1 中的功能。