Hi Ronald, Hi Jeff,
Ronald - thanks for the debug output - really useful.
Can you check the attached patch to see if it fixes the problem (if not,
post again the output).
Regards,
Bogdan
Ronald Cepres wrote:
Hi Bogdan,
I get a very similar behavior as what Jeff gets. I can see the
re-INVITE coming and I'm sure that it goes through loose_route block.
I can also see the "Update by a REQUEST" log. Here's a snippet of the
logs after getting the re-INVITE:
DBG:dialog:dlg_onroute: route param is '04e.1dc98a86' (len=12)
DBG:dialog:lookup_dlg: ref dlg 0x780a4fe0 with 1 -> 3
DBG:dialog:lookup_dlg: dialog id=1755880657 found on entry 3648
DBG:core:parse_headers: flags=48
DBG:core:parse_to_param: tag=9979
DBG:core:parse_to: end of header reached, state=29
DBG:core:parse_to: display={}, ruri={sip:[email protected]:5060}
DBG:dialog:next_state_dlg: dialog 0x780a4fe0 changed from state 4 to
state 4, due event 8
DBG:dialog:dlg_onroute: sequential request successfully processed
(dst_leg=0)
DBG:dialog:get_dlg_timeout: invalid AVP value, use default timeout
DBG:dialog:dlg_update_cseq: dlg 0x780a4fe0[0]: cseq is 1
DBG:dialog:run_dlg_callbacks: dialog=0x780a4fe0, type=16
DBG:sst:sst_dialog_request_within_CB: Update by a REQUEST. INVITE
DBG:core:parse_headers: flags=ffffffffffffffff
[email protected]: entering loose_route block..
Dialogs still expire after the timeout set by sst module. What else
can I check to see where might probably be wrong?
Thanks!
Regards,
Ronald
On Thu, Feb 3, 2011 at 6:23 AM, Bogdan-Andrei Iancu
<[email protected] <mailto:[email protected]>> wrote:
Hi Jeff,
are you sure your re-INVITE is going through loose_route() and
attached to the dialog context (to update it) ?
if running in debug mode, at re-INVITE time you could see a log
from SST module like "Update by a REQUEST..."
Regards,
bogdan
Jeff Pyle wrote:
And another issue…
With a call that went to a carrier that does support sst, I
see they refreshed the call at 15 seconds into it. Or, 15
seconds before the session expired. You can look at it either
way. They included the following in their refresher INVITE:
Session-Expires: 90;refresher=uac
Min-SE: 90
So they've bumped the timer to 90 seconds from my 30. Cool. It
seems the sst module doesn't see this refresh, and the dialog
module still doinks the call at 30 seconds into it. Bummer. Is
this normal?
On the initial INVITE I create the dialog with create_dialog()
then set the flag for the sst module.
- Jeff
From: Jeff Pyle <[email protected]
<mailto:[email protected]>
<mailto:[email protected] <mailto:[email protected]>>>
Reply-To: OpenSIPS users mailling list
<[email protected] <mailto:[email protected]>
<mailto:[email protected]
<mailto:[email protected]>>>
Date: Thu, 27 Jan 2011 13:49:44 -0500
To: OpenSIPS users mailling list <[email protected]
<mailto:[email protected]>
<mailto:[email protected]
<mailto:[email protected]>>>
Subject: [OpenSIPS-Users] sst module killing calls
Hello,
I'm experimenting with the sst module once again. It's
configured as follows:
modparam("dialog|sst", "timeout_avp", "$avp(s:dialog_timeout)")
modparam("sst", "sst_flag", 6)
modparam("sst", "min_se", 30)
Dialogs are set for all calls.
Calls I sent contain the following header:
Session-Expires: 30
So far, so good. When I get a 200 OK from a carrier that
supports sst, I see the following headers:
Supported: timer
Session-Expires: 30;refresher=uas
(The 30 second expiration is an experimentally low value.)
When I get a 200 OK from a carrier that doesn't support sst, I
don't see those two headers. In this case it seems the sst
module still sets the dialog expiration to 30 seconds, after
which the call goes poof.
Is that correct behavior? If neither end advertise support for
sst, and neither side is going to refresh it, it seems a bit
strange the sst module would still cause the dialog to expire
at the expiration time.
- Jeff
------------------------------------------------------------------------
_______________________________________________
Users mailing list
[email protected] <mailto:[email protected]>
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
--
Bogdan-Andrei Iancu
OpenSIPS Event - expo, conf, social, bootcamp
2 - 4 February 2011, ITExpo, Miami, USA
OpenSIPS solutions and "know-how"
_______________________________________________
Users mailing list
[email protected] <mailto:[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 - 28th February 2011
OpenSIPS solutions and "know-how"
Index: modules/dialog/dlg_handlers.c
===================================================================
--- modules/dialog/dlg_handlers.c (revision 7768)
+++ modules/dialog/dlg_handlers.c (working copy)
@@ -907,6 +907,10 @@
&& new_state==DLG_STATE_CONFIRMED) {
LM_DBG("sequential request successfully processed (dst_leg=%d)\n",
dst_leg);
+
+ /* within dialog request */
+ run_dlg_callbacks( DLGCB_REQ_WITHIN, dlg, req, dir, 0);
+
timeout = get_dlg_timeout(req);
/* update timer during sequential request? */
if (timeout!=default_timeout) {
@@ -924,9 +928,6 @@
}
}
- /* within dialog request */
- run_dlg_callbacks( DLGCB_REQ_WITHIN, dlg, req, dir, 0);
-
if ( (event!=DLG_EVENT_REQACK) &&
(dlg->cbs.types)&DLGCB_RESPONSE_WITHIN ) {
/* ref the dialog as registered into the transaction callback.
_______________________________________________
Users mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users