diff options
author | Benny Prijono <bennylp@teluu.com> | 2010-08-01 09:48:51 +0000 |
---|---|---|
committer | Benny Prijono <bennylp@teluu.com> | 2010-08-01 09:48:51 +0000 |
commit | 059d687249f0f95e0b30785c418e1aa47555615a (patch) | |
tree | 792e10acf82954faca0a2b7fe937064a1ecb81d8 /pjsip/src/pjsua-lib/pjsua_call.c | |
parent | 1426b8301e4d99837bd70ce73b350d03fafbfd45 (diff) |
Implemented core multipart support and support in the invite session (re #1070)
- incoming multipart message will be handled automatically
- for testing, enable HAVE_MULTIPART_TEST in pjsua_app.c
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@3243 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip/src/pjsua-lib/pjsua_call.c')
-rw-r--r-- | pjsip/src/pjsua-lib/pjsua_call.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/pjsip/src/pjsua-lib/pjsua_call.c b/pjsip/src/pjsua-lib/pjsua_call.c index 8b695adf..d390009e 100644 --- a/pjsip/src/pjsua-lib/pjsua_call.c +++ b/pjsip/src/pjsua-lib/pjsua_call.c @@ -645,7 +645,7 @@ pj_bool_t pjsua_call_on_incoming(pjsip_rx_data *rdata) pjsua_call *call; int call_id = -1; int sip_err_code; - pjmedia_sdp_session *offer, *answer; + pjmedia_sdp_session *offer=NULL, *answer; pj_status_t status; /* Don't want to handle anything but INVITE */ @@ -765,13 +765,14 @@ pj_bool_t pjsua_call_on_incoming(pjsip_rx_data *rdata) /* Parse SDP from incoming request */ if (rdata->msg_info.msg->body) { - status = pjmedia_sdp_parse(rdata->tp_info.pool, - (char*)rdata->msg_info.msg->body->data, - rdata->msg_info.msg->body->len, &offer); - if (status == PJ_SUCCESS) { - /* Validate */ - status = pjmedia_sdp_validate(offer); - } + pjsip_rdata_sdp_info *sdp_info; + + sdp_info = pjsip_rdata_get_sdp_info(rdata); + offer = sdp_info->sdp; + + status = sdp_info->sdp_err; + if (status==PJ_SUCCESS && sdp_info->sdp==NULL) + status = PJSIP_ERRNO_FROM_SIP_STATUS(PJSIP_SC_NOT_ACCEPTABLE); if (status != PJ_SUCCESS) { const pj_str_t reason = pj_str("Bad SDP"); |