summaryrefslogtreecommitdiff
path: root/pjsip
diff options
context:
space:
mode:
Diffstat (limited to 'pjsip')
-rw-r--r--pjsip/src/pjsip/sip_util.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/pjsip/src/pjsip/sip_util.c b/pjsip/src/pjsip/sip_util.c
index 6d8b8fdb..18116c08 100644
--- a/pjsip/src/pjsip/sip_util.c
+++ b/pjsip/src/pjsip/sip_util.c
@@ -441,7 +441,12 @@ PJ_DEF(pj_status_t) pjsip_endpt_create_request_from_hdr( pjsip_endpoint *endpt,
} else {
contact = NULL;
}
- call_id = (pjsip_cid_hdr*) pjsip_hdr_clone(tdata->pool, param_call_id);
+ call_id = pjsip_cid_hdr_create(tdata->pool);
+ if (param_call_id != NULL && param_call_id->id.slen)
+ pj_strdup(tdata->pool, &call_id->id, &param_call_id->id);
+ else
+ pj_create_unique_string(tdata->pool, &call_id->id);
+
cseq = pjsip_cseq_hdr_create(tdata->pool);
if (param_cseq >= 0)
cseq->cseq = param_cseq;