Hi The header fields should not be the reason that the reply is not processed. By default, kamailio should process the response even its content is something that the endpoints won't like.
If you can provide that SIP request and response (a packet capture may also be good), then it might be obvious to someone if something is wrong with it. Does your config file have anything in a reply route (sanity-checking, etc) that might be dropping the replies?
James
On Sun, 23 Feb 2025 at 07:15, 高秉寬 via sr-users sr-users@lists.kamailio.org wrote:
Dear Kamailio Developers,
I am using Kamailio as a SIP server to facilitate a phone call, but I am encountering an issue where the call cannot be established due to Kamailio sending a 408 Request Timeout to the caller.
Issue Details:
A (Caller) sends an initial INVITE to Kamailio, which then forwards it to B (Callee). The INVITE contains the following Supported header:
Supported: timer,100rel,replaces,precondition,from-change,histinfo,tdialog
I suspect the precondition option may be relevant to the issue.
B responds with a 183 Session Progress message, which includes:
Require: 100rel,precondition
Kamailio correctly forwards this response to A.
A then sends a PRACK request to Kamailio. However, this request contains:
Require: sec-agree Supported: timer
Notably, precondition is absent from both the Require and Supported headers.
Kamailio forwards this PRACK to B, and B responds with 200 OK, including:
Supported: 100rel,from-change,tdialog
However, Kamailio does not seem to acknowledge B's 200 OK and instead keeps retransmitting the PRACK to B. B responds with 200 OK again, but the cycle repeats.
After three retransmissions of PRACK, Kamailio eventually sends 408 Request Timeout to A, leading A to send a CANCEL request.
Device Used:
Caller (A): Asus ROG Phone 5 Callee (B): Asus ROG Phone 6
Both are commercially available mobile phones.
Possible Cause:
According to 3GPP TS 24.229, Subclause 5.1.3.1,
If the received response with an SDP body includes a Require header with the "precondition" option-tag, the originating UE shall include a Require header with the "precondition" option-tag in responses with an SDP body to subsequent requests that include an SDP body and include the "precondition" option-tag in either the Supported or Require header field received in-dialog.
In this case:
The 183 Session Progress from B contains Require: precondition. The subsequent PRACK from A does not include precondition in either Require or Supported.
Could this mismatch be the reason Kamailio keeps retransmitting PRACK and ignoring B's 200 OK? Or could there be another factor causing Kamailio to behave this way?
If additional details are needed, please let me know.
Best regards, Ping Kuan Kao
Kamailio - Users Mailing List - Non Commercial Discussions -- sr-users@lists.kamailio.org To unsubscribe send an email to sr-users-leave@lists.kamailio.org Important: keep the mailing list in the recipients, do not reply only to the sender!