您现在的位置:首页 >> sip服务器 >> SIP服务器调查报告,sip服务器软件,免费sip服务器,sip服务器本地sip端口

SIP服务器调查报告,sip服务器软件,免费sip服务器,sip服务器本地sip端口

时间:2014-02-21 来源: 泥巴往事网

本文介绍了SIP协议的优点并且给出了一个SIP服务器的设计与实现方案. 【分类号】: TP... 根据3月初IP电话的研究机~iLocus给出的调查报告.全球的业务提供者每一个月要处理10亿...

开源 SIP 服务器调查报告 一、引言 随着通信 IP 化的发展,IP 传输的高带宽、低成本等优势使得越来越多的企业、电信运 营商加快建设基于 IP 的各种通信应用。

在通信协议 IP 化发展中, SIP 协议毫无争议地成为 各大电信运营商构建其未来网络的基础协议,越来越多的 SIP 软件产品也不断出现在行业 应用中。SIP 协议的标准化,同时也造就了一大批优秀的开源软件产品,包括 Asterisk、 SipXecs、FreeSWITCH、OpenSIPS 等 SIP 服务端软件,也包括 X-lite、LinPhone、 eyeBeam 等 SIP 客户端软件。 二、调查目的 根据目前已经着手开发的系统所采用的服务器 Asterisk 来看,Asterisk 支持视频通话的 效果不是很理想, 影响通话的质量。

为此, 本文对当前所有的 SIP 开源服务器进行调查分析, 对其性能、 使用方便程度等多方面进行分析, 从而为选取支持视频且视频质量较高的服务器 做准备。 三、调查内容 目前 SIP 开源服务器主流的有以下几个:

1、 OpenSIPS OpenSIPS 是一个成熟的开源 SIP 服务器,除了提供基本的 SIP 代理及 SIP 路由功能外, 还提供了一些应用级的功能。OpenSIPS 的结构非常灵活,其核心路由功能完全通过脚本来 实现,可灵活定制各种路由策略,可灵活应用于语音、视频通信、IM 以及 Presence 等多种 应用。同时 OpenSIPS 性能上是目前最快的 SIP 服务器之一,可用于电信级产品构建。

凭借其可扩展、模块化的系统架构,OpenSIPS 提供了一个高度灵活的、用户可配置的 路由引擎,可以为 voice、video、IM 和 presence 等服务提供强大高效的路由、鉴权、NAT、 网关协议转化等功能。由于其稳定高效等特点,OpenSIPS 已经被诸多电信运营商应用在自 己的网络体系中。其主要功能如下:

? SIP 注册服务器/代理服务器(lcr、dynamic routing、dialplan)/重定向服务器 ? SIP presence agent ? SIP B2BUA ? SIP IM Server ? SIP to SMS/XMPP 网关 ? SIP to XMPP 网关 ? SIP 负载均衡 ? SIP NAT traversal 源码下载网址:yetyongjin/article/details/8106997 http://blog.csdn.net/rosekin/article/details/7103183 p/kamailio 官方网站:jean.deruelle/mobicents-20-the-java-open-source-communicatio ns-platformfosdem-2011-jean-deruelle 源码下载网址:http://sourceforge.net/projects/mobicents/?source=navbar http://code.google.com/p/mobicents/ 7、 Yate Yate is a next-generation telephony engine;

while currently focused on Voice over Internet Protocol (VoIP) and PSTN, its power lies in its ability to be easily extended. Voice, video, data and instant messenging can all be unified under Yate's flexible routing engine, maximizing communications efficiency and minimizing infrastructure costs for businesses. Yate can be used as a: ? VoIP server ? SS7 switch ? VoIP client ? Jabber server ? Jabber client ? Conference server - with up to 200 voice channels in a single conference ? VoIP to PSTN gateway ? PC2Phone and Phone2PC gateway ? IP Telephony server and/or client ? H.323 gatekeeper ? H.323 multiple endpoint server ? ? ? ? ? ? H.323<->SIP Proxy ? SIP session border controller ? SIP router ? SIP registration server ? IAX server and/or client ? Jingle client or server ? MGCP server (Call Agent) ISDN passive and active recorder ISDN, RBS, analog passive recorder Call center server IVR engine Prepaid and/or postpaid cards system 源码下载地址:http://yate.null.ro/pmwiki/index.php?n=Main.Download 参考资料:http://en.wikipedia.org/wiki/Yate 四、性能分析 1、OpenSIPS a、基本应用配置 OpenSIPS 不但提供了丰富的功能, 还具有操作简单的特点。

所有 OpenSIPS 的应用功能都 可以通过一个配置文件 opensips.cfg 来实现的。该配置文件主要分为三个部分,第一部分主 要是全局变量的设置;第二部分主要是加载模块,并设置模块的相应参数;第三部分主要是 路由的策略和功能应用。

b、系统结构 OpenSIPS 的架构开放灵活,其核心功能控制均可通过脚本控制实现,各个功能也通过模 块加载的方式来构建。

采用 lex 和 yacc 工具构建的配置文件分析器是其架构设计中的重要部 分之一。通过这个分析器,opensips 设计了自己的语法规则,使得我们可以适合 SIP 规范的 语言来进行配置文件中的脚本编写, 从而达到简化程序以及方便代码阅读的目的。

同时这样 的设计也使 opensips.cfg 配置文件的执行速度达到了 C 语言的级别。

其体系结构大体如下图: 框架的最上层是用于实现 sip 消息路由逻辑的 opensips.cfg 脚本配置,在配置文件中, 可以使用 Core 提供的 Parameter 和 Function,也可以使用众多 Modules 提供的 Function。比 如在之前的负载均衡示例中,is_method(“INVITE”)就属于 textops 模块提供的功能,src_ip 和 src_port 都属于 Core 提供的参数。下层,提供了网络传输、sip 消息解析等基本功能。在左 侧,通过相应的数据库适配器,可是使用多种数据库存取数据。在这样的体系结构下,我们 就可以方便地通过增加功能 module 来添加我们需要的功能,而不会对原有系统造成影响。

除了以上所述的 OpenSIPS 的优点,OpenSIPS 还提供了一系列的管理维护命令的接口。

我们可以通过 Core 和 Module 提供的 MI 管理接口, 方便的监控系统以及模块的状态。

比如, 通过 Core 的 fifo ps 命令,可以获取当前进程的状态;通过 Core 的 fifo get_statistics 命令, 可以获得当前共享内存以及各进程私有内存的使用情况等等。通过 MI 管理接口,我们还可 以方便地在运行时修改部分参数, 比如, 对于 load_balancer 模块, 我们可以通过 fifo lb_reload 命令,更新目标组的配置信息,可以通过 fifo lb_status 命令激活或关闭某个目标,这些命令 在实际应用中都非常实用。如果希望通过 WEB 图形界面管理 OpenSIPS,OpenSIPS 社区还提 供了 OpenSIPS Control Panel 4.0 产品。

c、与其他项目共同搭建 VOIP 服务 OpenSIPS 并不具备一个媒体服务器(Media Server)的功能。媒体服务器主要提供了类似 VoiceMail、呼叫中语音交换、会议服务、视频服务等一系列和语音、视频相关的服务;而 OpenSIPS 的主要功能主要在于代理、 路由和网关。

因此, 单独的 OpenSIPS 并不能够提供 VOIP 服务,只有和 Asterisk 等具备媒体功能的软件整合,才能构建可靠的语音服务体系。

对于媒体服务器,开源世界也提供了很多选择,如老牌的 Asterisk,以及功能全面的 sipXecs 以及专注于 IVR 功能的 FreeSwitch 等,他们都是非常优秀的开源项目。其中 Asterisk 功能全面、 灵活, 但主要面向企业应用, 在性能上稍差。

但 Asterisk 提供了完善的 PBX 功能, 可以连接多种不同的电话终端, 支持多种主流的 IP 电话协议和系统接口。

FreeSwtich 专注于 IVR 功能, 性能、 可靠性非常高。

近期 FreeSwitch 已被 sipXecs 采用作为其 IVR 部分功能。

sipXecs 则是一个功能比较全面的产品,包括 IVR、VoiceMail、人工坐席等等,更难得的是 SipXecs 提供了良好的配置、管理界面,易于使用。

只要将 OpenSIPS 作为前置接入,将多个 Asterisk、FreeSwitch、sipXecs 挂接在其后,由 OpenSIPS 实现 SIP 消息的转发和负载均衡,就可以轻松地实现各种语音业务以及规模扩展。

如下图所示。 2、Kamailio Kamailio can be used on systems with limited resources as well as on carrier grade servers. It is written in pure C for Unix/Linux-like systems with architecture specific optimizations to offer high performances. Kamailio Project aims to be a collaborative environment of its users to develop secure and extensible SIP server to provide modern Unified Communication and VoIP services. 3、sipXecs sipXecs 企业通信系统( ECS )是一个高伸缩性、企业级的通信解决方案。它是名为 SIPFoundry 的非盈利性、开源组织的一个独立的产品。借助标准和基于开源环境,sipXecs 提供低成本、易使用,以及在其他系统中找不到的互操作性、功能和可伸缩性。 sipXecs 基于 SIP 协议。它提供了所期望的 PBX 的全部典型功能,包括:语音信箱 ( VoiceMail ) 、统一消息( Unified Messaging ) 、自动总机( Auto-Attendant ) 、电话会议 (Conferencing) 、出席(Presence) 、以及呼叫中心(Call Center)应用等。sipXecs 不仅仅是 一个指令集的网路电话交换平台, 而可以算是一个整体解决方案 (Total Solution) 。

也就是说, 它已包含了一个网路电话交换系统要能实际上线使用、 所有需要并会用到的应用组件, 例如 Web-UI 等。sipXecs 是目前开源 IP-PBX 中唯一可以做到终端电话免设定,可以即插即用的系 统。

这种特性对于应用在办公室的大量部署非常有用。

不过有一点要注意, 与 Asterisk 不同, sipXecs 是以 L-GPL 软件授权,这与 GPL 授权大致是相同,只是差别在于函式库部分有特别 的授权条款。

4、freeswitch a、freeswtich 对高清(HD)语音编码的支持 freeswitch 支持 大部分高清语音编码, 包括 Speex,G.722,G.722.1(Siren) 及 SILK,与之对比, asterisk 1.8 版本之前只支持采样为 8000 的常用语音编码,1.10 后 asterisk 开始从新架构其 media codec 模块,以全面支持高清等宽频语音编码。

b、有些语音编码以模块方式加载(G729 等),有的则属于 freeswitch core 部分(G711),系 统默认不加载所有语音编码,对于没有加载的编码,可以通过配置 modules.conf.xml 配置, 在 fs_cli 上 执行 "show codec"

会显示当前系统已经加载的编码:

type,name,ikey codec,ADPCM (IMA),mod_spandsp codec,AMR,mod_amr codec,G.711 alaw,CORE_PCM_MODULE codec,G.711 ulaw,CORE_PCM_MODULE codec,G.722,mod_spandsp codec,G.723.1 6.3k,mod_g723_1 codec,G.726 16k,mod_spandsp codec,G.726 16k (AAL2),mod_spandsp codec,G.726 24k,mod_spandsp codec,G.726 24k (AAL2),mod_spandsp codec,G.726 32k,mod_spandsp codec,G.726 32k (AAL2),mod_spandsp codec,G.726 40k,mod_spandsp codec,G.726 40k (AAL2),mod_spandsp codec,G.729,mod_g729 codec,GSM,mod_spandsp codec,H.261 Video (passthru),mod_h26x codec,H.263 Video (passthru),mod_h26x codec,H.263+ Video (passthru),mod_h26x codec,H.263++ Video (passthru),mod_h26x codec,H.264 Video (passthru),mod_h26x codec,LPC-10,mod_spandsp codec,PROXY PASS-THROUGH,CORE_PCM_MODULE codec,PROXY VIDEO PASS-THROUGH,CORE_PCM_MODULE codec,Polycom(R) G722.1/G722.1C,mod_siren codec,RAW Signed Linear (16 bit),CORE_PCM_MODULE codec,Speex,mod_speex codec,iLBC,mod_ilbc 以模块方式加载的编码在目录 src\mod\codecs 下面, 所以如果我们想添加自己的编码, 在此目录下参考其他实现即可,freeswitch 对新编码的添加接口也及其简单,主要为注册几 个四个回调, init,encode,decode,destroy, 然后通过 switch_core_codec_add_implementation 把这几个回调的实现注册进去。

c、设置编码的优先级 vars.xml 可以设置系统默认使用的编码,为全局设置,下面两个变量,一个表示呼入, 一个表示呼出。

<X-PRE-PROCESS cmd="set"

data="global_codec_prefs=G722,PCMA,PCMU,GSM"/>

<X-PRE-PROCESS cmd="set"

data="outbound_codec_prefs=G722,PCMA,PCMU,GSM"/>

同时,不同的协议类型(SIP,和 H323 等)可以设置自己的编码优先级,比如采用 SIP 协议时,可以在 sofia.conf.xml <settings>

<param name="inbound-codec-prefs"

value="$${global_codec_prefs}"/>

<param name="outbound-codec-prefs"

value="$${global_codec_prefs}"/>

</settings>

这里,SIP 协议类型继承了 vars.xml 的全局设置(呼入,呼出) 。

d、对编解码转换的支持 (1)作为 B2BUA,freeswitch 支持大部分音频编码的转换,但无视频编码转换功能。

(2)对于语音编码 G721 / G728 / G719 / AMR,只支持转发,不支持转换。

(3)freeswitch 支持的视频编码 (只转发) H261 - H.261 Video H263 - H.263 Video H263-1998 - H.263-1998 Video H263-2000 - H.263-2000 Video H264 - H.264 Video Provided by mod_h26X. Theora passthrough. Provided by mod_theora. MP4 Video passthrough. Provided by mod_mp4v. e、媒体代理 freeswitch 对媒体的处理有三种方式:

(1).默认方式:媒体通过 freeswitch,RTP 被 freeswtich 转发,freeswitch 控制编码的协商并在 协商不一致时提供语音编码转换能力,支持录音,二次拨号等。

(2).代理模式: 媒体通过 freeswitch 转发,但是不处理媒体 RTP 通过 freewtich 转发(只改动 sdp c= ip) freeswtich 不控制 sdp 参数, 只是转发。

通话的终端必须有一致的语音或者视频 编码,因为 freeswitch 此时不支持转码(适合视频编码)不支持录音,二次拨号等功能 (3).不转发也不处理媒体此模式下 freeswitch 更像是一个信令 proxy,媒体不会通过 freeswitch, sdp 消息体也不做修改,没有录音,二次拨号等功能。

三种方式在不同应用场景下各有优点,对于(1),也是默认方式,更适合呼叫中心等富功 能应用,但性能相比其他两个也是最差的,对于(2),更适合处理 nat 问题,可以考虑用这种 模式做一个 session border controlor,也适合于外部 MCU 配合做为视频会议,性能也明显好于 (1),对于 (3),更像是一个信令代理,性能最高,但提供的功能有限。

5、Mobicents Mobicents 是一个高伸缩性、事件驱动的应用服务器、是一款专业的、开放源代码的 VoIP 中间件平台。

Mobicents 是首个采用 JAIN SLEE 标准的开放式源代码电信应用服务器 环境。被用于语音、视频和电信下一代智能网络(NGIN)的开发中, Mobicents 为 SDP 和 IMS 应用提供了一个高性能的核心引擎。

JAIN SLEE 就是 JAIN Service Logic Execution Environment (JSLEE)的说法。JAIN 是 JAVA APIs for Integrated Networks 或者 JAIN APIs for Integrated Networks 的简称,为 融合(综合)网络而提供的 JAVA API 规范(provide APIs for Integrated Networks ),关注 通信网络的各个方面(target all aspects of communications networks )”的目的而定义的 标准规范。JAIN 是 Java 从 IT 领域到电信领域的扩展,目的是使得电信领域的增值应用业 务也像 IT 领域的增值应用业务一样快速开发、自由部署、移植便捷。但对 Sun 来说,这正 是它们的拿手好戏,它们在 IT 领域就是做这个的。还记得“Write Once,Run AnyWhere” 吗?现在他们就是通过 JAIN 技术标准把所有这些好处带到电信领域里来。JAIN 是 Sun 公 司和其他设备商、 运营商制定的规范, 通过这个规范为电信领域应用业务的开发制定了统一 的接口,通过这个统一的接口,屏蔽网络层以下设备的不同差异、实现业务和承载的分离, 各层业务功能独立且职责清晰, 电信网络由以前的封闭状态慢慢的变为了开放状态, 在这样 开放的基础者上, 电信领域增值应用开发、 部署、 移植也会越来越快捷。

值得强调的是, JAIN 是一个规范, Sun 下的 JAIN 项目专家组 (分为协议专家组 (PEG) 和应用专家组 (AEG) ) 只负责制定,不负责实现,如果设备商或运营商支持 JAIN 规范,就要自己去实现规范的内 容, 然后到 JAIN 的官方网站下载一个 TCK (Technology Compatibility Kit:

技术兼容工具) , 用它来验证产品是否达到规范要求的标准,如果达到标准了,就可以向 JAIN 申请认证了。

认证好之后,大家就都可以按照 JAIN 的标准开发和部署了。

Mobicents 及相关子项目包括:

RestComm – 下一代云通信平台实现的快速构架和部署语音和消息通信应用,使用主 流 Web 开发技术。RestComm 是面向电信 2.0 的 SaaS 解决方案。

Session Border Controller (SBC) – 允许服务提供商增强其 IP 服务, 解决 NAT 转换问 题,配置复杂平衡策略,流量过滤和基于端口和负载定期其他规则。

JAIN SLEE – 一个事件驱动型的可高可扩展的应用服务器,它具有健壮的模块化设计 模型和容错的执行环境。SLEE 针对不同的网络提供了丰富的连接适配器,包括 SS7 MAP, TCAP, INAP, ISUP, SMPP, USSD, XMPP, SIP, MGCP, HTTP, XDM, XCAP 等等。完全兼 容于 JSR 240 (JSLEE 1.1)。

jSS7 – 实现兼容 ITU-T 协议栈,不但能支持 IP (SIGTRAN)开,还能支持遗留的 SS7 卡。支持 SS7 的所有层,包括 MTP2, 3, ISUP, SCCP, TCAP, MAP, CAP 和 INAP 等。

SMSC – 是一个在电信运营环境下进行生产部署运营的,健壮的短信服务中心平台, 它是运行在一个现代可扩展构架上的中间件平台之上。SMSC 实现短信转发,短信广播和 群组短信功能。希望了解更多信息请下载 TelScale SMSC 产品详细信息表。

USSD Gateway –是一个在电信运营环境下进行生产部署运营的, 健壮的 USSD 网关, 它是运行在一个现代可扩展构架上的中间件平台之上。

它能帮助运营商快速创建和部署新的 基于对话的增值服务,通过提供一个中间平台将内容提供商和手机用户连接起来,向 手机用户提供一个高速交互访问接口,实现对丰富内容的访问。

SIP Servlets – 是一个应用容器,实现将 Java EE 扩展实现对 SIP 以及融合应用的的 快速开发和部署能力。其能运行在 Tomcat JBoss AS/EAP 和其他 Java EE 容器中。完全兼 容于 JSR 289 (SIP Servlets 1.1)。TelScale Media Server – 一个功能完备的基于 Java 的 媒体服务器, 其能通过 MGCP (JSR-23, RFC 3435)和 JSR-309 (Medica Server Control API) 进行控制。

Media Server 的产品目标是实现一个媒体网关平台,同时满足融合无线网络,有线网 络,宽带网络访问和 VoIP 网络的需求。

Diameter Suite – 一个针对 Diameter 协议族的客户端,服务器和相关工具套件。实现 了基本协议以及其他广泛使用的重要 Diameter 应用。能帮助快速开发 LTE/4G 和 IMS 部件,例如应用服务器,HSS,CSCF,SLF 等。它非常易于扩展来 实现支持更多 Diameter 应用。

SIP Presence Server – 针对 SIP 网络提供客户端和服务器的表现服务,实现 RCS 以 及来自 IETF, GSMA, OMA, 3GPP 和 ETSI 的标准, 包括一个 XDM 服务器, 一个 Presence 服务器和资源列表服务器(TBA)。

jSIP – 提供一个完全兼容于 SIP/SDP/IMS 的协议栈, 并且支持故障冗余能力来满足电 信级生产环境的需求。 五、总结 名称 Asterisk 编程语言 C 操作系统 跨平台 许可协议 GNU GPL/Proprietary 功能 Voice mail Conference calling Interactive voice response Automatic call distribution SIP registrar server SIP router / proxy (lcr, dynamic routing, dialplan features) SIP redirect server SIP presence agent SIP back-to-back User Agent SIP IM server (chat and end-2-end IM) SIP to SMS gateway (bidirectional) SIP to XMPP gateway for presence and IM (bidirectional) SIP load-balancer or dispatcher SIP front end for gateways/asterisk SIP NAT traversal unit SIP application server traditional private branch exchange (PBX) like voice mail, interactive voice response systems, auto attendants and the like. Furthermore it integrates with Exchange 2007and Opensip C Linux, FreeBSD, Solaris GNU GPL SipXecs Fedora CentOS RHEL Affero General Public License Active Directory Environments. FreeSwitc h C 跨平台 MPL 会议,使用 XML-RPC 控制呼叫, Interactive voice response (IVR), TTS/ASR (语音合成和语音识别), Public switched telephone network (PSTN) 接口,可连接模拟和数字中 继, VoIP 协议包括 SIP, SCCP, H.323, XMPP, GoogleTalk, t.38 等等 Cipango Mobicent s Yate Java Java C++ 跨平台 跨平台 Apache 2.0 LGPL GNU General Public License with linking exception VoIP server SS7 switch VoIP client Jabber server Jabber client Conference server - with up to 200 voice channels in a single conference VoIP to PSTN gateway PC2Phone and Phone2PC gateway IP Telephony server and/or client H.323 gatekeeper H.323 multiple endpoint server H.323<->SIP Proxy SIP session border controller SIP router SIP registration server IAX server and/or client Jingle client or server MGCP server (Call Agent) ISDN passive and active recorder ISDN, RBS, analog passive recorder Call center server IVR engine Prepaid and/or postpaid cards system 综上所述, 支持视频的开源服务器主要有以上的几种, 根据别人的开发经验和相关背景 知识了解,接下来可以对 OpenSip、SipXecs、FreeSwitch、Yate 四个服务器进行更精细的研 究,将实验环境搭建起来,有可能是 OpenSip+Asterisk、SipXecs+Asterisk 这样的服务器组合 才能获得更好的视频体验效果。

因为关于这一块的资料比较少, 所以有一种可能性就是所有 的这些开源项目都达不到满意的效果,这样带来的后果就是要重新考虑 SIP 服务器开源项目 的可行性了。

SIP服务器调查报告 文档贡献者 暂无相关推荐文档 如要投诉违规内容,请到 百度文库投诉中心 ;如要提出功能问题或意见建议,请 点击此处 进行反馈. 暂无评价 | 0人阅读 | 0次下...

PC1用于运行miniSipServer,PC2用于运行SIP模拟器.两台PC都安装在同一个网络中. ... 在"对端服务器(peer servers)"配置中,我们需要将两个SIPP的地址都加入为对端服...

华东区调查 -3- SIP电话机行业研究报告 2014版中国SIP电话机市场调研与发展前景预测... 每一组在 SIP服务器上注册的SIP电话和室内终端会拥有一个VOIP号码,这样无论是同一...

 
  • 泥巴往事网(www.nbwtv.com) © 2014 版权所有 All Rights Reserved.