尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Kamailio 遇到错误的 ACK 能怎么弄
这是个现场的问题主叫发的ACK缺了回车和换行估计是开发人员笔误ACK sip:xxx SIP/2.0Via:From:To:最后一行应该是 Content-Length:0 回车换行再加回车换行缺了最后的回车换行用 wireshark 打开有一个告警Header not terminated by empty line(CRLF)用 kamailio 的 sanity_check(17895, 7) 检查返回-1调整为 sanity_check(1, 7) 终于返回成功但 t_relay 转发时又报错在找解决办法写了这样一段路由if(!sanity_check(17895, 7)) {if (is_method(ACK)) {route(FIX_BAD_ACK);exit;}xlog(Malformed SIP request from $si:$sp\n);exit;}route[FIX_BAD_ACK] {$var(headers) ;$var(from) $sel(from);$var(to) $sel(to);$var(cseq) $sel(cseq);$var(forward) Max-Forwards: 70;$var(headers) $var(headers) From: $var(from) \r\n;$var(headers) $var(headers) To: $var(to) \r\n;//$var(headers) $var(headers) CSeq: $var(cseq) \r\n;$var(headers) $var(headers) Forward: $var(forward) \r\n;$var(headers) $var(headers) \r\n;xerr($$var(headers) $var(headers)\n);t_uac_send(ACK,$ru,$ru, //next hop, // socket$var(headers), // body);return;}但不能工作下面是日志core [core/parser/parse_hname2.c:317]: parse_sip_header_name(): parsed header name [From] type 4core [core/parser/parse_addr_spec.c:187]: parse_to_param(): add param: tag467e5948core [core/parser/parse_addr_spec.c:911]: parse_addr_spec(): end of header reached, state29core [core/parser/msg_parser.c:164]: get_hdr_field(): From [39]; uri[sip:1002192.168.1.140]core [core/parser/msg_parser.c:166]: get_hdr_field(): from body (24)[sip:1002192.168.1.140], from tag (8)[467e5948]core [core/parser/parse_hname2.c:317]: parse_sip_header_name(): parsed header name [To] type 3core [core/parser/parse_addr_spec.c:187]: parse_to_param(): add param: tag0070ec0db079f11198ca1b7b1022c00bcore [core/parser/parse_addr_spec.c:911]: parse_addr_spec(): end of header reached, state29core [core/parser/msg_parser.c:176]: get_hdr_field(): To [69]; uri[sip:1001192.168.1.140]core [core/parser/msg_parser.c:178]: get_hdr_field(): to body (30)[1001sip:1001192.168.1.140], to tag (32)[0070ec0db079f11198ca1b7b1022c00b]core [core/parser/parse_hname2.c:317]: parse_sip_header_name(): parsed header name [Forward] type 0core [core/parser/msg_parser.c:93]: get_hdr_field(): found end of headertm [rpc_uac.c:409]: get_hfblock(): one more hf processedtm [h_table.c:587]: tm_xdata_replace(): replace existing list in backup xd from new xdtm [h_table.c:420]: build_cell(): created new cell 0x7f98c1f14590tm [h_table.c:575]: tm_xdata_replace(): restore X/AVP msg context from backup datatm [uac.c:522]: t_uac_prepare(): next_hopsip:1001192.168.1.171tm [uac.c:773]: send_prepared_request_impl(): uac: 0x7f98c1f14860 branch: 0 to 192.168.1.171:5060core [core/onsend.c:52]: run_onsend(): required parameters are not available - ignoring改成下面这个版本可以了route[FIX_BAD_ACK] {$var(headers) ;$var(from) $sel(from);$var(to) $sel(to);$var(cseq) $sel(cseq);$var(forward) Max-Forwards: 70;$var(callid) $ci;$var(headers) $var(headers) From: $var(from) \r\n;$var(headers) $var(headers) To: $var(to) \r\n;$var(headers) $var(headers) CSeq: $var(cseq) \r\n;$var(headers) $var(headers) Forward: $var(forward) \r\n;$var(headers) $var(headers) Call-ID: $var(callid) \r\n;$var(headers) $var(headers) \r\n;xinfo($$var(headers) $var(headers)\n);t_uac_send(ACK,$ru,, //next hop, // socket$var(headers), // body);return;}换到去年碰到类似的问题应该解决不了
RELATED

相关推荐

为什么选择MXFP4量化?gpt-oss-120b-w-mxfp4-a-fp8模型性能与效率对比评测

为什么选择MXFP4量化?gpt-oss-120b-w-mxfp4-a-fp8模型性能与效率对比评测

为什么选择MXFP4量化?gpt-oss-120b-w-mxfp4-a-fp8模型性能与效率对比评测 【免费下载链接】gpt-oss-120b-w-mxfp4-a-fp8 项目地址: https://ai.gitcode.com/hf_mirrors/amd/gpt-oss-120b-w-mxfp4-a-fp8 gpt-oss-120b-w-mxfp4-a-fp8是基于openai/gpt-oss-120…

📅 2026/10/19 16:21:45
Krea 2 Identity Edit vs 传统图像编辑工具:为什么这款LoRA模型能改变游戏规则?

Krea 2 Identity Edit vs 传统图像编辑工具:为什么这款LoRA模型能改变游戏规则?

Krea 2 Identity Edit vs 传统图像编辑工具:为什么这款LoRA模型能改变游戏规则? 【免费下载链接】krea2-identity-edit 项目地址: https://ai.gitcode.com/hf_mirrors/conradlocke/krea2-identity-edit Krea 2 Identity Edit 是一款基于 Krea 2 …

📅 2026/9/23 17:37:17
新手入门:Omni-Dreams-Models快速上手指南 - 5分钟完成第一个模型下载

新手入门:Omni-Dreams-Models快速上手指南 - 5分钟完成第一个模型下载

新手入门:Omni-Dreams-Models快速上手指南 - 5分钟完成第一个模型下载 【免费下载链接】omni-dreams-models 项目地址: https://ai.gitcode.com/hf_mirrors/nv-community/omni-dreams-models 想要快速上手AI模型下载?Omni-Dreams-Models项目为您…

📅 2026/9/8 8:17:29
MORE NEWS

更多资讯

📰

Python脚本实现PCAN自动发送CAN报文:周期调度与避坑指南

简介:压缩包内是一套基于Python3.7的PCAN报文自动发送程序,面向需要周期注入CAN帧的嵌入式与总线测试人员。周期性发送在总线仿真、故障注入、节点压力测试等场景十分常见,手工逐帧发送往往效率低且难以保证时序准确;该程序正好弥…

📰

RAGAS实战:量化RAG系统幻觉,终结一本正经胡说八道

做RAG的都知道,最气人的不是模型答不上来,而是答得有模有样地胡说八道。你明明喂了检索到的参考文档,它还是能把文档里根本没写的内容编得头头是道,还煞有其事地引用根本不存在的"数据来源"。调试这种幻觉问题特别折磨人…

📰

Ollama + RAG 代码知识库增量更新与自动同步实战

我前段时间搭了一套基于 Ollama 本地大模型 RAG 的代码知识库问答系统,把某个内部项目的代码仓库做成可检索的知识库。刚开始用起来确实爽,问“这个配置函数在哪定义”“这段废弃逻辑在哪个模块”,回答得又快又准。但两周之后我发现一个致命…

📰

PSoC+RC522的RFID-UART读写:固件架构与避坑指南

简介:一套基于可编程片上系统(PSoC)的射频识别(RFID)读写器完整工程,面向嵌入式开发者、电子工程类学生及物联网工程技术人员,用于解决RFID读写器与上位机之间通过通用异步收发器(UA…

📰

STM32 EC11旋转编码器驱动:硬件计数替代外部中断的稳定方案

简介:STM32F407 EC11旋转编码器驱动函数,面向使用ARM Cortex-M4内核微控制器进行运动控制的嵌入式开发者,可广泛应用在工业控制、消费电子与物联网终端等场景。驱动代码围绕EC11编码器的A/B双相位脉冲检测、Z相零点定位及旋转方向判断展开&am…

📰

从LangChain到LangGraph:构建高可控性Agent的迁移实战

先说一个我自己的真实经历。早先用 LangChain 搭 Agent 做企业内部文档问答时,Demo 跑得非常顺畅:接一个检索器,挂一个 LLM,配上 ReAct 循环,几乎没费劲就能让模型自己选工具、查资料、给答案。可一旦放进生产环境&…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬