[OpenSIPS-Users] validate_dialog() failing to recognise reinvites
Bogdan-Andrei Iancu
bogdan at opensips.org
Thu Oct 21 06:27:26 EST 2021
Hi,
So the error log is about the "remote contact", but the return code is
-1 ?? (which according to doc [1] means invalid cseq). Checking the
code, you should have get a -2 ret code in correlation to that log (see
[2]).
Now, based on the error log, I see that the dialog module retained the
"sip:asterisk at 1.1.1.28:5060" URI (from a received Contact hdr), but it
gets from the other party (as RURI) a different value, the
"sip:asterisk at 1.1.1.28:5060;user=phone" . And according to RFC3261 [3],
that extra "user" URI param makes the URI not to match anymore - see
chapter " 9.1.4 URI Comparison"
o URI uri-parameter components are compared as follows:
- Any uri-parameter appearing in both URIs must match.
-*A user, ttl, or method uri-parameter appearing in only one URI never
matches, even if it contains the default value.*
[1]
https://opensips.org/html/docs/modules/3.1.x/dialog.html#func_validate_dialog
[2]
https://github.com/OpenSIPS/opensips/blob/master/modules/dialog/dlg_handlers.c#L2707
[3] https://www.ietf.org/rfc/rfc3261.txt
Regards,
Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
https://www.opensips-solutions.com
OpenSIPS eBootcamp 2021
https://opensips.org/training/OpenSIPS_eBootcamp_2021/
On 10/19/21 12:06 PM, Kingsley Tart wrote:
> Hi,
>
> Thanks. I hadn't noticed before but yes, I'm seeing this:
>
> ERROR:dialog:dlg_validate_dialog: failed to validate remote contact: dlg=[sip:asterisk at 1.1.1.28:5060] , req=[sip:asterisk at 1.1.1.28:5060;user=phone]
>
> I can't see anywhere in the SIP trace where that contact URI appears
> *without* user=phone in it so I don't understand why that's happening.
>
> Cheers,
> Kingsley.
>
> On Tue, 2021-10-19 at 10:08 +0300, Bogdan-Andrei Iancu wrote:
>> Hi Kingsley,
>>
>> According to the docs [1], the "-1" ret code means "No SIP message". Do you see any parsing errors in the logs, while doing the validation?
>>
>>
>> [1] https://opensips.org/html/docs/modules/3.1.x/sipmsgops.html#func_sipmsg_validate
>>
>> Regards,
>> On 10/18/21 5:25 PM, Kingsley Tart wrote:
>>> Hi,
>>>
>>> Using OpenSIPS 3.1.5 I'm getting validate_dialog() returning $rc=-1 on
>>> re-invites.
>>>
>>>
>>> I have this in opensips.cfg:
>>>
>>> modparam("dialog", "dlg_match_mode", 1)
>>>
>>>
>>> The top of route() looks like this:
>>>
>>> route {
>>> if (has_totag()) {
>>> if (is_method("ACK") && t_check_trans()) {
>>> t_relay();
>>> exit;
>>> }
>>>
>>> if (!loose_route()) {
>>> send_reply(404, "Not here");
>>> exit;
>>> }
>>>
>>> if (!validate_dialog()) {
>>> xlog("L_WARN", "Ignoring $rm from $si due to invalid dialog; rc=$rc\n");
>>> }
>>>
>>>
>>> I've attached an (anonymised) SIP trace. OpenSIPS isn't responding to
>>> the reinvites as I'm seeing "Ignoring INVITE from (address) due to
>>> invalid dialog: rc=-1" (as per the xlog above).
>>>
>>> Is there something wrong with these re-invite messages, or something
>>> I'm doing wrong in OpenSIPS?
>>>
>>> Cheers,
>>> Kingsley.
>>>
>>>
>>> _______________________________________________
>>> Users mailing list
>>> Users at lists.opensips.org
>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20211021/dbef40a3/attachment.html>
More information about the Users
mailing list