diff options
author | Liong Sauw Ming <ming@teluu.com> | 2016-04-06 08:15:45 +0000 |
---|---|---|
committer | Liong Sauw Ming <ming@teluu.com> | 2016-04-06 08:15:45 +0000 |
commit | d8d34fdc40fead1a01c294fc8c5566d0ca9a82de (patch) | |
tree | 396482acf7835107c291bc291d08ca787d56982c | |
parent | fbbfd915b0225c657920a6696f460a687f28cc6b (diff) |
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
-rw-r--r-- | pjsip/src/pjsua2/endpoint.cpp | 11 |
1 files 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)); } } |