一、现象
测试opensips时遇到这么一个错误提示:
ERROR:core:tcp_handle_req: Made 4 read attempts but message is not complete yet - closing connection
二、原因
直译就是tcp模块读了4次还没有把完整的包收下来,所以关闭了链接。
通过抓包结果看,确实如此,在这个测试网络条件下,一条SIP呼叫消息竟然被分成了5个包。
三、解决思路
1.修改路由器的分包策略,把分包的长度的调高。
2.让opensips再多尝试读几次包。
四、解决
最终选择了方案2。增加一条配置项如下:
modparam("proto_tcp","tcp_max_msg_chunks",8)