In setting up Kamailio with MSILO, I've noticed that some sip clients (I'm using CSipSimple), upon un-REGISTER-ing do not send an Allow header, but do send an "Expires: 0" header as well as a Contact header.
However as the Contact header doesn't contain "expires=0", it appears as though the MSILO skips over checking the Expires header.
As such, I've had to add the following workaround to my route[REGISTRAR] block or else these clients trigger the m_dump.
# Ensure we aren't unregistering # Right now, CSipSimple doesn't send an Allow header with an un-REGISTER, # so Kamailio skips to checking the Contact header for expires, and appears # to ignore the fact that an Expires: 0 header is present. if($hdr(Expires) != 0) m_dump();
Looking through the msilo check_message_support function, it appears that it never checks for the Expires header if there is no Allow header and the Contact header does not specify an expire setting.
I do believe that we're missing the check for the Expires header, regardless of whether or not there is an Allow header, or a Contact header with expires=0
-A