Changeset 1733


Ignore:
Timestamp:
Jan 23, 2008 8:29:30 PM (16 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

Location:
pjproject/trunk/pjsip
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjsip/include/pjsip-ua/sip_inv.h

    r1598 r1733  
    395395 *                      (this is useful e.g. when application wants to send  
    396396 *                      the response statelessly). 
     397 * 
     398 * @see pjsip_inv_verify_request2() 
    397399 */ 
    398400PJ_DECL(pj_status_t) pjsip_inv_verify_request(  pjsip_rx_data *rdata, 
     
    403405                                                pjsip_tx_data **tdata); 
    404406 
     407/** 
     408 * Variant of #pjsip_inv_verify_request() which allows application to specify 
     409 * the parsed SDP in the \a offer argument. This is useful to avoid having to 
     410 * re-parse the SDP in the incoming request. 
     411 * 
     412 * @see pjsip_inv_verify_request() 
     413 */ 
     414PJ_DECL(pj_status_t) pjsip_inv_verify_request2( pjsip_rx_data *rdata, 
     415                                                unsigned *options, 
     416                                                const pjmedia_sdp_session *offer, 
     417                                                const pjmedia_sdp_session *answer, 
     418                                                pjsip_dialog *dlg, 
     419                                                pjsip_endpoint *endpt, 
     420                                                pjsip_tx_data **tdata); 
    405421 
    406422/** 
  • 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.