开源SIP服务器OpenSIPS简介

***************************************************************************************************************************

作者:EasyWave                                                         时间:2014.09.14

类别:Linux应用-开源服务器OpenSIPS简介              声明:转载,请保留链接

注意:如有错误,欢迎指正。这些是我学习的日志文章......

***************************************************************************************************************************

一: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

二:OpenSIPS开源官网

OpenSIPS开源官网,如下图所示:

OpenSIPS开源网址:http://www.opensips.org/

三:OpenSIPS系统架构

OpenSIPS的架构开放灵活,其核心功能控制均可通过脚本控制实现,各个功能也通过模块加载的方式来构建。采用lex和yacc工具构建的配置文件分析器是其架构设计中的重要部分之一。通过这个分析器,opensips设计了自己的语法规则,使得我们可以适合SIP规范的语言来进行配置文件中的脚本编写,从而达到简化程序以及方便代码阅读的目的。同时这样的设计也使opensips.cfg配置文件的执行速度达到了C语言的级别。其体系结构大体如下图:

OpenSIPS框架的最上层是用于实现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命令激活或关闭某个目标,这些命令在实际应用中都非常实用。

希望可以移植到ARM上去测试看看是否可以做成一个SIP服务器的产品出来......

时间: 2024-08-10 19:17:20

开源SIP服务器OpenSIPS简介的相关文章

SIP协议&开源SIP服务器搭建和客户端安装

1. SIP SIP 是一个应用层的控制协议,可以用来建立,修改,和终止多媒体会话,例如Internet电话 SIP在建立和维持终止多媒体会话协议上,支持五个方面: 1)   用户定位: 检查终端用户的位置,用于通讯. 2)   用户有效性:检查用户参与会话的意愿程度. 3)   用户能力:检查媒体和媒体的参数. 4)   建立会话: “ringing”,建立会话参数在呼叫方和被叫方. 5)       会话管理:包括发送和终止会话,修改会话参数,激活服务等等. 1.1 SIP基本组成要素 用户

Kamailio v4.4.3 发布,开源 SIP 服务器

Kamailio v4.4.3 稳定版发布了,这是一个次要版本,包括自v4.4.2的代码和文档修复(腾云科技ty300.com).配置文件和数据库架构的兼容性被保留.Kamailio v4.4.3是基于最新版本4.4的GIT分支的(基础教程qkxue.net),所以那些运行4.4.x版本的建议进行升级. 源码包可在以下地址找到: http://www.kamailio.org/pub/kamailio/4.4.3/src/ 详细更新列表请看: http://www.kamailio.org/pu

sip服务器的搭建

我们都知道使用VOIP网络电话,需要连接上sip服务器,这样用户之间才可以通信. 在这里,我就简单介绍下如何搭建sip服务器.在windows系统下可搭建minisipserver,其官网为http://www.myvoipapp.com/,我们可以从中选取对应的版本,具体配置步骤见http://jingyan.baidu.com/article/03b2f78c744ab55ea237aef3.html.当然我们也可以下载Linux版本,安装和使用教程见http://www.myvoipapp

基于SIP和RTP协议的开源VOIP之QuteCom简介

*************************************************************************************************************************** 作者:EasyWave                                                                              时间:2014.10.30 类别:Linux应用-基于oSIP协议的开源V

安装 SIP 服务器

SIP服务器: OpenSIPS(Open SIP S erver)是SIP服务器的一个成熟的开源实现.OpenSIPS不仅仅是一个SIP代理/路由器,因为它包含应用程序级别的功能.作为SIP服务器的OpenSIPS是任何基于SIP的VoIP解决方案的核心组件. 下载安装OpenSIPs http://www.opensips.org/Downloads/Downloads 可以手动编译安装,或下载编译好的. 编辑/usr/local/etc/opensips的opensips.cfg文件,将

转帖 开源游戏服务器调研

汇总贴 2013年优秀的开源引擎与开源游戏项目 http://mobile.51cto.com/aengine-431122.htm http://www.oschina.net/search?scope=project&q=%E6%89%8B%E6%B8%B8 当前的几种开源游戏服务端介绍 http://www.oschina.net/question/1986738_224669 用户贴,使用过后总结各家优劣 http://www.oschina.net/question/2287878_2

Leaf - 一个由 Go 语言编写的开发效率和执行效率并重的开源游戏服务器框架

转自:https://toutiao.io/posts/0l7l7n/preview Leaf 游戏服务器框架简介 Leaf 是一个由 Go 语言(golang)编写的开发效率和执行效率并重的开源游戏服务器框架.Leaf 适用于各类游戏服务器的开发,包括 H5(HTML5)游戏服务器. Leaf 的关注点: 良好的使用体验.Leaf 总是尽可能的提供简洁和易用的接口,尽可能的提升开发的效率 稳定性.Leaf 总是尽可能的恢复运行过程中的错误,避免崩溃 多核支持.Leaf 通过模块机制和 leaf

淘宝开源Web服务器Tengine安装教程

简介Tengine是由淘宝核心系统部基于Nginx开发的Web服务器,它在Nginx的基础上,针对大访问量网站的需求,添加了很多功能和特性.Tengine的性能和稳定性已经在大型的网站如淘宝网,淘宝商城等得到了很好的验证.它的最终目标是打造一个高效.稳定.安全.易用的 Web 平台.Tengine现已开源. 特性 继承Nginx-1.0.10的所有特性: 组合多个CSS.JavaScript文件的访问请求变成一个请求: 支持管道和syslog形式的日志和抽样: 自动根据CPU数目设置亲缘性: 监

开源软件许可协议简介

英文原文:A Short Guide To Open-Source And Similar Licenses 很多软件开发者和设计者都有将自己的软件作品以开源的形式公之于众的想法.他们希望其他人也可以分享自己的作品,使用自己的作品.开源社区之所以能蓬勃发展就是因为人们有这样的愿望.开源软件如此的丰富,任何你能想到的应用领域里都能找到它们的身影. 大部分的设计人员都已经把使用开源软件和开源代码作为日常工作不可缺少的一部分了(WordPress, Drupal 和许多其它的内容管理系统都是开源软件)