概述
Kamailio是在GPLv2+下發(fā)布的開源SIP服務器,每秒能夠處理數千個呼叫設置。Kamailio可用于構建VoIP和實時通信的大型平臺-存在,WebRTC,即時消息和其他應用程序。此外,它可以輕松用于擴展SIP到PSTN網關,PBX系統(tǒng)或媒體服務器,如Asterisk™,F(xiàn)reeSWITCH™或SEMS。
強大的功能包括:異步TCP,UDP和SCTP,通過TLS進行VoIP安全通信(語音,視頻,文本);WebSocket對WebRTC的支持;IPv4和IPv6;簡單的即時消息和狀態(tài)與嵌入式XCAP服務器和MSRP中繼;異步操作;用于VoLTE的IMS擴展;枚舉;DID和最低成本路由;負載平衡;路由故障轉移;賬戶、認證和授權;支持許多后端系統(tǒng),如MySQL,Postgres,Oracle,Radius,LDAP,Redis,Cassandra,MongoDB,Memcached;Json和XMLRPC控制接口,SNMP監(jiān)控。
自2008年以來,Kamailio項目吸收了SIP高速路由器(SER)服務器的功能。換句話說,您可以受益于過去由OpenSER和SER在同一SIP服務器實例中提供的所有功能,以及多年來添加的許多新功能。
結合其SIP核心功能和可擴展的API,使用Kamailio(K)構建VoIP和統(tǒng)一通信平臺非常簡單。
Kamailio功能
強大且高性能的SIP服務器
注冊器服務器
位置服務器
代理服務器
SIP應用程序服務器
重定向服務器
布署靈活
占用空間小–適用于嵌入式設備–二進制文件體積小,可通過模塊剝離/添加功能
即插即用模塊接口–能夠在不接觸內核的情況下添加新擴展,從而確保核心組件的高度穩(wěn)定性
模塊化架構–核心、內部庫和模塊接口,用于擴展服務器的功能
令人印象深刻的擴展存儲庫–Kamailio源代碼樹中總共包含150多個模塊
SIP路由功能
無狀態(tài)和事務性有狀態(tài)SIP代理處理
串行和并行分叉
對SIP和RTP流量的NAT遍歷支持
具有多種分發(fā)算法和故障轉移支持的負載平衡
靈活的最低成本路由
路由故障轉移
高可用性(HA)復制
SIP傳輸層
支持通過UDP、TCP、TLS和SCTP進行通信
IPv4和IPv6
傳輸層網關(IPv4到IPv6,UDP到TLS,a.s.o.)
SCTP多宿主和多流
WebSocketforWebRTC
異步處理
異步TCP處理
異步SIP消息處理
異步進程間消息隊列通信系統(tǒng)
分布式消息隊列
安全通信
摘要式SIP用戶身份驗證
通過ACL或組成員身份進行授權
IP和網絡身份驗證
對SIP信令的TLS支持
透明處理SRTP以確保音頻安全
TLS域名擴展支持
針對數據庫(MySQL,PostgreSQL,UnixODBC,BerkeleyDB,Oracle,文本文件),RADIUS和DIAMETER的身份驗證和授權
IP和域名解析
支持SRV和NAPTRDNS查找
SRVDNS故障轉移
DNSsec支持
枚舉支持
內部DNS緩存系統(tǒng)–避免DNS阻止
IP級別黑名單
多宿主和多域支持
拓撲隱藏–隱藏SIP標頭中的IP地址以保護您的網絡架構
賬戶管理
基于事件的賬戶
可配置的賬戶數據詳細信息
多段呼叫記帳
存儲到數據庫,半徑或直徑
預付費引擎
配置文件
配置文件的腳本語言。該配置采用類似于腳本語言的語法,提供了一種強大而靈活的方法來部署自定義SIP服務。
偽變量,用于訪問和管理特定于用戶和服務器的SIP消息和屬性的部分
轉換以修改現(xiàn)有的偽變量,僅訪問信息的所需部分
超過1000個參數,變量和函數導出到配置文件
運行時更新框架–避免在需要更改配置參數時重新啟動SIP服務器
外部互動聯(lián)接
RPC控制接口–通過XMLRPC、JSONRPC、UDP或TCP
RabbitMQ和NSQ連接器
豐富的通信服務
SIP簡單在線狀態(tài)服務器(豐富的在線狀態(tài))
在線狀態(tài)用戶代理
XCAP客戶端功能
嵌入式XCAP服務器
狀態(tài)對話框信息支持–SLA/BLA
即時通訊
嵌入式建議零售價繼電器
監(jiān)控和故障排除
SNMP–簡單網絡管理協(xié)議的接口
配置文件分步調試器
通過XMLRPC進行遠程控制
通過RPC和SNMP導出的內部統(tǒng)計信息
靈活的調試和錯誤消息記錄系統(tǒng)–記錄自定義消息,包括任何標頭或偽變量以及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后端的連接器
互聯(lián)互通
與PSTN網關的直接互連
短信或XMPP和其他IM服務的網關
與支持SIP的設備和應用程序(如SIP電話(Snom、Cisco等)、媒體服務器(Asterisk、FreeSwitch等))的互操作性
IMS
支持與認證
I-CSCF,P-CSCF,S-CSCF
充電、質量校準、國際學習時間
Miscellaneous
CPL–呼叫處理語言(RFC3880)
內部通用緩存系統(tǒng)
內存緩存連接器
RedisNoSQL數據庫連接器
CLI–kamctl和sercmd
網絡管理界面:西雷米斯
SIP-T和SIP-I
音樂保持隊列
郵件正文壓縮/解壓縮(gzip壓縮)
ss7解析器到JSON轉換器
面向管理員和開發(fā)人員的提供大量文檔
可擴展性:
Kamailio可以在資源有限的嵌入式系統(tǒng)上運行-性能可以達到每秒數百個呼叫設置
Kamailio用作無狀態(tài)模式下的負載均衡器,每秒可以處理超過5000個呼叫設置
在具有4GB內存的系統(tǒng)上,Kamailio可以為超過300萬在線訂戶提供服務
系統(tǒng)可以通過添加更多Kamailio服務器輕松擴展
Kamailio可用于地理分布式VoIP平臺
Kamailio最低成本路由可擴展到數百萬個路由規(guī)則
直接的故障轉移和冗余