summaryrefslogtreecommitdiff
path: root/pjsip
diff options
context:
space:
mode:
Diffstat (limited to 'pjsip')
-rw-r--r--pjsip/src/pjsua-lib/pjsua_media.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/pjsip/src/pjsua-lib/pjsua_media.c b/pjsip/src/pjsua-lib/pjsua_media.c
index 00ffcc43..8b74d5ac 100644
--- a/pjsip/src/pjsua-lib/pjsua_media.c
+++ b/pjsip/src/pjsua-lib/pjsua_media.c
@@ -528,6 +528,9 @@ pj_status_t pjsua_media_subsys_destroy(void)
/* Close media transports */
for (i=0; i<pjsua_var.ua_cfg.max_calls; ++i) {
+ if (pjsua_var.calls[i].med_tp_st != PJSUA_MED_TP_IDLE) {
+ pjsua_media_channel_deinit(i);
+ }
if (pjsua_var.calls[i].med_tp) {
(*pjsua_var.calls[i].med_tp->op->destroy)(pjsua_var.calls[i].med_tp);
pjsua_var.calls[i].med_tp = NULL;
@@ -1165,7 +1168,7 @@ pj_status_t pjsua_media_channel_deinit(pjsua_call_id call_id)
call->med_tp_st = PJSUA_MED_TP_IDLE;
}
- if (call->med_orig && call->med_tp != call->med_orig) {
+ if (call->med_orig && call->med_tp && call->med_tp != call->med_orig) {
pjmedia_transport_close(call->med_tp);
call->med_tp = call->med_orig;
}