Changeset 3324 for pjproject/trunk


Ignore:
Timestamp:
Sep 28, 2010 8:03:23 AM (14 years ago)
Author:
bennylp
Message:

Fixed #1131: Callee disconnects call without sending BYE if ACK is not received (thanks Montevecchi Massimiliano and Klaus Darilion for the report)

File:
1 edited

Legend:

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

    r3243 r3324  
    37303730             */ 
    37313731            if (tsx->status_code/100 != 2) { 
    3732                 inv_set_cause(inv, tsx->status_code, &tsx->status_text); 
    3733                 inv_set_state(inv, PJSIP_INV_STATE_DISCONNECTED, e); 
     3732                if (tsx->role == PJSIP_ROLE_UAC) { 
     3733                    inv_set_cause(inv, tsx->status_code, &tsx->status_text); 
     3734                    inv_set_state(inv, PJSIP_INV_STATE_DISCONNECTED, e); 
     3735                } else { 
     3736                    pjsip_tx_data *bye; 
     3737                    pj_status_t status; 
     3738 
     3739                    /* Send BYE */ 
     3740                    status = pjsip_dlg_create_request(inv->dlg, 
     3741                                                      pjsip_get_bye_method(), 
     3742                                                      -1, &bye); 
     3743                    if (status == PJ_SUCCESS) { 
     3744                        pjsip_inv_send_msg(inv, bye); 
     3745                    } 
     3746                } 
    37343747            } 
    37353748            break; 
Note: See TracChangeset for help on using the changeset viewer.