Hi, I have some more info from the logs (I added a few statements there) with my comments. My retry timer value is 120 sec. 15:10:15.062 sip_auth_clien Authorization failed for 857955 at fwd.pulver.com: server rejected with stale=false 15:10:15.062 pjsua_acc.c SIP registration error: Credential failed to authenticate (PJSIP_EFAILEDCREDENTIAL) [status=171100] 15:10:15.062 timer.c current time: 1205939415.62 15:10:15.062 timer.c expiry time: 1205939535.62 ////////timer expires after 120 sec 15:10:15.062 timer.c Added timer id: 24 ////// timer id for my timer 15:10:15.062 sipPhone.cpp Added RETRY timer ///////// log from sip phone app 15:10:15.062 timer.c current time: 1205939415.62 15:10:15.062 timer.c expiry time: 1205939420.62 15:10:15.062 timer.c Added timer id: 25 15:10:15.328 timer.c Removing timer id 5; cur size: 34 15:10:15.328 timer.c Moving timer id: 25; cur size: 33 15:10:15.328 timer.c current time: 1205939415.328 15:10:15.328 timer.c expiry time: 1205939416.928 15:10:15.328 timer.c Added timer id: 5 15:10:16.046 timer.c Removing timer id 6; cur size: 34 15:10:16.046 timer.c Moving timer id: 5; cur size: 33 15:10:16.062 timer.c Removing timer id 3; cur size: 33 15:10:16.062 timer.c Moving timer id: 2014530617; cur size: 32 ////////////memory corruption For reference, this is how I start the timer in the sip phone application- ---------------------------------------------------------- pj_time_val delay = { DEFAULT_RETRY_TIME, 0 }; pjsip_endpoint *endpt = pjsua_get_pjsip_endpt(); acc_info.timer.cb = ®_retry_cb; acc_info.timer.id = acc_id; acc_info.timer.user_data = NULL; if (pjsip_endpt_schedule_timer( endpt, &acc_info.timer, &delay) != PJ_SUCCESS) { PJ_LOG(5,("sipPhone.cpp", "pjsip_endpt_schedule_timer FAILED!!")); } else { PJ_LOG(4,("sipPhone.cpp", "Added RETRY timer")); } ------------------------------------------------------------- What am I doing wrong? Thanks, Anshuman ----- Original Message ----- From: "Anshuman S. Rawat" <arawat@xxxxxxxxxxx> To: "pjsip list" <pjsip at lists.pjsip.org> Sent: Wednesday, March 19, 2008 11:50 AM Subject: Re: pjsip freeze problem >> Frankly I disagree with your approach to implement the retry method. >> IMO, it's best to implement it in the application code rather than >> modifying pjsip. You just need to check for the appropriate condition >> in regc callback, schedule the timer, and when the timer elapses >> perform a fresh registration again. >> > > I will give that a try but I had tried the same from our sip phone > application (a layer above pjsua_lib) > with same results. There, depending on the error code, I started the timer > (with callback func in the same layer) > and performed a fresh registration every time. It crashed everytime I > started the timer after receiving a 4xx response. > > Just to be sure, is any timer initialization needed before calling > pjsip_endpt_schedule_timer() ? > > Thanks, > Anshuman > > > _______________________________________________ > Visit our blog: http://blog.pjsip.org > > pjsip mailing list > pjsip at lists.pjsip.org > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org > > > -- > No virus found in this incoming message. > Checked by AVG. > Version: 7.5.519 / Virus Database: 269.21.7/1328 - Release Date: 3/13/2008 > 11:31 AM > >