From d8d34fdc40fead1a01c294fc8c5566d0ca9a82de Mon Sep 17 00:00:00 2001 From: Liong Sauw Ming Date: Wed, 6 Apr 2016 08:15:45 +0000 Subject: Fixed #1911: Callback onCallSdpCreated() (pjsua2) doesn't modify the SDP git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@5274 74dad513-b988-da41-8d7b-12977e46ad98 --- pjsip/src/pjsua2/endpoint.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/pjsip/src/pjsua2/endpoint.cpp b/pjsip/src/pjsua2/endpoint.cpp index dc100782..d4ad0fbe 100644 --- a/pjsip/src/pjsua2/endpoint.cpp +++ b/pjsip/src/pjsua2/endpoint.cpp @@ -894,8 +894,15 @@ void Endpoint::on_call_sdp_created(pjsua_call_id call_id, /* Check if application modifies the SDP */ if (orig_sdp != prm.sdp.wholeSdp) { - pjmedia_sdp_parse(pool, (char*)prm.sdp.wholeSdp.c_str(), - prm.sdp.wholeSdp.size(), &sdp); + pjmedia_sdp_session *new_sdp; + pj_str_t dup_new_sdp; + pj_str_t new_sdp_str = {(char*)prm.sdp.wholeSdp.c_str(), + prm.sdp.wholeSdp.size()}; + + pj_strdup(pool, &dup_new_sdp, &new_sdp_str); + pjmedia_sdp_parse(pool, dup_new_sdp.ptr, + dup_new_sdp.slen, &new_sdp); + pj_memcpy(sdp, new_sdp, sizeof(*sdp)); } } -- cgit v1.2.3