<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<font size="-1">These modifications were implementated for dialogs
having PRACK and UPDATE<br>
<br>
--- a/modules/dialog/dlg_handlers.c Fri Jun 14 13:45:41 2013
+0200<br>
+++ b/modules/dialog/dlg_handlers.c Fri Jun 14 13:55:24 2013
+0200<br>
@@ -1249,16 +1249,18 @@<br>
}<br>
<br>
if ( (event==DLG_EVENT_REQ || event==DLG_EVENT_REQACK)<br>
- && new_state==DLG_STATE_CONFIRMED) {<br>
+ && (new_state==DLG_STATE_CONFIRMED ||
new_state==DLG_STATE_EARLY)) {<br>
<br>
timeout = get_dlg_timeout(req);<br>
if (timeout!=default_timeout) {<br>
dlg->lifetime = timeout;<br>
}<br>
- if (update_dlg_timer( &dlg->tl, dlg->lifetime
)==-1) {<br>
+ if (new_state!=DLG_STATE_EARLY) {<br>
+ if (update_dlg_timer( &dlg->tl, dlg->lifetime
)==-1) {<br>
LM_ERR("failed to update dialog lifetime\n");<br>
+ }<br>
}<br>
- if (update_cseqs(dlg, req, dir)!=0) {<br>
+ if ((event != DLG_EVENT_REQACK) &&
(update_cseqs(dlg, req, dir)!=0)) {<br>
LM_ERR("cseqs update failed\n");<br>
} else {<br>
dlg->dflags |= DLG_FLAG_CHANGED;<br>
<br>
--- a/modules/dialog/dlg_hash.c Fri Jun 14 13:45:41 2013 +0200<br>
+++ b/modules/dialog/dlg_hash.c Fri Jun 14 13:55:24 2013 +0200<br>
@@ -883,6 +883,7 @@<br>
break;<br>
case DLG_EVENT_REQACK:<br>
switch (dlg->state) {<br>
+ case DLG_STATE_EARLY:<br>
case DLG_STATE_CONFIRMED_NA:<br>
dlg->state = DLG_STATE_CONFIRMED;<br>
break;<br>
<br>
</font>
</body>
</html>