Hi Jeff,
On 04/13/2011 06:23 PM, Jeff Pyle wrote:
Bogdan,
Don't hold back…let's hear how you really feel. :)
Do not make me start :P
I understand your position. Unfortunately since there are UAs that do
this, and they RFC compliant in their behavior, the validate_dialog()
function is less useful in the real world. I've had to remove it from
my configs.
I agree with you - we like it or not, needs yo comply with the RFC.
As today we had the monthly IRC meeting, I brought this into discussion
(SIP-wise URI matching) and already have an action plan set (together
with Ovidiu Sas).
I'm fighting a similar situation regarding the behavior of the
uac_replace_from function. It seems that Acme SBCs replace the value
of the From header (old To header) on new requests within a dialog,
and this breaks the uac_replace_from function. I've cited the second
paragraph of section 12.2.1.1 of RFC 3261. The carrier I'm fighting
with now reads this "mandatory reflection" behavior as part of the old
RFC 2543, not 3261. They aren't willing to put any more time into
configuring their Acme to maintain the headers. I work with another
carrier partner who also uses Acme who was able to make the change.
I'm trying to get the details from the second carrier so I can share
them with the first.
Life is complicated with RFCs...even we all read the same papers, we
have as many opinions as number of readers :P.
BTW, have you tested the ACK patch I sent you ?
Regards,
Bogdan
- Jeff
From: Bogdan-Andrei Iancu <[email protected]
<mailto:[email protected]>>
Reply-To: OpenSIPS users mailling list <[email protected]
<mailto:[email protected]>>
Date: Wed, 13 Apr 2011 10:54:00 -0400
To: "[email protected] <mailto:[email protected]>"
<[email protected] <mailto:[email protected]>>
Subject: Re: [OpenSIPS-Users] dlg_validate_dialog errors in loose_route
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 <[email protected]
<mailto:[email protected]>>
Reply-To: OpenSIPS users mailling list <[email protected]
<mailto:[email protected]>>
Date: Mon, 11 Apr 2011 10:15:11 -0400
To: OpenSIPS users mailling list <[email protected]
<mailto:[email protected]>>
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 <[email protected] <mailto:[email protected]>>
Reply-To: OpenSIPS users mailling list <[email protected]
<mailto:[email protected]>>
Date: Mon, 11 Apr 2011 06:13:32 -0400
To: "[email protected] <mailto:[email protected]>"
<[email protected] <mailto:[email protected]>>
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
[email protected]http://lists.opensips.org/cgi-bin/mailman/listinfo/users
_______________________________________________
Users mailing list
[email protected]http://lists.opensips.org/cgi-bin/mailman/listinfo/users
--
Bogdan-Andrei Iancu
OpenSIPS eBootcamp - 2nd of May 2011
OpenSIPS solutions and "know-how"
_______________________________________________
Users mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
--
Bogdan-Andrei Iancu
OpenSIPS eBootcamp - 2nd of May 2011
OpenSIPS solutions and "know-how"
_______________________________________________
Users mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users