什么是Kamailio

更新时间:2023-04-30

1. 概述

Kamailio是在GPLv2+下发布的开源SIP服务器,每秒能够处理数千个呼叫设置。Kamailio可用于构建VoIP和实时通信的大型平台-存在,WebRTC,即时消息和其他应用程序。此外,它可以轻松用于扩展SIP到PSTN网关,PBX系统或媒体服务器,如Asterisk™,FreeSWITCH™或SEMS。
sip服务器Kamailio应用

强大的功能包括:异步TCP,UDP和SCTP,通过TLS进行VoIP安全通信(语音,视频,文本);WebSocket对WebRTC的支持;IPv4和IPv6;简单的即时消息和状态与嵌入式XCAP服务器和MSRP中继;异步操作;用于VoLTE的IMS扩展;枚举;DID和最低成本路由;负载平衡;路由故障转移;账户、认证和授权;支持许多后端系统,如MySQL,Postgres,Oracle,Radius,LDAP,Redis,Cassandra,MongoDB,Memcached;Json和XMLRPC控制接口,SNMP监控。

自2008年以来,Kamailio项目吸收了SIP高速路由器(SER)服务器的功能。换句话说,您可以受益于过去由OpenSER和SER在同一SIP服务器实例中提供的所有功能,以及多年来添加的许多新功能。
结合其SIP核心功能和可扩展的API,使用Kamailio(K)构建VoIP和统一通信平台非常简单。
Kamailio构建统一通信平台

2. Kamailio功能

强大且高性能的SIP服务器

  • 注册器服务器
  • 位置服务器
  • 代理服务器
  • SIP应用程序服务器
  • 重定向服务器

布署灵活

  • 占用空间小–适用于嵌入式设备–二进制文件体积小,可通过模块剥离/添加功能
  • 即插即用模块接口–能够在不接触内核的情况下添加新扩展,从而确保核心组件的高度稳定性
  • 模块化架构–核心、内部库和模块接口,用于扩展服务器的功能
  • 令人印象深刻的扩展存储库–Kamailio源代码树中总共包含150多个模块

3. SIP路由功能

  • 无状态和事务性有状态SIP代理处理
  • 串行和并行分叉
  • 对SIP和RTP流量的NAT遍历支持
  • 具有多种分发算法和故障转移支持的负载平衡
  • 灵活的最低成本路由
  • 路由故障转移
  • 高可用性(HA)复制

SIP传输层

支持通过UDP、TCP、TLS和SCTP进行通信
IPv4和IPv6
传输层网关(IPv4到IPv6,UDP到TLS,a.s.o.)
SCTP多宿主和多流
WebSocketforWebRTC

异步处理

  • 异步TCP处理
  • 异步SIP消息处理
  • 异步进程间消息队列通信系统
  • 分布式消息队列

安全通信

  • 摘要式SIP用户身份验证
  • 通过ACL或组成员身份进行授权
  • IP和网络身份验证
  • 对SIP信令的TLS支持
  • 透明处理SRTP以确保音频安全
  • TLS域名扩展支持
  • 针对数据库(MySQL,PostgreSQL,UnixODBC,BerkeleyDB,Oracle,文本文件),RADIUS和DIAMETER的身份验证和授权

IP和域名解析

支持SRV和NAPTRDNS查找
SRVDNS故障转移
DNSsec支持
枚举支持
内部DNS缓存系统–避免DNS阻止
IP级别黑名单
多宿主和多域支持
拓扑隐藏–隐藏SIP标头中的IP地址以保护您的网络架构

账户管理

  • 基于事件的账户
  • 可配置的账户数据详细信息
  • 多段呼叫记帐
  • 存储到数据库,半径或直径
  • 预付费引擎

配置文件

配置文件的脚本语言。该配置采用类似于脚本语言的语法,提供了一种强大而灵活的方法来部署自定义SIP服务。
伪变量,用于访问和管理特定于用户和服务器的SIP消息和属性的部分
转换以修改现有的伪变量,仅访问信息的所需部分
超过1000个参数,变量和函数导出到配置文件
运行时更新框架–避免在需要更改配置参数时重新启动SIP服务器

外部互动联接

  • RPC控制接口–通过XMLRPC、JSONRPC、UDP或TCP
  • RabbitMQ和NSQ连接器

丰富的通信服务

  • SIP简单在线状态服务器(丰富的在线状态)
  • 在线状态用户代理
  • XCAP客户端功能
  • 嵌入式XCAP服务器
  • 状态对话框信息支持–SLA/BLA
  • 即时通讯
  • 嵌入式建议零售价继电器

监控和故障排除

  1. SNMP–简单网络管理协议的接口
  2. 配置文件分步调试器
  3. 通过XMLRPC进行远程控制
  4. 通过RPC和SNMP导出的内部统计信息
  5. 灵活的调试和错误消息记录系统–记录自定义消息,包括任何标头或伪变量以及SIP消息结构的一部分。

可扩展性API

  • Perl编程接口–嵌入用Perl编写的扩展
  • JavaSIPServletApplicationInterface–编写JavaSIPServlet以扩展您的VoIP服务并与Web服务集成
  • Lua编程接口
  • JavaScript编程接口
  • 托管代码(C#)编程接口
  • 蟒蛇编程接口
  • Java编程接口
  • 通过TCP连接的通用事件API

多个数据库后端

  • (MySQL,PostgreSQL,SQLite,UnixODBC,BerkeleyDB,Oracle,文本文件)和其他具有unixodbc驱动程序的数据库类型
  • 连接池
  • 可以同时使用不同的后端(例如,对Oracle的记帐和针对MySQL的授权)
  • 用于Memcached,Redis,MongoDB和Cassandrano-SQL后端的连接器

互联互通

  • 与PSTN网关的直接互连
  • 短信或XMPP和其他IM服务的网关
  • 与支持SIP的设备和应用程序(如SIP电话(Snom、Cisco等)、媒体服务器(Asterisk、FreeSwitch等))的互操作性

IMS

  • 支持与认证
  • I-CSCF,P-CSCF,S-CSCF
  • 充电、质量校准、国际学习时间

Miscellaneous

  • CPL–呼叫处理语言(RFC3880)
  • 内部通用缓存系统
  • 内存缓存连接器
  • RedisNoSQL数据库连接器
  • CLI–kamctl和sercmd
  • 网络管理界面:西雷米斯
  • SIP-T和SIP-I
  • 音乐保持队列
  • 邮件正文压缩/解压缩(gzip压缩)
  • ss7解析器到JSON转换器
  • 面向管理员和开发人员的提供大量文档

可扩展性:

Kamailio可以在资源有限的嵌入式系统上运行-性能可以达到每秒数百个呼叫设置
Kamailio用作无状态模式下的负载均衡器,每秒可以处理超过5000个呼叫设置
在具有4GB内存的系统上,Kamailio可以为超过300万在线订户提供服务
系统可以通过添加更多Kamailio服务器轻松扩展
Kamailio可用于地理分布式VoIP平台
Kamailio最低成本路由可扩展到数百万个路由规则
直接的故障转移和冗余

下一篇

SBC是什么-企业为什么需要SB以及应用场景

通信百科

SBC是什么-企业为什么需要SB以及应用场景

sbc一种NAT穿透的方式。SBC可确保VoIP 安全,又可提供媒体代理服务器的套件。SBC架构于IMS网络之上,可作为IMS网络的SIP和RTSP的 Proxy Server,所有的SIP与RTSP讯息都会透过SBC来处理,SBC更具备N... ...

相关内容

pmut技术目前面临的最大挑战是什么?

pmut技术目前面临的最大挑战是什么?

在探讨压电微机械超声换能器(PMUT)的技术原理时,我们首先需要了解其基本结构......

最新动态

2025-02-12

status亮红灯,硬件还是软件的问题?

status亮红灯,硬件还是软件的问题?

在网络设备的状态指示灯中,红灯亮起通常表示 严重故障或错误 。这可能涉及 硬件故......

最新动态

2025-02-11

SX1308升压芯片的工作原理是什么?

SX1308升压芯片的工作原理是什么?

SX1308芯片是一款高性能的升压转换器,具有以下显著特性:输入电压范围 :2V......

最新动态

2025-02-06