Hello,
I reworked a bit the first patch and applied it to master branch.
But the second one, to set state DLG_STATE_CONFIRMED, is not clear that
is needed and you didn't comment to my previous email related to it.
Cheers,
Daniel
On 6/14/13 2:10 PM, Halina Nowak wrote:
These modifications were implementated for dialogs
having PRACK and UPDATE
--- a/modules/dialog/dlg_handlers.c Fri Jun 14 13:45:41 2013 +0200
+++ b/modules/dialog/dlg_handlers.c Fri Jun 14 13:55:24 2013 +0200
@@ -1249,16 +1249,18 @@
}
if ( (event==DLG_EVENT_REQ || event==DLG_EVENT_REQACK)
- && new_state==DLG_STATE_CONFIRMED) {
+ && (new_state==DLG_STATE_CONFIRMED ||
new_state==DLG_STATE_EARLY)) {
timeout = get_dlg_timeout(req);
if (timeout!=default_timeout) {
dlg->lifetime = timeout;
}
- if (update_dlg_timer( &dlg->tl, dlg->lifetime )==-1) {
+ if (new_state!=DLG_STATE_EARLY) {
+ if (update_dlg_timer( &dlg->tl, dlg->lifetime )==-1) {
LM_ERR("failed to update dialog lifetime\n");
+ }
}
- if (update_cseqs(dlg, req, dir)!=0) {
+ if ((event != DLG_EVENT_REQACK) && (update_cseqs(dlg, req,
dir)!=0)) {
LM_ERR("cseqs update failed\n");
} else {
dlg->dflags |= DLG_FLAG_CHANGED;
--- a/modules/dialog/dlg_hash.c Fri Jun 14 13:45:41 2013 +0200
+++ b/modules/dialog/dlg_hash.c Fri Jun 14 13:55:24 2013 +0200
@@ -883,6 +883,7 @@
break;
case DLG_EVENT_REQACK:
switch (dlg->state) {
+ case DLG_STATE_EARLY:
case DLG_STATE_CONFIRMED_NA:
dlg->state = DLG_STATE_CONFIRMED;
break;
_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users(a)lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
--
Daniel-Constantin Mierla -
http://www.asipto.com
http://twitter.com/#!/miconda -
http://www.linkedin.com/in/miconda