Ignore:
Timestamp:
Jan 23, 2008 8:29:30 PM (12 years ago)
Author:
bennylp
Message:

Related to ticket #61: added new invite session API pjsip_inv_verify_request() which takes additional remote SDP, to avoid parsing SDP multiple times

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjsip/src/pjsip-ua/sip_inv.c

    r1598 r1733  
    677677 * Verify incoming INVITE request. 
    678678 */ 
    679 PJ_DEF(pj_status_t) pjsip_inv_verify_request(pjsip_rx_data *rdata, 
    680                                              unsigned *options, 
    681                                              const pjmedia_sdp_session *l_sdp, 
    682                                              pjsip_dialog *dlg, 
    683                                              pjsip_endpoint *endpt, 
    684                                              pjsip_tx_data **p_tdata) 
     679PJ_DEF(pj_status_t) pjsip_inv_verify_request2(pjsip_rx_data *rdata, 
     680                                              unsigned *options, 
     681                                              const pjmedia_sdp_session *r_sdp, 
     682                                              const pjmedia_sdp_session *l_sdp, 
     683                                              pjsip_dialog *dlg, 
     684                                              pjsip_endpoint *endpt, 
     685                                              pjsip_tx_data **p_tdata) 
    685686{ 
    686687    pjsip_msg *msg; 
     
    723724    pj_list_init(&res_hdr_list); 
    724725 
    725     /* Check the request body, see if it'inv something that we support 
    726      * (i.e. SDP).  
     726    /* Check the request body, see if it's something that we support, 
     727     * only when the body hasn't been parsed before. 
    727728     */ 
    728     if (msg->body) { 
     729    if (r_sdp==NULL && msg->body) { 
    729730        pjsip_msg_body *body = msg->body; 
    730731        pj_str_t str_application = {"application", 11}; 
     
    778779        } 
    779780 
     781        r_sdp = sdp; 
     782    } 
     783 
     784    if (r_sdp) { 
    780785        /* Negotiate with local SDP */ 
    781786        if (l_sdp) { 
     
    788793            /* Create SDP negotiator */ 
    789794            status = pjmedia_sdp_neg_create_w_remote_offer( 
    790                             rdata->tp_info.pool, l_sdp, sdp, &neg); 
     795                            rdata->tp_info.pool, l_sdp, r_sdp, &neg); 
    791796            PJ_ASSERT_RETURN(status == PJ_SUCCESS, status); 
    792797 
     
    10261031 
    10271032    return status; 
     1033} 
     1034 
     1035 
     1036/* 
     1037 * Verify incoming INVITE request. 
     1038 */ 
     1039PJ_DEF(pj_status_t) pjsip_inv_verify_request( pjsip_rx_data *rdata, 
     1040                                              unsigned *options, 
     1041                                              const pjmedia_sdp_session *l_sdp, 
     1042                                              pjsip_dialog *dlg, 
     1043                                              pjsip_endpoint *endpt, 
     1044                                              pjsip_tx_data **p_tdata) 
     1045{ 
     1046    return pjsip_inv_verify_request2(rdata, options, NULL, l_sdp, dlg,  
     1047                                     endpt, p_tdata); 
    10281048} 
    10291049 
Note: See TracChangeset for help on using the changeset viewer.