opensips-02
文章目录
一、opensips简介
1. opensips理解
opensips是一种开源的,GPL的,多用途的SIP服务器,能够执行大量与SIP相关的功能,诸如sip服务器、sip代理/路由器、即时消息服务器、存在服务器、SIP重定向服务器、SIP负载平衡器或SIP调度器、SIP背对背用户代理、呼叫排队系统、SIP IP网关、SIP媒体控制器、SIP应用服务器等。
通过以下三个功能进行自我定义:
(1)性能:有巨大的吞吐量
(2)功能丰富:提供与SIP协议、SQL或NoSQL DB操作、AAA集成、路由算法、管理和控制等。
(3)灵活性:由路由语言提供,一种简单但功能强大的脚本语言。
opensips作为sip服务器,主要是处理sip流量。
OpenSIPS有一个强大而灵活的引擎,能够以最有效、最快速和最定制的方式处理SIP流量。OpenSIPS处理引擎可以实现任何类型的路由逻辑。
2. opensips的能力
opensips没有内置媒体功能,但是它可以控制外部媒体引擎。
OpenSIPS类似于守护进程的应用程序,可以在所有类似unix平台上运行。
2.1 opensips提供的能力
(1)网络桥接
(2)NAT穿越
(3)协议转化。
(4)洪水检测
(5)IP过滤
2.2 opensips解决SBC问题
(1)sip确认:检查语法和消息内容,确保所有强制性的头都存在。
(2)呼叫感知:opensips将监控所有正在进行的呼叫,并检查呼叫中所有sip消息的有效性和健康状况。寻找中断的调用路由、请求注或挂起的调用。
(3)拓扑隐藏
(4)流量过滤:使用正则表达式,OpenSIPS可以通过检查SIP请求中的各种字段来过滤掉SIP流量。
(5)培养基处理:编解码器过滤和重新排序可以与媒体固定、转码或呼叫记录(使用外部媒体服务器)结合执行。
(6)SIP跟踪:OpenSIPS可以被指示根据SIP用户、源IP或目的地标准选择性地跟踪(和存储)某些SIP流量。
(7)数据复制
2.3 opensips充当核心组件的前端
- 端点身份验证——>流量整形——>拨号方案——>调度/负载平衡——>自定义路由
当处理多个中继线时,opensips提供了实现此类操作的内置和脚本功能。
opensips中,PSTN路由逻辑有两个逻辑部分:
- opensips根据最长的匹配前缀选择一组网关,提供到此目的地号码的终止。
- 选择网关取决于网关在opensips中的配置顺序
opensips可以主动监视网关,动态地启用和禁用。
opensips中的动态路由引擎为高级路由提供了扩展,例如基于质量的路由。
网关质量统计:
(1)应答占用率(ASR)
(2)平均呼叫持续时间(ACD)
(3)拨号后延迟(PDD)
3. opensips的使用
opensips为负载平衡和集群核心组件提供现有平台和能力打开了由提供PBX服务或终端服务的现有参与者占据的市场。
opensips提供呼叫、自爱在线状态和即时消息功能,这对于构建富通信服务至关重要。
4. opensips的设计
(1)组成: 核心和模块
核心是应用程序本身,它提供opensips的底层功能、各种接口的定义以及一些通用资源。
模块是共享库,在启动时按需加载。每个模块都为特定的路由算法或身份验证实现了定义良好的功能。
(2)opensips中主要有两种类型的模块:
① 直接为路由脚本提供功能的模块
② 实现核心定义接口的模块
5. opensips内核
opensips内核是一个最小的应用程序。就其本身而言,它只能以无状态模式代理SIP请求和应答,并具有非常基本的脚本功能。在多数情况下,核心与多个模块一起使用。
5.1 opensips特性
-
SIP层传输层实现各种sip传输协议。目前opensips支持UDP、TCP/TLS和WebSockets。使用协议取决于SIP侦听器,可以同时使用多个传输协议。
-
SIP工厂层提供解析和构建SIP消息的功能。内存和锁定管理器是opensips中的全局资源。
-
opensips核心提供了它自己的脚本函数。
6. opensips模块
每个opensips模块都是一个动态库,如果路由脚本中有指示,可以在opensips启动时按需加载。
更多推荐
所有评论(0)