Module: sip-router
Branch: master
Commit: ca3da467f59dbaed2d20aa45314ac12a362e2deb
URL:
http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=ca3da46…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com>
Committer: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: Wed Jul 30 15:58:27 2014 +0200
dialog: if ACK for 200ok is not coming in 60sec, dialog lifetime is shortened for 10 more
sec
- should handle the situation when caller cancels the call but the
callee answered before getting the cancel
- reported by Alex Balashov
---
modules/dialog/dlg_hash.c | 7 +++++++
1 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/modules/dialog/dlg_hash.c b/modules/dialog/dlg_hash.c
index 04807a1..8220104 100644
--- a/modules/dialog/dlg_hash.c
+++ b/modules/dialog/dlg_hash.c
@@ -249,6 +249,13 @@ int dlg_clean_run(ticks_t ti)
unlink_unsafe_dlg(&d_table->entries[i], tdlg);
destroy_dlg(tdlg);
}
+ if(tdlg->state==DLG_STATE_CONFIRMED_NA && tdlg->start_ts<tm-60) {
+ if(update_dlg_timer(&dlg->tl, 10)<0) {
+ LM_ERR("failed to update dialog lifetime in long non-ack state\n");
+ }
+ dlg->lifetime = 10;
+ dlg->dflags |= DLG_FLAG_CHANGED;
+ }
}
lock_set_release(d_table->locks, d_table->entries[i].lock_idx);
}