[OpenSIPS-Users] dlg_validate_dialog errors in loose_route
Bogdan-Andrei Iancu
bogdan at opensips.org
Wed Apr 13 16:54:00 CEST 2011
Hi Jeff,
Well, life sucks.....You see, the UA you use is re-ordering the URI
params...This is perfectly allowed from RFC point of view, but is
bullshit in real life. So your UA is compliant, but not fairplay :)....
The only solution to this is to extend the "SIP URI matching" from
simple string comparison, to RFC-wise comp - parsing the URI, checking
username, domain, params, etc.....I tried to avoid this as much as
possible as it BS to me....
Regards,
Bogdan
On 04/13/2011 05:34 AM, Jeff Pyle wrote:
> This thing is picky… The validation failed with the following values
> in the log entry:
>
> req=[sip:<opensips IP>;*lr;r2=on*;ftag=gK0706089a;did=e17.bfb88ba7],
> dlg=[sip:<opensips IP>;*r2=on;lr*;ftag=gK0706089a;did=e17.bfb88ba7]
>
> Not quite sure what to say about this one.
>
>
> - Jeff
>
> From: Jeff Pyle <jpyle at fidelityvoice.com <mailto:jpyle at fidelityvoice.com>>
> Reply-To: OpenSIPS users mailling list <users at lists.opensips.org
> <mailto:users at lists.opensips.org>>
> Date: Mon, 11 Apr 2011 10:15:11 -0400
> To: OpenSIPS users mailling list <users at lists.opensips.org
> <mailto:users at lists.opensips.org>>
> Subject: Re: [OpenSIPS-Users] dlg_validate_dialog errors on BYE and
> ACK in loose_route
>
> Indeed! I hadn't noticed the difference in the dlg vs req sections of
> the debug message.
>
> I shall try exactly as you suggest. Thanks.
>
>
> - Jeff
>
> From: Vlad Paiu <vladpaiu at opensips.org <mailto:vladpaiu at opensips.org>>
> Reply-To: OpenSIPS users mailling list <users at lists.opensips.org
> <mailto:users at lists.opensips.org>>
> Date: Mon, 11 Apr 2011 06:13:32 -0400
> To: "users at lists.opensips.org <mailto:users at lists.opensips.org>"
> <users at lists.opensips.org <mailto:users at lists.opensips.org>>
> Subject: Re: [OpenSIPS-Users] dlg_validate_dialog errors on BYE and
> ACK in loose_route
>
> Hello Jeff,
>
> It's not that the dialog is already torn down by the time the BYE gets
> to that particular portion of script.
> It's complaining about the fact that at the dialog creation, the route
> had the "lr=on" parameter, and at BYE time, the parameter has been
> stripped and set
> just to "lr".
>
> This should not happen in a regular scenario, as other SIP entities
> should not explicitly modify the content of Route headers recorded at
> Invite time.
> You could try to check the enable_full_lr ( [1] ) parameter, and
> onlyattach "lr" instead of "lr=on", and see if this fixes the behavior.
>
> [1] http://www.opensips.org/html/docs/modules/devel/rr.html#id250149
>
> Regards,
> --
> Vlad Paiu
> OpenSIPS Developer
>
>
> On 04/09/2011 10:32 PM, Jeff Pyle wrote:
>> Hello,
>>
>> I'm trying a new chunklet of config in loose_route(). I believe this
>> came from a documentation page somewhere, so I don't pretend to take
>> credit for the concept.
>>
>> # Clean up dialog data if necessary
>> if ($DLG_status!=NULL && !validate_dialog()) {
>> xlog("L_INFO", "Unable to validate
>> dialog, fixing - $hdr(CSeq) on $ci\n");
>> fix_route_dialog();
>> }
>>
>> I send the first batch of pseudo-production traffic through this
>> config today and I ended up with a metric ton of:
>> ERROR:dialog:dlg_validate_dialog: Check failed for routenumber 0.
>> req=[sip:<opensips-IP?;lr;ftag=23ddd50-0-13c4-1f179b-78884527-1f179b;did=45b.b972314],dlg=[sip:<opensips-IP>;lr=on;ftag=23ddd50-0-13c4-1f179b-78884527-1f179b;did=45b.b972314]
>>
>> And, the xlogs from the above line:
>> Unable to validate dialog, fixing - 3 BYE on <callid>
>>
>> It showed up on a number of BYEs and ACKs. My dialog module config
>> is as follows:
>>
>> # ----- dialog params -----
>> modparam("dialog", "dlg_flag", 4)
>> modparam("dialog", "bye_on_timeout_flag", 4)
>> modparam("dialog", "default_timeout", 21600)
>> modparam("dialog|sst", "timeout_avp", "$avp(s:dialog_timeout)")
>> modparam("dialog", "dlg_extra_hdrs", "Hint: dialog expired\r\n")
>> modparam("dialog", "dlg_match_mode", 1) # 0 = DID_ONLY; 1 = DID
>> first, SIP second; 2 = SIP only
>> modparam("dialog", "db_url", "mysql://osuer:ospass@dbcluster/osdb")
>> modparam("dialog", "table_name", "dialog_1")
>> modparam("dialog", "db_mode", 1) # 1 = Realtime to DB; 2 = delayed;
>> 3 = on shutdown
>> modparam("dialog", "profiles_with_value", "711calls; 729calls; calls")
>>
>> create_dialog() runs on all initial INVITEs.
>>
>> Is this type of behavior anything close to normal? What might cause
>> it? My immediate fix is to simply comment out this portion of the
>> config, but I'm afraid I might be masking a larger issue. Any
>> suggestions would be great.
>>
>> Just had a thought as I was about to send this email. Perhaps this
>> is because by the time the BYE gets to this portion of the script,
>> the dialog is already torn down? Could it be that simple, just add
>> "if !(is_method("BYE") || is_method("ACK"))" to the top line of this
>> config portion?
>>
>>
>> - Jeff
>>
>>
>> _______________________________________________
>> Users mailing list
>> Users at lists.opensips.orghttp://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>
>
>
>
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
--
Bogdan-Andrei Iancu
OpenSIPS eBootcamp - 2nd of May 2011
OpenSIPS solutions and "know-how"
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20110413/3705b737/attachment-0001.htm>
More information about the Users
mailing list