summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLiong Sauw Ming <ming@teluu.com>2016-04-06 08:15:45 +0000
committerLiong Sauw Ming <ming@teluu.com>2016-04-06 08:15:45 +0000
commitd8d34fdc40fead1a01c294fc8c5566d0ca9a82de (patch)
tree396482acf7835107c291bc291d08ca787d56982c
parentfbbfd915b0225c657920a6696f460a687f28cc6b (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.cpp11
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));
}
}