首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏FreeSWITCH中文社区

    Kamailio UAC 模块简述

    本文内提到的《Kamailio实战》,您可关注小樱桃科技公众号,在菜单栏选择小樱桃商城跳转购买。 Kamailio 是一款非常强大的 SIP 代理服务器,Kamailio 一般转发 SIP 信令,不主动产生和发送 SIP 信令。 但有时您可能希望 Kamailio 向 IPPBX 注册、主动发 SIP 消息,等等,也就是让 Kamailio 起到客户端的作用,这就需要用到 UAC 模块。 之间始终保持 1001 是主叫,1002 是被叫,Kamailio 跟 UAS 之间始终都是 alice 是主叫,bob 是被叫。 uac_auth 是 Kamailio 自己完成 SIP 认证(而不是转发 UAC 认证请求)。

    81411编辑于 2025-03-13
  • 来自专栏FreeSWITCH中文社区

    Kamailio rr 的秘密

    官方详解图:https://kamailio.org/docs/modules/5.7.x/modules/rr.html UAC Kamailio PROXY 同网段路由 UAC、Kamailio 以及 UAS 都在同一个网段,这种情况下的路由非常简单,调用 record_route() 之后,Kamailio 自动加上自己的 IP 地址和端口。 ,FreeSWITCH 看到 Kamailio 的内网地址。 单 rr 显然只能给 Kamailio 的公网地址,但 FreeSWITCH 虽然通常跟 Kamailio 同在一个内网网段,这就需要 FreeSWITCH 能访问 Kamaialio 的外网地址。 Kamailio 单网卡。

    42321编辑于 2025-11-25
  • 来自专栏FreeSWITCH中文社区

    Kamailio Tips

    Kamailio有很多小技巧,这里略举一二,作抛砖引玉之用。 uri == myself 编辑/etc/kamailio/kamailio.cfg debug=3 log_stderror=yes children=1 listen=udp:0.0.0.0:5060 cat /etc/hosts 127.0.0.1 localhost 192.168.100.132 fs cat /etc/kamailio/kamailio.cfg dns_use_search_list is_method("REGISTER|PUBLISH")) consume_credentials(); } } Native和Lua互相调用 编辑/etc/kamailio/kamailio.cfg "\n") end ``` 编辑`/etc/kamailio/test.lua` ```lua KSR.info("Hello, Kamailio\n") KSR.pv.sets("$var(luaret

    3.2K11编辑于 2022-12-12
  • 来自专栏FreeSWITCH中文社区

    什么是Kamailio

    Kamailio:https://www.kamailio.org/(起源于SER)是一个开源的SIP服务器,主要用作SIP代理服务器、注册服务器等,即只处理信息,不处理媒体。 Kamailio name. 下面是一些真实发音: http://blog.miconda.eu/2009/11/kamailio-pronunciation.html http://www.kamailio.net/pub/kamailio_pronounciation 参见:https://www.kamailio.org/w/openser-renamed-to-kamailio/ 。 在使用Kamailio的过程中,我们经常与FreeSWITCH做比较。 ,可以继续看Kamailio新手指南:http://www.kamailio.org.cn/blog/2022/06/beginners-guide/

    3.9K51编辑于 2022-12-12
  • 来自专栏FreeSWITCH中文社区

    Kamailio新手指南

    下面,我们使用kamailio/kamailio-ci:5.5.2-alpine这个Docker镜象,来自 https://hub.docker.com/r/kamailio/kamailio-ci 。 docker create --name kamailio kamailio/kamailio-ci:5.5.2-alpinedocker cp kamailio:/etc/kamailio /tmp/ 如果你还觉得不过瘾,下面是Kamailio的一些资源列表: Kamailio网站:https://www.kamailio.org/ Kamailio源代码仓库:https://github.com/kamailio /kamailio Kamailio工单:https://github.com/kamailio/kamailio/issues Kamailio Github:https://github.com/kamailio / OpenSER改名为Kamailio:https://www.kamailio.org/w/openser-renamed-to-kamailio/ Kamailio的历史:https://www.kamailio.org

    5.8K21编辑于 2022-12-12
  • 来自专栏FreeSWITCH中文社区

    Kamailio中使用nats做路由分发

    Kamailio中的nats模块 Kamailio 作为一个开源的 SIP 服务器,NATS 作为一个性能极高的消息传递系统,两者的结合实现了高效的消息传递和事件处理。 Kamailio 中实现了一个名为 nats 模块,可以轻松地集成 Kamailio 和 NATS,实现二者之间的通信,以提供更高效的消息传递和事件处理。 nats 模块实现的功能 nats 模块具体的可提供如下功能: Kamailio 作为一个 Publisher,将 SIP 消息发布到 NATS,以便其他应用程序订阅并处理这些消息。 Kamailio 作为一个 Subscriber,向 NATS 订阅消息,以便 Kamailio 可以接收并处理其他应用 pub 的事件消息。 提供异步处理和事件驱动的通信模式。 通过结合 Kamailio 和 NATS,可以实现更灵活和可扩展的 SIP 通信解决方案,同时利用 NATS 的高性能消息传递机制来处理实时事件和消息。

    63701编辑于 2025-07-20
  • 来自专栏FreeSWITCH中文社区

    Kamailio RPC和OpenSIPS MI

    以查找注册用户的信息为例,Kamailio的命令如下: kamcmd ul.lookup location 1001@192.168.100.173 { AoR: 1001 其中Cflags保存的是分支标志,上面的例子Kamailio的分支标志是64,一般在Kamailio.cfg的开头几行能找到这样的定义: #! Kamailio的usrloc模块可以配置KeepAlive参数,服务器周期性探测客户端是否在线,这样Contact里面多了几个跟KeepAlive有关的参数。 上面给的都是外部程序调用,但其实在路由脚本里面调用Kamailio的RPC或者OpenSIPS的MI,都是很方便的。 以上代码在Kamailio5.5.5和OpenSIP3.2.8下测试通过。

    1.6K20编辑于 2023-02-28
  • 来自专栏FreeSWITCH中文社区

    Kamailio 5.6.1发布

    本次更新主要内容如下: Resources for Kamailio version 5.6.1 Source tarballs are available at: https://www.kamailio.org /pub/kamailio/5.6.1/src/ Detailed changelog: https://www.kamailio.org/pub/kamailio/5.6.1/ChangeLog Download via GIT: # git clone https://github.com/kamailio/kamailio kamailio # cd kamailio # git checkout - pub/kamailio/5.6.1/ Modules’ documentation: https://www.kamailio.org/docs/modules/5.6.x/ What is new in 5.6.x release series is summarized in the announcement of v5.6.0: https://www.kamailio.org/w/kamailio-v5

    56330编辑于 2022-12-12
  • 来自专栏FreeSWITCH中文社区

    Kamailio NAT vs FreeSWITCH NAT

    Kamailio与FreeSWITCH作为主流的SIP相关组件,虽在NAT处理的实现方式上存在差异,但核心目标一致——解决终端内网地址与公网通信的适配问题,实现异曲同工之效。 Kamailio NAT 检查 Kamailio通过内置的nat_uac_test函数实现NAT检查,常用配置为nat_uac_test(18),该参数由2和16两个子参数组合而成,具体含义如下: 参数 以下结合实际部署案例,说明Kamailio与FreeSWITCH的具体实现方式。 以下对比Kamailio与FreeSWITCH的解决方案。 Kamailio Contact重写(呼叫场景) Kamailio对呼叫请求和应答消息的Contact重写,主要通过路由脚本中的相关函数实现,需分别在请求路由、应答路由和对话内路由中添加逻辑,参考配置如下

    13600编辑于 2026-06-15
  • 来自专栏FreeSWITCH中文社区

    Kamailio 多租户之简介

    先运行 apt install -y kamailio kamailio-* 安装 kamailio 和相应的模块。 运行下面这个 shell 文件,以便产生 /etc/kamailio-local.cfg: #! /bin/bash echo 'alias=demo1.com' > /etc/kamailio-local.cfg 现在启动 kamailio,目前关闭了多租户。 启动 MicroSIP,代理填 kamailio 的 IP 地址,域名填 demo1.com,用户名填 1001, 密码任意(目前的 kamailio 路由脚本是不认证的)。 define WITH_MULTIDOMAIN' >> /etc/kamailio-local.cfg 重启 kamailio

    65601编辑于 2025-05-10
  • 来自专栏FreeSWITCH中文社区

    Kamailio v5.8.0 版本发布

    /pub/kamailio/latest-5.8.x/src/ Binary packages for several distributions can be found at: https://www.kamailio.org /pub/kamailio/latest-5.8.x/bin/ https://www.kamailio.org/pub/kamailio/latest-5.8.x/packages/ https:// www.kamailio.org/wikidocs/packages/debs https://www.kamailio.org/wikidocs/packages/rpms Packages will wiki docs: https://www.kamailio.org/wikidocs/ Migration guide: https://www.kamailio.org/wiki/install 5.8.x from GIT repository Commit ChangeLog for Kamailio 5.8.0 Kamailio 5.7.x Release Notes – the previous

    53210编辑于 2024-03-18
  • 来自专栏开源部署

    Ubuntu 12.04 安装 Kamailio服务器

    Ubuntu 12.04 安装 Kamailio服务器 官方参考:http://www.kamailio.org/wiki/install/4.0.x/git Ubuntu 12.04 下编译Kamailio # SIP_DOMAIN=kamailio.org/SIP_DOMAIN=kamailio.org/g'/usr/local/etc/kamailio/kamctlrc # 修改配置文件kamailio.cfg define WITH_MYSQL' /usr/local/etc/kamailio/kamailio.cfg sudo sed -i '1i #! define WITH_AUTH'/usr/local/etc/kamailio/kamailio.cfg sudo sed -i '1i #! define WITH_USRLOCDB'/usr/local/etc/kamailio/kamailio.cfg sudo kamdbctl create 安装完成以后,可以增加用户。

    1.2K20编辑于 2022-07-03
  • 来自专栏FreeSWITCH中文社区

    Kamailio Transformations - 常用的伪变量转换函数

    错误提示是 invalid separator in transformation: value,c,, 这个函数非常有用,比如我们可以在 FreeSWITCH 里面配置一个网关,realm 指向 Kamailio --Kamailio--> <param name="contact-params" value="gwaddr=192.168.1.200:5060"/> <! --IMS--> Kamailio 的 request 路由可以这样写: route[SRC_FREESWITCH] { $var(params) = $(sel(contact.uri.params

    63921编辑于 2024-04-11
  • 来自专栏FreeSWITCH中文社区

    从使用角度比较 Kamailio 和 OpenSIPS

    核心、伪变量、转换函数等 Kamailio 支持预处理,OpenSIPS 不支持预处理 Kamailio RPC 的作用跟 OpenSIPS MI 大致相同 Kamailio 的 route 函数不能带参数 ,而 OpenSIPS 则可以带参数 在 Kamailio fU 和 tU 可读可写,但在 OpenSIPS fU 和 tU 只读,如果需要修改主被叫号码,需要调用 uac 模块里面的函数 Kamailio 中间注册模块 OpenSIPS 有中间注册模块 mid_registrar,而 Kamailio 则无,当然可以在 Kamailio 的路由脚本里面实现该功能。 LUA 支持 OpenSIPS 虽然也支持 LUA 语言来写路由脚本,但显然 Kamailio 的 KEMI 更强大更方便。 本人当然更熟悉 Kamailio 一些,但同时非常喜欢 OpenSIPS。

    8500编辑于 2026-06-15
  • 来自专栏FreeSWITCH中文社区

    聊聊 Kamailio rr 模块包含的函数

    增加 Record-Route 头的目的是后续该对话内的所有消息都要经过 Kamailio。 record_route() 是 Kamailio 感知网络拓扑,自动增加。 一般是 Kamailio 收到 ACK/BYE/Re-INVITE 等对话内请求时调用 loose_route()。 Kamailio 收到 INVITE 消息时,有 Route 头,并且 Route 头为 myself,这就是预加载路由。 JsSIP 可以配置是否支持预加载路由。 还有一种情况就是,Kamailio 收到注册请求时调用 add_path() 函数,并把请求转给 FreeSWITCH,FreeSWITCH 呼叫注册用户时会自动带 Route 头。

    8900编辑于 2026-06-15
  • 来自专栏FreeSWITCH中文社区

    Kamailio 预处理器指令简述

    Kamailio 是一款开源的 SIP 服务器,用于构建大规模实时通信平台。 以下是一些常用的 Kamailio 预处理器指令及其功能: include_file、import_file include_file 包含文件,该文件必须存在,否则就启动失败。 import_file 也是包含文件,但该文件可以存在,也可以不存在(kamailio 继续运行)。 包含文件的好处主要是可以把路由脚本拆成若干文件,增强可读性,也方便维护。 设置环境变量 再运行 kamailio,等 kamailio 成功启动之后,再运行 kamcmd core.ppdefines_full,输出内容为(节选): { name: KAM_SIP_PORT subst "/DBNAME/kamailio/g" # 数据库名字替换为 kamailio, g 代表全局替换 #!subst "/DBPASSWD/xyz/" # 数据库密码替换为 xyz #!

    91300编辑于 2025-04-13
  • 来自专栏音视频技术

    FreeSWITCH高可用部署与云原生集群部署

    Kamailio只代理SIP就是指处理通信的建立和分发,一台Kamailio后端可以放很多的FreeSWITCH。 这样前面放一个Kamailio,后端可以放很多FreeSWITCH进行通信。 当然Kamailio需要主备高可用,而Kamailio和FreeSWITCH之间是用Load Balance,这样用HA+负载分担的方式就完成了一种比较大的通信集群。 我们使用的是Kamailio+Lua。 在应用侧我们就使用了NATS。 我们使⽤Kamailio做Ingress,负责信令进来。

    6.2K23编辑于 2023-01-10
  • 来自专栏FreeSWITCH中文社区

    关于Kamailio registrar、auth、usrloc等模块的补充说明

    Kamailio跟注册、认证以及用户位置有关的模块,常见的就是registrar、auth、auth_db以及usrloc等,尽管有官方手册,但是要熟练掌握是需要一个过程的。 ul里面CFlags为0(没有NAT),也没有Received字段,在lookup()执行成功之后,ru等于ul里面的Address(Kamailio可直达),du为空, 值得注意的是,由于网络和终端的复杂性 Kamailio碰到这种场景就可以完美处理了。 - 自动unregister掉线的sip客户端 - usrloc模块有ka机制,也就是Kamailio周期性的发sip ping给sip客户端,如果对方掉线了Kamailio没有收到回应,那么就自动unregister 自己,同时增加下面三个参数: lhst 就是ua的位置信息 lm bf 分支标志 IP PBX呼叫user的时候会自动把INVITE请求发到Kamailio,并带回lhst、lm和bf等参数。

    3.4K52编辑于 2023-02-28
  • 来自专栏呱牛笔记

    Kamailio+Freeswitch二次环境搭建及验证

    版本: kamailio-5.5.4 freeswitch-1.10.0 使用docker容器搭建这个环境,方便多服务的启动和打包验证,虽然之前也做了一次,但上一次做kamailio代理freeswitch Freeswitch IPS 2 sip:192.168.16.35:5060 4 sip:192.168.16.35:5060 出现的问题 1、主叫CANCEL转不到被叫客户端 2、主、被叫挂断,FS一直给KAMAILIO 发送DECLINE 3、主、被叫接听,FS一直给KAMAILIO发送200 OK,由于被叫的ACK没有转发到KAMAILIO,转发失败的原因是kamailio转出来的200OK的报文中,多了一个Record-route endif kamailio.cfg配置文件中,主要修改两个点: 1、转发呼叫给FS; 2、对从FS转回来的报文,不能做鉴权,需要在AUTH中修改逻辑: route[AUTH] { #! route(FROMFREESWITCH))) { route(CALLS); exit; } } freeswitch和kamailio容器的启动方式不同,产生了好些问题,使用host

    4.6K30编辑于 2023-05-02
  • 来自专栏FreeSWITCH中文社区

    什么是路由?

    在本书讨论的Kamailio,可以认为是一个SIP路由器。 简单来说,Kamailio的路由就是控制SIP包从哪里来,到哪里去。 一旦选择了正确的路线,就可以继续前往“目的地”,当然,在Kamailio中,“目的地”对应的是CB这条中继,B也称为C的“下一跳”(Next Hop)。 这在Kamailio网关上称为“双平面”。这种架构下,C1或C2其中一个城市发生疫情不影响ABD之前的交通(通信)。 在第一张图中,如果把C换成Kamailio网关,ABD换成电话交换机或,把城市里的“人”换成“电话”,那么,在Kamailio(C)的中继AC上来了一通电话,这通电话是A(呼叫源)打来的,主叫号码是A, “注:本文来自《Kamailio实战》。”

    1.3K41编辑于 2023-09-03
领券