Changeset 5892


Ignore:
Timestamp:
Sep 26, 2018 5:58:47 AM (6 years ago)
Author:
ming
Message:

Fixed #2155: Cleanup call setting flag before sending reinvite on IP change

This changeset also clears PJSUA_CALL_UNHOLD flag after calling pjsua_call_set_hold/hold2()

Location:
pjproject/trunk/pjsip
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjsip/include/pjsua-lib/pjsua_internal.h

    r5839 r5892  
    691691                                  pj_bool_t async, 
    692692                                  pjsua_med_tp_state_cb cb); 
     693void pjsua_call_cleanup_flag(pjsua_call_setting *opt); 
    693694void pjsua_set_media_tp_state(pjsua_call_media *call_med, pjsua_med_tp_st tp_st); 
    694695 
  • pjproject/trunk/pjsip/src/pjsua-lib/pjsua_acc.c

    r5872 r5892  
    39513951                acc->ip_change_op = PJSUA_IP_CHANGE_OP_ACC_REINVITE_CALLS; 
    39523952 
     3953                pjsua_call_cleanup_flag(&call_info.setting.flag); 
    39533954                call_info.setting.flag |= 
    39543955                                         acc->cfg.ip_change_cfg.reinvite_flags; 
     
    39563957                PJ_LOG(3, (THIS_FILE, "call to %.*s: send " 
    39573958                           "re-INVITE with flags 0x%x triggered " 
    3958                            "by IP change", 
     3959                           "by IP change (IP change flag: 0x%x)", 
    39593960                           call_info.remote_info.slen, 
    39603961                           call_info.remote_info.ptr, 
     3962                           call_info.setting.flag, 
    39613963                           acc->cfg.ip_change_cfg.reinvite_flags)); 
    39623964 
  • pjproject/trunk/pjsip/src/pjsua-lib/pjsua_call.c

    r5882 r5892  
    594594 * PJSUA_CALL_NO_SDP_OFFER, to be sticky (ticket #1793). 
    595595 */ 
    596 static void cleanup_call_setting_flag(pjsua_call_setting *opt) 
     596void pjsua_call_cleanup_flag(pjsua_call_setting *opt) 
    597597{ 
    598598    opt->flag &= ~(PJSUA_CALL_UNHOLD | PJSUA_CALL_UPDATE_CONTACT | 
     
    637637 
    638638    if (!opt) { 
    639         cleanup_call_setting_flag(&call->opt); 
     639        pjsua_call_cleanup_flag(&call->opt); 
    640640        return PJ_SUCCESS; 
    641641    } 
     
    13091309        /* Copy call setting from the replaced call */ 
    13101310        call->opt = replaced_call->opt; 
    1311         cleanup_call_setting_flag(&call->opt); 
     1311        pjsua_call_cleanup_flag(&call->opt); 
    13121312 
    13131313        /* Notify application */ 
     
    27012701    call->local_hold = PJ_TRUE; 
    27022702 
     2703    /* Clear unhold flag */ 
     2704    call->opt.flag &= ~PJSUA_CALL_UNHOLD; 
     2705 
    27032706on_return: 
    27042707    if (dlg) pjsip_dlg_dec_lock(dlg); 
     
    43974400    } 
    43984401 
    4399     cleanup_call_setting_flag(&call->opt); 
     4402    pjsua_call_cleanup_flag(&call->opt); 
    44004403    opt = call->opt; 
    44014404 
     
    45984601#endif 
    45994602 
    4600     cleanup_call_setting_flag(&call->opt); 
     4603    pjsua_call_cleanup_flag(&call->opt); 
    46014604 
    46024605    if (pjsua_var.ua_cfg.cb.on_call_tx_offer) { 
     
    49154918    } 
    49164919 
    4917     cleanup_call_setting_flag(&existing_call->opt); 
     4920    pjsua_call_cleanup_flag(&existing_call->opt); 
    49184921    call_opt = existing_call->opt; 
    49194922    if (pjsua_var.ua_cfg.cb.on_call_transfer_request2) { 
Note: See TracChangeset for help on using the changeset viewer.