测试 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 到了吗?

全文完

相关推荐
xixixi777776 天前
跨境AI服务:多语种大模型+卫星通信+量子加密+数据脱敏+安全审计,合规·高效·安全三重保障
人工智能·安全·大模型·通信·卫星通信·审计·量子安全
搞科研的小刘选手6 天前
【高届数制造材料会议】第十二届先进制造技术与应用材料国际学术会议(ICAMMT 2026)
自动化·制造·通信·电子信息·材料·机械·先进半导体
xixixi777777 天前
智算中心建设新范式:GPT-6/Rubin架构+1.6T光模块+量子安全网关+AI安全沙箱,算力·效率·安全·成本的最优平衡
人工智能·gpt·安全·机器学习·架构·大模型·通信
xixixi777778 天前
AI自主挖洞 + 通信网络扩散:全域风险指数级放大,如何构建密码-沙箱-终端联动闭环?
开发语言·网络·人工智能·ai·大模型·php·通信
xixixi777779 天前
从5G标准到6G前沿:Polar码的技术演进与未来之路
开发语言·人工智能·5g·大模型·php·通信·polar码
xixixi7777710 天前
Token 经济引爆 AI 产业加速:从百模大战到百虾大战,谁在定义 2026 的中国 AI?
大数据·人工智能·机器学习·ai·大模型·算力·通信
无名38715 天前
测试 kamailio 的 tcp_reuse_port 以及 FreeSWITCH 的 reuse-connections 等等
通信
liulilittle18 天前
WintunAdapter 设计解析:一个 VNP 数据面的无锁优雅实现
网络·c++·it·通信
liulilittle18 天前
OPENPPP2 1.0.0.26145 正式版发布:内核态 SYSNAT 性能飞跃 + Windows 平台避坑指南
开发语言·网络·c++·windows·通信·vrrp
liulilittle22 天前
OPENPPP2 CTCP 协议栈 + 内置 TC Hairpin NAT 内核态程序
c语言·开发语言·网络·c++·信息与通信·通信