Changeset 1818 for pjproject/trunk/pjsip/src/pjsip/sip_transaction.c
- Timestamp:
- Feb 22, 2008 11:10:17 AM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
pjproject/trunk/pjsip/src/pjsip/sip_transaction.c
r1594 r1818 131 131 132 132 /* Timer timeout value constants */ 133 static constpj_time_val t1_timer_val = { PJSIP_T1_TIMEOUT/1000,134 135 static constpj_time_val t2_timer_val = { PJSIP_T2_TIMEOUT/1000,136 137 static constpj_time_val t4_timer_val = { PJSIP_T4_TIMEOUT/1000,138 139 static constpj_time_val td_timer_val = { PJSIP_TD_TIMEOUT/1000,140 141 static constpj_time_val timeout_timer_val = { (64*PJSIP_T1_TIMEOUT)/1000,142 133 static pj_time_val t1_timer_val = { PJSIP_T1_TIMEOUT/1000, 134 PJSIP_T1_TIMEOUT%1000 }; 135 static pj_time_val t2_timer_val = { PJSIP_T2_TIMEOUT/1000, 136 PJSIP_T2_TIMEOUT%1000 }; 137 static pj_time_val t4_timer_val = { PJSIP_T4_TIMEOUT/1000, 138 PJSIP_T4_TIMEOUT%1000 }; 139 static pj_time_val td_timer_val = { PJSIP_TD_TIMEOUT/1000, 140 PJSIP_TD_TIMEOUT%1000 }; 141 static pj_time_val timeout_timer_val = { (64*PJSIP_T1_TIMEOUT)/1000, 142 (64*PJSIP_T1_TIMEOUT)%1000 }; 143 143 144 144 #define TIMER_INACTIVE 0 … … 428 428 PJ_ASSERT_RETURN(mod_tsx_layer.endpt==NULL, PJ_EINVALIDOP); 429 429 430 /* Initialize timer values */ 431 t1_timer_val.sec = pjsip_cfg()->tsx.t1 / 1000; 432 t1_timer_val.msec = pjsip_cfg()->tsx.t1 % 1000; 433 t2_timer_val.sec = pjsip_cfg()->tsx.t2 / 1000; 434 t2_timer_val.msec = pjsip_cfg()->tsx.t2 % 1000; 435 t4_timer_val.sec = pjsip_cfg()->tsx.t4 / 1000; 436 t4_timer_val.msec = pjsip_cfg()->tsx.t4 % 1000; 437 td_timer_val.sec = pjsip_cfg()->tsx.td / 1000; 438 td_timer_val.msec = pjsip_cfg()->tsx.td % 1000; 439 timeout_timer_val.sec = (64 * pjsip_cfg()->tsx.t1) / 1000; 440 timeout_timer_val.msec = (64 * pjsip_cfg()->tsx.t1) % 1000; 441 430 442 /* Initialize TLS ID for transaction lock. */ 431 443 status = pj_thread_local_alloc(&pjsip_tsx_lock_tls_id); … … 453 465 454 466 /* Create hash table. */ 455 mod_tsx_layer.htable = pj_hash_create( pool, PJSIP_MAX_TSX_COUNT);467 mod_tsx_layer.htable = pj_hash_create( pool, pjsip_cfg()->tsx.max_count ); 456 468 if (!mod_tsx_layer.htable) { 457 469 pjsip_endpt_release_pool(endpt, pool); … … 1868 1880 { 1869 1881 pj_time_val timeout; 1870 intmsec_time;1882 unsigned msec_time; 1871 1883 1872 1884 pj_assert((tsx->transport_flag & TSX_HAS_PENDING_TRANSPORT) == 0); 1873 1885 1874 1886 if (tsx->role==PJSIP_ROLE_UAC && tsx->status_code >= 100) 1875 msec_time = PJSIP_T2_TIMEOUT;1887 msec_time = pjsip_cfg()->tsx.t2; 1876 1888 else 1877 msec_time = (1 << (tsx->retransmit_count)) * PJSIP_T1_TIMEOUT;1889 msec_time = (1 << (tsx->retransmit_count)) * pjsip_cfg()->tsx.t1; 1878 1890 1879 1891 if (tsx->role == PJSIP_ROLE_UAC) { 1880 1892 pj_assert(tsx->status_code < 200); 1881 1893 /* Retransmission for non-INVITE transaction caps-off at T2 */ 1882 if (msec_time>PJSIP_T2_TIMEOUT && tsx->method.id!=PJSIP_INVITE_METHOD) 1883 msec_time = PJSIP_T2_TIMEOUT; 1894 if (msec_time > pjsip_cfg()->tsx.t2 && 1895 tsx->method.id != PJSIP_INVITE_METHOD) 1896 { 1897 msec_time = pjsip_cfg()->tsx.t2; 1898 } 1884 1899 } else { 1885 1900 /* Retransmission of INVITE final response also caps-off at T2 */ 1886 1901 pj_assert(tsx->status_code >= 200); 1887 if (msec_time >PJSIP_T2_TIMEOUT)1888 msec_time = PJSIP_T2_TIMEOUT;1902 if (msec_time > pjsip_cfg()->tsx.t2) 1903 msec_time = pjsip_cfg()->tsx.t2; 1889 1904 } 1890 1905
Note: See TracChangeset
for help on using the changeset viewer.