测试 Kamailio 的 evapi 模块

复制代码
...
loadmodule "evapi.so"

modparam("evapi", "netstring_format", 1)
modparam("evapi", "bind_addr", "0.0.0.0:9000")
...

event_route[evapi:connection-new] {
    xlog("new connection from $evapi(srcaddr):$evapi(srcport)\n");
}
 
event_route[evapi:message-received] {
    xlog("received [$evapi(msg)] from $evapi(srcaddr):$evapi(srcport)\n");
}

启动 kamailio

运行下面的命令:

echo '13:Hello, 世界,' | nc 127.0.0.1 9000 -w 1

kamailio 日志为:

<script>: new connection from 127.0.0.1:55392

<script>: received [Hello, 世界] from 127.0.0.1:55392

evapi [evapi_dispatch.c:510]: evapi_recv_client(): client closing connection - pos [0] addr [127.0.0.1:55392]


netstring 的拼接规则是 {字节长度}:{原字符串},

其中字符串 "Hello, 世界" 前7个是英文字符,每个英文字符占一个字节

后2个是中文UTF8,每个中文占3个字节,一共是6字节

7+6=13

netstring 最后的结果就是 '13:Hello, 世界,'

下面是 c# 代码:

复制代码
string text = "Hello, 世界"; 
byte[] data = Encoding.UTF8.GetBytes(text);
string netstring = $"{data.Length}:{text},";

需要留意的是,string 处理成了 byte 数组, 而不是 char 数组

你 get 到了吗?

全文完

相关推荐
无名3871 天前
测试 RTPEngine 的 forwarding
通信
xixixi777772 天前
2026 年 02 月 13 日 AI 前沿、通信和安全行业日报
人工智能·安全·ai·大模型·通信·市场
无名3872 天前
分享 Kamailio Mailing list 里面的一个 ticket
通信
无名3873 天前
app_lua: packaging many times with different lua library versions
通信
xixixi777773 天前
太赫兹通信和可见光通信的区别对比
网络·应用·信号·无线·通信·太赫兹通信·可见光通信
xixixi777774 天前
太赫兹通信:6G时代的“超高速无线血液”
无线通信·信息与通信·无线·通信·6g·频谱·太赫兹
xixixi777775 天前
2026 年 02 月 10 日 AI 前沿、通信和安全行业日报
人工智能·安全·ai·大模型·通信·量子通信
xixixi777776 天前
今日AI+通信+安全 前沿日报(2026 年 02 月 09 日)
大数据·人工智能·安全·ai·通信·前沿·最新事件
kyle~6 天前
Modbus RTU(PLC通信版)
机器人·通信·工业自动化