SIPp / sipp

The SIPp testing tool
https://sipp.readthedocs.io
Other
891 stars 376 forks source link

SIPp unable to parse/frame ACK and BYE in same frame received in TCP segment #675

Open TheQue42 opened 7 months ago

TheQue42 commented 7 months ago

I've got a failure testcase with an UAS that receives a call via REFER, and returns bad SDP in the 2xx.

It works fine in UDP, and intermittently fine over TCP, because when the preceeding system receives the 2xx, it responds with ACK and BYE really fast, which sometimes ends up in the same TCP segment/ethernet frame.

In those cases, SIPp will fail to properly parse both the ACK and the BYE, so the BYE never gets a 200 OK.

SippFailsTcpSipParsing.pcapng.gz

And yes, I am aware that there are 2 BYEs being sent by the preceeding hop, caused by my PjSIP stacl behaving (imho) a bit strange on SDP errors, but since this testcase works fine on UDP, the error is still in the TCP framer/parser I feel.

IvanRibakov commented 5 months ago

We've been struggling with reliability of our TCP SIPp tests for exactly this reason for a few years now. It seems that SIPp is able to assemble the SIP message from 2 TCP frames but is unable to handle a frame with more than one SIP message.