Ignore:
Timestamp:
May 30, 2007 4:26:40 AM (17 years ago)
Author:
bennylp
Message:

Fixed ticket #302: Behavior in cancelling INVITE session when no provisional response has been received (thanks Esbjörn Dominique)

File:
1 edited

Legend:

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

    r1287 r1319  
    15131513            if (inv->invite_tsx->status_code < 100) { 
    15141514 
    1515                 pjsip_tsx_terminate(inv->invite_tsx, 487); 
     1515                pjsip_tsx_stop_retransmit(inv->invite_tsx); 
     1516                inv->cancelling = PJ_TRUE; 
     1517                inv->pending_cancel = PJ_TRUE; 
    15161518                *p_tdata = NULL; 
     1519                PJ_LOG(4, (inv->obj_name, "Stopping retransmission, " 
     1520                           "delaying CANCEL")); 
    15171521                return PJ_SUCCESS; 
    15181522            } 
     
    19261930 
    19271931        case PJSIP_TSX_STATE_PROCEEDING: 
     1932            if (inv->pending_cancel) { 
     1933                pjsip_tx_data *cancel; 
     1934 
     1935                inv->pending_cancel = PJ_FALSE; 
     1936 
     1937                status = pjsip_inv_end_session(inv, 487, NULL, &cancel); 
     1938                if (status == PJ_SUCCESS && cancel) 
     1939                    status = pjsip_inv_send_msg(inv, cancel); 
     1940            } 
     1941 
    19281942            if (dlg->remote.info->tag.slen) { 
    19291943 
Note: See TracChangeset for help on using the changeset viewer.