

Kamailio 和 OpenSIPS 同根同源,很多语法、伪变量、模块使用方式,两者都极为相似。本文仅从使用角度对二者进行比较。但因受认识限制,描述的可能不够准确和全面,希望得到大家的批评指正。
核心、伪变量、转换函数等
缓存
Kamailio 的 htable 模块提供缓存功能,OpenSIPS cache 函数用起来也很方便。
用户位置共享
要实现用户位置共享,Kamailio 需启用 dmq 和 dmq_uscloc 模块。OpenSIPS 则需要 proto_bin 和 clusterer 等模块。
拓扑隐藏模块
Kamailio 有 topoh、topos、topos_redis 三个拓扑隐藏模块,而 OpenSIPS 的 topology_hiding 模块貌似更实用,一是没有 RR 头(好处是包更小);二是把 Contact 头换成 OpenSIPS 自己的地址。
uac-trunk-auth
这是 uac-trunk-auth 的典型流程:
1. A -> INVITE -> Proxy B
2. A Proxy -> INVITE -> B
3. A Proxy <- 401(7) <- B
4. A Proxy -> INVITE (auth) -> B (CSeq 加一)
5. A Proxy <- 200 <- B
6. A <- 200 <- Proxy在第 4 步时,CSeq 需要加一
OpenSIPS 需要用路由脚本实现这个加一的操作,而 Kamailio 配置 dialog 模块的一个参数即可,比较方便
中间注册模块
OpenSIPS 有中间注册模块 mid_registrar,而 Kamailio 则无,当然可以在 Kamailio 的路由脚本里面实现该功能。
LUA 支持
OpenSIPS 虽然也支持 LUA 语言来写路由脚本,但显然 Kamailio 的 KEMI 更强大更方便。
二者能进行比较的显然不只上面提到的这些内容,比如都有 dispatcher 模块,功能大致相同,但细节不太一样。限于篇幅不再展开。
本人当然更熟悉 Kamailio 一些,但同时非常喜欢 OpenSIPS。可能有的读者会问,如果二选一该怎么办,我的回答是都可以,但有人这么说过:目前 OpenSIPS 用户数量更多,但查二者的邮件列表(Mailing List),Kamailio 程序崩溃更少一些。
本文分享自 FreeSWITCH中文社区 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!