测试 kamailio v6.0.5 的 nats 模块(预处理)

OS: debian 12

apt install -y nats-server natscli

先编辑一个版本的 kamailio.cfg

loadmodule "nats.so"

modparam("nats", "nats_url", "nats://127.0.0.1:4222")

modparamx("nats", "nats_url", $def(NATS_URL))

modparam("nats", "subject_queue_group", "MyQueue1:1234")

event_route[nats:MyQueue1]

xlog("L_INFO", "received $(natsData)\n");

}

启动 kamailio

nats pub MyQueue1 "hello, kamailio"

kamailio 日志为:

INFO: <script>: received hello, kamailio


export NATS_URL="nats://127.0.0.1:4222"

修改kamailio.cfg

#!defenv NATS_URL

modparam("nats", "nats_url", $def(NATS_URL))

其他照旧


export NATS_URL="nats://127.0.0.1:4222"

#!substdef "!NATSURL!$env(NATS_URL)!g"

modparam("nats", "nats_url", "NATSURL")

这样也行


export NATS_URL="nats://127.0.0.1:4222"

#!defenv NATS_URL ## 增加双引号

modparam("nats", "nats_url", $defv(NATS_URL)) ## 删除双引号

但 $defv 目前的 6.0.5 版本暂不支持

请看这个 commit

https://github.com/kamailio/kamailio/commit/72699b5d85bc1ca8b487749798ed8e93622d1686

估计 6.1.x 开始支持


复制代码
export NATS_URL="nats://127.0.0.1:4222"

modparamx("pv", "shvset", "nats_url=s:$env(NATS_URL)")
modparamx("nats", "nats_url", "$shv(nats_url)")

这是另外一种搞法,但这样占用比较多的内存,搞不好就容易出现下面的错误:

ERROR: <core> [core/socket_info.c:235]: new_addr_info(): could not allocate private memory from pkg pool

ERROR: <core> [core/socket_info.c:1824]: add_interfaces(): new_addr_info2list failed

ERROR: <core> [core/socket_info.c:384]: new_sock_info(): could not allocate private memory from pkg pool

ERROR: <core> [core/socket_info.c:1096]: new_sock2list(): new_sock_info failed

ERROR: <core> [core/socket_info.c:1186]: add_listen_socket_info(): new_sock2list failed

ERROR: <core> [core/socket_info.c:2449]: fix_all_socket_lists(): add_listen_iface failed

你喜欢哪一种?欢迎留言!

相关推荐
Trouvaille ~5 小时前
【Linux】网络编程基础(二):数据封装与网络传输流程
linux·运维·服务器·网络·c++·tcp/ip·通信
百锦再15 小时前
《C#上位机开发从门外到门内》2-7:网络通信(TCP/IP、UDP)
tcp/ip·udp·c#·嵌入式·上位机·通信·下位机
一路向北⁢1 天前
Spring Boot 3 整合 SSE (Server-Sent Events) 企业级最佳实践(一)
java·spring boot·后端·sse·通信
一路向北⁢2 天前
Spring Boot 3 整合 SSE (Server-Sent Events) 企业级最佳实践(二)
java·数据库·spring boot·sse·通信
【 STM32开发 】2 天前
【STM32 + CubeMX】 CAN 通信
stm32·cubemx·can·hal·通信·f407
xixixi777772 天前
基于零信任架构的通信
大数据·人工智能·架构·零信任·通信·个人隐私
Deepoch4 天前
Deepoc-M模型:以数学赋能,解锁通信产业“普惠创新”新可能
科技·5g·数学建模·通信·deepoc·deepoc数学大模型
xixixi777775 天前
2026 年 1 月 30 日 AI + 通信 + 安全前沿信息集成
算法·安全·ai·大模型·安全威胁分析·信息与通信·通信
xixixi777775 天前
无网通信——不依赖传统集中式蜂窝网络(如4G/5G基站)或互联网基础设施(如光纤、路由器) 的通信方式
网络·路由器·数据安全·通信·卫星通信·无网通信