FreeSWITCH是一个开源的软交换平台,具有模块化结构,支持包括WebRTC在内的多种互通互联。本文来自FreeSWITCH 中文社区创始人杜金房在LiveVideoStack线上交流分享中的演讲,详细介绍了FreeSWITCH的功能特性、架构以及现状。
文 / 杜金房
整理 / LiveVideoStack
大家好,我是杜金房,此次分享和双向通讯服务器FreeSWITCH以及WebRTC有关。首先我会为大家简单介绍FreeSWITCH,鉴于FreeSWITCH主要用于通信领域,我也会介绍WebRTC并阐述FreeSWITCH与WebRTC的关系,同时结合FreeSWITCH的其他功能和使用场景与其功能以及所使用的多媒体库,进一步探索AI技术加持下FreeSWITCH的未来发展。
1. FreeSWITCH简介
FreeSWITCH是一套开源的,集成强大多媒体引擎的软交换系统。FreeSWITCH主要基于C语言编写,集成的众多方便灵活的开发接口使其具有出色的互联互通的能力,不仅兼容各种手机电话等终端设备并与各类软件相互对接,也提供了对多种应用场景如电话通信、视频会议的支持。根据FreeSWITCH官方给出的数据,FreeSWITCH已成功被应用于通信运营、在线教育、视频会议与设备互联网关等。
说到开源,想必大家不会对上图展示的这些Logo感到陌生,包括像Linux、Android这样的开源操作系统,MySQL等开源数据库以及APACHE这样的开源Web服务器。而通信领域也有两个较具有代表性的开源软件:Asterisk与这次重点介绍的FreeSWITCH。
2. 通信发展
其实在诞生初期FreeSWITCH主要被用来解决使用RJ11接口,基于电路交换原理实现的模拟电话机等传统电话通信问题;随着数字技术的发展,使用RJ45接口/Wi-Fi,基于分组交换的IP通信与在此基础上进一步升级的视频电话逐渐普及,成为过去十年人们沟通交流所使用最为频繁的工具;同时由于互联网技术的突飞猛进,越来越多的人有机会享用海量网络资源,基于互联网传输实现的各种实时通讯APP应运而生。
从古代的烽火台与语言交流到近现代的模拟电话,再到现如今人们再熟悉不过的数字电话,通信的进步可以说与社会生产力进步与人类文明发展密不可分。传统的模拟电话通过传输模拟信号实现远距离声音传输,而随着传输距离的增大与传输条件的变化,模拟信号会在传输过程中遭受明显衰减,这就需要安装在接收端的信号放大器处理接收到的模拟信号从而使其中的关键信息更容易被获取;但这样做并非完美,放大声音的同时如噪音、呼吸声等环境杂音也会被放大,间接导致有效信号比率降低,直接带来的影响便是远距离的通话双方无法清晰而准确地拾取对方所要表达的关键信息。
<