summaryrefslogtreecommitdiff
path: root/pjsip/src/pjsua-lib/pjsua_call.c
diff options
context:
space:
mode:
Diffstat (limited to 'pjsip/src/pjsua-lib/pjsua_call.c')
-rw-r--r--pjsip/src/pjsua-lib/pjsua_call.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/pjsip/src/pjsua-lib/pjsua_call.c b/pjsip/src/pjsua-lib/pjsua_call.c
index ece37d51..020570cd 100644
--- a/pjsip/src/pjsua-lib/pjsua_call.c
+++ b/pjsip/src/pjsua-lib/pjsua_call.c
@@ -364,6 +364,9 @@ on_make_call_med_tp_complete(pjsua_call_id call_id,
*/
pjsip_dlg_inc_lock(dlg);
+ /* Decrement dialog session. */
+ pjsip_dlg_dec_session(dlg, &pjsua_var.mod);
+
if (status != PJ_SUCCESS) {
pjsua_perror(THIS_FILE, "Error initializing media channel", status);
goto on_error;
@@ -723,6 +726,12 @@ PJ_DEF(pj_status_t) pjsua_call_make_call(pjsua_acc_id acc_id,
goto on_error;
}
+ /* Temporarily increment dialog session. Without this, dialog will be
+ * prematurely destroyed if dec_lock() is called on the dialog before
+ * the invite session is created.
+ */
+ pjsip_dlg_inc_session(dlg, &pjsua_var.mod);
+
/* Done. */
if (p_call_id)