<div dir="ltr">Hi all.<div><br></div><div>I'm trying to use the dialog module's keep alive feature (ka_interval() and dlg_set_property()), and the documentation (under dlg_set_property) says this:</div><div><br></div><div>If keep alive is enabled for a dialog, the module will send SIP OPTIONS requests with CSeq lower or equal than last request within dialog</div><div><br></div><div>This is seems really weird to me, but the problem is worse than that - when setting dlg_set_property("ka-src"), the OPTIONS messages sent to the caller always have CSeq set to "0", regardless of what CSeq the UA sent on its invite.</div><div><br></div><div>The problem is that while some UAs respond to these purposefully broken messages with some kind of a 5xx reply (for example, Linphone funnily sends "500 Internal Server Error"), several UAs don't respond at all. Worse than that - some of the UAs that send back 5xx replies to OPTIONS with a non-zero but invalid CSeq will completely ignore the OPTIONS keep-alive message that is sent to the caller with a CSeq 0 - for example, PJSIP responds with "503 Invalid CSeq" to a "ka-dst" OPTIONS message but will ignore a "ka-src" OPTIONS message with CSeq 0.</div><div><br></div><div>My questions:</div><div>1. Why are keep-alive messages sent with a wrong CSeq?</div><div>2. If we're keeping the "wrong CSeq" approach, can we at least not send CSeq "0"?</div><div>3. Is there a way to change any of the above behaviors with a configuration (i.e. without patching the sources)?</div><div><br></div><div>Thanks in advance</div><div><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr">Oded Arbel<div><a href="mailto:odeda@cloudonix.io" target="_blank">odeda@cloudonix.io</a></div><div><br></div><div><br></div></div></div></div></div>
</div></div>