[Home]

Summary:ASTERISK-16455: [patch] sip_poke_noanswer launch ast_devstate_changed everytime even a peer is still unreachable
Reporter:Stefan Schmidt (schmidts)Labels:
Date Opened:2010-07-28 16:36:13Date Closed:2010-08-31 15:47:29
Priority:MinorRegression?No
Status:Closed/CompleteComponents:Channels/chan_sip/General
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:( 0) chan_sip.c.patch
Description:same in asterisk 1.8.0
I´ve done some debugging about the new heap scheduler and found a problem which cause asterisk to send a notify package, update astdb and some more everytime sip_poke_noanswer callback is launched.

my patch checks if the peer was not allready unreachable before starting the ast_devstate_changed function.



****** ADDITIONAL INFORMATION ******

with a default sip config every peer with qualify=yes schedules the sip_poke_peer function to 60 sec, the qualityfreq. in sip_poke_peer the options package is send to the know ip and port and also the sip_poke_noanswer is scheduled for peer->maxms*2 which is per default 4000ms. if the peer doesnt answer in 4 seconds the sip_poke_noanswer is launched, sets the peer to unreachable and reschedule sip_poke_peer for 10 sec.

now if one peer gets unreachable, every 14 seconds the devstate is changed to AST_DEVICE_UNKNOWN and also notify packages are sent if there is a hint for this peer. if there is allready a problem with the sched cause there are too many events scheduled at a time, to read the incoming packages meanwhile, sending a big amount of notifys make it even worser.

maybe the check if (peer->lastms > -1) before the devstate change could be done, a few rows above, but i dont know if there is some dependence for the dialog_unlink_all.
Comments:By: Digium Subversion (svnbot) 2010-08-31 15:13:22

Repository: asterisk
Revision: 284393

U   branches/1.4/channels/chan_sip.c

------------------------------------------------------------------------
r284393 | tilghman | 2010-08-31 15:13:22 -0500 (Tue, 31 Aug 2010) | 7 lines

Don't send a devstate change on poke_noanswer if the state did not change.

(closes issue ASTERISK-16455)
Reported by: schmidts
Patches:
      chan_sip.c.patch uploaded by schmidts (license 1077)

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=284393

By: Digium Subversion (svnbot) 2010-08-31 15:18:33

Repository: asterisk
Revision: 284399

_U  branches/1.6.2/
U   branches/1.6.2/channels/chan_sip.c

------------------------------------------------------------------------
r284399 | tilghman | 2010-08-31 15:18:33 -0500 (Tue, 31 Aug 2010) | 14 lines

Merged revisions 284393 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
 r284393 | tilghman | 2010-08-31 15:13:21 -0500 (Tue, 31 Aug 2010) | 7 lines
 
 Don't send a devstate change on poke_noanswer if the state did not change.
 
 (closes issue ASTERISK-16455)
  Reported by: schmidts
  Patches:
        chan_sip.c.patch uploaded by schmidts (license 1077)
........

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=284399

By: Digium Subversion (svnbot) 2010-08-31 15:22:11

Repository: asterisk
Revision: 284415

_U  branches/1.8/
U   branches/1.8/channels/chan_sip.c

------------------------------------------------------------------------
r284415 | tilghman | 2010-08-31 15:22:11 -0500 (Tue, 31 Aug 2010) | 21 lines

Merged revisions 284399 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

................
 r284399 | tilghman | 2010-08-31 15:18:32 -0500 (Tue, 31 Aug 2010) | 14 lines
 
 Merged revisions 284393 via svnmerge from
 https://origsvn.digium.com/svn/asterisk/branches/1.4
 
 ........
   r284393 | tilghman | 2010-08-31 15:13:21 -0500 (Tue, 31 Aug 2010) | 7 lines
   
   Don't send a devstate change on poke_noanswer if the state did not change.
   
   (closes issue ASTERISK-16455)
    Reported by: schmidts
    Patches:
          chan_sip.c.patch uploaded by schmidts (license 1077)
 ........
................

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=284415

By: Digium Subversion (svnbot) 2010-08-31 15:47:29

Repository: asterisk
Revision: 284440

_U  trunk/
U   trunk/channels/chan_sip.c

------------------------------------------------------------------------
r284440 | tilghman | 2010-08-31 15:47:28 -0500 (Tue, 31 Aug 2010) | 28 lines

Merged revisions 284415 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8

................
 r284415 | tilghman | 2010-08-31 15:22:10 -0500 (Tue, 31 Aug 2010) | 21 lines
 
 Merged revisions 284399 via svnmerge from
 https://origsvn.digium.com/svn/asterisk/branches/1.6.2
 
 ................
   r284399 | tilghman | 2010-08-31 15:18:32 -0500 (Tue, 31 Aug 2010) | 14 lines
   
   Merged revisions 284393 via svnmerge from
   https://origsvn.digium.com/svn/asterisk/branches/1.4
   
   ........
     r284393 | tilghman | 2010-08-31 15:13:21 -0500 (Tue, 31 Aug 2010) | 7 lines
     
     Don't send a devstate change on poke_noanswer if the state did not change.
     
     (closes issue ASTERISK-16455)
      Reported by: schmidts
      Patches:
            chan_sip.c.patch uploaded by schmidts (license 1077)
   ........
 ................
................

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=284440