这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » 软件与操作系统 » 基于VoIP视频语音通话系统构建(三、四)

共7条 1/1 1 跳转至

基于VoIP视频语音通话系统构建(三、四)

高工
2023-02-01 15:20:41     打赏

4.2.2 服务端设计

主要包含三个服务模块。

(1) 信令服务

采用freeswitch实现SIP信令的转发,freeswitch是非常通用的一款IVR,其功能十分强大,采用Sofia的SIP协议栈,媒体流分三种不同的方式,其一为媒体流转发模式,可以实现不同协议的压缩流的之间的转换;其二为媒体旁路模式也可称之为透传模式,媒体只是通过服务进行转发而不管媒体流的压缩格式;其三为单纯的信令模式,只转发媒体SDP信息进行数据交互双方的数据桥接作用,媒体流数据是通过另外的媒体服务进行传输。其中在第一种媒体模式可以进行计费、计时、录音等服务,对于商业应用是非常好的一套功能,当然本设计主要采用第三种方式,只是应用了Sofia的SIP协议栈,视频数据采用其他的媒体服务进行转发,音频数据P2P的方式传输。

(2) 穿透服务

穿透服务采用Coturn实现NAT穿透的P2P通讯方式,其主要由两种穿透方式组成,其一为STUN穿透服务,其二为TURN穿透服务;STUN(Session Traversal Utilities for NAT,NAT会话穿越应用程序) 主要目的是链接Peer两端的外网IP和端口进行绑定处理,将对端的双方链接到一条临时通道上,所有数据带宽压力在Peer对端的网络上,使得双方可以用UDP的传输方式进行传输,目前也同时支持TCP模式,由于NAT的网络的复杂性,在中国据有关统计50%的网络是无法用STUN进行穿透的,故出现了TURN的模式;TURN(Traversal Using Relay NAT) 是通过Relay方式穿越NAT,主要数据是通过TURN服务进行数据的转发,所有数据带宽的压力处于TURN服务器的网络上,但本设计穿透服务数据仅限音频数据,故对服务端的数据带宽压力是非常小的。

(3) 视频流服务

采用Nginx+RtmpModule实现Nginx是由俄罗斯伊戈尔塞耶夫创作的一款非常强大的源代码以类BSD许可证的形式发布,其主要由HTTP服务、反向代理服务组成同时也提供IMAP/POP3/SMTP的邮件服务,因其稳定性、丰富的功能集、简单的配置文件和低系统资源消耗而闻名,在和RtmpModule结合后形成了一套完美的流媒体服务架构。


4.2.3 客户端设计

客户端主要包括五个模块。

(1) SIP协议栈模块

采用oSIP+eXosip轻量协议,应用于对端(UAC/UAS) 间会话发起响应信息SDP的交互,因其小巧遵循IETF并且开放源码而广泛应用于电信系统中,其具有优越的稳定性,被用于实时操作系统Vxworks上;在PC端应用广泛的同时也支持一些手持设备,并将在IOT等设备上大放异彩。因其各种优越的表现,结合本设计中的硬件资源性能方面,故最终被选为多媒体终端SIP通信模块的构建。

(2) Audio模块

此模块是基于HI3516EV200模组而产生,HI3516EV200在音频处理方面更上一层楼,主要体现在降噪和回音消除方面,在主叫端设备采用HI3516EV200,用于发起会话,收发音频数据。在被叫端设备采用HI3516DV300硬件平台,用于模拟被叫端,建立会话链接,收发音频数据,采集视频数据。

(3) Video模块

此模块基于HI3516DV300模组而产生,用于视频的采集、处理、压缩、打包为RTMP的数据格式发送至服务端用于用户在PC设备上利用VLC打开观看视频。

(4) NAT数据链接模块

采用Libnice开源代码项目实现,此架构类似于WEBRTC中应用的NAT穿透服务,支持STUN和TURN模式的NAT穿透方式,同时其功能库主要采用glib-2.0库的接口进行代码的编写,所以对Linux的平台支持的很好,同时glib-2.0在Linux的应用程序开发中也提供了不少的API接口,在开发中可以节约不少时间。

(5) 进程调度模块

此模块主要用于对以上模块建立的进程进行管理,包括加载初始参数数据、配置处理参数存储数据结构等。

(6) 数据存储模块

以文本的方式JSON的数据格式来存储多媒体模块的一些进程加载的初始化数据。

 




关键词: sip客户、服务端设计    

高工
2023-02-01 21:01:41     打赏
2楼

感谢分享


专家
2023-02-01 21:12:00     打赏
3楼

感谢分享


高工
2023-02-01 21:54:25     打赏
4楼

感谢分享


院士
2023-02-02 08:33:11     打赏
5楼

感谢分享


高工
2023-02-06 08:56:44     打赏
6楼

学习了!谢谢分享!


高工
2023-02-13 22:40:53     打赏
7楼
感谢分享

共7条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]