科能融合提供基于FreeSWITCH为核 心的各类通信平台定制
1. FreeSwitch的特性
FreeSwitch是跨平台的。他能原生地运行于Windows、Max OS X、Linux、BSD及Solaris等诸多32/64位平台。 FreeSwitch具有很强的可伸缩性。FreeSwitch从一个简单的软电话客户端到运营商用级软交换设备几乎无所不能。FreeSwitch可以用作一个简单的交换引擎、一个PBX、一个媒体网关或媒体支持IVR的服务器,或在运营商的IMS网络中担当CSCF或Application Server等。 FreeSwitch遵循相关RFC并支持很多高级的SIP特性,如Presence、BLF、SLA以及TCP、TLS和sRTP等,它也可以在用作一个SBC进行透明的SIP代理以支持其他媒体。FreeSwitch是免费的。 FreeSwitch支持SIP、H323、Skype、Google Talk等多种通信协议,并能很容易的与各种开源的PBX系统通信,他也可以与商用的交换系统(如华为、中兴的交换机或思科、Avaya的交换机等)互通。
FreeSwitch支持宽带及窄带语音编码,电话会议桥接可同时支持8、12、16、24、32及48kHz的语音。
- 路由和转换能力:FreeSWITCH可以通过配置的呼叫路由规则将呼叫路由到不同的终端,实现灵活的呼叫转接和转换功能。
- 多种通信协议支持:FreeSWITCH支持多种通信协议,包括SIP(会话初始化协议)、XMPP(可扩展消息和出席协议)、WebRTC(网页即时通信)等,使其可以与其他系统和设备进行无缝集成。
- 多媒体处理能力:FreeSWITCH支持音频、视频和即时消息传输,并具有丰富的媒体处理功能,如语音编解码、音频录制、音频会议、语音信箱等。
- 可扩展性:FreeSWITCH的模块化设计和API使其易于扩展和定制,可以根据需求添加新功能或修改现有功能。
- 高可用性:FreeSWITCH支持集群和故障转移,确保系统的高可用性和稳定性。
- 开发者友好:FreeSWITCH提供了多种开发接口和脚本语言支持,使开发人员可以方便地扩展和定制系统。
FreeSWITCH 支持多种通讯技术标准,包括 SIP, H.323, IAX2 以及 GoogleTalk ,可以方便的与其他开源的PBX系统进行对接,例如 sipX, OpenPBX, Bayonne, YATE 或者 Asterisk. FreeSWITCH 支持许多高级的 SIP 特性,例如 presence/BLF/SLA 、TCP TLS 和 sRTP,它还可以用来作为类似于 SBC (Session Border Controller) 的透明代理。
FreeSWITCH的是一个跨平台的开源电话交换平台,具有很强的伸缩性。旨在为音频、视频、文字或任何其他形式的媒体,提供路由和互连通信协议。它创建于2006年,填补了许多商业解决方案的的空白。FreeSWITCH的也提供了一个稳定的电话平台,许多广泛使用的免费电话就是在使用它开发的。
2. FreeSwitch功能
- 在线计费、预付费功能。
- 电话路由服务器。
- 语音转码服务器。
- 支持资源优先权和QoS的服务器。
- 多点会议服务器。
- IVR、语音通知服务器。
- VoiceMail服务器。
- PBX应用和软交换。
- 应用层网关。
- 防火墙/NAT穿越应用。
- 私有服务器。
- 第三方呼叫控制应用。
- 业务生成环境运行时引擎。
- 会话边界控制器。
- IMS中的S-CSCF/P-CSCF/I-CSCF。
- SIP网间互联网关。
- SBC及安全网关。
- 传真服务器、T.30到T.38网关。
FreeSWITCH 是一个开源的电话交换平台,从一个简单的软电话客户端到运营商级的软交换设备几乎无所不能。能原生地运行于Windows、Max OS X、Linux、BSD 及 solaris 等诸多32/64位平台。可以用作一个简单的交换引擎、一个PBX,一个媒体网关或媒体支持IVR的服务器等。它支持SIP、H323、Skype、Google Talk等协议,并能很容易地与各种开源的PBX系统如sipXecs、Call Weaver、Bayonne、YATE及Asterisk等通信。FreeSWITCH 遵循RFC并支持很多高级的SIP特性,如 presence、BLF、SLA以及TCP、TLS和sRTP等。它也可以用作一个SBC进行透明的SIP代理(proxy)以支持其它媒体如T.38等。FreeSWITCH 支持宽带及窄带语音编码,电话会议桥可同时支持8、12、16、24、32及48kHZ的语音。而在传统的电话网络中,要做到三方通话或多方通话需要通过专门的芯片来处理,其它像预付费,彩铃等业务在PSTN网络中都需要依靠智能网(IN)才能实现,而且配置起来相当不灵活。
3. 视频语音编解码器
- H.261
- H.263
- H.264
- MP4
- 支持多种编解码器
- CELT(32千赫 AHD 48千赫)
- G.722.1(宽带)
- G.722.1C(宽带32千赫)
- G.722协议(宽带)
- G.711
- G.726(16K,24K,32K,48K)AAL2和RFC 3551
- G.723.1(直通)
- G.729AB(需要许可证,除非使用直通)
- AMR(直通)
- iLBC的
- Speex语音(窄带和宽带)
- LPC - 10
- DVI4(ADPCM),8 kHz和16 kHz
4. 运行平台
FreeSWITCH的核心是一个库,可以嵌入到任何设备上的应用程序中。但是,更常见的是,它被构建为作为后台进程运行(UNIX 或 Linux 系统中的守护程序,Windows 平台上的服务)。当您将 FreeSWITCH 作为守护程序运行时,您可以使用 CLI 与 FreeSWITCH 进行交互。虽然FreeSWITCH可以在许多Linux发行版上运行,如Debian、Ubuntu、CentOS、Fedora和RHEL,但我们首选的发行版是Debian,因为我们已经解决了Debian上的所有依赖关系,因此您可以顺利安装和启动。Debian 也是 FreeSWITCH 开发人员使用的,因此最有经验。如果您在其他发行版上运行,您可能很难正确获取所有依赖项。FreeSWITCH可以在许多平台上运行,包括Linux、Mac OS X、BSD、Solaris甚至Windows。
硬件要求取决于您将如何使用 FreeSWITCH。FreeSWITCH可以在小到Raspberry Pi的硬件上运行,并且可以扩展到具有数十个CPU内核的强大数据中心服务器。FreeSWITCH能够处理数千个并发电话呼叫,具体取决于您拥有的硬件和正在使用的应用程序。
有关硬件要求的详细信息,请参阅发行说明和性能测试和配置。
5. 架构
在设计FreeSWITCH时,目标是具有以下属性:- 可扩展性 - 允许轻松添加新功能。
- 灵活性 - 用户应该能够选择启用哪些功能,同时还允许他们用不同的实现替换系统的某些部分
- 可扩展性 - FreeSWITCH可以运行在小到嵌入式软电话的系统上,也可以运行在一簇成熟的载波交换机上。
- 稳定性 - 一个功能的问题不应该使整个系统瘫痪。
- 有一个小核心提供所有模块使用的基本系统,但是大多数功能并没有在核心本身中实现,
- 而是在不相互依赖的独立模块中。
这些模块按它们提供的功能类型进行分组。现在,我们将探讨模块的类型,以及每个模块提供的功能。
模块类型
类型 | 描述 |
---|---|
端点 | 终端模块支持各种通信设备,如VoIP、PSTN(即常规固定电话)、Skype、Google Talk等。端点模块是FreeSWITCH中最重要的模块之一。 |
应用 | 这是所有行动发生的地方!默认设置中包含数百个应用程序模块,例如播放文件、加入会议、向语音信箱发送呼叫、播放 IVR 菜单。许多常见的应用程序都是由 dptools 模块提供的。 |
拨号计划 | 拨号计划模块负责根据来电显示、目标号码等信息路由呼叫。默认拨号计划模块是 XML 拨号计划。我们将在拨号计划部分详细介绍这一点。 |
目录 | 为可以向FreeSWITCH注册的用户提供身份验证和配置。最常见的目录模块是 XML 目录。 |
编 解码 器 | 编解码器用于对音频进行编码和压缩以进行流式处理。 |
文件格式 | 大多数常见的音频格式都支持mod_dptools:回放.请参阅此处支持的格式列表。TODO发件人3. 支持的文件类型部分mod_dptools:回放: “FreeSWITCH有一个文件格式的抽象层。 |
伐木 | 记录日志消息。一些包含的记录器是控制台和日志文件。xml_cdr是另一个常用的记录器,用于输出通话明细记录。 |
语言 | 支持可作为拨号计划的一部分运行的脚本语言。最流行的语言是 Lua。还支持 Javascript 和其他一些语言。 |
6. 应用程序接口
许多模块还具有 API 命令,这些命令可以从命令行、脚本发出或通过事件套接字从远程计算机发送。API 命令可以执行的操作取决于每个单独的模块,但一些常见功能包括返回状态信息(例如会议中有多少侦听器)或控制当前正在运行的应用程序(例如暂停正在播放的文件) 不同模块提供了数百个 API。在命令行中,您可以键入 show api 以查看基于加载的模块的所有 API。还有核心提供的 API 命令,这些命令在命令模块中。