Summary:ASTERISK-06147: Bug: Use uninicialized variable timer_t1
Reporter:Martin Vit (festr)Labels:
Date Opened:2006-01-20 10:19:23.000-0600Date Closed:2011-06-07 14:02:37
Versions:Frequency of
Description:Scenario is: Call to grandstream, answer and talk, switch to line 2 (in this step, double 200 OK is generated by asterisk) and after switch to line 1, caller hear nothing.

tethereal (switch to line 2), is asterisk:

 5.960422 ->  SIP/SDP Request: INVITE sip:103@, with session description
 5.962125 ->  SIP/SDP Status: 200 OK, with session description
 6.011744 ->  SIP/SDP Status: 200 OK, with session description
 6.017018 ->  SIP Request: ACK sip:103@
 6.054482 ->  SIP Request: ACK sip:103@

in asterisk 1.2.1: chan_sip.c, function __sip_reliable_xmit, line about 1278

       pkt->timer_t1 = p->timer_t1;    /* Set SIP timer T1 */
       if (fatal)
               ast_set_flag(pkt, FLAG_FATAL);
       if (pkt->timer_t1)
               siptimer_a = pkt->timer_t1 * 2;


p->timer_t1 is not inicialized somewhere when allocating structure sip_pvt, i cant find where.

when sending 200 OK after INVITE is received, p->timer_t1 is uninicialized so retransmissions is in our environment (randomly) usually about 50ms. This is causing sending double 200 OK and grandstream GXP 2000 is confused, so next RTP stream has invalid session ID (probably bug in grandstream).

Pls look at this, it seems, this could cause unexpected behaviour on many devices.
Comments:By: Martin Vit (festr) 2006-01-20 10:33:13.000-0600

well i'm sorry. I dont understand code well to reliased, that t1 timer is derived from last qualify time. Pls close this bug or link it with bug 5892 which is very closed to my problem.

By: Russell Bryant (russell) 2006-01-20 11:29:42.000-0600

Closed at the request of the original poster